Skip to content

Commit a8e812b

Browse files
authored
Refactor healthchecks and environment variables
Updated healthcheck commands and environment variable handling for the gotify and igotify services in the docker-compose file.
1 parent ac2cf51 commit a8e812b

1 file changed

Lines changed: 65 additions & 17 deletions

File tree

docker-compose.yaml

Lines changed: 65 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,53 @@
1+
# iGotify Notification Assistant - Docker Compose
2+
#
3+
# Quick Start:
4+
# 1. Copy .env.example to .env and configure
5+
# 2. Run: docker compose up -d
6+
#
7+
# Documentation: https://github.com/androidseb25/iGotify-Notification-Assistent/wiki
8+
19
services:
210
gotify:
311
container_name: gotify
412
hostname: gotify
5-
image: gotify/server # Uncommand correct server image
6-
# image: gotify/server-arm7
7-
# image: gotify/server-arm64
13+
image: gotify/server
14+
# image: gotify/server-arm7 # For ARM v7
15+
# image: gotify/server-arm64 # For ARM64
816
restart: unless-stopped
917
security_opt:
1018
- no-new-privileges:true
1119
networks:
1220
- net
21+
# - proxy # Uncomment for Traefik
1322
ports:
1423
- "8680:80"
1524
volumes:
1625
- data:/app/data
1726
environment:
18-
GOTIFY_DEFAULTUSER_PASS: 'my-very-strong-password' # Change me!!!!!
27+
GOTIFY_DEFAULTUSER_PASS: ${GOTIFY_DEFAULTUSER_PASS:?Please set GOTIFY_DEFAULTUSER_PASS in .env}
28+
# GOTIFY_REGISTRATION: 'false' # Disable user registration
1929
healthcheck:
20-
test: ["CMD-SHELL", "ls /app/data || exit 1"]
30+
test: ["CMD", "curl", "-f", "http://localhost:80/health"]
2131
interval: 5s
2232
timeout: 3s
2333
retries: 5
2434
start_period: 10s
35+
# ─── Traefik Labels (uncomment to enable) ───────────────────────
36+
# labels:
37+
# traefik.enable: "true"
38+
# traefik.docker.network: proxy
39+
# # HTTPS
40+
# traefik.http.routers.gotify-secure.entrypoints: websecure
41+
# traefik.http.routers.gotify-secure.rule: Host(`gotify.example.com`)
42+
# traefik.http.routers.gotify-secure.tls: "true"
43+
# traefik.http.routers.gotify-secure.tls.certresolver: http_resolver
44+
# traefik.http.routers.gotify-secure.service: gotify
45+
# traefik.http.routers.gotify-secure.middlewares: default@file
46+
# # HTTP (redirect to HTTPS)
47+
# traefik.http.routers.gotify.entrypoints: web
48+
# traefik.http.routers.gotify.rule: Host(`gotify.example.com`)
49+
# # Service
50+
# traefik.http.services.gotify.loadbalancer.server.port: "80"
2551

2652
igotify:
2753
container_name: igotify
@@ -30,30 +56,52 @@ services:
3056
restart: unless-stopped
3157
security_opt:
3258
- no-new-privileges:true
33-
pull_policy: always
3459
depends_on:
3560
gotify:
3661
condition: service_healthy
37-
healthcheck:
38-
test: [ "CMD", "curl", "-f", "http://localhost:8080/Version" ]
39-
interval: "3s"
40-
timeout: "3s"
41-
retries: 5
4262
networks:
4363
- net
64+
# - proxy # Uncomment for Traefik
4465
ports:
4566
- "8681:8080"
4667
volumes:
4768
- api-data:/app/data
48-
#environment: # option environment see above note
49-
# GOTIFY_URLS: ''
50-
# GOTIFY_CLIENT_TOKENS: ''
51-
# SECNTFY_TOKENS: ''
52-
# ENABLE_CONSOLE_LOG: 'true'
53-
# ENABLE_SCALAR_UI: 'true'
69+
environment:
70+
# Required only when NOT using a public domain
71+
# See wiki for details: https://github.com/androidseb25/iGotify-Notification-Assistent/wiki#environment-variables
72+
GOTIFY_URLS: ${GOTIFY_URLS:-}
73+
GOTIFY_CLIENT_TOKENS: ${GOTIFY_CLIENT_TOKENS:-}
74+
SECNTFY_TOKENS: ${SECNTFY_TOKENS:-}
75+
# Optional settings
76+
ENABLE_CONSOLE_LOG: ${ENABLE_CONSOLE_LOG:-'true'}
77+
ENABLE_SCALAR_UI: ${ENABLE_SCALAR_UI:-'true'}
78+
healthcheck:
79+
test: ["CMD", "curl", "-f", "http://localhost:8080/Version"]
80+
interval: 5s
81+
timeout: 3s
82+
retries: 5
83+
start_period: 10s
84+
# ─── Traefik Labels (uncomment to enable) ───────────────────────
85+
# labels:
86+
# traefik.enable: "true"
87+
# traefik.docker.network: proxy
88+
# # HTTPS
89+
# traefik.http.routers.igotify-secure.entrypoints: websecure
90+
# traefik.http.routers.igotify-secure.rule: Host(`igotify.example.com`)
91+
# traefik.http.routers.igotify-secure.tls: "true"
92+
# traefik.http.routers.igotify-secure.tls.certresolver: http_resolver
93+
# traefik.http.routers.igotify-secure.service: igotify
94+
# traefik.http.routers.igotify-secure.middlewares: default@file
95+
# # HTTP (redirect to HTTPS)
96+
# traefik.http.routers.igotify.entrypoints: web
97+
# traefik.http.routers.igotify.rule: Host(`igotify.example.com`)
98+
# # Service
99+
# traefik.http.services.igotify.loadbalancer.server.port: "8080"
54100

55101
networks:
56102
net:
103+
# proxy:
104+
# external: true
57105

58106
volumes:
59107
data:

0 commit comments

Comments
 (0)