Text · 2561 bytes Raw Blame History
1 # shithub production inventory — single-droplet at launch (S37 design).
2 #
3 # Copy to `inventory/production` and edit before deploying. The real
4 # inventory file is .gitignored; this example documents the variables
5 # the roles read.
6
7 [shithub]
8 shithub-prod ansible_host=192.0.2.10 ansible_user=root
9
10 [shithub:vars]
11 # Public host shithubd serves under (Caddy auto-cert covers this).
12 shithub_domain=shithub.example
13 # Container/process owner (created by the base role).
14 shithub_user=shithub
15 shithub_group=shithub
16 # Block-volume mount point. ALL stateful data (repos, pgdata, tmp)
17 # lives under here so the root disk never fills up.
18 shithub_data_root=/data
19 # pgx pool size; matches the worker pool too.
20 shithub_db_pool_max=20
21 # Postmark sender + DKIM are configured before the deploy.
22 shithub_email_from="shithub <noreply@shithub.example>"
23 shithub_email_backend=postmark
24 # Runtime object storage. DigitalOcean Spaces uses virtual-hosted style
25 # addressing and TLS; region remains us-east-1 for SigV4 signing.
26 s3_endpoint=nyc3.digitaloceanspaces.com
27 s3_region=us-east-1
28 s3_bucket=shithub-prod
29 s3_access_key_id=REPLACE_ME
30 s3_secret_access_key=REPLACE_ME
31 s3_use_ssl=true
32 s3_force_path_style=false
33 # WireGuard peer for the bare-metal monitoring box.
34 wg_metal_endpoint=metal.shithub.example:51820
35 wg_metal_pubkey=REPLACE_ME
36
37 # Grafana Cloud (free tier) — Prometheus remote_write target. Get
38 # these from grafana.com → Stack → Prometheus details. Token is
39 # from Access Policies with metrics:write scope.
40 # See docs/internal/runbooks/observability.md for the full signup.
41 # The host below varies — copy the exact "Remote Write Endpoint"
42 # shown on the Prometheus details page (region + tenant differ).
43 grafana_cloud_prom_url=https://prometheus-prod-XX-prod-REGION.grafana.net/api/prom/push
44 grafana_cloud_prom_user=REPLACE_ME # numeric tenant id
45 grafana_cloud_prom_token=REPLACE_ME # access-policy token
46
47 # Optional Actions runner on this host. Generate the token with:
48 # shithubd admin runner register --name prod-runner-1 --labels self-hosted,linux,ubuntu-latest,x64 --capacity 1 --output json
49 # Store the real token in ansible-vault or your secret manager.
50 # shithub_runner_enabled=true
51 # shithub_runner_token=REPLACE_ME
52 # shithub_runner_labels=self-hosted,linux,ubuntu-latest,x64
53 # shithub_runner_capacity=1
54 # shithub_runner_default_image=ghcr.io/tenseleyflow/shithub/runner-nix:1.0
55 # The role creates shithub-actions on shact0 (172.30.0.1/24), runs
56 # dnsmasq on that bridge, and enforces direct-IP egress denial with
57 # shithub-runner-firewall.service.