From 6e18226e0ce3b8f2e20fb0ed45673c1e6ca421aa Mon Sep 17 00:00:00 2001 From: xiteng Date: Sat, 21 Mar 2026 20:06:27 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20Gitea=E3=80=81HedgeDoc?= =?UTF-8?q?=E3=80=81Homepage=E3=80=81MinIO=E3=80=81Uptime=20Kuma=20?= =?UTF-8?q?=E7=9A=84=20Docker=20Compose=20=E9=85=8D=E7=BD=AE=EF=BC=8C?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=20Traefik=20=E4=BB=A3=E7=90=86=E5=92=8C?= =?UTF-8?q?=E7=8E=AF=E5=A2=83=E5=8F=98=E9=87=8F=EF=BC=8C=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=20HedgeDoc=20=E7=9A=84=20.gitignore=20=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gitea/compose.yml | 27 ++++++++++++++++++++++++--- hedgedoc/.gitignore | 1 + hedgedoc/compose.yml | 19 +++++++++++++------ homepage/compose.yml | 6 ++++++ minio/compose.yml | 4 ++++ traefik/compose.yml | 22 ++++++++++++++++++++++ uptime-kuma/compose.yml | 6 +++++- 7 files changed, 75 insertions(+), 10 deletions(-) create mode 100644 hedgedoc/.gitignore create mode 100644 traefik/compose.yml diff --git a/gitea/compose.yml b/gitea/compose.yml index d26f469..f651b5c 100644 --- a/gitea/compose.yml +++ b/gitea/compose.yml @@ -1,16 +1,37 @@ 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=1000 - - USER_GID=1000 + USER_UID: 1000 + USER_GID: 1000 + GITEA__database__DB_TYPE: postgres + GITEA__database__HOST: db:5432 + GITEA__database__NAME: giteadb + GITEA__database__USER: gitea + GITEA__server__SSH_PORT: 22 volumes: - ./data:/data + # 保留 SSH 端口以便通过 SSH 推送代码(可选),移除 HTTP 宿主端口,由 Traefik 暴露 ports: - - "3001:3000" + - "3004:3000" - "222:22" + labels: + - "traefik.enable=true" + - "traefik.http.routers.gitea.rule=Host(`gitea.homelab`)" + - "traefik.http.services.gitea.loadbalancer.server.port=3000" networks: - homelab_net diff --git a/hedgedoc/.gitignore b/hedgedoc/.gitignore new file mode 100644 index 0000000..8fc0d80 --- /dev/null +++ b/hedgedoc/.gitignore @@ -0,0 +1 @@ +uploads/ diff --git a/hedgedoc/compose.yml b/hedgedoc/compose.yml index 9f8328c..1032cef 100644 --- a/hedgedoc/compose.yml +++ b/hedgedoc/compose.yml @@ -1,12 +1,10 @@ services: db: - image: postgres:15 + image: postgres:11.6-alpine + env_file: + - ../.env container_name: hedgedoc_db restart: unless-stopped - environment: - - POSTGRES_USER=${POSTGRES_USER} - - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} - - POSTGRES_DB=${POSTGRES_DB} volumes: - ./data:/var/lib/postgresql/data networks: @@ -16,15 +14,24 @@ services: image: quay.io/hedgedoc/hedgedoc:latest container_name: hedgedoc restart: unless-stopped + env_file: + - ../.env environment: - - CMD_DB_URL=postgres://$(POSTGRES_USER):$(POSTGRES_PASSWORD)@db:5432/$(POSTGRES_DB) - CMD_DOMAIN=localhost + - CMD_DB_URL=postgres://$POSTGRES_USER:$POSTGRES_PASSWORD@db/$POSTGRES_DB - CMD_URL_ADDPORT=true + - CMD_ALLOW_ORIGIN=localhost,hedgedoc.homelab,notes.xiteng.site - CMD_PROTOCOL_USESSL=false + volumes: + - ./uploads:/hedgedoc/public/uploads depends_on: - db ports: - "3000:3000" + labels: + - "traefik.enable=true" + - "traefik.http.routers.hedgedoc.rule=Host(`hedgedoc.homelab`)" + - "traefik.http.services.hedgedoc.loadbalancer.server.port=3000" networks: - homelab_net diff --git a/homepage/compose.yml b/homepage/compose.yml index 1ee84d7..bdfeef7 100644 --- a/homepage/compose.yml +++ b/homepage/compose.yml @@ -7,6 +7,12 @@ services: - ./config:/app/config ports: - "3003:3000" + environment: + - HOMEPAGE_ALLOWED_HOSTS=homepage.homelab + labels: + - "traefik.enable=true" + - "traefik.http.routers.homepage.rule=Host(`homepage.homelab`)" + - "traefik.http.services.homepage.loadbalancer.server.port=3000" networks: - homelab_net diff --git a/minio/compose.yml b/minio/compose.yml index e121824..2e64d07 100644 --- a/minio/compose.yml +++ b/minio/compose.yml @@ -11,6 +11,10 @@ services: ports: - "9000:9000" - "9001:9001" + labels: + - "traefik.enable=true" + - "traefik.http.routers.minio.rule=Host(`minio.homelab`)" + - "traefik.http.services.minio.loadbalancer.server.port=9001" networks: - homelab_net diff --git a/traefik/compose.yml b/traefik/compose.yml new file mode 100644 index 0000000..0e99f1a --- /dev/null +++ b/traefik/compose.yml @@ -0,0 +1,22 @@ +services: + traefik: + image: traefik:v3.6 + container_name: traefik + restart: unless-stopped + command: + - --api.insecure=true + - --providers.docker=true + - --entrypoints.web.address=:80 + - --api.dashboard=true + - --log.level=INFO + ports: + - "80:80" + - "8080:8080" + volumes: + - /var/run/docker.sock:/var/run/docker.sock:ro + networks: + - homelab_net + +networks: + homelab_net: + external: true diff --git a/uptime-kuma/compose.yml b/uptime-kuma/compose.yml index 7667a30..981fda9 100644 --- a/uptime-kuma/compose.yml +++ b/uptime-kuma/compose.yml @@ -6,7 +6,11 @@ services: volumes: - ./data:/app/data ports: - - "3002:3001" + - "3001:3001" + labels: + - "traefik.enable=true" + - "traefik.http.routers.uptime.rule=Host(`uptime.homelab`)" + - "traefik.http.services.uptime.loadbalancer.server.port=3001" networks: - homelab_net