85 lines
1.9 KiB
Markdown
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 |
|