بنقرة واحدة
managed-databases
Coolify/Dokploy-style managed databases with Dokku-style app linking.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Coolify/Dokploy-style managed databases with Dokku-style app linking.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
Guide for server management, system APIs, backups, and maintenance operations.
Guide for developing features in the Vite + React Router frontend.
Guide to Docklift's automated release pipeline using semantic-release.
Guide for setting up, running, and developing the Docklift project.
Guide for setting up and managing Docklift's GitHub App integration.
Security patterns, guards, and best practices enforced across the Docklift codebase.
| name | Managed Databases |
| description | Coolify/Dokploy-style managed databases with Dokku-style app linking. |
DockLift databases are first-class managed projects (project_type=database,
source_type=managed, db_engine set). They are not Git/ZIP apps.
Defined in backend/src/lib/databaseEngines.ts:
| id | New-create default | Bare [managed:id] pin | Env key |
|---|---|---|---|
| postgres | postgres:18-alpine | postgres:16-alpine | DATABASE_URL |
| mysql | mysql:8.4 | mysql:8.4 | DATABASE_URL |
| mariadb | mariadb:11 | mariadb:11 | DATABASE_URL |
| redis | redis:8-alpine | redis:7-alpine | REDIS_URL |
| mongodb | mongo:8 | mongo:7 | MONGODB_URI |
GET /api/databases/engines loads live tags from Docker Hub (dockerHubTags.ts, 6h cache only when pagination completes); static versions are fallback18, 18-alpine) — not every distro/RC tagversion (tag); stores full image on service as [managed:engine|repo:tag][managed:engine] → LEGACY_MANAGED_IMAGES (never silent major bump)/var/lib/postgresql/data; 18+/latest → /var/lib/postgresql (official image contract). Create + deploy sync persistent_volumes.mount_path. Redeploy cannot migrate data that already landed on an anonymous volume under the old /data mount — recreate + restore if needed.is_secret)publish_host_port default false — prefer linking| Method | Path | Purpose |
|---|---|---|
| GET | /api/databases/engines | Catalog (+ live Hub versions, imageRepo) |
| GET/POST | /api/databases | List / create (version / tag on create) |
| GET | /api/databases/:id/connection | URL + credentials |
| GET/POST/DELETE | /api/databases/:id/links | Link management |
| GET | /api/databases/links/by-app/:appProjectId | Links on an app |
Create does not require Git. Deploy async-pulls the image (never spawnSync —
blocking pull freezes the whole API and blanks the project UI). Pull is registered with
the deploy cancel tracker (kill + timeout), and the deploy lock is owned by
deploymentId so a cancelled pull cannot unlock a newer deploy. Pull output streams into
deployment logs (polled from Deployments tab).
DatabaseLink rows: database → app project, optional service_name ("" = shared env).
On link:
dl-net-* (connectContainerToProjectNetwork)DATABASE_URL / REDIS_URL / …)After DB or app deploy, links are re-applied (network join).
/databases — list/databases/new — engine picker + create & deployManagedDatabasePanel)AttachDatabasePanel): scope picker only on All services; locked to current service in service workspace (rounded custom selects)(app_project_id, service_name, env_key) — unique index + overwrite gate.disconnectLinkedDatabasesFromApp before compose down;
on failed teardown, reapplyDatabaseLinksForApp (same as proxy restore).cleanupLinksForDatabaseProject, then prisma delete.IP:port.status running/degraded; env inject before/with soft network attach.