Files
Shade/examples/05-dokploy-deployment/README.md

49 lines
1.4 KiB
Markdown
Raw Normal View History

# Example 05: Dokploy / Docker Deployment
Production-ready docker-compose configuration for deploying the Shade Prekey Server to Dokploy or any Docker host.
## What's here
- `docker-compose.yml` — single-service deployment with persistent SQLite
- `docker-compose.postgres.yml` — alternative with PostgreSQL backend
- Persistent volume for the SQLite database
- Health checks, restart policy, structured logging
## Deploy
```bash
# SQLite (zero-config, recommended for small deployments)
docker compose up -d
# PostgreSQL (for shared databases or HA)
docker compose -f docker-compose.postgres.yml up -d
```
After deployment, the prekey server is reachable at `http://localhost:3900`:
```bash
# Health check
curl http://localhost:3900/health
# Metrics
curl http://localhost:3900/metrics
# Anonymous bundle fetch (works without auth)
curl http://localhost:3900/v1/keys/bundle/some-address
```
## Reverse proxy
For TLS termination, put the prekey server behind a reverse proxy like Caddy or Traefik. Dokploy handles this automatically when you set the domain in the project settings.
## Backups
The persistent volume `shade-data` contains the SQLite database. Back it up with:
```bash
docker run --rm -v shade-data:/data -v $(pwd):/backup alpine \
tar czf /backup/shade-data-$(date +%Y%m%d).tar.gz /data
```
For PostgreSQL, use standard `pg_dump` against the `postgres` service.