Add forgejo (with shared postgres), docs/ideas; fix ENOTDIR in local catalog listing

Co-Authored-By: Claude Code <noreply@anthropic.com>
This commit is contained in:
Ezequiel C. 2026-09-10 23:29:36 +02:00
parent 161464602e
commit d66db4e85e
7 changed files with 150 additions and 1 deletions

View file

@ -20,6 +20,10 @@ homelab/
│ │ └── users_database.yml
│ ├── lldap/ # lightweight LDAP user store
│ │ └── metadata.json
│ ├── postgres/ # shared PostgreSQL (database for Forgejo & future apps)
│ │ └── metadata.json
│ ├── forgejo/ # self-hosted Git (web + SSH), uses postgres
│ │ └── metadata.json
│ ├── multistreaming/ # self-built: OBS ingest -> multi-platform re-streaming
│ │ ├── metadata.json
│ │ ├── Dockerfile
@ -65,6 +69,17 @@ for any future OIDC-capable app. Install order: `lldap`, `authelia`, `nginx-prox
bun run src/index.ts install lldap authelia nginx-proxy-manager
```
## Git (Forgejo + PostgreSQL)
[`forgejo`](services/forgejo) is the self-hosted git server, backed by the shared [`postgres`](services/postgres)
service. Both join the `homelab` docker network; PostgreSQL publishes no host port (docker-internal only).
- Web UI: `http://10.0.0.5:3000` (LAN only) — first visit creates the admin account.
- Git over SSH: `ssh://git@10.0.0.5:2222/<owner>/<repo>.git` (container SSH on host port 2222; host sshd keeps port 22).
- Registration is disabled; users come through the identity stack (Authelia SSO) later.
- Install order: `postgres` first, then `forgejo` with `--env PG_PASSWORD=<value>` taken from `~/.homelab/services/postgres/.env`.
- Update `FORGEJO_ROOT_URL` / `FORGEJO_SSH_DOMAIN` to the public domain once NPM proxies `git.example.com`.
## Network & DMZ topology
[`portainer`](services/portainer) is the Docker/network manager: from its dashboard you can create