Add hostmetrics receiver and OTel Collector telemetry, and move Alertmanager and Blackbox scraping to the collector. Raise collector memory limits, restrict Blackbox to HTTP 200, and add collector and Caddy down alerts with inhibition. Update portfolio title and copy.
175 lines
5.6 KiB
YAML
175 lines
5.6 KiB
YAML
version: "3"
|
|
|
|
services:
|
|
reverse_caddy:
|
|
image: caddy:2.11-alpine
|
|
ports:
|
|
- "80:80"
|
|
- "443:443"
|
|
- "443:443/udp"
|
|
configs:
|
|
- source: caddy_config
|
|
target: /etc/caddy/Caddyfile
|
|
- source: caddy_portfolio_html
|
|
target: /www/html/index.html
|
|
volumes:
|
|
- reversecaddydata:/data
|
|
- reversecaddyconfig:/config
|
|
networks:
|
|
- reverse_network
|
|
- prometheus_network
|
|
|
|
woodpecker_server:
|
|
image: woodpeckerci/woodpecker-server:v3.17-alpine
|
|
volumes:
|
|
- woodpeckerdata:/var/lib/woodpecker/
|
|
entrypoint: /bin/sh -c "export WOODPECKER_GITEA_CLIENT=$$(cat /run/secrets/woodpecker_gitea_client) && export WOODPECKER_GITEA_SECRET=$$(cat /run/secrets/woodpecker_gitea_secret) && export WOODPECKER_AGENT_SECRET=$$(cat /run/secrets/woodpecker_agent_secret) && /bin/woodpecker-server"
|
|
environment:
|
|
WOODPECKER_ADMIN: qpismont
|
|
WOODPECKER_HOST: https://woodpecker.qpismont.fr
|
|
WOODPECKER_GITEA: "true"
|
|
WOODPECKER_GITEA_URL: https://gitea.qpismont.fr
|
|
networks:
|
|
- reverse_network
|
|
secrets:
|
|
- woodpecker_agent_secret
|
|
- woodpecker_gitea_client
|
|
- woodpecker_gitea_secret
|
|
|
|
woodpecker_agent:
|
|
image: woodpeckerci/woodpecker-agent:v3.17-alpine
|
|
volumes:
|
|
- /var/run/docker.sock:/var/run/docker.sock
|
|
entrypoint: /bin/sh -c "export WOODPECKER_AGENT_SECRET=$$(cat /run/secrets/woodpecker_agent_secret) && /bin/woodpecker-agent"
|
|
environment:
|
|
WOODPECKER_SERVER: woodpecker_server:9000
|
|
WOODPECKER_MAX_WORKFLOWS: 1
|
|
WOODPECKER_LIMIT_CPU_SET: 1
|
|
networks:
|
|
- reverse_network
|
|
secrets:
|
|
- woodpecker_agent_secret
|
|
|
|
gitea:
|
|
image: docker.gitea.com/gitea:1.27.1
|
|
environment:
|
|
- USER_UID=1000
|
|
- USER_GID=1000
|
|
restart: always
|
|
volumes:
|
|
- giteadata:/data
|
|
- /etc/timezone:/etc/timezone:ro
|
|
- /etc/localtime:/etc/localtime:ro
|
|
networks:
|
|
- reverse_network
|
|
|
|
herald:
|
|
image: tintounn/herald:1.1
|
|
entrypoint:
|
|
- /bin/sh
|
|
- -c
|
|
- >-
|
|
export GITEA_TOKEN=$$(cat /run/secrets/herald_gitea_token) &&
|
|
export OPEN_ROUTER_API_KEY=$$(cat /run/secrets/herald_openrouter_token) &&
|
|
export WEBHOOK_SIG_HEADER_SECRET=$$(cat /run/secrets/herald_gitea_header_secret) &&
|
|
export SENTRY_DSN=$$(cat /run/secrets/herald_sentry_dsn) &&
|
|
/app/herald
|
|
networks:
|
|
- reverse_network
|
|
- prometheus_network
|
|
secrets:
|
|
- herald_gitea_token
|
|
- herald_openrouter_token
|
|
- herald_gitea_header_secret
|
|
- herald_sentry_dsn
|
|
environment:
|
|
HTTP_PORT: 3000
|
|
BOT_MAX_CONCURRENT: 5
|
|
GITEA_URL: http://gitea:3000
|
|
GITEA_TIMEOUT: 60
|
|
OPEN_ROUTER_MODEL: deepseek/deepseek-v4-flash
|
|
OPEN_ROUTER_TIMEOUT: 600
|
|
METRICS_BIND_ADDR: 0.0.0.0:9100
|
|
|
|
wireguard_server:
|
|
image: linuxserver/wireguard
|
|
cap_add:
|
|
- NET_ADMIN
|
|
- SYS_MODULE
|
|
configs:
|
|
- source: wireguard_coredns_config
|
|
target: /coredns-source/Corefile
|
|
entrypoint:
|
|
- /bin/sh
|
|
- -c
|
|
- >-
|
|
mkdir -p /config/coredns &&
|
|
cp /coredns-source/Corefile /config/coredns/Corefile &&
|
|
exec /init
|
|
environment:
|
|
PUID: 1000
|
|
PGID: 1000
|
|
TZ: Europe/Paris
|
|
SERVEURURL: wireguard.qpismont.fr
|
|
SERVERPORT: 51820
|
|
PEERS: 1
|
|
PEERDNS: auto
|
|
INTERNAL_SUBNET: 10.13.13.0/24
|
|
volumes:
|
|
- /home/user/wireguard-config:/config
|
|
- /lib/modules:/lib/modules
|
|
ports:
|
|
- 51820:51820/udp
|
|
sysctls:
|
|
- net.ipv4.conf.all.src_valid_mark=1
|
|
networks:
|
|
- wireguard_network
|
|
|
|
secrets:
|
|
woodpecker_agent_secret:
|
|
name: woodpecker_agent_secret_${DATETIME}
|
|
file: ./secrets/woodpecker_agent_secret
|
|
woodpecker_gitea_secret:
|
|
name: woodpecker_gitea_secret_${DATETIME}
|
|
file: ./secrets/woodpecker_gitea_secret
|
|
woodpecker_gitea_client:
|
|
name: woodpecker_gitea_client_${DATETIME}
|
|
file: ./secrets/woodpecker_gitea_client
|
|
herald_gitea_token:
|
|
name: herald_gitea_token_${DATETIME}
|
|
file: ./secrets/herald/herald_gitea_token
|
|
herald_openrouter_token:
|
|
name: herald_openrouter_token_${DATETIME}
|
|
file: ./secrets/herald/herald_openrouter_token
|
|
herald_gitea_header_secret:
|
|
name: herald_gitea_header_secret_${DATETIME}
|
|
file: ./secrets/herald/herald_gitea_header_secret
|
|
herald_sentry_dsn:
|
|
name: herald_sentry_dsn_${DATETIME}
|
|
file: ./secrets/herald/herald_sentry_dsn
|
|
|
|
configs:
|
|
caddy_config:
|
|
name: caddy_config_${DATETIME}
|
|
file: ./Caddyfile
|
|
wireguard_coredns_config:
|
|
name: wireguard_coredns_config_${DATETIME}
|
|
file: ./wireguard/CoreDns
|
|
caddy_portfolio_html:
|
|
name: caddy_portfolio_html_${DATETIME}
|
|
file: ./portfolio/index.html
|
|
|
|
volumes:
|
|
giteadata:
|
|
woodpeckerdata:
|
|
reversecaddyconfig:
|
|
reversecaddydata:
|
|
|
|
networks:
|
|
reverse_network:
|
|
external: true
|
|
wireguard_network:
|
|
external: true
|
|
prometheus_network:
|
|
external: true
|