Federated git forge toy project by qoppatech.
- Copy env file:
cp .env.example .env - Boot full stack (postgres, redis, migrations, api):
make compose-up - Verify health:
curl -fsS http://localhost:8080/healthz
Single-command bootstrap path is make compose-up (includes migration + seed jobs before API starts).
- Apply migrations:
make migrate-up - Roll back last migration:
make migrate-down - Migration status/version:
make migrate-status - Seed baseline data:
make seed
Seed creates/updates:
- user
admin(admin@gitfed.local, passwordadmin123) - organization
Gitfed Team - repository
hello-gitfed
All environments use the same config keys and migration flow.
| Key | dev/local | self-hosted | cloud | qoppainfra |
|---|---|---|---|---|
ENV |
DEV |
PROD |
PROD |
PROD |
HTTP_ADDR |
0.0.0.0:8080 |
required | required | required |
REPOS_DIR |
/data/repos |
required | required | required |
DB_HOST |
psql |
required | required | required |
DB_PORT |
5432 |
required | required | required |
DB_USER |
gitfed |
required | required | required |
DB_PASSWORD |
gitfed |
required | required | required |
DB_NAME |
gitfed |
required | required | required |
DB_SSLMODE |
disable |
required | required | required |
REDIS_HOST |
redis |
required | required | required |
REDIS_PORT |
6379 |
required | required | required |
REDIS_PASSWORD |
empty | optional/required by policy | optional/required by policy | optional/required by policy |
REDIS_DB |
0 |
0 (or policy) |
0 (or policy) |
0 (or policy) |
SHUTDOWN_TIMEOUT |
15s |
required | required | required |
HEALTHCHECK_TIMEOUT |
2s |
required | required | required |
APP_VERSION |
dev |
release version/SHA | release version/SHA | release version/SHA |
Optional SSO keys:
GOOGLE_CLIENT_IDGOOGLE_CLIENT_SECRETGOOGLE_REDIRECT_URL
Use this same order in self-hosted, cloud, and qoppainfra:
- Provision Postgres + Redis.
- Export required env vars.
- Run migrations (
make migrate-upor migration job). - Start API image tagged with immutable version (
gitfed:<sha>). - Wait for
/healthzreadiness before routing traffic.