version: "3.9" services: shlink-db: image: postgres container_name: Shlink-DB hostname: shlink-db security_opt: - no-new-privileges:true healthcheck: test: ["CMD", "pg_isready", "-q", "-d", "shlink", "-U", "shlinkuser"] interval: 10s timeout: 5s retries: 5 user: 1026:100 volumes: - /volume1/docker/shlinkdb:/var/lib/postgresql/data environment: POSTGRES_DB: shlink POSTGRES_USER: shlinkuser POSTGRES_PASSWORD: shlinkpw restart: always shlink: image: shlinkio/shlink:stable container_name: Shlink hostname: shlink security_opt: - no-new-privileges:true ports: - 8335:8080 environment: - TIMEZONE=Europe/Berlin - INITIAL_API_KEY=59f4baa0-b67b-444d-8a06-f455b37ec180 - DB_DRIVER=postgres - DB_NAME=shlink - DB_USER=shlinkuser - DB_PASSWORD=shlinkpw - DB_HOST=shlink-db - DB_PORT=5432 - DEFAULT_DOMAIN=url - IS_HTTPS_ENABLED=true - GEOLITE_LICENSE_KEY=Key restart: always depends_on: shlink-db: condition: service_started shlink-web: image: shlinkio/shlink-web-client:stable container_name: Shlink-WEB hostname: shlink-web security_opt: - no-new-privileges:true healthcheck: test: wget --no-verbose --tries=1 --spider http://localhost:80/ || exit 1 ports: - 8336:80 environment: - SHLINK_SERVER_NAME=M_Viper - SHLINK_SERVER_URL=url - SHLINK_SERVER_API_KEY=59f4baa0-b67b-444d-8a06-f455b37ec180 restart: always depends_on: - shlink