From 9620037b2d9a3713b676a813adfe3f835a3e2449 Mon Sep 17 00:00:00 2001 From: chris Date: Tue, 1 Apr 2025 09:45:30 +0200 Subject: [PATCH] Add gitea instance. --- common/docker-compose.yaml | 1 + gitea/.env | 3 ++ gitea/docker-compose.yaml | 88 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 92 insertions(+) create mode 100644 gitea/.env create mode 100644 gitea/docker-compose.yaml diff --git a/common/docker-compose.yaml b/common/docker-compose.yaml index 8f09187..73070a1 100644 --- a/common/docker-compose.yaml +++ b/common/docker-compose.yaml @@ -23,6 +23,7 @@ services: - --providers.docker.swarmMode=false - --entryPoints.web.address=:80 - --entryPoints.websecure.address=:443 + - --entryPoints.shh.address=:222/tcp - --entryPoints.smtp.address=:25 - --entryPoints.smtp-ssl.address=:465 - --entryPoints.imap-ssl.address=:993 diff --git a/gitea/.env b/gitea/.env new file mode 100644 index 0000000..e5a5a1d --- /dev/null +++ b/gitea/.env @@ -0,0 +1,3 @@ +DB_USER=gitea +DB_NAME=gitea +DB_PASS=QseAwSwyq8^AeH#cMby9C7i4 diff --git a/gitea/docker-compose.yaml b/gitea/docker-compose.yaml new file mode 100644 index 0000000..482ea30 --- /dev/null +++ b/gitea/docker-compose.yaml @@ -0,0 +1,88 @@ +networks: + proxy: + external: true + gitea: + name: gitea + external: false + +volumes: + gitea: + name: gitea + gitea-db: + name: gitea-db + gitea-runner: + name: gitea-runner + +services: + gitea: + image: gitea/gitea + container_name: gitea + hostname: gitea + environment: + USER_UID: 1000 + USER_GID: 1000 + GITEA__database__DB_TYPE: postgres + GITEA__database__HOST: gitea-db:5432 + GITEA__database__NAME: ${DB_NAME} + GITEA__database__USER: ${DB_USER} + GITEA__database__PASSWD: ${DB_PASS} + GITEA__server__START_SSH_SERVER: true + GITEA__server__SSH_PORT: 22 + GITEA__server__SSH_LISTEN_PORT: 222 + restart: unless-stopped + depends_on: + - gitea-db + volumes: + - gitea:/data + - /etc/timezone:/etc/timezone:ro + - /etc/localtime:/etc/localtime:ro + networks: + - proxy + - gitea + labels: + - "traefik.enable=true" + - "traefik.http.routers.git.entrypoints=web" + - "traefik.http.routers.git.rule=Host(`gitea.steinle-computer.de`)" + - "traefik.http.routers.git.middlewares=git" + - "traefik.http.middlewares.git.redirectscheme.scheme=https" + - "traefik.http.routers.git-secure.entrypoints=websecure" + - "traefik.http.routers.git-secure.rule=Host(`gitea.steinle-computer.de`)" + - "traefik.http.routers.git-secure.service=git-secure" + - "traefik.http.routers.git-secure.tls=true" + - "traefik.http.routers.git-secure.tls.certresolver=cs" + - "traefik.http.routers.git-secure.tls.domains[0].main=gitea.steinle-computer.de" + - "traefik.http.services.git-secure.loadbalancer.server.port=3000" + - "traefik.tcp.routers.git-ssh.entrypoints=ssh" + - "traefik.tcp.routers.git-ssh.rule=HostSNI(`*`)" + - "traefik.tcp.routers.git-ssh.service=git-ssh" + - "traefik.tcp.services.git-ssh.loadbalancer.server.port=222" + + gitea-db: + image: postgres:17-alpine + container_name: gitea-db + hostname: gitea-db + restart: unless-stopped + volumes: + - gitea-db:/var/lib/postgresql/data + networks: + - gitea + environment: + POSTGRES_PASSWORD: ${DB_PASS} + POSTGRES_USER: ${DB_USER} + POSTGRES_DB: ${DB_NAME} + healthcheck: + test: [ "CMD-SHELL", "pg_isready -U $DB_USER" ] + + runner: + image: gitea/act_runner + restart: always + depends_on: + - gitea + volumes: + - gitea-runner:/data + - /var/run/docker.sock:/var/run/docker.sock + environment: + - GITEA_INSTANCE_URL=https://gitea.steinle-computer.de + - GITEA_RUNNER_REGISTRATION_TOKEN=flpCcwO0Dw6u4jtWT2wMBrBWuFZ8HDdS4qV277tH + networks: + - gitea