43fe443574
- README + CLAUDE.md: server access, API usage, conventions - docs/server.md: specs and core stack (Dokploy v0.29.7, Traefik, Swarm) - docs/inventory.md: deployed apps, starting with httpbin - scripts/api.sh: Dokploy API wrapper Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
24 lines
1.5 KiB
Markdown
24 lines
1.5 KiB
Markdown
# mercury — Dokploy management repo
|
|
|
|
This repo documents and manages the Dokploy instance at `https://mercury.kennethreitz.org`
|
|
(Hetzner server, IP `5.161.122.181`; direct fallback `http://5.161.122.181:3000`).
|
|
It contains no application code — only docs, inventory, and management scripts.
|
|
|
|
## Working in this repo
|
|
|
|
- Root SSH access: `ssh root@mercury.kennethreitz.org` (key auth). Use it for
|
|
inspection and management; confirm with the user before destructive server changes.
|
|
- The server runs Docker in single-node Swarm mode; Dokploy core (dokploy, postgres,
|
|
redis) are Swarm services, Traefik is a plain container. See `docs/server.md`.
|
|
- The Dokploy API lives at `https://mercury.kennethreitz.org/api` and uses an `x-api-key`
|
|
header. The key is read from the `DOKPLOY_API_KEY` env var or a local `.env` file
|
|
(gitignored). Never commit secrets — document env var *names* and shapes only.
|
|
- API endpoints are tRPC-style: `GET /api/project.all`, `GET /api/application.one?applicationId=...`,
|
|
`POST /api/application.deploy`, etc. OpenAPI spec at `/api/settings.getOpenApiDocument` (authed).
|
|
- `docs/` holds the human-readable state of the setup (inventory, domains, runbooks).
|
|
When something changes on the server, update the docs to match.
|
|
- `scripts/` holds management scripts. Keep them idempotent and read the API key from
|
|
the environment.
|
|
- Destructive Dokploy operations (delete project/app, remove volumes, redeploy prod)
|
|
should be confirmed with the user before running.
|