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:
@@ -1,8 +1,24 @@
|
|||||||
# sftpgo (templates)
|
# SFTPGo (Portainer template)
|
||||||
|
|
||||||
### Description
|
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.
|
||||||
Description for sftpgo goes here.
|
|
||||||
|
|
||||||
### Configuration
|
Quick notes:
|
||||||
- Path: templates/sftpgo/docker-compose.yml
|
|
||||||
- Status: Draft
|
- **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
|
||||||
|
|||||||
@@ -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
|
||||||
Reference in New Issue
Block a user