Compose-Examples/examples/send/docker-compose.yml

87 wiersze
5.0 KiB
YAML

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

version: "3"
services:
send:
image: registry.gitlab.com/timvisee/send:latest # official image
#image: l4rm4nd/send:latest # image of a fork with darkmode only
container_name: send-app
restart: unless-stopped
read_only: true
security_opt:
- no-new-privileges:true
cap_drop:
- ALL
ports:
- 1234:1234
expose:
- 1234
volumes:
- ${DOCKER_VOLUME_STORAGE:-/mnt/docker-volumes}/send/uploads:/uploads
#- ./logo.png:/app/dist/mylogo.png:ro # pass custom logo into the container
environment:
- NODE_ENV=production # default is development
- DETECT_BASE_URL=true
#- BASE_URL=https://send.example.com # optional; if used then protocol handler (http/https) is mandatory
- PORT=1234
- REDIS_HOST=redis
# For local uploads storage
- FILE_DIR=/uploads
# To customize upload limits
- EXPIRE_TIMES_SECONDS=3600,86400,604800,2592000,31536000 # Expire time options to show in UI dropdown, e.g. 3600,86400,604800,2592000,31536000
- DEFAULT_EXPIRE_SECONDS=604800 # Default expire time in UI (defaults to 86400)
- MAX_EXPIRE_SECONDS=31536000 # Maximum upload expiry time in seconds (defaults to 604800 aka 7 days)
- DOWNLOAD_COUNTS=1,2,5,10,50 # Download limit options to show in UI dropdown, e.g. 10,1,2,5,10,15,25,50,100,1000
- DEFAULT_DOWNLOADS=10
- MAX_DOWNLOADS=10 # Maximum number of downloads (defaults to 100)
- MAX_FILE_SIZE=2684354560 # Maximum upload file size in bytes (defaults to 2147483648 aka 2GB)
# ----------------------------------------------------------------------------------
# Custom Branding; see https://github.com/timvisee/send/blob/master/server/config.js
# ----------------------------------------------------------------------------------
#- CUSTOM_TITLE=Send
#- CUSTOM_DESCRIPTION=Encrypt and send files with a link that automatically expires to ensure your important documents dont stay online forever.
#- CUSTOM_FOOTER_TEXT=
#- CUSTOM_FOOTER_URL=
#- CUSTOM_LOCALE=
#- UI_CUSTOM_ASSETS_ANDROID_CHROME_192PX=mylogo.png # use a custom logo; if NODE_ENV=production you must use an internal image; otherwise any http(s) url works too
#- UI_CUSTOM_ASSETS_ANDROID_CHROME_512PX=mylogo.png # use a custom logo; if NODE_ENV=production you must use an internal image; otherwise any http(s) url works too
#- UI_CUSTOM_ASSETS_APPLE_TOUCH_ICON=mylogo.png # use a custom logo; if NODE_ENV=production you must use an internal image; otherwise any http(s) url works too
#- UI_CUSTOM_ASSETS_FAVICON_16PX=mylogo.png # use a custom logo; if NODE_ENV=production you must use an internal image; otherwise any http(s) url works too
#- UI_CUSTOM_ASSETS_FAVICON_32PX=mylogo.png # use a custom logo; if NODE_ENV=production you must use an internal image; otherwise any http(s) url works too
#- UI_CUSTOM_ASSETS_ICON=mylogo.png # use a custom logo; if NODE_ENV=production you must use an internal image; otherwise any http(s) url works too
#- UI_CUSTOM_ASSETS_SAFARI_PINNED_TAB=mylogo.png # use a custom logo; if NODE_ENV=production you must use an internal image; otherwise any http(s) url works too
#- UI_CUSTOM_ASSETS_FACEBOOK=mylogo.png # use a custom logo; if NODE_ENV=production you must use an internal image; otherwise any http(s) url works too
#- UI_CUSTOM_ASSETS_TWITTER=mylogo.png # use a custom logo; if NODE_ENV=production you must use an internal image; otherwise any http(s) url works too
#- UI_CUSTOM_ASSETS_WORDMARK=mylogo.png # use a custom logo; if NODE_ENV=production you must use an internal image; otherwise any http(s) url works too
#- UI_CUSTOM_CSS=
#- UI_COLOR_PRIMARY=0a84ff
#- UI_COLOR_ACCENT=003eaa
#- SEND_FOOTER_CLI_URL=https://github.com/timvisee/ffsend
#- SEND_FOOTER_DMCA_URL=
#- SEND_FOOTER_SOURCE_URL=https://github.com/timvisee/send
# ----------------------------------------------------------------------------------
#networks:
# - proxy
#labels:
# - traefik.enable=true
# - traefik.docker.network=proxy
# - traefik.http.routers.send.rule=Host(`send.example.com`)
# - traefik.http.services.send.loadbalancer.server.port=1234
# - traefik.http.middlewares.limit.buffering.maxRequestBodyBytes=5000000000 # optional, only necessary for file uploads; allow 5GB
# - traefik.http.middlewares.limit.buffering.maxResponseBodyBytes=5000000000 # optional, only necessary for file uploads; allow 5GB
# - traefik.http.middlewares.limit.buffering.memRequestBodyBytes=5000000000 # optional, only necessary for file uploads; allow 5GB
# - traefik.http.middlewares.limit.buffering.memResponseBodyBytes=5000000000 # optional, only necessary for file uploads; allow 5GB
redis:
image: redis:alpine
container_name: send-redis
restart: unless-stopped
volumes:
- ${DOCKER_VOLUME_STORAGE:-/mnt/docker-volumes}/send/redis:/data
#networks:
# - proxy
#networks:
# proxy:
# external: true