services: shlink_server: image: docker.io/shlinkio/shlink:stable container_name: shlink_server restart: unless-stopped env_file: - .env networks: - proxy - backend ports: - "${SHLINK_PORT}:8080" depends_on: - shlink_postgres security_opt: - no-new-privileges:true shlink_web: image: docker.io/shlinkio/shlink-web-client:latest container_name: shlink_web environment: SHLINK_SERVER_URL: "http://roguemini.housh.dev:8880" SHLINK_SERVER_API_KEY: ${API_KEY} SHLINK_SERVER_NAME: "housh.dev" ports: - ${SHLINK_WEB_PORT}:8080 networks: - proxy security_opt: - no-new-privileges:true shlink_postgres: image: docker.io/postgres:17-alpine container_name: shlink_postgres environment: POSTGRES_PASSWORD: ${DB_PASSWORD} POSTGRES_USER: ${DB_USER} POSTGRES_DB: ${DB_NAME} volumes: - postgres_data:/var/lib/postgresql/data networks: - backend security_opt: - no-new-privileges:true networks: proxy: external: true backend: external: true volumes: postgres_data: driver: local labels: dev.housh.description: "Shlink postgres database volume."