diff --git a/bookstack/compose.yaml b/bookstack/compose.yaml new file mode 100755 index 0000000..ac5a8f7 --- /dev/null +++ b/bookstack/compose.yaml @@ -0,0 +1,47 @@ +services: + bookstack: + image: solidnerd/bookstack:master + container_name: bookstack + labels: + com.hanold.environment: production + deploy: + resources: + limits: + memory: 256M + environment: + - PUID=1000 + - PGID=1000 + - DB_HOST=192.168.178.170:3306 + - DB_USERNAME=bookstack + - DB_PASSWORD=dbpass14! + - DB_DATABASE=bookstack + - APP_URL=https://bookstack-app.hanold.online + - APP_KEY=base64:5qDgV0SFRxwfP60qyGrQCVONRoDYJqNZc73+JauMVz0= + - CACHE_DRIVER=redis + - SESSION_DRIVER=redis + # - QUEUE_CONNECTION=redis # optional, braucht Worker + - REDIS_SERVERS=192.168.178.183:9379:0 # Host:Port:Database +# - AUTH_METHOD=oidc +# - AUTH_AUTO_INITIATE=false # Set this to "true" to automatically redirect the user to authentik. +# - OIDC_NAME=authentik # The display name shown on the login page. +# - OIDC_DISPLAY_NAME_CLAIMS=name # Claim(s) for the user's display name. Can have multiple attributes listed, separated wi> +# - OIDC_CLIENT_ID=WXK8dpYtQOxLNrCNM3XmN7Xttg5tI1T7EaLXkoFd +# - OIDC_CLIENT_SECRET=Eoefvo9bhe1yb0EvqyhmkoHi7a8spyls25SOIZ4icQyk2ndyKt7Ny2ZAQqykof51FTzUpHhuOgLwrmMBaKmE1aHcjz93sNPdJMh4> +# - OIDC_ISSUER=https://authentik-app.hanold.online/application/o/bookstack/ +# - OIDC_ISSUER_DISCOVER=true +# - OIDC_END_SESSION_ENDPOINT=true + + volumes: + - ./config:/config + - ./uploads:/var/www/bookstack/public/uploads:rw + - ./storage-uploads:/var/www/bookstack/storage/uploads:rw + ports: + - 9345:8080 + restart: unless-stopped + healthcheck: + test: ["CMD", "curl", "-f", "http://192.168.178.183:9345/status"] + interval: 30s + timeout: 10s + retries: 3 + start_period: 60s +networks: {} diff --git a/dozzle/compose.yaml b/dozzle/compose.yaml new file mode 100755 index 0000000..8ca084e --- /dev/null +++ b/dozzle/compose.yaml @@ -0,0 +1,28 @@ +services: + dozzle: + container_name: dozzle + restart: unless-stopped + labels: + - wud.watch=true + deploy: + resources: + limits: + memory: 256M + image: amir20/dozzle:latest + volumes: + - /var/run/docker.sock:/var/run/docker.sock + - ./data:/data + environment: + - DOZZLE_REMOTE_AGENT=192.168.178.215:9007,192.168.178.200:9007,192.168.178.241:9007 + ports: + - 9889:8080 + healthcheck: + test: + - CMD + - /dozzle + - healthcheck + interval: 3s + timeout: 30s + retries: 5 + start_period: 30s +networks: {} diff --git a/duplicati/compose.yaml b/duplicati/compose.yaml new file mode 100755 index 0000000..8236d23 --- /dev/null +++ b/duplicati/compose.yaml @@ -0,0 +1,34 @@ +services: + duplicati: + image: lscr.io/linuxserver/duplicati:latest + container_name: duplicati + restart: unless-stopped + labels: + - com.hanold.environment=production + - wud.watch=true + deploy: + resources: + limits: + memory: 2G + environment: + - PUID=1000 + - PGID=1000 + - TZ=Europe/Berlin + - SETTINGS_ENCRYPTION_KEY=e232082ac53182f82487df27fe2d19dd23de0b4cb91736f824f7d5deab5e2a74 + - CLI_ARGS= #optional + - DUPLICATI__WEBSERVICE_PASSWORD= #optional + volumes: + - ./config:/config + - /media/openmediavault:/backups + - /media:/source + # - /media/webdav:/webdav + - /opt:/docker-opt + ports: + - 9200:8200 + healthcheck: + test: ["CMD", "wget", "-q", "--spider", "http://localhost:8200"] + interval: 30s + timeout: 10s + retries: 3 + start_period: 60s +networks: {} diff --git a/evcc/compose.yaml b/evcc/compose.yaml new file mode 100644 index 0000000..a7caffd --- /dev/null +++ b/evcc/compose.yaml @@ -0,0 +1,30 @@ +# docker-compose.yml +services: + evcc: + deploy: + resources: + limits: + memory: 256M + labels: + - com.hanold.environment=production +# - wud.watch=true + image: evcc/evcc:latest + container_name: evcc + ports: + - 9070:7070 + volumes: + # - ./evcc.yaml:/etc/evcc.yaml + - ./data/:/root/.evcc + restart: unless-stopped + healthcheck: + test: + - CMD + - wget + - --spider + - -q + - http://localhost:7070 + interval: 30s + timeout: 5s + retries: 3 + start_period: 20s +networks: {} diff --git a/freshrss/compose.yaml b/freshrss/compose.yaml new file mode 100755 index 0000000..3a473c0 --- /dev/null +++ b/freshrss/compose.yaml @@ -0,0 +1,35 @@ +services: + freshrss: + image: freshrss/freshrss:latest + container_name: freshrss + labels: + - "com.centurylinklabs.watchtower.enable=true" + deploy: + resources: + limits: + memory: 256M + environment: + - FRESHRSS_ENV=production + - PUID=1000 + - PGID=1000 + - TZ='Europe/Berlin' + - CRON_MIN=2,17,32,47 + volumes: + - ./data:/var/www/FreshRSS/data + - ./extensions:/var/www/FreshRSS/extensions + # - ./config:/config + # - ./extensions:/extensions + # - ./data/:/data + ports: + - 9280:80 + restart: unless-stopped + healthcheck: + test: + - CMD + - cli/health.php + timeout: 10s + start_period: 60s + # start_interval: 11s + interval: 75s + retries: 3 +networks: {} diff --git a/gitea/compose.yaml b/gitea/compose.yaml new file mode 100755 index 0000000..0f52064 --- /dev/null +++ b/gitea/compose.yaml @@ -0,0 +1,41 @@ +services: + server: + image: gitea/gitea + restart: unless-stopped + container_name: gitea + labels: + - com.hanold.environment=production + - wud.watch=true + deploy: + resources: + limits: + cpus: 4 + memory: 512M + volumes: + - ./data:/data + - /etc/timezone:/etc/timezone:ro + - /etc/localtime:/etc/localtime:ro + ports: + - 9876:3000 + - 2222:2222 + environment: + - GITEA__database__DB_TYPE=mysql + - GITEA__database__HOST=192.168.178.170:3306 + - GITEA__database__NAME=gitea + - GITEA__database__USER=gitea + - GITEA__database__PASSWD=dbpass + - USER_UID=1000 + - USER_GID=1000 + healthcheck: + test: + - CMD + - wget + - --no-verbose + - --tries=1 + - --spider + - http://127.0.0.1:3000/api/healthz + interval: 30s + timeout: 5s + retries: 3 + start_period: 40s +networks: {} diff --git a/languagetool/compose.yaml b/languagetool/compose.yaml new file mode 100755 index 0000000..d1ea561 --- /dev/null +++ b/languagetool/compose.yaml @@ -0,0 +1,32 @@ +services: + languagetool: + image: erikvl87/languagetool + container_name: languagetool + restart: unless-stopped + labels: + - com.hanold.environment=production + - wud.watch=true + deploy: + resources: + limits: + memory: 4G + ports: + - 0.0.0.0:9888:8010 + environment: + - Java_Xms=512m + - Java_Xmx=1g + # Optional: N-Gramm-Modelle für bessere Erkennung (siehe unten) + - langtool_languageModel=/ngrams + volumes: + - ./ngrams:/ngrams # nur wenn N-Gramme genutzt werden + healthcheck: + test: + - CMD + - curl + - -f + - http://localhost:8010/v2/languages + interval: 30s + timeout: 10s + retries: 3 + start_period: 60s # LanguageTool braucht etwas zum Starten +networks: {} diff --git a/mqtt/compose.yaml b/mqtt/compose.yaml new file mode 100755 index 0000000..3f2adae --- /dev/null +++ b/mqtt/compose.yaml @@ -0,0 +1,28 @@ +services: + eclipse-mosquitto: + labels: + - com.hanold.environment=production + - wud.watch=true + restart: unless-stopped + deploy: + resources: + limits: + memory: 64M + stdin_open: true + tty: true + ports: + - 9883:1883 + volumes: + - ./config:/mosquitto/config + - ./data:/mosquitto/data + - ./log:/mosquitto/log + image: eclipse-mosquitto:latest + container_name: mqtt + healthcheck: + test: + - CMD-SHELL + - nc -z localhost 1883 + interval: 20s + timeout: 5s + retries: 3 +networks: {} diff --git a/n8nv2/compose.yaml b/n8nv2/compose.yaml new file mode 100755 index 0000000..4c96ad0 --- /dev/null +++ b/n8nv2/compose.yaml @@ -0,0 +1,123 @@ +services: + n8n: + image: n8nio/n8n:latest + restart: unless-stopped + container_name: n8nv2 + deploy: + resources: + limits: + memory: 2G + ports: + - 9789:5678 + volumes: + - ./n8n-data:/home/node/.n8n + # - /media/Daten/:/mnt/heimserver-daten + - ./upload/:/mnt/upload + # - ./files/WertPlattensammlung.csv:/mnt/files + environment: + - N8N_RUNNERS_MODE=external + - N8N_RUNNERS_ENABLED=true + - N8N_RUNNERS_BROKER_LISTEN_ADDRESS=0.0.0.0 + - N8N_RUNNERS_BROKER_PORT=5679 + - N8N_RUNNERS_AUTH_TOKEN=^0hXW4sgSU7aG6!LFkGZ + - N8N_NATIVE_PYTHON_RUNNER=true + - N8N_PYTHON_ENABLED=true + - OFFLOAD_MANUAL_EXECUTIONS_TO_WORKERS=true + - NODES_EXCLUDE=[] + - N8N_RESTRICT_FILE_ACCESS_TO=/home/node/.n8n-files;/mnt/upload + - N8N_DIAGNOSTICS_ENABLED=false + - N8N_VERSION_NOTIFICATIONS_ENABLED=true + - N8N_BASIC_AUTH_ACTIVE=true + - N8N_BASIC_AUTH_USER=admin + - N8N_BASIC_AUTH_PASSWORD="OvTCSDZqpA#NfitX^dP1" + - GENERIC_TIMEZONE=Europe/Berlin + - N8N_SECURE_COOKIE=false + - N8N_HOST=n8n-app.hanold.online + - N8N_PROTOCOL=https + # - N8N_PORT=" " #GIFTIG: Killt den Zugriff auf n8n von außen + - WEBHOOK_URL=https://n8n-app.hanold.online + - N8N_PROXY_HOPS=1 + - DB_TYPE=postgresdb + - DB_POSTGRESDB_HOST=postgres # Service-Name statt IP + - DB_POSTGRESDB_PORT=5432 + - DB_POSTGRESDB_DATABASE=n8n + - DB_POSTGRESDB_USER=n8n + - DB_POSTGRESDB_PASSWORD=dbpass + # Timeouts anpassen: + - EXECUTIONS_TIMEOUT=36000 + - N8N_HTTP_REQUEST_TIMEOUT=0 + - N8N_HTTP_HEADERS_TIMEOUT=36000000 + - N8N_HTTP_KEEPALIVE_TIMEOUT=36000000 + - FETCH_HEADERS_TIMEOUT=36000000 + - FETCH_BODY_TIMEOUT=360000000 + - FETCH_CONNECT_TIMEOUT=6000000 + - N8N_LOG_LEVEL=info + - N8N_LOG_OUTPUT=console + healthcheck: + test: + - CMD-SHELL + - wget -q -T 5 --no-verbose --tries=1 -O - http://localhost:5678/healthz + | grep -q '{"status":"ok"}' || exit 1 + interval: 30s + timeout: 10s + retries: 3 + start_period: 40s + networks: + - n8n-net + postgres: + image: postgres:15-alpine + restart: unless-stopped + container_name: n8nv2-postgres + labels: + - wud.watch=true + - wud.tag.include=15-.*$ + deploy: + resources: + limits: + memory: 128M + environment: + - POSTGRES_DB=n8n + - POSTGRES_USER=n8n + - POSTGRES_PASSWORD=dbpass + ports: + - 5432:5432 + volumes: + - ./postgres-data:/var/lib/postgresql/data + networks: + - n8n-net + healthcheck: + test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB} -q"] + interval: 10s + timeout: 5s + retries: 5 + start_period: 20s + + task-runners: + image: n8nio/runners:latest + restart: unless-stopped + container_name: n8n-runners + deploy: + resources: + limits: + memory: 128M + environment: + - N8N_RUNNERS_TASK_BROKER_URI=http://n8n:5679 + - N8N_RUNNERS_AUTH_TOKEN=^0hXW4sgSU7aG6!LFkGZ + - N8N_RUNNERS_MAX_CONCURRENCY=10 + - N8N_RUNNERS_AUTO_SHUTDOWN_TIMEOUT=15 + depends_on: + - n8n + networks: + - n8n-net + healthcheck: + test: + - CMD + - sh + - -c + - wget -q -T 3 -O - http://localhost:5680/healthz >/dev/null 2>&1 + interval: 10s + timeout: 5s + retries: 6 +networks: + n8n-net: + driver: bridge diff --git a/navidrome/compose.yaml b/navidrome/compose.yaml new file mode 100755 index 0000000..24fa80d --- /dev/null +++ b/navidrome/compose.yaml @@ -0,0 +1,32 @@ +services: + navidrome: + deploy: + resources: + limits: + memory: 512M + image: deluan/navidrome:latest + container_name: navidrome + restart: unless-stopped + labels: + - com.hanold.environment=production + environment: + - ND_CONFIGFILE=/config/navidrome.toml + ports: + - 9533:4533 + volumes: + - /media/Musik:/music:ro + - ./data:/data + - ./navidrome.toml:/config/navidrome.toml + healthcheck: + test: + - CMD + - wget + - --no-verbose + - --tries=1 + - --spider + - http://localhost:4533/ping + interval: 30s + timeout: 10s + retries: 3 + start_period: 40s +networks: {} diff --git a/nextcloud/compose.yaml b/nextcloud/compose.yaml new file mode 100755 index 0000000..6156628 --- /dev/null +++ b/nextcloud/compose.yaml @@ -0,0 +1,72 @@ +services: + nextcloud: + container_name: nextcloud + restart: unless-stopped + labels: + com.hanold.environment: production + hostname: https://nextcloud-app.hanold.online + volumes: + - ./nextcloud-data:/var/www/html + # - /media/webdav/Dokumente:/mnt/WebDav_Dokumente + - /media/Daten/Nextcloud:/mnt/Heimserver + tmpfs: + - /tmp:size=1G # Ensures /tmp writable, clears restarts + init: true + ports: + - 9180:80 + environment: + - MYSQL_HOST=192.168.178.170 + - MYSQL_DATABASE=nextcloud + - MYSQL_USER=nextcloud + - MYSQL_PASSWORD=dbpass + - NEXTCLOUD_ADMIN_USER=admin + - NEXTCLOUD_ADMIN_PASSWORD=kNxMAUj1L391QuAWxBkJ + - REDIS_HOST=192.168.178.183 + - REDIS_HOST_PORT=9379 + - MEMCACHE_HOST=192.168.178.183 + - MEMCACHE_PORT=9379 + # - PUID=1000 + # - PGID=1000 + image: nextcloud:latest + deploy: + resources: + limits: + memory: 4G + healthcheck: + test: + - CMD-SHELL + - "runuser -u www-data -- php /var/www/html/occ status | grep -e + 'installed: true' -e 'maintenance: false' -e 'needsDbUpgrade: false' | + wc -l | grep -q 3 || exit 1" + interval: 60s + timeout: 10s + retries: 5 + start_period: 20s + collabora: + image: collabora/code:latest + restart: unless-stopped + deploy: + resources: + limits: + memory: 4G + cap_add: + - MKNOD + - SYS_ADMIN + environment: + - domain=nextcloud-app\.hanold\.online + # - username=admin # Or blank + # - password=yourpass + - extra_params=--o:ssl.enable=false # If internal; true + certs for prod + ports: + - 9380:9980 + healthcheck: + test: + - CMD + - curl + - -f + - http://192.168.178.183:9380 + interval: 30s + timeout: 10s + retries: 3 + start_period: 60s +networks: {} diff --git a/paperless_ngx/compose.yaml b/paperless_ngx/compose.yaml new file mode 100755 index 0000000..8b474a9 --- /dev/null +++ b/paperless_ngx/compose.yaml @@ -0,0 +1,39 @@ +services: + broker: + image: docker.io/library/redis:latest + restart: unless-stopped + deploy: + resources: + limits: + memory: 128M + labels: + - wud.watch=true + webserver: + image: ghcr.io/paperless-ngx/paperless-ngx:latest + restart: unless-stopped + deploy: + resources: + limits: + memory: 4G + labels: + - wud.watch=true + depends_on: + - broker + ports: + - 9800:8000 + volumes: + - /media/Paperless/paperless-data:/usr/src/paperless/data + - /media/Paperless/paperless-media:/usr/src/paperless/media + - ./export:/usr/src/paperless/export + - ./paperless-consume:/usr/src/paperless/consume + env_file: docker-compose.env + environment: + PAPERLESS_REDIS: redis://192.168.178.183:9379 + PAPERLESS_DBENGINE: mariadb + PAPERLESS_DBHOST: 192.168.178.170 + PAPERLESS_DBUSER: paperless # only needed if non-default username + PAPERLESS_DBPASS: dbpass # only needed if non-default password + PAPERLESS_DBPORT: 3306 + USERMAP_UID: 1002 + USERMAP_GID: 1001 +networks: {} diff --git a/patchmon/compose.yaml b/patchmon/compose.yaml new file mode 100755 index 0000000..fca7e2b --- /dev/null +++ b/patchmon/compose.yaml @@ -0,0 +1,62 @@ +services: + database: + image: postgres:17-alpine + container_name: patchmon-postgres + labels: + - wud.watch=true +# restart: unless-stopped + environment: + POSTGRES_DB: patchmon_db + POSTGRES_USER: patchmon_user + POSTGRES_PASSWORD: dbpass + volumes: + - ./postgres:/var/lib/postgresql/data + healthcheck: + test: + - CMD-SHELL + - pg_isready -U patchmon_user -d patchmon_db + interval: 5s + timeout: 5s + retries: 12 + backend: + image: ghcr.io/patchmon/patchmon-backend:latest + container_name: patchmon-backend +# restart: unless-stopped + labels: + - wud.watch=true + user: 1000:1000 + depends_on: + database: + condition: service_healthy + environment: + LOG_LEVEL: info + DATABASE_URL: postgresql://patchmon_user:dbpass@database:5432/patchmon_db + JWT_SECRET: very-long-random-jwt-secret + # Backend listens on 3001 inside the container + SERVER_PORT: 3001 + # IMPORTANT: set this to what your browser origin actually is + # Examples: + # http://10.1.149.134:3000 + # http://patchmon.local:3000 + # If PatchMon supports comma-separated origins, this allows both local + LAN access. + CORS_ORIGIN: http://localhost:3000,http://192.168.178.183:3000,http://192.168.178.138:3001 + REDIS_HOST: 192.168.178.183 + REDIS_PORT: 9379 + volumes: + - ./data:/app/agents + ports: + - 3001:3001 + frontend: + image: ghcr.io/patchmon/patchmon-frontend:latest + labels: + - wud.watch=true + container_name: patchmon-frontend +# restart: unless-stopped + depends_on: + - backend + environment: + BACKEND_HOST: backend + BACKEND_PORT: 3001 + ports: + - 3000:3000 +networks: {} diff --git a/portainer/compose.yaml b/portainer/compose.yaml new file mode 100644 index 0000000..fa9cd00 --- /dev/null +++ b/portainer/compose.yaml @@ -0,0 +1,20 @@ +services: + portainer: + image: portainer/portainer-ce:latest + container_name: portainer + ports: + - "9999:9000" + volumes: + - ./data:/data + - /var/run/docker.sock:/var/run/docker.sock + restart: unless-stopped + networks: + - portainer_net + +networks: + portainer_net: + driver: bridge + +volumes: + portainer_data: + diff --git a/prometheus/compose.yaml b/prometheus/compose.yaml new file mode 100755 index 0000000..29e9f4b --- /dev/null +++ b/prometheus/compose.yaml @@ -0,0 +1,43 @@ +services: + prometheus: + container_name: prometheus + deploy: + resources: + limits: + memory: 1G + labels: + - wud.watch=true + ports: + - 9090:9090 + volumes: + - ./prometheus.yml:/etc/prometheus/prometheus.yml + - /timeseries/prometheus/:/prometheus + command: + - --config.file=/etc/prometheus/prometheus.yml + - --storage.tsdb.path=/prometheus + - --storage.tsdb.retention.time=7200d + - --storage.tsdb.retention.size=0 + - --storage.tsdb.wal-compression + - --log.level=error # Nur Errors loggen + image: prom/prometheus + restart: unless-stopped + healthcheck: + test: + - CMD-SHELL + - wget --spider --quiet http://localhost:9090/-/ready || exit 1 + interval: 10s + timeout: 5s + retries: 3 + pve-exporter: + image: prompve/prometheus-pve-exporter:latest + container_name: prometheus-pve-exporter + deploy: + resources: + limits: + memory: 128M + ports: + - 9221:9221 + volumes: + - /opt/prometheus/pve.yml:/etc/prometheus/pve.yml:ro + restart: unless-stopped +networks: {} diff --git a/pulse/compose.yaml b/pulse/compose.yaml new file mode 100755 index 0000000..666233f --- /dev/null +++ b/pulse/compose.yaml @@ -0,0 +1,31 @@ +services: + pulse: + deploy: + resources: + limits: + memory: 2G + image: rcourtman/pulse:latest + container_name: pulse + labels: + - wud.watch=true + ports: + - 9655:7655 + volumes: + - ./data:/data + environment: + - REDIS_HOST=192.168.178.183 + - REDIS_PORT=9379 + # Network discovery (usually not needed - auto-scans common networks) + - DISCOVERY_SUBNET=192.168.178.0/24 # Only for non-standard networks + # Security (all optional - runs open by default) + - PULSE_AUTH_USER=sven # Username for web UI login + - PULSE_AUTH_PASS=3IQyC3*202*a634DK7x^ # Plain text or bcrypt hash (auto-hashed if plain) + - API_TOKEN=tMeE9lQShpMQbrmBOL44K5E8Bf66LjUs + - ALLOW_UNPROTECTED_EXPORT=true # Allow export without auth (default: false) + - PULSE_DISABLE_DOCKER_UPDATE_ACTIONS=true + - PULSE_PUBLIC_URL=https://pulse-app.hanold.online + - LOG_LEVEL=error # Log level: debug/info/warn/error (default: info) + restart: unless-stopped +volumes: + pulse_data: null +networks: {} diff --git a/redis/compose.yaml b/redis/compose.yaml new file mode 100755 index 0000000..87e25ea --- /dev/null +++ b/redis/compose.yaml @@ -0,0 +1,22 @@ +services: + redis: + image: redis:latest + container_name: redis + labels: + - wud.watch=true + restart: unless-stopped + # command: redis-server --loglevel error + deploy: + resources: + limits: + memory: 256M + ports: + - 9379:6379 + volumes: + - ./data:/data + healthcheck: + test: ["CMD-SHELL", "redis-cli ping || exit 1"] + interval: 10s + timeout: 5s + retries: 3 +networks: {} diff --git a/uptime-kuma/compose.yaml b/uptime-kuma/compose.yaml new file mode 100755 index 0000000..b10565a --- /dev/null +++ b/uptime-kuma/compose.yaml @@ -0,0 +1,24 @@ +services: + uptime-kuma: + image: louislam/uptime-kuma + container_name: uptime-kuma + labels: + - wud.watch=true + - com.hanold.environment=production + deploy: + resources: + limits: + memory: 1G + volumes: + - ./data:/app/data + ports: + - 9011:3001 + restart: unless-stopped + environment: + UPTIME_KUMA_DB_TYPE: mariadb + UPTIME_KUMA_DB_HOSTNAME: 192.168.178.170 + UPTIME_KUMA_DB_PORT: 3306 + UPTIME_KUMA_DB_USERNAME: uptimekuma + UPTIME_KUMA_DB_PASSWORD: dbpass + UPTIME_KUMA_DB_NAME: uptimekuma +networks: {} diff --git a/vaultwarden/compose.yaml b/vaultwarden/compose.yaml new file mode 100755 index 0000000..6eb9bb3 --- /dev/null +++ b/vaultwarden/compose.yaml @@ -0,0 +1,33 @@ +services: + vaultwarden: + container_name: vaultwarden + image: vaultwarden/server:latest + deploy: + resources: + limits: + memory: 512M + labels: + - wud.watch=true + - com.hanold.environment=production + restart: unless-stopped + volumes: + - ./data/:/data/ + ports: + - 9445:80 + environment: + - ADMIN_TOKEN=jfdkljslkfj8949mklfjs! + - WEBSOCKET_ENABLED=true + - SIGNUPS_ALLOWED=false + - EMERGENCY_ACCESS_ALLOWED=true + - DOMAIN=https://vaultwarden-app.hanold.online + #Mail + - SMTP_HOST=smtp.strato.de + - SMTP_FROM=vaultwarden@hanold.online + - SMTP_FROM_NAME=Vaultwarden + - SMTP_SECURITY=starttls #Kann “starttls” / “force_tls” / “off” + - SMTP_PORT=587 + - SMTP_USERNAME=vaultwarden@hanold.online + - SMTP_PASSWORD=VaultW_app_PW0815# + - SMTP_AUTH_MECHANISM=Login #Kann “Plain” / “Login” / “Xoauth2” + - REDIS_URL=redis://192.168.178.183:9379 +networks: {} diff --git a/wordpress/compose.yaml b/wordpress/compose.yaml new file mode 100755 index 0000000..91ac6fb --- /dev/null +++ b/wordpress/compose.yaml @@ -0,0 +1,29 @@ +services: + wordpress: + image: wordpress:latest + container_name: wordpress + labels: + - wud.watch=true + deploy: + resources: + limits: + memory: 1G + volumes: + - ./data:/var/www/html + ports: + - 9080:80 + restart: always + environment: + - WORDPRESS_DB_HOST=192.168.178.170 + - WORDPRESS_DB_USER=wordpress + - WORDPRESS_DB_PASSWORD=dbpass + - WORDPRESS_DB_NAME=wordpress + - WORDPRESS_REDIS_HOST=192.168.178.183 + - WORDPRESS_REDIS_PORT=9379 + healthcheck: + test: ["CMD-SHELL", "curl -f http://localhost || exit 1"] + interval: 30s + timeout: 10s + retries: 5 + start_period: 40s # WP-Setup braucht Zeit +networks: {} diff --git a/wordpress_bookstax/compose.yaml b/wordpress_bookstax/compose.yaml new file mode 100755 index 0000000..b33bce1 --- /dev/null +++ b/wordpress_bookstax/compose.yaml @@ -0,0 +1,29 @@ +services: + wordpress: + image: wordpress:latest + container_name: wordpress_bookstax + labels: + - wud.watch=true + deploy: + resources: + limits: + memory: 256M + volumes: + - ./data:/var/www/html + ports: + - 9100:80 + restart: unless-stopped + environment: + - WORDPRESS_DB_HOST=192.168.178.170 + - WORDPRESS_DB_USER=wp_bookstax + - WORDPRESS_DB_PASSWORD=DBpass14! + - WORDPRESS_DB_NAME=wp_bookstax + - WORDPRESS_REDIS_HOST=192.168.178.183 + - WORDPRESS_REDIS_PORT=9379 + healthcheck: + test: ["CMD-SHELL", "curl -f http://localhost || exit 1"] + interval: 30s + timeout: 10s + retries: 5 + start_period: 40s # WP-Setup braucht Zeit +networks: {} diff --git a/wordpress_charlotte/compose.yaml b/wordpress_charlotte/compose.yaml new file mode 100755 index 0000000..d3fe943 --- /dev/null +++ b/wordpress_charlotte/compose.yaml @@ -0,0 +1,25 @@ +services: + wordpress: + image: wordpress:latest + container_name: wordpress_charlotte + labels: + - wud.watch=true + deploy: + resources: + limits: + memory: 1G + volumes: + - ./data:/var/www/html + ports: + - 9181:80 + restart: always + environment: + - WORDPRESS_DB_HOST=192.168.178.170 + - WORDPRESS_DB_USER=wp_charlotte + - WORDPRESS_DB_PASSWORD=dbpass + - WORDPRESS_DB_NAME=wp_charlotte + - WORDPRESS_REDIS_HOST=192.168.178.183 + - WORDPRESS_REDIS_PORT=9379 +volumes: + wp_data: null +networks: {} diff --git a/wud/compose.yaml b/wud/compose.yaml new file mode 100755 index 0000000..c2ed0c6 --- /dev/null +++ b/wud/compose.yaml @@ -0,0 +1,47 @@ +services: + whatsupdocker: + deploy: + resources: + limits: + memory: 512M + image: getwud/wud:latest + labels: + - wud.watch=true + container_name: wud + restart: unless-stopped + volumes: + - /var/run/docker.sock:/var/run/docker.sock + - ./data:/store + ports: + - 9700:3000 + environment: + - TZ=Europe/Berlin + - WUD_REGISTRY_LSCR_PRIVATE_USERNAME=Zvenster + - WUD_REGISTRY_LSCR_PRIVATE_TOKEN=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 + - WUD_LOG_LEVEL=info + - WUD_AUTH_BASIC_SVEN_USER=sven + - WUD_AUTH_BASIC_SVEN_HASH=$$apr1$$ir3cptob$$eBkIR.L31wK4DlmGYRrEh. + # Prometheus Metrics abschalten + - WUD_PROMETHEUS_ENABLED=false + # Watchers: + - WUD_WATCHER_CHATBOT_HOST=192.168.178.215 + - WUD_WATCHER_CHATBOT_PORT=2375 + - WUD_WATCHER_CHATBOT_WATCHALL=true + - WUD_WATCHER_CHATBOT_WATCHATSTART=true + - WUD_WATCHER_LOCAL_WATCHATSTART=true + - WUD_WATCHER_LOCAL_WATCHBYDEFAULT=false + - WUD_WATCHER_LOCAL_CRON=15 19 * * * #Jeden Tag um 19:15. War:0 12 * * * + - WUD_WATCHER_CHATBOT_CRON=15 19 * * * #Jeden Tag um 19:15. War:0 12 * * * + # Triggers + - WUD_TRIGGER_HTTP_LOCAL_AUTO=true + - WUD_TRIGGER_HTTP_LOCAL_ONCE=true + - WUD_TRIGGER_HTTP_LOCAL_URL=http://192.168.178.183:9789/webhook/87467257-a2f7-4cda-abac-d6eb98dd4e29 + - WUD_TRIGGER_HTTP_LOCAL_SIMPLEBODY=$${container.name} + - WUD_TRIGGER_HTTP_LOCAL_METHOD=POST + healthcheck: + test: curl --fail http://192.168.178.183:9700/health || exit 1 + interval: 10s + timeout: 10s + retries: 3 + start_period: 10s +networks: {}