1
0
Fork 0
forge/README.md
Jason Hall 4dc1b58f2f initial commit
Signed-off-by: Jason Hall <imjasonh@gmail.com>
2026-05-07 20:02:59 -04:00

1.4 KiB
Raw Blame History

forge

Self-hosted Forgejo on GCP. e2-micro VM on Container-Optimized OS, Caddy for HTTPS, IAP for admin SSH, nightly backups to GCS. Targets ~$35/month.

See plan.md for the full design rationale.

Quick start

# 1. Set the active project, enable APIs
gcloud config set project YOUR_PROJECT
gcloud services enable compute.googleapis.com secretmanager.googleapis.com \
  iap.googleapis.com storage.googleapis.com

# 2. Generate the Forgejo secrets in Secret Manager (one-time)
./scripts/bootstrap-secrets.sh

# 3. Configure Terraform (terraform.tfvars is gitignored)
$EDITOR terraform/terraform.tfvars

# 4. Apply
cd terraform
terraform init
terraform apply

Point your domain's A record at the static_ip output, then visit https://<your-domain> to run the Forgejo installer.

Day two

Layout

terraform/    GCP infrastructure (VM, network, IAM, GCS, optional DNS)
cloud-init/   user-data.yaml.tpl — systemd units that boot Forgejo + Caddy + Watchtower
config/       Caddyfile template (reference; the live copy is embedded in cloud-init)
scripts/      bootstrap-secrets.sh, backup.sh, restore.sh, test-restore.sh
docs/         runbook + disaster recovery