Phase 4: backups w/ volumes, notifications, settings & users, audit page (0.4.0)
- Backup/restore: per-stack tar.gz incl. named-volume snapshots (helper container), upload restore with rename/overwrite/conflict detection. - Notifications: ntfy/Discord/Slack/Gotify/generic webhooks, per-event subscriptions; wired into the update checker and stack lifecycle. - Settings page: update-check interval, webhook CRUD + test, user management (with last-admin safeguards). - Audit log page (searchable, paginated). - Mobile-responsive sidebar/layout. Multi-host agents and remote backup destinations (SFTP/S3) deferred. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
22d9864436
commit
8d19b09abd
@@ -4,7 +4,8 @@ A self-hosted Docker Compose manager for power users and homelab enthusiasts —
|
||||
as intuitive as Dockge, as capable as Portainer for Compose workflows.
|
||||
|
||||
> **Status:** Phase 1 (Core) + Phase 2 (Volumes & GPU) + Phase 3 (Quality of
|
||||
> Life) complete. Multi-host agents, backups and notifications land in Phase 4.
|
||||
> Life) + Phase 4 (Operations) complete. Multi-host agents are planned for a
|
||||
> later phase.
|
||||
|
||||
## What works today (Phase 1)
|
||||
|
||||
@@ -55,6 +56,24 @@ as intuitive as Dockge, as capable as Portainer for Compose workflows.
|
||||
Paperless-NGX, Gitea) with `{{VARIABLE}}` forms; save any stack as a custom template.
|
||||
- **Healthcheck status** surfaced per container in the stack overview.
|
||||
|
||||
### Phase 4 — Operations
|
||||
|
||||
- **Backup & restore**: per-stack `.tar.gz` backups including named-volume contents
|
||||
(snapshotted via a throwaway helper container); restore via upload with optional
|
||||
rename, volume restore, and overwrite/conflict detection.
|
||||
- **Notification webhooks**: ntfy, Discord, Slack, Gotify, or generic JSON, each
|
||||
subscribed to chosen events (image update available, stack start/stop/error,
|
||||
pull failed). Managed in **Settings → Notifications**; env `NOTIFY_WEBHOOKS`
|
||||
still supported for generic endpoints.
|
||||
- **Settings page**: tune the update-check interval, manage webhooks, and manage
|
||||
users (create/disable/delete, promote/demote, with last-admin safeguards).
|
||||
- **Audit log page**: searchable, paginated view of all recorded actions.
|
||||
- **Mobile-responsive layout**: off-canvas sidebar + adaptive spacing.
|
||||
|
||||
> **Not yet:** multi-host agents (a second deployable agent app + remote proxying)
|
||||
> and remote backup destinations (SFTP/S3) are intentionally deferred to a future
|
||||
> phase — backups currently download to / upload from the browser.
|
||||
|
||||
## Architecture
|
||||
|
||||
```
|
||||
@@ -143,6 +162,18 @@ GET /api/templates | /{id} POST /api/templates/{id}/insta
|
||||
POST /api/templates DELETE /api/templates/custom/{slug}
|
||||
```
|
||||
|
||||
### Phase 4 endpoints
|
||||
|
||||
```
|
||||
GET /api/stacks/{id}/backup?include_volumes=&stop_first= POST /api/stacks/restore
|
||||
GET /api/settings PUT /api/settings
|
||||
GET /api/settings/webhooks POST /api/settings/webhooks
|
||||
PUT /api/settings/webhooks/{id} DELETE /api/settings/webhooks/{id}
|
||||
POST /api/settings/webhooks/{id}/test
|
||||
GET /api/auth/users POST /api/auth/users
|
||||
PATCH /api/auth/users/{id} DELETE /api/auth/users/{id}
|
||||
```
|
||||
|
||||
## Security notes
|
||||
|
||||
- The Docker socket is only ever touched by the backend process; it is never
|
||||
|
||||
Reference in New Issue
Block a user