62 lines
No EOL
4.7 KiB
Markdown
62 lines
No EOL
4.7 KiB
Markdown
**SFTPGo** — це сучасний, високопродуктивний сервер обміну файлами з відкритим вихідним кодом (написаний на Go), який розширює можливості стандартного SSH/SFTP до повноцінного корпоративного рішення для керування даними.
|
||
## Основні можливості
|
||
|
||
- **Мультипротокольність:** Підтримує SFTP, FTPS, FTP, WebDAV, а також має вбудований Web UI для користувачів та адміністраторів і REST API.
|
||
|
||
- **Гнучкість сховищ (Storage Backends):** Працює як з локальною файловою системою, так і з хмарними сховищами (Amazon S3, Google Cloud Storage, Azure Blob, S3-сумісні MinIO/Ceph). Також є підтримка прозорого шифрування (CryptFS).
|
||
|
||
- **Централізована база даних:** Зберігає користувачів та налаштування в PostgreSQL, MySQL, MariaDB, CockroachDB або SQLite.
|
||
|
||
|
||
## Надійність та відмовостійкість
|
||
|
||
SFTPGo розроблений для високонавантажених і критичних систем:
|
||
|
||
- **Кластеризація (High Availability):** Оскільки самі екземпляри SFTPGo є **stateless** (безбереженими), ви можете запустити кілька вузлів за навантажувачем (Load Balancer), підключивши їх до однієї бази даних та спільного сховища.
|
||
|
||
- **Ізоляція та квоти:** Можна жорстко обмежити кількість одночасних сесій, швидкість завантаження/вивантаження (Bandwidth limit) та дискову квоту (байти або кількість файлів) для кожного користувача або групи.
|
||
|
||
- **Автоматична грозозахист-локалізація (Event Actions):** При виявленні підозрілої активності або помилок аутентифікації SFTPGo може автоматично блокувати IP (за допомогою встроенних механізмів або інтеграції з Fail2ban).
|
||
|
||
|
||
## Акцент на бекапах та захисті від Ransomware
|
||
|
||
SFTPGo — ідеальне рішення для збору резервних копій завдяки захисту від підміни та видалення:
|
||
|
||
1. **WORM / Immutable Backups:** Налаштування прав "тільки на запис" унеможливлює видалення або зашифрування старого бекапу, якщо сервер, з якого робиться бекап, буде закомпрометований вірусом-вимагачем.
|
||
|
||
2. **Автоматизація обробки (Hooks & Event Manager):** Після успішного вивантаження файлу бекапу SFTPGo може автоматично виконати скрипт, надіслати вебхук (Webhook) або сповіщення в Telegram/Slack, запустити ротацію або перемістити файл у Glacier-сховище.
|
||
|
||
3. **Віртуальні папки (Virtual Folders):** Можна прокинути окремі каталоги з різних систем або S3-бакетів у єдину структуру папок для агента бекапу.
|
||
|
||
```
|
||
version: "3.8"
|
||
|
||
services:
|
||
sftpgo:
|
||
image: drakkan/sftpgo:latest
|
||
container_name: sftpgo
|
||
ports:
|
||
- "8080:8080"
|
||
- "2022:2022"
|
||
- "8022:8022"
|
||
- "8081:8081"
|
||
- "990:990"
|
||
environment:
|
||
- SFTPGO_WEBDAVD__BINDINGS__0__PORT=10080
|
||
- SFTPGO_SFTPD__BINDINGS__0__PORT=2022
|
||
- SFTPGO_HTTPD__BINDINGS__0__PORT=8080
|
||
- SFTPGO_DATA_PROVIDER__DRIVER=sqlite
|
||
# Указываем путь к БД внутри контейнера (соответствует объему sftpgo_data)
|
||
- SFTPGO_DATA_PROVIDER__NAME=/var/lib/sftpgo/sftpgo.db
|
||
- SFTPGO_LOG__LEVEL=info
|
||
- SFTPGO_BOOTSTRAP_ADMIN_USERNAME=admin
|
||
- SFTPGO_BOOTSTRAP_ADMIN_PASSWORD=admin
|
||
volumes:
|
||
# Монтируем локальные папки на диске в пути внутри контейнера
|
||
- /mnt/docker_data/sftpgo/data:/var/lib/sftpgo
|
||
- /mnt/docker_data/sftpgo/storage:/srv/sftp
|
||
- /mnt/docker_data/music:/mnt/music
|
||
- /mnt/docker_data/sd:/mnt/sd
|
||
restart: unless-stopped
|
||
``` |