Notefix/1.Projects/Персональний сайт портфоліо/Self Hosted/sftpgo.md

62 lines
No EOL
4.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

**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
```