85 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			85 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
| version: "3.8"
 | |
| 
 | |
| services:
 | |
|   sftpgo:
 | |
|     container_name: sftpgo
 | |
|     user: root
 | |
|     image: drakkan/sftpgo:v2.5.6-alpine
 | |
|     restart: unless-stopped
 | |
|     depends_on:
 | |
|       sftpgo-db:
 | |
|         condition: service_healthy
 | |
|     ports:
 | |
|       - ${APP_PORT}:${SFTPGO_BINDING_PORT-8080} # Admin Web UI
 | |
|       - 2022:2022 # SFTP
 | |
|     healthcheck:
 | |
|       test:
 | |
|         ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:${SFTPGO_BINDING_PORT-8080}/healthz"]
 | |
|       interval: 30s
 | |
|       timeout: 5s
 | |
|       retries: 5
 | |
|       start_period: 30s
 | |
|     volumes:
 | |
|       - ${APP_DATA_DIR}/data/config:/var/lib/sftpgo
 | |
|       - ${APP_DATA_DIR}/data/files:/srv/sftpgo/data
 | |
|       - ${APP_DATA_DIR}/data/backups:/srv/sftpgo/backups
 | |
|     environment:
 | |
|       - SFTPGO_HTTPD__BINDINGS__0__PORT=${SFTPGO_BINDING_PORT-8080}
 | |
|       - SFTPGO_GRACE_TIME=${SFTPGO_GRACE_TIME-5}
 | |
|       - SFTPGO_MINIO_SHA256_SIMD=1
 | |
|       - SFTPGO_DATA_PROVIDER__CREATE_DEFAULT_ADMIN=${SFTPGO_CREATE_DEFAULT_ADMIN-1}
 | |
|       - SFTPGO_DEFAULT_ADMIN_USERNAME=${SFTPGO_ADMIN_USERNAME}
 | |
|       - SFTPGO_DEFAULT_ADMIN_PASSWORD=${SFTPGO_ADMIN_PASSWORD}
 | |
|       - SFTPGO_DATA_PROVIDER__DRIVER=postgresql
 | |
|       - SFTPGO_DATA_PROVIDER__NAME=sftpgo
 | |
|       - SFTPGO_DATA_PROVIDER__HOST=sftpgo-db
 | |
|       - SFTPGO_DATA_PROVIDER__PORT=5432
 | |
|       - SFTPGO_DATA_PROVIDER__USERNAME=sftpgo
 | |
|       - SFTPGO_DATA_PROVIDER__PASSWORD=${SFTPGO_DATABASE_PASSWORD-sftpgo}
 | |
|     networks:
 | |
|       - tipi_main_network
 | |
|     labels:
 | |
|       # Main
 | |
|       traefik.enable: true
 | |
|       traefik.http.middlewares.sftpgo-web-redirect.redirectscheme.scheme: https
 | |
|       traefik.http.services.sftpgo.loadbalancer.server.port: ${SFTPGO_BINDING_PORT-8080}
 | |
|       # Web
 | |
|       traefik.http.routers.sftpgo-insecure.rule: Host(`${APP_DOMAIN}`)
 | |
|       traefik.http.routers.sftpgo-insecure.entrypoints: web
 | |
|       traefik.http.routers.sftpgo-insecure.service: sftpgo
 | |
|       traefik.http.routers.sftpgo-insecure.middlewares: sftpgo-web-redirect
 | |
|       # Websecure
 | |
|       traefik.http.routers.sftpgo.rule: Host(`${APP_DOMAIN}`)
 | |
|       traefik.http.routers.sftpgo.entrypoints: websecure
 | |
|       traefik.http.routers.sftpgo.service: sftpgo
 | |
|       traefik.http.routers.sftpgo.tls.certresolver: myresolver
 | |
|       # Local domain
 | |
|       traefik.http.routers.sftpgo-local-insecure.rule: Host(`sftpgo.${LOCAL_DOMAIN}`)
 | |
|       traefik.http.routers.sftpgo-local-insecure.entrypoints: web
 | |
|       traefik.http.routers.sftpgo-local-insecure.service: sftpgo
 | |
|       traefik.http.routers.sftpgo-local-insecure.middlewares: sftpgo-web-redirect
 | |
|       # Local domain secure
 | |
|       traefik.http.routers.sftpgo-local.rule: Host(`sftpgo.${LOCAL_DOMAIN}`)
 | |
|       traefik.http.routers.sftpgo-local.entrypoints: websecure
 | |
|       traefik.http.routers.sftpgo-local.service: sftpgo
 | |
|       traefik.http.routers.sftpgo-local.tls: true
 | |
|   
 | |
|   # Postgres SQL
 | |
|   sftpgo-db:
 | |
|     container_name: sftpgo-db
 | |
|     image: docker.io/library/postgres:16.3-alpine
 | |
|     restart: unless-stopped
 | |
|     networks:
 | |
|       - tipi_main_network
 | |
|     volumes:
 | |
|       - ${APP_DATA_DIR}/db:/var/lib/postgresql/data
 | |
|     healthcheck:
 | |
|       test: ["CMD", "pg_isready", "-d", "sftpgo"]
 | |
|       interval: 10s
 | |
|       timeout: 5s
 | |
|       retries: 5
 | |
|     environment:
 | |
|       - POSTGRES_PASSWORD=${SFTPGO_DATABASE_PASSWORD-sftpgo}
 | |
|       - POSTGRES_USER=sftpgo
 | |
|       - POSTGRES_DB=sftpgo
 | |
|       - PGUSER=sftpgo | 
![renovate[bot]](/assets/img/avatar_default.png)