From 05c3dc210f0d910281b95f8869b30997216bbec6 Mon Sep 17 00:00:00 2001 From: Kevin Heyer Date: Fri, 28 Mar 2025 20:29:56 +0000 Subject: [PATCH] Add Forgejo container --- forgejo/.env | 8 +++++ forgejo/README.md | 0 forgejo/docker-compose.yml | 60 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 68 insertions(+) create mode 100644 forgejo/.env create mode 100644 forgejo/README.md create mode 100644 forgejo/docker-compose.yml diff --git a/forgejo/.env b/forgejo/.env new file mode 100644 index 0000000..fc46ad3 --- /dev/null +++ b/forgejo/.env @@ -0,0 +1,8 @@ +# Forgejo +FORGEJO_VERSION=10 +FORGEJO_DOMAIN=forgejo.example.com + +# PostgreSQL +FORGEJO_POSTGRES_VERSION=16 +FORGEJO_POSTGRES_USER=forgejo +FORGEJO_POSTGRES_PASSWORD=your_secure_password \ No newline at end of file diff --git a/forgejo/README.md b/forgejo/README.md new file mode 100644 index 0000000..e69de29 diff --git a/forgejo/docker-compose.yml b/forgejo/docker-compose.yml new file mode 100644 index 0000000..d9fc062 --- /dev/null +++ b/forgejo/docker-compose.yml @@ -0,0 +1,60 @@ +--- +services: + forgejo: + image: codeberg.org/forgejo/forgejo:${FORGEJO_VERSION:-10} + container_name: forgejo + restart: always + networks: + - traefik + - database + volumes: + - data:/data + - /etc/timezone:/etc/timezone:ro + - /etc/localtime:/etc/localtime:ro + environment: + - USER_UID=1000 + - USER_GID=1000 + - FORGEJO__database__DB_TYPE=postgres + - FORGEJO__database__HOST=forgejo-db:5432 + - FORGEJO__database__NAME=${FORGEJO_POSTGRES_USER:-forgejo} + - FORGEJO__database__USER=${FORGEJO_POSTGRES_USER} + - FORGEJO__database__PASSWD=${FORGEJO_POSTGRES_PASSWORD} + labels: + - "traefik.enable=true" + - "traefik.docker.network=traefik" + - "traefik.http.routers.forgejo.entrypoints=http" + - "traefik.http.routers.forgejo.rule=Host(`${FORGEJO_DOMAIN}`)" + - "traefik.http.middlewares.forgejo-https-redirect.redirectscheme.scheme=https" + - "traefik.http.routers.forgejo.middlewares=forgejo-https-redirect" + - "traefik.http.routers.forgejo-secure.entrypoints=https" + - "traefik.http.routers.forgejo-secure.rule=Host(`${FORGEJO_DOMAIN}`)" + - "traefik.http.routers.forgejo-secure.tls=true" + - "traefik.http.routers.forgejo-secure.service=forgejo" + - "traefik.http.services.forgejo.loadbalancer.server.port=3000" + depends_on: + - forgejo-db + + forgejo-db: + image: postgres:${FORGEJO_POSTGRES_VERSION:-16} + container_name: forgejo-db + restart: always + environment: + - POSTGRES_USER=${FORGEJO_POSTGRES_USER} + - POSTGRES_PASSWORD=${FORGEJO_POSTGRES_PASSWORD} + - POSTGRES_DB=forgejo + networks: + - database + volumes: + - db:/var/lib/postgresql/data + +volumes: + data: + external: true + db: + external: true + +networks: + traefik: + external: true + database: + driver: bridge