daybook/_archive_/hosts/cloud-template.md

85 lines
1.9 KiB
Markdown

# Cloud Daybook Host Template
Use this when creating a hosted/cloud Daybook deployment.
Status: planned.
## Summary
| Item | Value |
|---|---|
| Provider | TBD |
| Hostname | TBD |
| Public URL | TBD |
| SSH | TBD |
| OS | TBD |
| App user | TBD |
| Deployment path | TBD |
| Persistent data path | TBD |
| API base URL | TBD |
| TLS | TBD |
| Backup location | TBD |
## Target Runtime
Preferred simple runtime for the first cloud deployment:
```text
Django + Gunicorn in Docker Compose
```
Required persistent state:
```text
deploy/data/db.sqlite3
deploy/data/artifacts_store
```
Do not bake persistent data into the image.
## Environment
Expected production environment values:
```text
DJANGO_DEBUG=0
DJANGO_ALLOWED_HOSTS=<hostnames and IPs>
DAYBOOK_API_TOKEN=<write token>
DAYBOOK_DATA_DIR=/data
DATABASE_PATH=/data/db.sqlite3
ARTIFACTS_ROOT=/data/artifacts_store
```
## Deployment Flow
Initial deployment checklist:
1. Provision host.
2. Install Docker and Docker Compose plugin.
3. Copy or clone Daybook source.
4. Create production `.env`.
5. Create persistent `deploy/data` directory.
6. Start with `docker compose -f deploy/docker-compose.yml up -d --build`.
7. Verify `/api/capabilities`.
8. Publish a smoke artifact.
9. Configure backups for `deploy/data`.
## Health Checks
```bash
curl -fsS <api-base-url>/api/capabilities
docker compose -f deploy/docker-compose.yml ps
test -f deploy/data/db.sqlite3
test -d deploy/data/artifacts_store
```
## Open Decisions
| Decision | Options | Choice |
|---|---|---|
| Hosting provider | VPS, home tunnel, managed container host | TBD |
| Domain | Existing domain, subdomain, direct IP | TBD |
| TLS | Reverse proxy, provider load balancer, Tailscale-only | TBD |
| Backups | Host cron, provider snapshots, object storage archive | TBD |
| Database | SQLite for MVP, Postgres later | TBD |
| Reader auth | None for MVP, basic auth, app auth | TBD |