Files
docs/Containers/Docker/Docker Compose/Gitea.md
2024-01-11 22:13:49 -07:00

2.1 KiB

Purpose: Gitea is a painless self-hosted all-in-one software development service, it includes Git hosting, code review, team collaboration, package registry and CI/CD. It is similar to GitHub, Bitbucket and GitLab. Gitea was forked from Gogs originally and almost all the code has been changed.

Docker Configuration

version: "3"

services:
  server:
    image: gitea/gitea:latest
    container_name: gitea
    privileged: true
    environment:
      - USER_UID=1000
      - USER_GID=1000
      - TZ=America/Denver
    restart: always
    volumes:
      - /srv/containers/gitea:/data
#      - /etc/timezone:/etc/timezone:ro
#      - /etc/localtime:/etc/localtime:ro
    ports:
      - "3000:3000"
      - "222:22"
    networks:
        docker_network:
          ipv4_address: 192.168.5.70
    depends_on:
      - postgres
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.gitea.rule=Host(`git.bunny-lab.io`)"
      - "traefik.http.routers.gitea.entrypoints=websecure"
      - "traefik.http.routers.gitea.tls.certresolver=myresolver"
      - "traefik.http.services.gitea.loadbalancer.server.port=3000"

  postgres:
    image: postgres:12-alpine
    ports:
      - 5432:5432
    volumes:
      - /srv/containers/gitea/db:/var/lib/postgresql/data
    environment:
      - POSTGRES_DB=gitea
      - POSTGRES_USER=gitea
      - POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
      - TZ=America/Denver
    restart: always
    networks:
        docker_network:
          ipv4_address: 192.168.5.71

networks:
  docker_network:
    external: true
POSTGRES_PASSWORD=SomethingSecure

Traefik Reverse Proxy Configuration

If the container does not run on the same host as Traefik, you will need to manually add configuration to Traefik's dynamic config file, outlined below.

http:
  routers:
    gitea:
      entryPoints:
        - websecure
      tls:
        certResolver: myresolver
      service: gitea
      rule: Host(`git.bunny-lab.io`)

  services:
    gitea:
      loadBalancer:
        servers:
          - url: http://192.168.5.70:3000
        passHostHeader: true