| ... | @@ -18,11 +18,11 @@ services: | ... | @@ -18,11 +18,11 @@ services: |
| 18 | - path: ./config/Caddyfile | 18 | - path: ./config/Caddyfile |
| 19 | action: restart | 19 | action: restart |
| 20 | healthcheck: | 20 | healthcheck: |
| 21 | test: ["CMD", "caddy", "healthcheck", "--address", ":2019"] | 21 | test: ["CMD-SHELL", "wget -qO /dev/null http://127.0.0.1:2019/config/"] |
| 22 | interval: 10s | 22 | interval: 30s |
| 23 | timeout: 5s | 23 | timeout: 10s |
| 24 | retries: 3 | 24 | retries: 3 |
| 25 | start_period: 5s | 25 | start_period: 10s |
| 26 | # SSO | 26 | # SSO |
| 27 | keycloak: # port 80, 443 | 27 | keycloak: # port 80, 443 |
| 28 | container_name: keycloak | 28 | container_name: keycloak |
| ... | @@ -111,6 +111,12 @@ services: | ... | @@ -111,6 +111,12 @@ services: |
| 111 | - "${STORE_ROOT}:/w" | 111 | - "${STORE_ROOT}:/w" |
| 112 | - "${APP_ROOT}/copyparty:/cfg" | 112 | - "${APP_ROOT}/copyparty:/cfg" |
| 113 | - ./config/copyparty.conf:/cfg/copyparty.conf:ro | 113 | - ./config/copyparty.conf:/cfg/copyparty.conf:ro |
| | 114 | healthcheck: |
| | 115 | test: ["CMD-SHELL", "wget -qO /dev/null http://127.0.0.1:80/?h"] |
| | 116 | interval: 30s |
| | 117 | timeout: 10s |
| | 118 | retries: 3 |
| | 119 | start_period: 60s |
| 114 | restart: unless-stopped | 120 | restart: unless-stopped |
| 115 | labels: | 121 | labels: |
| 116 | net.paperclover.list.name: Copyparty File Storage | 122 | net.paperclover.list.name: Copyparty File Storage |
| ... | @@ -175,6 +181,12 @@ services: | ... | @@ -175,6 +181,12 @@ services: |
| 175 | - "/etc/localtime:/etc/localtime:ro" | 181 | - "/etc/localtime:/etc/localtime:ro" |
| 176 | - ./config/forgejo/public:/custom/public:ro | 182 | - ./config/forgejo/public:/custom/public:ro |
| 177 | - ./config/forgejo/init:/custom/init:ro | 183 | - ./config/forgejo/init:/custom/init:ro |
| | 184 | healthcheck: |
| | 185 | test: ["CMD-SHELL", "curl -fsS http://localhost:3000/api/healthz >/dev/null"] |
| | 186 | interval: 30s |
| | 187 | timeout: 10s |
| | 188 | retries: 3 |
| | 189 | start_period: 60s |
| 178 | labels: | 190 | labels: |
| 179 | net.paperclover.list.name: Clover Git Forge | 191 | net.paperclover.list.name: Clover Git Forge |
| 180 | net.paperclover.list.domain: git | 192 | net.paperclover.list.domain: git |
| ... | @@ -247,6 +259,7 @@ services: | ... | @@ -247,6 +259,7 @@ services: |
| 247 | net.paperclover.list.name: Tangled Knot | 259 | net.paperclover.list.name: Tangled Knot |
| 248 | net.paperclover.list.domain: knot | 260 | net.paperclover.list.domain: knot |
| 249 | net.paperclover.list.priority: 106 | 261 | net.paperclover.list.priority: 106 |
| | 262 | net.paperclover.list.web: "false" |
| 250 | knot-init: | 263 | knot-init: |
| 251 | container_name: knot-init | 264 | container_name: knot-init |
| 252 | image: alpine:3.22 | 265 | image: alpine:3.22 |
| ... | @@ -285,10 +298,17 @@ services: | ... | @@ -285,10 +298,17 @@ services: |
| 285 | net.paperclover.list.name: Tangled Spindle | 298 | net.paperclover.list.name: Tangled Spindle |
| 286 | net.paperclover.list.domain: spindle | 299 | net.paperclover.list.domain: spindle |
| 287 | net.paperclover.list.priority: 107 | 300 | net.paperclover.list.priority: 107 |
| | 301 | net.paperclover.list.web: "false" |
| 288 | docker-in-docker: | 302 | docker-in-docker: |
| 289 | container_name: docker-in-docker | 303 | container_name: docker-in-docker |
| 290 | image: docker:dind | 304 | image: docker:dind |
| 291 | privileged: "true" | 305 | privileged: "true" |
| | 306 | healthcheck: |
| | 307 | test: ["CMD-SHELL", "docker -H tcp://localhost:2375 version >/dev/null"] |
| | 308 | interval: 30s |
| | 309 | timeout: 10s |
| | 310 | retries: 3 |
| | 311 | start_period: 60s |
| 292 | command: | 312 | command: |
| 293 | - dockerd | 313 | - dockerd |
| 294 | - -H | 314 | - -H |
| ... | @@ -311,6 +331,12 @@ services: | ... | @@ -311,6 +331,12 @@ services: |
| 311 | - "${APP_ROOT}/jellyfin/cache:/cache:rw" | 331 | - "${APP_ROOT}/jellyfin/cache:/cache:rw" |
| 312 | - "./config/jellyfin:/config/custom:ro" | 332 | - "./config/jellyfin:/config/custom:ro" |
| 313 | - "./config/jellyfin/branding.xml:/config/config/branding.xml:ro" | 333 | - "./config/jellyfin/branding.xml:/config/config/branding.xml:ro" |
| | 334 | healthcheck: |
| | 335 | test: ["CMD-SHELL", "curl -fsS http://localhost:8096/health >/dev/null"] |
| | 336 | interval: 30s |
| | 337 | timeout: 10s |
| | 338 | retries: 3 |
| | 339 | start_period: 60s |
| 314 | labels: | 340 | labels: |
| 315 | net.paperclover.list.name: Cloverfin | 341 | net.paperclover.list.name: Cloverfin |
| 316 | net.paperclover.list.domain: jelly | 342 | net.paperclover.list.domain: jelly |
| ... | @@ -378,6 +404,12 @@ services: | ... | @@ -378,6 +404,12 @@ services: |
| 378 | - "${APP_ROOT}/qbittorrent:/config" | 404 | - "${APP_ROOT}/qbittorrent:/config" |
| 379 | - "./config/openvpn:/config/openvpn:ro" | 405 | - "./config/openvpn:/config/openvpn:ro" |
| 380 | - "/etc/localtime:/etc/localtime:ro" | 406 | - "/etc/localtime:/etc/localtime:ro" |
| | 407 | healthcheck: |
| | 408 | test: ["CMD-SHELL", "curl -fsS http://localhost:23938 >/dev/null"] |
| | 409 | interval: 30s |
| | 410 | timeout: 10s |
| | 411 | retries: 3 |
| | 412 | start_period: 180s |
| 381 | labels: | 413 | labels: |
| 382 | net.paperclover.list.name: qBittorrent | 414 | net.paperclover.list.name: qBittorrent |
| 383 | net.paperclover.list.domain: qbt | 415 | net.paperclover.list.domain: qbt |
| ... | @@ -393,6 +425,12 @@ services: | ... | @@ -393,6 +425,12 @@ services: |
| 393 | restart: unless-stopped | 425 | restart: unless-stopped |
| 394 | volumes: | 426 | volumes: |
| 395 | - "${APP_ROOT}/jackett:/config/Jackett" | 427 | - "${APP_ROOT}/jackett:/config/Jackett" |
| | 428 | healthcheck: |
| | 429 | test: ["CMD-SHELL", "curl -fsS http://localhost:9117/health >/dev/null"] |
| | 430 | interval: 30s |
| | 431 | timeout: 10s |
| | 432 | retries: 3 |
| | 433 | start_period: 60s |
| 396 | labels: | 434 | labels: |
| 397 | net.paperclover.list.name: Jackett API Adapter | 435 | net.paperclover.list.name: Jackett API Adapter |
| 398 | net.paperclover.list.domain: jkt | 436 | net.paperclover.list.domain: jkt |
| ... | @@ -412,6 +450,12 @@ services: | ... | @@ -412,6 +450,12 @@ services: |
| 412 | - "PGID=$GROUP_ID" | 450 | - "PGID=$GROUP_ID" |
| 413 | - "TZ=America/Los_Angelas" | 451 | - "TZ=America/Los_Angelas" |
| 414 | image: lscr.io/linuxserver/sonarr:latest | 452 | image: lscr.io/linuxserver/sonarr:latest |
| | 453 | healthcheck: |
| | 454 | test: ["CMD-SHELL", "curl -fsS http://localhost:8989/ping >/dev/null"] |
| | 455 | interval: 30s |
| | 456 | timeout: 10s |
| | 457 | retries: 3 |
| | 458 | start_period: 60s |
| 415 | volumes: | 459 | volumes: |
| 416 | - "${APP_ROOT}/sonarr:/config" | 460 | - "${APP_ROOT}/sonarr:/config" |
| 417 | - "${TORRENT_TEMP:-${APP_ROOT}/qbittorrent/tmp}:/data/tmp" | 461 | - "${TORRENT_TEMP:-${APP_ROOT}/qbittorrent/tmp}:/data/tmp" |
| ... | @@ -429,6 +473,12 @@ services: | ... | @@ -429,6 +473,12 @@ services: |
| 429 | - "PGID=$GROUP_ID" | 473 | - "PGID=$GROUP_ID" |
| 430 | - "TZ=America/Los_Angelas" | 474 | - "TZ=America/Los_Angelas" |
| 431 | image: lscr.io/linuxserver/radarr:latest | 475 | image: lscr.io/linuxserver/radarr:latest |
| | 476 | healthcheck: |
| | 477 | test: ["CMD-SHELL", "curl -fsS http://localhost:7878/ping >/dev/null"] |
| | 478 | interval: 30s |
| | 479 | timeout: 10s |
| | 480 | retries: 3 |
| | 481 | start_period: 60s |
| 432 | volumes: | 482 | volumes: |
| 433 | - "${APP_ROOT}/radarr:/config" | 483 | - "${APP_ROOT}/radarr:/config" |
| 434 | - "${TORRENT_TEMP:-${APP_ROOT}/qbittorrent/tmp}:/data/tmp" | 484 | - "${TORRENT_TEMP:-${APP_ROOT}/qbittorrent/tmp}:/data/tmp" |
| ... | @@ -660,6 +710,12 @@ services: | ... | @@ -660,6 +710,12 @@ services: |
| 660 | - 22000:22000/tcp | 710 | - 22000:22000/tcp |
| 661 | - 22000:22000/udp | 711 | - 22000:22000/udp |
| 662 | - 21027:21027/udp | 712 | - 21027:21027/udp |
| | 713 | healthcheck: |
| | 714 | test: ["CMD-SHELL", "curl -fsS http://localhost:8384/rest/noauth/health >/dev/null"] |
| | 715 | interval: 30s |
| | 716 | timeout: 10s |
| | 717 | retries: 3 |
| | 718 | start_period: 60s |
| 663 | restart: unless-stopped | 719 | restart: unless-stopped |
| 664 | labels: | 720 | labels: |
| 665 | net.paperclover.list.name: Syncthing | 721 | net.paperclover.list.name: Syncthing |
| ... | @@ -703,6 +759,7 @@ services: | ... | @@ -703,6 +759,7 @@ services: |
| 703 | net.paperclover.list.name: Paper Clover XMPP | 759 | net.paperclover.list.name: Paper Clover XMPP |
| 704 | net.paperclover.list.domain: xmpp | 760 | net.paperclover.list.domain: xmpp |
| 705 | net.paperclover.list.priority: 108 | 761 | net.paperclover.list.priority: 108 |
| | 762 | net.paperclover.list.web: "false" |
| 706 | depends_on: | 763 | depends_on: |
| 707 | caddy: | 764 | caddy: |
| 708 | condition: service_started | 765 | condition: service_started |
| ... | @@ -792,6 +849,12 @@ services: | ... | @@ -792,6 +849,12 @@ services: |
| 792 | - "/etc/localtime:/etc/localtime:ro" | 849 | - "/etc/localtime:/etc/localtime:ro" |
| 793 | - ./config/evil-infra/forgejo/public:/custom/public:ro | 850 | - ./config/evil-infra/forgejo/public:/custom/public:ro |
| 794 | - ./config/evil-infra/forgejo/init:/custom/init:ro | 851 | - ./config/evil-infra/forgejo/init:/custom/init:ro |
| | 852 | healthcheck: |
| | 853 | test: ["CMD-SHELL", "curl -fsS http://localhost:3000/api/healthz >/dev/null"] |
| | 854 | interval: 30s |
| | 855 | timeout: 10s |
| | 856 | retries: 3 |
| | 857 | start_period: 60s |
| 795 | depends_on: | 858 | depends_on: |
| 796 | postgres: | 859 | postgres: |
| 797 | condition: service_healthy | 860 | condition: service_healthy |