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
|
||||
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
|
||||
|
||||
@@ -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