Files
infra/stacks/gitea/compose.yaml
T
kacperor ed353be05d Krok 13 (2/3): Gitea uruchomiona pod git.dfkk.cloud
- gitea/gitea:1.27.2 + postgres:18.6 (najnowsze stabilne tagi)
- rejestracja wyłączona od startu (DISABLE_REGISTRATION=true),
  bezpieczniej niż wyłączanie ręcznie po pierwszym logowaniu
- baza tylko w sieci gitea-internal, bez edge
- postgres 18+: poprawiony mount na /var/lib/postgresql (zmiana
  konwencji względem starszych wersji, image inaczej nie startował)
- dane w /srv/data/gitea/{gitea,postgres}, .env poza repo
- dodano DNS wildcard *.dfkk.cloud -> 54.38.159.156
- zweryfikowane: HTTPS 200, cert Let's Encrypt ważny, rejestracja
  faktycznie zablokowana, SSH kontenera nieopublikowany na hosta
2026-08-20 19:28:14 +02:00

56 lines
1.9 KiB
YAML

services:
gitea:
image: gitea/gitea:1.27.2
container_name: gitea
restart: unless-stopped
environment:
- USER_UID=1000
- USER_GID=1000
- GITEA__database__DB_TYPE=postgres
- GITEA__database__HOST=gitea-db:5432
- GITEA__database__NAME=gitea
- GITEA__database__USER=gitea
- GITEA__database__PASSWD=${GITEA_DB_PASSWORD}
- GITEA__server__DOMAIN=git.dfkk.cloud
- GITEA__server__ROOT_URL=https://git.dfkk.cloud/
- GITEA__server__HTTP_PORT=3000
# Wewnątrz obrazu działa systemowy openssh-server (s6), niezależny od
# wbudowanego SSH Gitei — GITEA__server__DISABLE_SSH go nie wyłącza.
# Nieszkodliwe: port 22 kontenera nie jest publikowany na hosta (brak
# "ports:" w tym serwisie), więc jest nieosiągalny z zewnątrz. Realne
# bezpieczeństwo daje brak publikacji portu, nie ustawienie w app.ini.
- GITEA__service__DISABLE_REGISTRATION=true
- GITEA__service__REQUIRE_SIGNIN_VIEW=false
volumes:
- /srv/data/gitea/gitea:/data
networks:
- edge
- gitea-internal
labels:
- traefik.enable=true
- traefik.http.routers.gitea.rule=Host(`git.dfkk.cloud`)
- traefik.http.routers.gitea.entrypoints=websecure
- traefik.http.routers.gitea.tls.certresolver=ovh
- traefik.http.services.gitea.loadbalancer.server.port=3000
depends_on:
- gitea-db
gitea-db:
image: postgres:18.6
container_name: gitea-db
restart: unless-stopped
environment:
- POSTGRES_USER=gitea
- POSTGRES_PASSWORD=${GITEA_DB_PASSWORD}
- POSTGRES_DB=gitea
volumes:
- /srv/data/gitea/postgres:/var/lib/postgresql # postgres 18+: mount na /var/lib/postgresql, nie /data
networks:
- gitea-internal # bez edge — baza niewidoczna z zewnątrz
networks:
edge:
external: true
gitea-internal:
name: gitea-internal