# Monitoring & Maintenance Services services: # ===== NETWORK MONITORING ===== speedtest-tracker: image: lscr.io/linuxserver/speedtest-tracker:latest restart: unless-stopped container_name: speedtest-tracker profiles: ["monitoring", "all"] ports: - "8180:80" - "8143:443" environment: - PUID=${PUID} - PGID=${PGID} - TZ=${TZ} - APP_KEY=${SPEEDTEST_APP_KEY} - DB_CONNECTION=mariadb - DB_HOST=speedtest-db - DB_PORT=3306 - DB_DATABASE=${SPEEDTEST_DB_NAME} - DB_USERNAME=${SPEEDTEST_DB_USER} - DB_PASSWORD=${SPEEDTEST_DB_PASSWORD} - APP_DEBUG=false - SPEEDTEST_SCHEDULE=${SPEEDTEST_SCHEDULE} - SPEEDTEST_SERVERS=${SPEEDTEST_SERVERS} - PUBLIC_DASHBOARD=true volumes: - ${DOCKER_CONFIG_ROOT}/speedtest-tracker/data:/config depends_on: speedtest-db: condition: service_healthy networks: - database_network healthcheck: test: ["CMD", "curl", "-f", "http://localhost/api/healthcheck"] interval: 30s timeout: 10s retries: 3 speedtest-db: image: mariadb:11 container_name: speedtest-db profiles: ["monitoring", "all"] restart: unless-stopped environment: - MYSQL_DATABASE=${SPEEDTEST_DB_NAME} - MYSQL_USER=${SPEEDTEST_DB_USER} - MYSQL_PASSWORD=${SPEEDTEST_DB_PASSWORD} - MYSQL_RANDOM_ROOT_PASSWORD=true volumes: - ${DOCKER_CONFIG_ROOT}/speedtest-tracker/db:/var/lib/mysql networks: - database_network healthcheck: test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"] interval: 10s timeout: 5s retries: 10 start_period: 30s security_opt: - no-new-privileges:true # ===== CONTAINER MAINTENANCE ===== watchtower: image: containrrr/watchtower:latest container_name: watchtower profiles: ["monitoring", "all"] volumes: - /var/run/docker.sock:/var/run/docker.sock environment: - TZ=${TZ} - WATCHTOWER_CLEANUP=${WATCHTOWER_CLEANUP} - WATCHTOWER_POLL_INTERVAL=${WATCHTOWER_POLL_INTERVAL} - WATCHTOWER_INCLUDE_RESTARTING=true - WATCHTOWER_INCLUDE_STOPPED=false - WATCHTOWER_REVIVE_STOPPED=false - WATCHTOWER_NO_STARTUP_MESSAGE=true restart: unless-stopped security_opt: - no-new-privileges:true networks: database_network: external: true