diff --git a/services.json b/services.json index da40cac..efed862 100644 --- a/services.json +++ b/services.json @@ -11,7 +11,7 @@ "usememos", "authentik-ldap", "heimdall", - "gitea" + "forgejo" ] }, { diff --git a/services/forgejo/.env.template b/services/forgejo/.env.template new file mode 100644 index 0000000..ede82b0 --- /dev/null +++ b/services/forgejo/.env.template @@ -0,0 +1,18 @@ +HOST=git.katuwoss.dev + +FORGEJO__database__DB_TYPE=postgres +FORGEJO__database__HOST=db:5432 +FORGEJO__database__NAME=forgejo +FORGEJO__database__USER={{ username['5bbfe384-094c-4b02-9e53-7594236742dd'] }} +FORGEJO__database__PASSWD={{ password['5bbfe384-094c-4b02-9e53-7594236742dd'] }} + +FORGEJO__mailer__ENABLED=true +FORGEJO__mailer__FROM=noreply@katuwoss.dev +FORGEJO__mailer__PROTOCOL=smtps +FORGEJO__mailer__SMTP_ADDR=smtp.seznam.cz +FORGEJO__mailer__SMTP_PORT=465 +FORGEJO__mailer__USER={{ username['8950714f-6ce4-4ccd-bc8d-0d1fbb46178d'] }} +FORGEJO__mailer__PASSWD={{ password['8950714f-6ce4-4ccd-bc8d-0d1fbb46178d'] }} + +FORGEJO__security__SECRET_KEY={{ password['4266cb4a-c0a1-4df4-be78-778c10a8ee34'] }} +FORGEJO__security__INTERNAL_TOKEN={{ password['8c899339-bea5-47f9-aed2-e88966a8cf3f'] }} \ No newline at end of file diff --git a/services/forgejo/docker-compose.yml b/services/forgejo/docker-compose.yml new file mode 100644 index 0000000..fdd8a7a --- /dev/null +++ b/services/forgejo/docker-compose.yml @@ -0,0 +1,60 @@ +networks: + traefik-net: + external: true + name: traefik-net + +x-traefik: &x-traefik + networks: + - traefik-net + - default + +volumes: + forgejo-data: + name: forgejo + forgejo-database-data: + name: forgejo-database-data + forgejo-pg-backup: + name: forgejo-pg-backup + +services: + forgejo: + image: codeberg.org/forgejo/forgejo:8 + depends_on: + - db + volumes: + - forgejo-data:/data + - /etc/timezone:/etc/timezone:ro + - /etc/localtime:/etc/localtime:ro + env_file: + - .env + <<: *x-traefik + deploy: + labels: + - traefik.enable=true + - traefik.docker.network=traefik-net + - traefik.http.routers.forgejo.rule=Host(`${HOST}`) + - traefik.http.routers.forgejo.entrypoints=${ENTRYPOINTS:-websecure} + - traefik.http.routers.forgejo.tls.certresolver=le + - traefik.http.services.forgejo.loadbalancer.server.port=3000 + + db: + image: docker.io/library/postgres:16 + volumes: + - forgejo-database-data:/var/lib/postgresql/data + environment: + - POSTGRES_DB=${FORGEJO__database__NAME} + - POSTGRES_USER=${FORGEJO__database__USER} + - POSTGRES_PASSWORD=${FORGEJO__database__PASSWD} + + database-backup: + image: prodrigestivill/postgres-backup-local:16 + depends_on: + - db + volumes: + - forgejo-pg-backup:/backups + environment: + - POSTGRES_EXTRA_OPTS=-Z 6 -F c + - POSTGRES_DB=${FORGEJO__database__NAME} + - POSTGRES_USER=${FORGEJO__database__USER} + - POSTGRES_PASSWORD=${FORGEJO__database__PASSWD} + - POSTGRES_HOST=db diff --git a/services/gitea/.env.template b/services/gitea/.env.template deleted file mode 100644 index 0835eaf..0000000 --- a/services/gitea/.env.template +++ /dev/null @@ -1,18 +0,0 @@ -HOST=git.katuwoss.dev - -GITEA__database__DB_TYPE=postgres -GITEA__database__HOST=db:5432 -GITEA__database__NAME=gitea -GITEA__database__USER={{ username['5bbfe384-094c-4b02-9e53-7594236742dd'] }} -GITEA__database__PASSWD={{ password['5bbfe384-094c-4b02-9e53-7594236742dd'] }} - -GITEA__mailer__ENABLED=true -GITEA__mailer__FROM=noreply@katuwoss.dev -GITEA__mailer__PROTOCOL=smtps -GITEA__mailer__SMTP_ADDR=smtp.seznam.cz -GITEA__mailer__SMTP_PORT=465 -GITEA__mailer__USER={{ username['8950714f-6ce4-4ccd-bc8d-0d1fbb46178d'] }} -GITEA__mailer__PASSWD={{ password['8950714f-6ce4-4ccd-bc8d-0d1fbb46178d'] }} - -GITEA__security__SECRET_KEY={{ password['4266cb4a-c0a1-4df4-be78-778c10a8ee34'] }} -GITEA__security__INTERNAL_TOKEN={{ password['8c899339-bea5-47f9-aed2-e88966a8cf3f'] }} \ No newline at end of file diff --git a/services/gitea/docker-compose.yml b/services/gitea/docker-compose.yml deleted file mode 100644 index 516340f..0000000 --- a/services/gitea/docker-compose.yml +++ /dev/null @@ -1,60 +0,0 @@ -networks: - traefik-net: - external: true - name: traefik-net - -x-traefik: &x-traefik - networks: - - traefik-net - - default - -volumes: - gitea-data: - name: gitea - gitea-database-data: - name: gitea-database-data - gitea-pg-backup: - name: gitea-pg-backup - -services: - gitea: - image: gitea/gitea:1.22.2 - depends_on: - - db - volumes: - - gitea-data:/data - - /etc/timezone:/etc/timezone:ro - - /etc/localtime:/etc/localtime:ro - env_file: - - .env - <<: *x-traefik - deploy: - labels: - - traefik.enable=true - - traefik.docker.network=traefik-net - - traefik.http.routers.gitea.rule=Host(`${HOST}`) - - traefik.http.routers.gitea.entrypoints=${ENTRYPOINTS:-websecure} - - traefik.http.routers.gitea.tls.certresolver=le - - traefik.http.services.gitea.loadbalancer.server.port=3000 - - db: - image: docker.io/library/postgres:16 - volumes: - - gitea-database-data:/var/lib/postgresql/data - environment: - - POSTGRES_DB=${GITEA__database__NAME} - - POSTGRES_USER=${GITEA__database__USER} - - POSTGRES_PASSWORD=${GITEA__database__PASSWD} - - database-backup: - image: prodrigestivill/postgres-backup-local:16 - depends_on: - - db - volumes: - - gitea-pg-backup:/backups - environment: - - POSTGRES_EXTRA_OPTS=-Z 6 -F c - - POSTGRES_DB=${GITEA__database__NAME} - - POSTGRES_USER=${GITEA__database__USER} - - POSTGRES_PASSWORD=${GITEA__database__PASSWD} - - POSTGRES_HOST=db