Files
kennethreitz 43fe443574 Initial commit: document the mercury Dokploy setup
- 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>
2026-06-05 00:02:24 -04:00

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.