- 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
56 lines
1.9 KiB
YAML
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
|