Files
homelab/gitea/compose.yml
T

91 lines
4.1 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
services:
db:
image: postgres:15@sha256:6eb0add3b77c081df18aa518ce43df58fdcc40f2e6d868a6fd08038dc7acd425
restart: always
env_file: ../.env
labels:
- "xiteng.site.component.gitea-db.enabled=true"
- "xiteng.site.component.gitea-db.name=Gitea PostgreSQL"
- "xiteng.site.component.gitea-db.description=保存仓库平台的账户、Issue、PR 与系统元数据。"
- "xiteng.site.component.gitea-db.section=infrastructure"
- "xiteng.site.component.gitea-db.category=数据层"
- "xiteng.site.component.gitea-db.access=internal"
- "xiteng.site.component.gitea-db.access-label=仅容器网络"
- "xiteng.site.component.gitea-db.icon=PG"
- "xiteng.site.component.gitea-db.icon-url=https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/postgresql.svg"
- "xiteng.site.component.gitea-db.accent=blue"
- "xiteng.site.component.gitea-db.order=530"
volumes:
- ./docker-entrypoint-initdb.d:/docker-entrypoint-initdb.d
- ./db_data:/var/lib/postgresql/data
networks:
- homelab_net
gitea:
image: gitea/gitea:1.27.1
container_name: gitea
restart: unless-stopped
env_file: ../.env
environment:
USER_UID: 964
USER_GID: 964
GITEA__database__DB_TYPE: postgres
GITEA__database__HOST: db:5432
GITEA__database__NAME: giteadb
GITEA__database__USER: gitea
GITEA__server__SSH_PORT: 22
GITEA__server__SSH_LISTEN_PORT: 22
GITEA__server__SSH_DOMAIN: git.xiteng.site
volumes:
- ./data:/data
- ./custom/extra_links.tmpl:/data/gitea/templates/custom/extra_links.tmpl:ro
# 保留 SSH 端口以便通过 SSH 推送代码(可选),移除 HTTP 宿主端口,由 Traefik 暴露
ports:
- "3004:3000"
labels:
# --- 1. Traefik 路由设置 ---
- "traefik.enable=true"
- "traefik.http.routers.gitea.rule=Host(`gitea.xiteng.site`)"
- "traefik.http.services.gitea.loadbalancer.server.port=3000"
- "traefik.http.routers.gitea.entrypoints=websecure"
# --- HTTP 入口(来自 cloudflared tunnel---
- "traefik.http.routers.gitea-http.rule=Host(`gitea.xiteng.site`)"
- "traefik.http.routers.gitea-http.service=gitea"
- "traefik.http.routers.gitea-http.entrypoints=web"
# --- 开启 TLS 并指定解析器 ---
- "traefik.http.routers.gitea.tls=true"
- "traefik.http.routers.gitea.tls.certresolver=cfresolver"
- "xiteng.site.cache.gitea.enabled=true"
- "xiteng.site.cache.gitea.routers=gitea,gitea-http"
- "xiteng.site.cache.gitea.paths=/assets/,/css/,/js/,/images/"
- "xiteng.site.cache.gitea.edge-ttl=604800"
- "xiteng.site.cache.gitea.stale-while-revalidate=86400"
# TCP Config (SSH)
- "traefik.tcp.routers.gitea-ssh.rule=HostSNI(`*`)" # SNI must be * for SSH
- "traefik.tcp.routers.gitea-ssh.entrypoints=ssh"
- "traefik.tcp.services.gitea-ssh.loadbalancer.server.port=22"
# --- Xiteng Site dynamic catalog ---
- "xiteng.site.component.gitea.enabled=true"
- "xiteng.site.component.gitea.name=Gitea"
- "xiteng.site.component.gitea.description=自托管代码、Issue、Pull Request 与包管理平台。"
- "xiteng.site.component.gitea.section=services"
- "xiteng.site.component.gitea.category=开发与协作"
- "xiteng.site.component.gitea.url=https://gitea.xiteng.site/liooil"
- "xiteng.site.component.gitea.endpoint=git.xiteng.site:22"
- "xiteng.site.component.gitea.access=mixed"
- "xiteng.site.component.gitea.access-label=公开浏览 · 写操作需登录"
- "xiteng.site.component.gitea.icon=GT"
- "xiteng.site.component.gitea.icon-url=https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/gitea.svg"
- "xiteng.site.component.gitea.accent=green"
- "xiteng.site.component.gitea.order=100"
- "xiteng.site.component.gitea.navigation=new-tab"
- "xiteng.site.component.gitea.portal-link=native"
- "xiteng.site.component.gitea.monitor.enabled=true"
- "xiteng.site.component.gitea.monitor.url=http://gitea:3000"
networks:
- homelab_net
networks:
homelab_net:
external: true