68 lines
2.6 KiB
YAML
68 lines
2.6 KiB
YAML
services:
|
||
db:
|
||
image: postgres:15
|
||
restart: always
|
||
env_file: ../.env
|
||
volumes:
|
||
- ./docker-entrypoint-initdb.d:/docker-entrypoint-initdb.d
|
||
- ./db_data:/var/lib/postgresql/data
|
||
networks:
|
||
- homelab_net
|
||
|
||
gitea:
|
||
image: gitea/gitea:latest
|
||
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
|
||
# 保留 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"
|
||
# 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"
|
||
# --- 2. Homepage 自动发现设置 ---
|
||
- "homepage.group=我的服务" # 分组名称
|
||
- "homepage.name=Gitea" # 显示名称
|
||
- "homepage.icon=gitea" # 图标 (支持 si, mdi 等前缀)
|
||
- "homepage.href=https://gitea.xiteng.site" # 点击跳转的链接
|
||
- "homepage.description=代码托管平台" # 副标题描述
|
||
# --- 3. AutoKuma 自动发现设置 ---
|
||
# 格式: kuma.<自定义ID>.<监控类型>.<属性>
|
||
- "kuma.gitea.http.name=Gitea" # 监控项名称
|
||
- "kuma.gitea.http.url=http://gitea:3000" # 内网直连
|
||
# (可选) 每 60 秒检查一次,重试 3 次
|
||
- "kuma.gitea.http.interval=60"
|
||
- "kuma.gitea.http.max_retries=3"
|
||
networks:
|
||
- homelab_net
|
||
|
||
networks:
|
||
homelab_net:
|
||
external: true
|