35 lines
1.2 KiB
YAML
35 lines
1.2 KiB
YAML
version: "3.9"
|
||
|
||
services:
|
||
shelfy:
|
||
build:
|
||
context: .
|
||
dockerfile: Dockerfile
|
||
container_name: shelfy-go
|
||
working_dir: /app
|
||
ports:
|
||
- "8090:8080" # HTTP (API/WEB)
|
||
- "2121:2121" # FTP Control
|
||
- "30000-30100:30000-30100" # FTP Passive data ports
|
||
extra_hosts:
|
||
- "dockerhost:host-gateway"
|
||
volumes:
|
||
- .:/app # code source pour dev (retire-le en prod)
|
||
- shelfy_upload:/app/upload # dossier upload persistant (jamais rebuild)
|
||
labels:
|
||
# Traefik pour HTTP/WEB/DAV SEULEMENT (PAS DE FTP !)
|
||
- traefik.http.routers.shelfy.middlewares=webdav-allow-methods@docker
|
||
- traefik.http.middlewares.webdav-allow-methods.headers.accesscontrolallowmethods=GET,PUT,POST,DELETE,PROPFIND,OPTIONS,LOCK,UNLOCK,HEAD
|
||
- traefik.http.middlewares.webdav-allow-methods.headers.accesscontrolallowheaders=Authorization,Depth,Content-Type,If-Modified-Since,User-Agent,Destination,Overwrite
|
||
environment:
|
||
# Utilise ces variables dans ton code pour la plage passive FTP si tu veux
|
||
- FTP_PASSIVE_PORTS=30000-30100
|
||
restart: unless-stopped
|
||
dns:
|
||
- 8.8.8.8
|
||
- 1.1.1.1
|
||
|
||
volumes:
|
||
shelfy_upload:
|
||
|