Відбувся перший значний випуск сервера SFTPGo 1.0, що дозволяє організувати віддалений доступ до файлів за допомогою протоколів SFTP, SCP/SSH та Rsync. У тому числі SFTPGo може використовуватися для надання доступу до Git-репозиторій, використовуючи протокол SSH. Дані можуть віддаватися як з локальної файлової системи, так і зовнішніх сховищ, сумісних з Amazon S3 і Google Cloud Storage. Для зберігання бази користувача та метаданих використовуються СУБД з підтримкою SQL або формату ключ/значення, такі як PostgreSQL 9.4+, MySQL 5.6+, SQLite 3.x або bbolt 1.3.x. Існує також режим зберігання метаданих в оперативній пам'яті, що не вимагає підключення зовнішньої БД. Код проекту написаний мовою Go та поширюється ліцензія GPLv3.
Основні особливості:
Для кожного облікового запису використовується chroot-ізоляція, що обмежує доступ домашнім каталогом користувача. Можливе створення віртуальних каталогів, що посилаються на дані поза домашнім каталогом користувача.
Облікові записи зберігаються у віртуальній базі користувачів, що не перетинається із системною БД користувачів. Для зберігання БД користувачів можуть застосовуватись SQLite, MySQL, PostgreSQL, bbolt та зберігання в пам'яті. Надаються засоби для зіставлення віртуальних та системних облікових записів — можливо пряме чи довільне зіставлення (один системний користувач може бути зіставлений з іншим віртуальним користувачем).
Підтримується автентифікація за відкритими ключами, ключами SSH та паролями (у тому числі інтерактивна автентифікація із введенням пароля з клавіатури). Можливе прив'язування кількох ключів для кожного користувача, а також налаштування мультифакторної та багатоетапної автентифікації (наприклад, у разі успішної автентифікації за ключом може бути додатково запрошений пароль).
Для кожного користувача можливе налаштування різних методів автентифікації, а також визначення власних методів, що реалізуються через виклик зовнішніх програм-автентифікаторів (наприклад, автентифікації через LDAP) або відправлення запитів через HTTP API.
Можливе підключення зовнішніх обробників або викликів HTTP API для динамічної зміни параметрів користувача перед входом користувача. Підтримується динамічний створення користувачів під час підключення.
Підтримка індивідуальних квот на розмір даних та кількість файлів.
Підтримка обмеження пропускної здатності з роздільним налаштуванням обмежень для вхідного та вихідного трафіку, а також обмежень на кількість одночасних підключень.
Засоби розмежування доступу, що діють у прив'язці до користувача або каталогу (можна обмежити перегляд списку файлів, заборонити завантаження, скачування, перезапис, видалення, перейменування або зміну прав доступу, заборонити створення каталогів або символічних посилань тощо).
Для кожного користувача можна визначити індивідуальні мережні обмеження, наприклад, можна дозволити вхід лише з певних IP або підмереж.
Підтримується підключення фільтрів завантажуваного контенту в прив'язці до окремих користувачів та каталогів (наприклад, можна блокувати завантаження файлів з певним розширенням).
Можлива прив'язка обробників, що запускаються при різних операціях із файлом (завантаження, видалення, перейменування тощо). Окрім виклику обробників підтримується надсилання повідомлень у формі HTTP-запитів.
Автоматичне завершення неактивних з'єднань.
Атомарне оновлення конфігурації без розриву з'єднань.
Підтримується протокол HAProxy PROXY для організації балансування навантаження або проксіювання з'єднань до сервісів SFTP/SCP без втрати відомостей про вихідну IP-адресу користувача.
REST API для керування користувачами та каталогами, створення резервних копій та формування звітів про активні з'єднання.
Web-інтерфейс (http://127.0.0.1:8080/web) для налаштування та моніторингу (підтримується і налаштування через звичайні конфігураційні файли).
Можливість визначення налаштувань у форматах JSON, TOML, YAML, HCL та envfile.
Підтримка підключення SSH з обмеженим доступом до системних команд. Наприклад, дозволено запуск команд, необхідних для роботи Git (git-receive-pack, git-upload-pack, git-upload-archive) та rsync, а також кількох вбудованих команд (scp, md5sum, sha*sum, cd, pwd, sftpgo-copy та sftpgo-remove).
режим портативний для спільного використання одного загального каталогу з автоматичним створенням облікових даних для підключення, що анонсуються через multicast DNS.
Вбудована система профілювання для аналізу продуктивності.
Спрощений процес міграції системних облікових записів Linux