feat: 🎨 Added a new portainer configuration for sftpgo

Provided a new concise portainer configuration allowing users to deploy sftpgo if they wish.
This commit is contained in:
2026-03-04 14:16:46 +00:00
parent 26a2462631
commit b28b2ce4e6
2 changed files with 72 additions and 6 deletions

View File

@@ -1,8 +1,24 @@
# sftpgo (templates)
# SFTPGo (Portainer template)
### Description
Description for sftpgo goes here.
SFTPGo is a fully featured and highly configurable storage routing server with SFTP, HTTP/S, FTP/S and WebDAV support. It allows you to securely share files with local and remote users.
### Configuration
- Path: templates/sftpgo/docker-compose.yml
- Status: Draft
Quick notes:
- **Protocols**: Supports SFTP, FTP/S, WebDAV, and a built-in Web UI for file management.
- **Storage**: Can serve local storage, S3, Google Cloud Storage, and Azure Blob.
- **Authentication**: Supports multiple backends including SQLite, MySQL, PostgreSQL, and LDAP/OIDC.
Usage:
1. Import the compose file into Portainer's Stacks or App Templates.
2. Configure the environment variables for the initial admin user and database settings.
3. Map the data volume to persist user data and configuration.
4. Deploy the stack via Portainer.
5. Access the admin web interface at `http://<your-ip>:8080/web/admin`.
Helpful links:
- GitHub Repository: https://github.com/drakkan/sftpgo
- Documentation: https://github.com/drakkan/sftpgo/tree/main/docs
**Status:** Ready for configuration

View File

@@ -0,0 +1,50 @@
services:
sftpgo:
image: drakkan/sftpgo:latest
user: "${PUID}:${PGID}"
container_name: sftpgo
ports:
- 8813:8080 # HTTP
- 2026:2022 # SFTP
environment:
# Fixes the "id_rsa: permission denied" error by using the mapped volume
SFTPGO_CONFIG_DIR: /srv/sftpgo
SFTPGO_WEBDAVD__BINDINGS__0__PORT: 5007
SFTPGO_DATA_PROVIDER__DRIVER: mysql
SFTPGO_DATA_PROVIDER__NAME: sftpgo
SFTPGO_DATA_PROVIDER__HOST: mysql
SFTPGO_DATA_PROVIDER__PORT: 3306
SFTPGO_DATA_PROVIDER__USERNAME: ${DB_USER}
SFTPGO_DATA_PROVIDER__PASSWORD: ${MYSQL_USER_PWD}
SFTPGO_COMMON__DEFENDER__ENABLED: "true"
SFTPGO_COMMON__DEFENDER__BAN_TIME: 15
SFTPGO_COMMON__DEFENDER__BAN_TIME_INCREMENT: 100
SFTPGO_COMMON__DEFENDER__THRESHOLD: 5
SFTPGO_COMMON__DEFENDER__OBSERVATION_TIME: 15
volumes:
- ./data:/srv/sftpgo:rw
- ./user_data:/user_data
depends_on:
mysql:
condition: service_healthy
restart: on-failure:8
mysql:
image: mariadb:11.8-noble
container_name: sftpgo-db
healthcheck:
# Standard MariaDB 11.x healthcheck using root credentials
test: ["CMD-SHELL", "mariadb-admin ping -h localhost -u root -p$${MYSQL_ROOT_PWD} || exit 1"]
interval: 10s
timeout: 5s
retries: 5
start_period: 30s
environment:
TZ: ${TZ}
MYSQL_DATABASE: sftpgo
MYSQL_USER: ${DB_USER}
MYSQL_PASSWORD: ${MYSQL_USER_PWD}
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PWD}
volumes:
- ./db:/var/lib/mysql:rw
restart: on-failure:5