First commit

This commit is contained in:
cedric 2025-11-30 16:29:43 +01:00
commit 286a7e9a03
46 changed files with 1016 additions and 0 deletions

View file

@ -0,0 +1,59 @@
version: '3.8'
services:
db:
image: postgres:17
container_name: forgejo-db
volumes:
- /srv/docker/forgejo/pgdata:/var/lib/postgresql/data
environment:
POSTGRES_USER: ${DATABASE_USER}
POSTGRES_PASSWORD: ${DATABASE_PASSWORD}
POSTGRES_DB: ${DATABASE_NAME}
restart: unless-stopped
networks:
- internal
healthcheck:
test: ["CMD-SHELL", "pg_isready -U ${DATABASE_USER} -d ${DATABASE_NAME}"]
interval: 5s
timeout: 5s
retries: 5
start_period: 10s
forgejo:
image: codeberg.org/forgejo/forgejo:11.0.8
container_name: forgejo
depends_on:
db:
condition: service_healthy
ports:
- "8822:22" # Port pour SSH (optionnel)
volumes:
- /srv/docker/forgejo/data:/data
- /srv/docker/forgejo/data/config/app.ini:/etc/forgejo/app.ini
environment:
DATABASE_TYPE: ${DATABASE_TYPE}
DATABASE_HOST: db
DATABASE_PORT: ${DATABASE_PORT}
DATABASE_USER: ${DATABASE_USER}
DATABASE_PASSWORD: ${DATABASE_PASSWORD}
DATABASE_NAME: ${DATABASE_NAME}
ROOT_URL: ${ROOT_URL}
LFS_ENABLED: ${LFS_ENABLED}
OFFLINE_MODE: ${OFFLINE_MODE}
labels:
- "traefik.enable=true"
- "traefik.http.routers.forgejo.rule=Host(`${VIRTUAL_HOST}`)"
- "traefik.http.routers.forgejo.entrypoints=websecure"
- "traefik.http.routers.forgejo.tls=true"
- "traefik.http.routers.forgejo.tls.certresolver=myresolver"
- "traefik.http.services.forgejo.loadbalancer.server.port=3000"
- "traefik.docker.network=http-proxy"
restart: unless-stopped
networks:
- http-proxy
- internal
networks:
http-proxy:
external: true
internal:
driver: bridge

View file

@ -0,0 +1,10 @@
DATABASE_TYPE=postgres
DATABASE_HOST=db
DATABASE_PORT=5432
DATABASE_USER=forgejo
DATABASE_PASSWORD=DdjwlRBeO2zL6us84qBIqBLKX5hdsOs1
DATABASE_NAME=forgejo
ROOT_URL=https://src.alamaison.me
LFS_ENABLED=true
OFFLINE_MODE=false
VIRTUAL_HOST=src.alamaison.me

View file

@ -0,0 +1,35 @@
version: '3.9'
services:
traefik:
image: traefik:3.6.1
container_name: traefik
restart: unless-stopped
command:
- "--api.dashboard=true"
- "--entrypoints.web.address=:80"
- "--entrypoints.websecure.address=:443"
- "--providers.docker=true"
- "--providers.docker.exposedbydefault=false"
- "--providers.docker.watch=true"
- "--certificatesresolvers.myresolver.acme.httpchallenge=true"
- "--certificatesresolvers.myresolver.acme.httpchallenge.entrypoint=web"
- "--certificatesresolvers.myresolver.acme.email=${ACME_EMAIL}"
- "--certificatesresolvers.myresolver.acme.storage=/letsencrypt/acme.json"
- "--entrypoints.web.http.redirections.entrypoint.to=websecure"
- "--entrypoints.web.http.redirections.entrypoint.scheme=https"
ports:
- "80:80"
- "8443:443"
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- traefik-letsencrypt:/letsencrypt
networks:
- http-proxy
volumes:
traefik-letsencrypt:
networks:
http-proxy:
external: true

View file

@ -0,0 +1 @@
ACME_EMAIL=contact@pinte.net