Files
docs/services/devops/gitea.md
Nicole Rappe e73bb0376f
All checks were successful
GitOps Automatic Documentation Deployment / Sync Docs to https://kb.bunny-lab.io (push) Successful in 4s
GitOps Automatic Documentation Deployment / Sync Docs to https://docs.bunny-lab.io (push) Successful in 6s
Documentation Restructure
2026-01-27 05:25:22 -07:00

2.8 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.

Detailed SMTP Configuration Reference

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
      - GITEA__mailer__ENABLED=true
      - GITEA__mailer__FROM=${GITEA__mailer__FROM:?GITEA__mailer__FROM not set}
      - GITEA__mailer__PROTOCOL=smtp+starttls
      - GITEA__mailer__HOST=${GITEA__mailer__HOST:?GITEA__mailer__HOST not set}
      - GITEA__mailer__IS_TLS_ENABLED=true
      - GITEA__mailer__USER=${GITEA__mailer__USER:-apikey}
      - GITEA__mailer__PASSWD="""${GITEA__mailer__PASSWD:?GITEA__mailer__PASSWD not set}"""
    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
#    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=letsencrypt"
#      - "traefik.http.services.gitea.loadbalancer.server.port=3000"
    depends_on:
      - postgres

  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
GITEA__mailer__FROM=noreply@bunny-lab.io
GITEA__mailer__HOST=mail.bunny-lab.io
GITEA__mailer__PASSWD=SecureSMTPPassword
GITEA__mailer__USER=noreply@bunny-lab.io
POSTGRES_PASSWORD=SomethingSuperSecure

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:
    git:
      entryPoints:
        - websecure
      tls:
        certResolver: letsencrypt
      http2:
      service: git
      rule: Host(`git.bunny-lab.io`)

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