Skip to content

Deploy from scratch

Each phase depends on the one before it. Most of the time is spent waiting for services to come up.

PhaseWhatTimePage
0Tools, age key, SOPS secretsone-timePrerequisites
1Proxmox VMs, Talos, platform~15 minCluster
2OpenBao init, auth, app secrets~10 minOpenBao
3DNS and the Bifrost VPS~8 minBifrost
4Authentik apps~2 minAuthentik
5NetBird first login~5 minNetBird login
6NetBird keys, token, LAN route~5 minNetBird keys
7Grafana SSO and Public org~5 minGrafana SSO
8Publish manifests~3 minManifests
9End-to-end checks—Verify

Key names only. SOPS means secrets/bootstrap.sops.yaml; env/ is core/cloud/bifrost/env/, written by just core hetzner up and gitignored. See Secrets for the full model.

KeyWhere it livesSet in
PROXMOX_PASSWORDSOPS → Pulumi talos stack0
HCLOUD_TOKENSOPS → Pulumi hetzner stack0
CLOUDFLARE_API_TOKENSOPS → Secret cert-manager/cloudflare-api-token, env/traefik.env (as CF_DNS_API_TOKEN), Pulumi cloudflare stack0
AUTHENTIK_TOKENSOPS → env/authentik-server.env (as AUTHENTIK_BOOTSTRAP_TOKEN), Pulumi authentik stack0
AUTHENTIK_SECRET_KEYSOPS → env/authentik-server.env, env/authentik-worker.env0
AUTHENTIK_POSTGRESQL_PASSWORDSOPS → env/authentik-postgres.env, env/authentik-server.env, env/authentik-worker.env0
AUTHENTIK_GITHUB_SECRETSOPS → Pulumi authentik stack0
GRAFANA_OAUTH_CLIENT_SECRETSOPS → Pulumi authentik stack, OpenBao secret/grafana OAUTH_CLIENT_SECRET0
NETBIRD_CLIENT_SECRETSOPS → Pulumi authentik stack; typed into the NetBird UI0
NB_DATA_STORE_KEYSOPS → env/bootstrap.env0
NB_RELAY_SECRETSOPS → env/bootstrap.env0
NB_OWNER_PASSWORDSOPS → env/bootstrap.env0
OPENBAO_UNSEAL_KEYSOPS → Secret openbao/openbao-unseal-key2
NB_PROXY_TOKENSOPS → env/netbird-proxy.env6
NB_BIFROST_SETUP_KEYSOPS → env/netbird-agent.env (as NB_SETUP_KEY)6
ADMIN_PASSWORDOpenBao secret/grafana (seeded)2
HARBOR_ADMIN_PASSWORDOpenBao secret/harbor (seeded)2
ENCRYPTION_KEYOpenBao secret/n8n (seeded)2
FALCOSIDEKICK_UI_USEROpenBao secret/falco (seeded)2
RCON_PASSWORD, JOIN_PASSWORDOpenBao secret/cs2 (seeded)2
NETBIRD_SETUP_KEYOpenBao secret/netbird (placeholder in 2, real key in 6)6