version: "3.7"
services:
send:
image: registry.gitlab.com/timvisee/send:latest
container_name: send
restart: unless-stopped
dns:
- ${DNS_IP}
ports:
- ${APP_PORT}:1443
networks:
- tipi_main_network
volumes:
- ${APP_DATA_DIR}/data/uploads:/uploads
environment:
- NODE_ENV=production
# Networking
- BASE_URL=${APP_PROTOCOL:-http}://${APP_DOMAIN}
# Redis
- REDIS_HOST=send-redis
# Storage Limit
- MAX_FILE_SIZE=2147483648
# Storage path
- FILE_DIR=/uploads
depends_on:
- send-redis
labels:
# Main
traefik.enable: true
traefik.http.middlewares.send-web-redirect.redirectscheme.scheme: https
traefik.http.services.send.loadbalancer.server.port: 1443
# Web
traefik.http.routers.send-insecure.rule: Host(`${APP_DOMAIN}`)
traefik.http.routers.send-insecure.entrypoints: web
traefik.http.routers.send-insecure.service: send
traefik.http.routers.send-insecure.middlewares: send-web-redirect
# Websecure
traefik.http.routers.send.rule: Host(`${APP_DOMAIN}`)
traefik.http.routers.send.entrypoints: websecure
traefik.http.routers.send.service: send
traefik.http.routers.send.tls.certresolver: myresolver
# Local domain
traefik.http.routers.send-local-insecure.rule: Host(`send.${LOCAL_DOMAIN}`)
traefik.http.routers.send-local-insecure.entrypoints: web
traefik.http.routers.send-local-insecure.service: send
traefik.http.routers.send-local-insecure.middlewares: send-web-redirect
# Local domain secure
traefik.http.routers.send-local.rule: Host(`send.${LOCAL_DOMAIN}`)
traefik.http.routers.send-local.entrypoints: websecure
traefik.http.routers.send-local.service: send
traefik.http.routers.send-local.tls: true
send-redis:
image: redis:alpine
container_name: send-redis
restart: unless-stopped
volumes:
- ${APP_DATA_DIR}/data/redis:/data
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 5s
timeout: 3s
retries: 30
networks:
- tipi_main_network