diff --git a/services.json b/services.json index 4ba7b89..da40cac 100644 --- a/services.json +++ b/services.json @@ -10,7 +10,8 @@ "uptime_kuma", "usememos", "authentik-ldap", - "heimdall" + "heimdall", + "gitea" ] }, { diff --git a/services/gitea/.env.template b/services/gitea/.env.template new file mode 100644 index 0000000..0835eaf --- /dev/null +++ b/services/gitea/.env.template @@ -0,0 +1,18 @@ +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 new file mode 100644 index 0000000..516340f --- /dev/null +++ b/services/gitea/docker-compose.yml @@ -0,0 +1,60 @@ +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