version: "3" services: caddy: image: caddy:2.6.2-alpine container_name: gateway restart: unless-stopped ports: - "80:80" - "443:443" - "443:443/udp" volumes: - /var/volumes/configs/Caddyfile:/etc/caddy/Caddyfile - caddy_data:/data - /var/volumes/configs:/config - /var/volumes/www:/var/www networks: - gateway git: image: codeberg.org/forgejo/forgejo:1.19.3-0 container_name: git environment: - USER_UID=1001 - USER_GID=1001 - TZ=Europe/Moscow - USER=git - GITEA__database__DB_TYPE=postgres - GITEA__database__HOST=db:5432 - GITEA__database__NAME=${PG_NAME} - GITEA__database__USER=${PG_USER} - GITEA__database__PASSWD=${PG_PASS} - GITEA__server__DISABLE_SSH = false - GITEA__server__SSH_PORT = 22 - GITEA__server__SSH_LISTEN_PORT = 22 restart: always networks: - gitea - gateway volumes: - /home/git/.ssh/:/data/git/.ssh - /var/volumes/forge:/data - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro ports: - "127.0.0.1:2222:22" depends_on: db: condition: service_healthy db: image: postgres:13 restart: always environment: - POSTGRES_USER=${PG_USER} - POSTGRES_PASSWORD=${PG_PASS} - POSTGRES_DB=${PG_NAME} healthcheck: test: /usr/bin/pg_isready -U ${PG_USER} -d ${PG_NAME} interval: 5s timeout: 10s retries: 120 networks: - gitea volumes: - /var/volumes/postgres:/var/lib/postgresql/data woodpecker-server: image: woodpeckerci/woodpecker-server:latest volumes: - woodpecker-server-data:/var/lib/woodpecker/ environment: - WOODPECKER_OPEN=true - WOODPECKER_GITEA=true - WOODPECKER_GITEA_URL=https://gitrepo.ru - WOODPECKER_GITEA_CLIENT=${GITEA_CLIENT} - WOODPECKER_GITEA_SECRET=${GITEA_SECRET} - WOODPECKER_HOST=https://ci.gitrepo.ru - WOODPECKER_ADMIN=neonxp - WOODPECKER_AGENT_SECRET=${WOODPECKER_AGENT_SECRET} networks: - gitea - gateway depends_on: - git woodpecker-agent: image: woodpeckerci/woodpecker-agent:latest command: agent restart: always depends_on: - woodpecker-server volumes: - /var/run/docker.sock:/var/run/docker.sock environment: - WOODPECKER_SERVER=woodpecker-server:9000 - WOODPECKER_AGENT_SECRET=${WOODPECKER_AGENT_SECRET} networks: - gitea pkg: image: gitrepo.ru/neonxp/pkg:latest container_name: goproxy restart: unless-stopped volumes: - /var/volumes/configs/pkg.json:/usr/app/config.json networks: - gateway opengist: image: ghcr.io/thomiceli/opengist:1 container_name: opengist restart: unless-stopped volumes: - "opengist:/root/.opengist" environment: CONFIG: | log-level: info ssh.git-enabled: false networks: - gateway remark: image: umputun/remark42:latest container_name: "remark42" hostname: "remark42" restart: always logging: driver: json-file options: max-size: "10m" max-file: "5" environment: - REMARK_URL=https://comments.neonxp.dev - SITE=neonxp_dev - SECRET=8Wwt1o6G5nVBMJot - DEBUG=false - AUTH_EMAIL_ENABLE=true - AUTH_TELEGRAM=true - AUTH_EMAIL_FROM=i@neonxp.dev - NOTIFY_EMAIL_FROM=i@neonxp.dev - AUTH_EMAIL_SUBJ=NeonXP.dev comments - NOTIFY_USERS=telegram,email - NOTIFY_ADMINS=telegram,email - NOTIFY_TELEGRAM_CHAN=760557 - TELEGRAM_TOKEN=279146841:AAE9Yd2WMkFCadnk2hNtF3By1_gAhbO3usM - SMTP_HOST=smtp.mail.ru - SMTP_PORT=465 - SMTP_USERNAME=i@neonxp.dev - SMTP_PASSWORD=m317T2KuCgXdxfKh5BjK - SMTP_LOGIN_AUTH=true - SMTP_TLS=true - EMOJI=true - ALLOWED_HOSTS=neonxp.dev - AUTH_SAME_SITE=none - ADMIN_SHARED_ID=email_0298a691a8d2e6e6e539bccdff2e30eca6df0280,telegram_b4201451070ba78a1742cd54d4223eccc0249c1a # Enable it only for the initial comment import or for manual backups. # Do not leave the server running with the ADMIN_PASSWD set if you don't have an intention # to keep creating backups manually! # - ADMIN_PASSWD= volumes: - remark:/srv/var networks: - gateway iigo: image: gitrepo.ru/neonxp/iinode:latest container_name: "iigo" hostname: "iigo" restart: always volumes: - iigodb:/usr/app - /var/volumes/iigo/tpl:/usr/app/tpl - /var/volumes/iigo/lib:/usr/app/lib networks: - gateway volumes: woodpecker-server-data: caddy_data: caddy_config: forgejo: postgres: opengist: remark: iigodb: networks: gateway: gitea: external: false