Skip to main content
Version: Alpha

Install the portable core

Prerequisites: private product-repository access, Git, Docker with Compose and OpenSSL. Container builds supply application toolchains; development outside containers uses the pinned product Go/Node versions.

git clone git@github.com:mjtechguy/golf-git.git
cd golf-git
./scripts/init-env.sh
docker compose up -d --build
curl --fail http://localhost:8080/readyz

Open Golf at http://localhost:8080 and Forgejo at http://localhost:3001. Use localhost consistently; writes require the exact configured origin. Readiness returns 503 while dependencies initialize.

Enroll an account​

Registration is disabled. Replace the example identity and create a user through Forgejo's supported command:

docker compose exec forgejo forgejo --config /var/lib/gitea/custom/conf/app.ini admin user create \
--username golf-owner --email owner@example.com --admin \
--random-password --must-change-password=false

The /var/lib/gitea path is the pinned rootless Forgejo image's layout; do not rename it. Store the printed native password securely, sign into Forgejo and create a per-user scoped token. Read-only browsing needs read:user and read:repository; creation additionally needs native write scopes and current authority.

Through your editor or secret manager, create an ignored mode-0600 enrollment JSON file containing username, email, a unique Golf password, that user's forge_token, and is_instance_admin only for the deliberately enrolled operator. The product README gives the exact shape and scope requirements. Never put real credentials in shell arguments or examples.

docker compose exec -T golf golf local-account create < .tmp/local-account/enrollment.json

Sign into Golf with its own email-or-username/password. Read authentication before adding OAuth or machine credentials.

Retain your data​

docker compose logs --tail=80 golf forgejo
docker compose stop
docker compose start
# Removes containers/network while retaining named volumes:
docker compose down

Do not routinely add --volumes: that destroys data. Preserve private .env, key material, both PostgreSQL databases and Forgejo volumes together. Changing environment passwords does not rotate an existing database role.

Add execution deliberately​

Configured Docker workers/private object storage and agent services use separate Compose files, enrollment and policy. Follow the product pipeline profile; simply starting Golf does not enable jobs.

Kubernetes​

Follow Install Golf on Kubernetes for the complete Golf-specific workflow: architecture and prerequisites, building/pushing the application image, private existing Secrets, retained claims, complete values, ingress/TLS/network policy, enrollment, readiness checks, external database trust, rollouts and recovery limits.

The Golf chart deploys the shared interface/API and Forgejo with separate PostgreSQL ownership. API replicas have native spread/disruption controls; the forge/database remain single-writer unless separately replaced by qualified external services.

Recovery and migration limits​

The historical backup tool qualifies a bounded Forgejo fixture, not a current Forgejo restore. Do not swap Forgejo over retained Forgejo databases or treat volumes as backups. Read deployment profiles, recovery and status.