d9544b435b
Hop-State: A_06FN3QYA1N56NQYGZ81DWGR Hop-Proposal: R_06FN3QXJRYPPEQZQA6S69QG Hop-Task: T_06FN3MVGY3MT82ESQ89BND0 Hop-Attempt: AT_06FN3MVGY092BFA5MR9C7EG
77 lines
2.1 KiB
YAML
77 lines
2.1 KiB
YAML
name: hopweb
|
|
|
|
services:
|
|
postgres:
|
|
image: postgres:17.6-alpine
|
|
environment:
|
|
POSTGRES_DB: gitea
|
|
POSTGRES_USER: hopweb
|
|
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:?copy .env.example to .env first}
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "pg_isready -U hopweb -d gitea"]
|
|
interval: 3s
|
|
timeout: 3s
|
|
retries: 20
|
|
volumes:
|
|
- postgres-data:/var/lib/postgresql/data
|
|
- ./deploy/postgres/init:/docker-entrypoint-initdb.d:ro
|
|
networks: [hopweb]
|
|
|
|
gitea:
|
|
image: docker.gitea.com/gitea:1.26.4
|
|
depends_on:
|
|
postgres:
|
|
condition: service_healthy
|
|
environment:
|
|
USER_UID: "1000"
|
|
USER_GID: "1000"
|
|
GITEA__database__DB_TYPE: postgres
|
|
GITEA__database__HOST: postgres:5432
|
|
GITEA__database__NAME: gitea
|
|
GITEA__database__USER: hopweb
|
|
GITEA__database__PASSWD: ${POSTGRES_PASSWORD}
|
|
GITEA__server__DOMAIN: localhost
|
|
GITEA__server__ROOT_URL: http://localhost:3000/
|
|
GITEA__server__SSH_DOMAIN: localhost
|
|
GITEA__server__SSH_PORT: "2222"
|
|
GITEA__service__DISABLE_REGISTRATION: "false"
|
|
GITEA__security__INSTALL_LOCK: "true"
|
|
GITEA__webhook__ALLOWED_HOST_LIST: control-plane
|
|
ports:
|
|
- "3000:3000"
|
|
- "2222:22"
|
|
volumes:
|
|
- gitea-data:/data
|
|
networks: [hopweb]
|
|
|
|
control-plane:
|
|
build:
|
|
context: ./services/control-plane
|
|
depends_on:
|
|
postgres:
|
|
condition: service_healthy
|
|
gitea:
|
|
condition: service_started
|
|
environment:
|
|
HOP_HTTP_ADDR: :8080
|
|
HOP_DATABASE_URL: postgres://hopweb:${POSTGRES_PASSWORD}@postgres:5432/hop?sslmode=disable
|
|
HOP_ADMIN_TOKEN: ${HOP_ADMIN_TOKEN:?set HOP_ADMIN_TOKEN in .env}
|
|
HOP_GITEA_WEBHOOK_SECRET: ${HOP_GITEA_WEBHOOK_SECRET:?set HOP_GITEA_WEBHOOK_SECRET in .env}
|
|
GITEA_BASE_URL: http://gitea:3000
|
|
GITEA_API_TOKEN: ${GITEA_API_TOKEN:-}
|
|
ports:
|
|
- "8080:8080"
|
|
healthcheck:
|
|
test: ["CMD", "wget", "-qO-", "http://localhost:8080/readyz"]
|
|
interval: 5s
|
|
timeout: 3s
|
|
retries: 20
|
|
networks: [hopweb]
|
|
|
|
networks:
|
|
hopweb:
|
|
|
|
volumes:
|
|
gitea-data:
|
|
postgres-data:
|