-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdocker-compose.yml
More file actions
56 lines (52 loc) · 2.22 KB
/
Copy pathdocker-compose.yml
File metadata and controls
56 lines (52 loc) · 2.22 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# db-router deployer — one-command multi-cloud infrastructure
#
# Pick a compute provider with CLOUD_PROVIDER (default: digitalocean).
# DNS is always managed in Cloudflare (CLOUDFLARE_API_TOKEN required).
#
# Usage (DigitalOcean):
# CLOUD_PROVIDER=digitalocean DIGITALOCEAN_TOKEN=dop_v1_xxx \
# CLOUDFLARE_API_TOKEN=cf_xxx docker compose up
#
# Usage (Hetzner):
# CLOUD_PROVIDER=hetzner HCLOUD_TOKEN=xxx \
# CLOUDFLARE_API_TOKEN=cf_xxx docker compose up
#
# With your own SSH key:
# ... docker compose run --rm -v ~/.ssh:/root/.ssh:ro deploy
#
# Destroy:
# CLOUD_PROVIDER=hetzner HCLOUD_TOKEN=xxx CLOUDFLARE_API_TOKEN=cf_xxx \
# DESTROY=true docker compose up
services:
deploy:
build:
context: ..
dockerfile: deployer/Dockerfile
environment:
# ── Provider selection + orchestration ──────────────────────────────
- CLOUD_PROVIDER=${CLOUD_PROVIDER:-digitalocean}
- DESTROY=${DESTROY:-false}
# ── DNS (always required) ───────────────────────────────────────────
- CLOUDFLARE_API_TOKEN=${CLOUDFLARE_API_TOKEN:-}
# ── Compute credentials (set the ones for your CLOUD_PROVIDER) ───────
- DIGITALOCEAN_TOKEN=${DIGITALOCEAN_TOKEN:-}
- LINODE_TOKEN=${LINODE_TOKEN:-}
- HCLOUD_TOKEN=${HCLOUD_TOKEN:-}
- AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID:-}
- AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY:-}
- GOOGLE_CREDENTIALS=${GOOGLE_CREDENTIALS:-}
- GOOGLE_PROJECT=${GOOGLE_PROJECT:-}
- ARM_CLIENT_ID=${ARM_CLIENT_ID:-}
- ARM_CLIENT_SECRET=${ARM_CLIENT_SECRET:-}
- ARM_SUBSCRIPTION_ID=${ARM_SUBSCRIPTION_ID:-}
- ARM_TENANT_ID=${ARM_TENANT_ID:-}
# ── Optional overrides (uncomment as needed) ────────────────────────
# - TF_VAR_domain=0.xeze.org
# - TF_VAR_subdomain=db
# - TF_VAR_cloudflare_zone=xeze.org
# - TF_VAR_region=blr1
# - TF_VAR_instance_size=s-1vcpu-2gb
# - TF_VAR_enable_mtls=true
# - CADDY_EMAIL=admin@example.com
volumes:
- ./state:/workspace/state