ΠΠ±ΡΠ°Π²Π΅Π½ΠΎ Π΅ ΠΎΠ±ΡΠ°Π²ΡΠ²Π°ΡΠ΅ΡΠΎ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠΎΡ SFTPGo 2.2, ΠΊΠΎΡ Π²ΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π° Π΄Π° ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ°ΡΠ΅ Π΄Π°Π»Π΅ΡΠΈΠ½ΡΠΊΠΈ ΠΏΡΠΈΡΡΠ°ΠΏ Π΄ΠΎ Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈΡΠ΅ ΠΊΠΎΡΠΈΡΡΠ΅ΡΡΠΈ Π³ΠΈ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΈΡΠ΅ SFTP, SCP/SSH, Rsync, HTTP ΠΈ WebDav. ΠΠ΅ΡΡ Π΄ΡΡΠ³ΠΎΡΠΎ, SFTPGo ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ Π·Π° Π΄Π° ΡΠ΅ ΠΎΠ±Π΅Π·Π±Π΅Π΄ΠΈ ΠΏΡΠΈΡΡΠ°ΠΏ Π΄ΠΎ ΡΠΊΠ»Π°Π΄ΠΈΡΡΠ°ΡΠ° Π½Π° Git ΠΊΠΎΡΠΈΡΡΠ΅ΡΡΠΈ Π³ΠΎ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΡ SSH. ΠΠΎΠ΄Π°ΡΠΎΡΠΈΡΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΏΡΠ΅Π½Π΅ΡΠ°Ρ ΠΈ ΠΎΠ΄ Π»ΠΎΠΊΠ°Π»Π½ΠΈΠΎΡ Π΄Π°ΡΠΎΡΠ΅ΡΠ΅Π½ ΡΠΈΡΡΠ΅ΠΌ ΠΈ ΠΎΠ΄ Π½Π°Π΄Π²ΠΎΡΠ΅ΡΠ½ΠΈ ΡΠΊΠ»Π°Π΄ΠΈΡΡΠ° ΠΊΠΎΠΌΠΏΠ°ΡΠΈΠ±ΠΈΠ»Π½ΠΈ ΡΠΎ Amazon S3, Google Cloud Storage ΠΈ Azure Blob Storage. ΠΠΎΠΆΠ½ΠΎ Π΅ Π΄Π° ΡΠ΅ ΡΠΊΠ»Π°Π΄ΠΈΡΠ°Π°Ρ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ Π²ΠΎ ΡΠΈΡΡΠΈΡΠ°Π½Π° ΡΠΎΡΠΌΠ°. ΠΠ° ΡΠΊΠ»Π°Π΄ΠΈΡΠ°ΡΠ΅ Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ ΠΈ ΠΌΠ΅ΡΠ°ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ Π½Π° ΠΊΠΎΡΠΈΡΠ½ΠΈΠΊΠΎΡ, ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠ°Ρ DBMS ΡΠΎ ΠΏΠΎΠ΄Π΄ΡΡΠΊΠ° Π·Π° SQL ΠΈΠ»ΠΈ ΡΠΎΡΠΌΠ°Ρ Π½Π° ΠΊΠ»ΡΡ/Π²ΡΠ΅Π΄Π½ΠΎΡΡ, ΠΊΠ°ΠΊΠΎ ΡΡΠΎ ΡΠ΅ PostgreSQL, MySQL, SQLite, CockroachDB ΠΈΠ»ΠΈ bbolt, Π½ΠΎ ΠΈΡΡΠΎ ΡΠ°ΠΊΠ° Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π° ΡΠ΅ ΡΠΊΠ»Π°Π΄ΠΈΡΠ°Π°Ρ ΠΌΠ΅ΡΠ°ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ Π²ΠΎ RAM ΠΌΠ΅ΠΌΠΎΡΠΈΡΠ°, ΡΡΠΎ Π½Π΅ Π±Π°ΡΠ° ΠΏΠΎΠ²ΡΠ·ΡΠ²Π°ΡΠ΅ Π½Π°Π΄Π²ΠΎΡΠ΅ΡΠ½Π° Π±Π°Π·Π° Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ. ΠΠΎΠ΄ΠΎΡ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠΎΡ Π΅ Π½Π°ΠΏΠΈΡΠ°Π½ Π²ΠΎ Go ΠΈ ΡΠ΅ Π΄ΠΈΡΡΡΠΈΠ±ΡΠΈΡΠ° ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½ΡΠ°ΡΠ° GPLv3.
ΠΠΎ Π½ΠΎΠ²Π°ΡΠ° Π²Π΅ΡΠ·ΠΈΡΠ°:
- ΠΠΎΠ΄Π°Π΄Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΊΠ° Π·Π° Π΄Π²ΠΎΡΠ°ΠΊΡΠΎΡΠ½Π° Π°Π²ΡΠ΅Π½ΡΠΈΠΊΠ°ΡΠΈΡΠ° ΡΠΎ ΠΊΠΎΡΠΈΡΡΠ΅ΡΠ΅ Π½Π° Π²ΡΠ΅ΠΌΠ΅Π½ΡΠΊΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈ Π΅Π΄Π½ΠΎΠΊΡΠ°ΡΠ½ΠΈ Π»ΠΎΠ·ΠΈΠ½ΠΊΠΈ (TOTP, RFC 6238). ΠΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈΡΠ΅ ΠΊΠ°ΠΊΠΎ ΡΡΠΎ ΡΠ΅ Authy ΠΈ Google Authenticator ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠ°Ρ ΠΊΠ°ΠΊΠΎ Π°Π²ΡΠ΅Π½ΡΠΈΠΊΠ°ΡΠΎΡΠΈ.
- Π‘ΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠ° Π·Π° ΠΏΡΠΎΡΠΈΡΡΠ²Π°ΡΠ΅ Π½Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡΠ° ΠΏΡΠ΅ΠΊΡ ΠΏΡΠΈΠΊΠ»ΡΡΠΎΡΠΈ Π΅ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠΈΡΠ°Π½Π°. ΠΠ΅ΡΡ Π²Π΅ΡΠ΅ Π΄ΠΎΡΡΠ°ΠΏΠ½ΠΈΡΠ΅ ΠΏΡΠΈΠΊΠ»ΡΡΠΎΡΠΈ: ΠΏΠΎΠ΄Π΄ΡΡΠΊΠ° Π·Π° Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΡΡΠ»ΡΠ³ΠΈ Π·Π° ΡΠ°Π·ΠΌΠ΅Π½Π° Π½Π° ΠΊΠ»ΡΡΠ΅Π²ΠΈ, ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡΠ° Π½Π° ΡΠ΅ΠΌΠ°ΡΠ° ΠΠ±ΡΠ°Π²ΠΈ/ΠΡΠ΅ΡΠΏΠ»Π°ΡΠΈ, ΡΠΊΠ»Π°Π΄ΠΈΡΠ°ΡΠ΅ ΠΈ ΠΏΡΠ΅Π±Π°ΡΡΠ²Π°ΡΠ΅ Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π·Π° Π½Π°ΡΡΠ°Π½ΠΈ Π²ΠΎ DBMS.
- REST API Π΄ΠΎΠ΄Π°Π΄Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΊΠ° Π·Π° Π°Π²ΡΠ΅Π½ΡΠΈΠΊΠ°ΡΠΈΡΠ° ΡΠΎ ΠΏΠΎΠΌΠΎΡ Π½Π° ΠΊΠ»ΡΡΠ΅Π²ΠΈ, ΠΏΠΎΠΊΡΠ°Ρ ΡΠΎΠΊΠ΅Π½ΠΈΡΠ΅ JWT, Π° ΠΈΡΡΠΎ ΡΠ°ΠΊΠ° ΠΎΠ±Π΅Π·Π±Π΅Π΄ΡΠ²Π° ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΠΏΠΎΡΡΠ°Π²ΡΠ²Π°ΡΠ΅ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠΈ Π·Π° ΡΠΊΠ»Π°Π΄ΠΈΡΠ°ΡΠ΅ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ (ΠΎΠ³ΡΠ°Π½ΠΈΡΡΠ²Π°ΡΠ΅ Π½Π° ΠΆΠΈΠ²ΠΎΡΠ½ΠΈΠΎΡ Π²Π΅ΠΊ Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈΡΠ΅) Π²ΠΎ ΠΎΠ΄Π½ΠΎΡ Π½Π° ΠΏΠΎΠ΅Π΄ΠΈΠ½Π΅ΡΠ½ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΠΌΠΈ ΠΈ ΠΊΠΎΡΠΈΡΠ½ΠΈΡΠΈ. Π‘ΡΠ°Π½Π΄Π°ΡΠ΄Π½ΠΎ, Swagger UI Π΅ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ Π·Π° Π½Π°Π²ΠΈΠ³Π°ΡΠΈΡΠ° Π²ΠΎ ΡΠ΅ΡΡΡΡΠΈΡΠ΅ Π½Π° API Π±Π΅Π· ΠΊΠΎΡΠΈΡΡΠ΅ΡΠ΅ Π½Π° Π½Π°Π΄Π²ΠΎΡΠ΅ΡΠ½ΠΈ Π°Π»Π°ΡΠΊΠΈ.
- ΠΠΎ Π²Π΅Π±-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΡΡΠΎΡ Π΅ Π΄ΠΎΠ΄Π°Π΄Π΅Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΊΠ° Π·Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π·Π° ΠΏΠΈΡΡΠ²Π°ΡΠ΅ (ΠΏΠΎΡΡΠ°Π²ΡΠ²Π°ΡΠ΅ Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈ, ΠΊΡΠ΅ΠΈΡΠ°ΡΠ΅ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΠΌΠΈ, ΠΏΡΠ΅ΠΈΠΌΠ΅Π½ΡΠ²Π°ΡΠ΅ ΠΈ Π±ΡΠΈΡΠ΅ΡΠ΅), ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠΈΡΠ°Π½Π° Π΅ ΠΌΠΎΠΆΠ½ΠΎΡΡΠ° Π·Π° ΡΠ΅ΡΠ΅ΡΠΈΡΠ°ΡΠ΅ Π»ΠΎΠ·ΠΈΠ½ΠΊΠ° ΡΠΎ ΠΏΠΎΡΠ²ΡΠ΄Π° ΠΏΡΠ΅ΠΊΡ Π΅-ΠΏΠΎΡΡΠ°, ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠ°Π½ Π΅ ΡΡΠ΅Π΄ΡΠ²Π°Ρ Π½Π° ΡΠ΅ΠΊΡΡΡΠ°Π»Π½ΠΈ Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈ ΠΈ ΠΏΡΠ΅Π³Π»Π΅Π΄ΡΠ²Π°Ρ Π½Π° PDF Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈ. ΠΠΎΠ΄Π°Π΄Π΅Π½Π° Π΅ ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΠΊΡΠ΅ΠΈΡΠ°ΡΠ΅ HTTP-Π²ΡΡΠΊΠΈ Π·Π° Π΄Π° ΠΈΠΌ ΡΠ΅ ΠΎΠ±Π΅Π·Π±Π΅Π΄ΠΈ Π½Π° Π½Π°Π΄Π²ΠΎΡΠ΅ΡΠ½ΠΈΡΠ΅ ΠΊΠΎΡΠΈΡΠ½ΠΈΡΠΈ ΠΏΡΠΈΡΡΠ°ΠΏ Π΄ΠΎ ΠΏΠΎΠ΅Π΄ΠΈΠ½Π΅ΡΠ½ΠΈ Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈ ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΠΌΠΈ, ΡΠΎ ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΠΏΠΎΡΡΠ°Π²ΡΠ²Π°ΡΠ΅ ΠΏΠΎΡΠ΅Π±Π½Π° Π»ΠΎΠ·ΠΈΠ½ΠΊΠ° Π·Π° ΠΏΡΠΈΡΡΠ°ΠΏ, ΠΎΠ³ΡΠ°Π½ΠΈΡΡΠ²Π°ΡΠ΅ Π½Π° IP-Π°Π΄ΡΠ΅ΡΠΈΡΠ΅, ΠΏΠΎΡΡΠ°Π²ΡΠ²Π°ΡΠ΅ Π½Π° ΠΆΠΈΠ²ΠΎΡΠ½ΠΈΠΎΡ Π²Π΅ΠΊ Π½Π° Π²ΡΡΠΊΠ°ΡΠ° ΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΡΠ²Π°ΡΠ΅ Π½Π° Π±ΡΠΎΡΠΎΡ Π½Π° ΠΏΡΠ΅Π·Π΅ΠΌΠ°ΡΠ°.
ΠΠ»Π°Π²Π½ΠΈΡΠ΅ ΠΊΠ°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ Π½Π° SFTPGo:
- Π‘Π΅ΠΊΠΎΡΠ° ΡΠΌΠ΅ΡΠΊΠ° Π΅ chrooted, ΠΎΠ³ΡΠ°Π½ΠΈΡΡΠ²Π°ΡΡΠΈ Π³ΠΎ ΠΏΡΠΈΡΡΠ°ΠΏΠΎΡ Π΄ΠΎ Π΄ΠΎΠΌΠ°ΡΠ½ΠΈΠΎΡ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΠΌ Π½Π° ΠΊΠΎΡΠΈΡΠ½ΠΈΠΊΠΎΡ. ΠΠΎΠΆΠ½ΠΎ Π΅ Π΄Π° ΡΠ΅ ΠΊΡΠ΅ΠΈΡΠ°Π°Ρ Π²ΠΈΡΡΡΠ΅Π»Π½ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΠΌΠΈ ΠΊΠΎΠΈ ΠΏΠΎΠ²ΠΈΠΊΡΠ²Π°Π°Ρ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ Π½Π°Π΄Π²ΠΎΡ ΠΎΠ΄ Π΄ΠΎΠΌΠ°ΡΠ½ΠΈΠΎΡ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΠΌ Π½Π° ΠΊΠΎΡΠΈΡΠ½ΠΈΠΊΠΎΡ.
- Π‘ΠΌΠ΅ΡΠΊΠΈΡΠ΅ ΡΠ΅ ΡΡΠ²Π°Π°Ρ Π²ΠΎ Π±Π°Π·Π° Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ Π·Π° Π²ΠΈΡΡΡΠ΅Π»Π½ΠΈ ΠΊΠΎΡΠΈΡΠ½ΠΈΡΠΈ ΠΊΠΎΡΠ° Π½Π΅ ΡΠ΅ ΠΏΡΠ΅ΠΊΠ»ΠΎΠΏΡΠ²Π° ΡΠΎ Π±Π°Π·Π°ΡΠ° Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ Π·Π° ΠΊΠΎΡΠΈΡΠ½ΠΈΡΠΈ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠΎΡ. SQLite, MySQL, PostgreSQL, bbolt ΠΈ ΡΠΊΠ»Π°Π΄ΠΈΡΠ°ΡΠ΅ Π²ΠΎ ΠΌΠ΅ΠΌΠΎΡΠΈΡΠ°ΡΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠ°Ρ Π·Π° ΡΠΊΠ»Π°Π΄ΠΈΡΠ°ΡΠ΅ Π½Π° Π±Π°Π·ΠΈ Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ Π½Π° ΠΊΠΎΡΠΈΡΠ½ΠΈΡΠΈ. ΠΠ±Π΅Π·Π±Π΅Π΄Π΅Π½ΠΈ ΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π·Π° ΠΌΠ°ΠΏΠΈΡΠ°ΡΠ΅ Π½Π° Π²ΠΈΡΡΡΠ΅Π»Π½ΠΈ ΠΈ ΡΠΈΡΡΠ΅ΠΌΡΠΊΠΈ ΡΠΌΠ΅ΡΠΊΠΈ - ΠΌΠΎΠΆΠ½ΠΎ Π΅ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ ΠΈΠ»ΠΈ ΡΠ»ΡΡΠ°ΡΠ½ΠΎ ΠΌΠ°ΠΏΠΈΡΠ°ΡΠ΅ (Π΅Π΄Π΅Π½ ΠΊΠΎΡΠΈΡΠ½ΠΈΠΊ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠΎΡ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΌΠ°ΠΏΠΈΡΠ° Π½Π° Π΄ΡΡΠ³ Π²ΠΈΡΡΡΠ΅Π»Π΅Π½ ΠΊΠΎΡΠΈΡΠ½ΠΈΠΊ).
- ΠΠΎΠ΄Π΄ΡΠΆΠ°Π½Π° Π΅ Π°Π²ΡΠ΅Π½ΡΠΈΠΊΠ°ΡΠΈΡΠ° ΡΠΎ ΠΊΠΎΡΠΈΡΡΠ΅ΡΠ΅ Π½Π° ΡΠ°Π²Π½ΠΈ ΠΊΠ»ΡΡΠ΅Π²ΠΈ, SSH ΠΊΠ»ΡΡΠ΅Π²ΠΈ ΠΈ Π»ΠΎΠ·ΠΈΠ½ΠΊΠΈ (Π²ΠΊΠ»ΡΡΡΠ²Π°ΡΡΠΈ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½Π° Π°Π²ΡΠ΅Π½ΡΠΈΠΊΠ°ΡΠΈΡΠ° ΡΠΎ Π»ΠΎΠ·ΠΈΠ½ΠΊΠ° Π²Π½Π΅ΡΠ΅Π½Π° ΠΎΠ΄ ΡΠ°ΡΡΠ°ΡΡΡΠ°ΡΠ°). ΠΠΎΠΆΠ½ΠΎ Π΅ Π΄Π° ΡΠ΅ ΠΏΠΎΠ²ΡΠ·Π°Ρ Π½Π΅ΠΊΠΎΠ»ΠΊΡ ΠΊΠ»ΡΡΠ΅Π²ΠΈ Π·Π° ΡΠ΅ΠΊΠΎΡ ΠΊΠΎΡΠΈΡΠ½ΠΈΠΊ, ΠΊΠ°ΠΊΠΎ ΠΈ Π΄Π° ΡΠ΅ ΠΏΠΎΡΡΠ°Π²ΠΈ Π°Π²ΡΠ΅Π½ΡΠΈΠΊΠ°ΡΠΈΡΠ° ΡΠΎ ΠΏΠΎΠ²Π΅ΡΠ΅ ΡΠ°ΠΊΡΠΎΡΠΈ ΠΈ ΠΏΠΎΠ²Π΅ΡΠ΅ ΡΠ΅ΠΊΠΎΡΠΈ (Π½Π° ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΠΎ ΡΠ»ΡΡΠ°Ρ Π½Π° ΡΡΠΏΠ΅ΡΠ½Π° Π°Π²ΡΠ΅Π½ΡΠΈΠΊΠ°ΡΠΈΡΠ° Π½Π° ΠΊΠ»ΡΡΠΎΡ, ΠΌΠΎΠΆΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Π½ΠΎ Π΄Π° ΡΠ΅ ΠΏΠΎΠ±Π°ΡΠ° Π»ΠΎΠ·ΠΈΠ½ΠΊΠ°).
- ΠΠ° ΡΠ΅ΠΊΠΎΡ ΠΊΠΎΡΠΈΡΠ½ΠΈΠΊ, ΠΌΠΎΠΆΠ½ΠΎ Π΅ Π΄Π° ΡΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Π°Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΈ Π·Π° Π°Π²ΡΠ΅Π½ΡΠΈΠΊΠ°ΡΠΈΡΠ°, ΠΊΠ°ΠΊΠΎ ΠΈ Π΄Π° ΡΠ΅ Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°Π°Ρ ΡΠΎΠΏΡΡΠ²Π΅Π½ΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΈ, ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠΈΡΠ°Π½ΠΈ ΡΠΎ ΠΏΠΎΠ²ΠΈΠΊΡΠ²Π°ΡΠ΅ Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ Π·Π° Π½Π°Π΄Π²ΠΎΡΠ΅ΡΠ½ΠΈ Π°Π²ΡΠ΅Π½ΡΠΈΠΊΠ°ΡΠΎΡΠΈ (Π½Π° ΠΏΡΠΈΠΌΠ΅Ρ, Π·Π° Π°Π²ΡΠ΅Π½ΡΠΈΠΊΠ°ΡΠΈΡΠ° ΠΏΡΠ΅ΠΊΡ LDAP) ΠΈΠ»ΠΈ ΠΈΡΠΏΡΠ°ΡΠ°ΡΠ΅ Π±Π°ΡΠ°ΡΠ° ΠΏΡΠ΅ΠΊΡ HTTP API.
- ΠΠΎΠΆΠ½ΠΎ Π΅ Π΄Π° ΡΠ΅ ΠΏΠΎΠ²ΡΠ·Π°Ρ Π½Π°Π΄Π²ΠΎΡΠ΅ΡΠ½ΠΈ ΡΠ°ΠΊΡΠ²Π°ΡΠΈ ΠΈΠ»ΠΈ ΠΏΠΎΠ²ΠΈΡΠΈ Π½Π° HTTP API Π·Π° Π΄ΠΈΠ½Π°ΠΌΠΈΡΠΊΠ° ΠΏΡΠΎΠΌΠ΅Π½Π° Π½Π° ΠΊΠΎΡΠΈΡΠ½ΠΈΡΠΊΠΈΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ, ΠΏΠΎΠ²ΠΈΠΊΠ°Π½ΠΈ ΠΏΡΠ΅Π΄ ΠΊΠΎΡΠΈΡΠ½ΠΈΠΊΠΎΡ Π΄Π° ΡΠ΅ Π½Π°ΡΠ°Π²ΠΈ. ΠΠΎΠ΄Π΄ΡΠΆΠ°Π½ΠΎ Π΅ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½ΠΎ ΠΊΡΠ΅ΠΈΡΠ°ΡΠ΅ ΠΊΠΎΡΠΈΡΠ½ΠΈΡΠΈ ΠΏΡΠΈ ΠΏΠΎΠ²ΡΠ·ΡΠ²Π°ΡΠ΅.
- ΠΠΎΠ΄Π΄ΡΠΆΡΠ²Π° ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡΠ°Π»Π½ΠΈ ΠΊΠ²ΠΎΡΠΈ Π·Π° Π³ΠΎΠ»Π΅ΠΌΠΈΠ½Π°ΡΠ° Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈΡΠ΅ ΠΈ Π±ΡΠΎΡΠΎΡ Π½Π° Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈ.
- ΠΠΎΠ΄Π΄ΡΡΠΊΠ° Π·Π° ΠΎΠ³ΡΠ°Π½ΠΈΡΡΠ²Π°ΡΠ΅ Π½Π° ΠΏΡΠΎΠΏΡΡΠ½ΠΈΠΎΡ ΠΎΠΏΡΠ΅Π³ ΡΠΎ ΠΏΠΎΡΠ΅Π±Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΠ° Π½Π° ΠΎΠ³ΡΠ°Π½ΠΈΡΡΠ²Π°ΡΠ° Π·Π° Π΄ΠΎΡΠ΄ΠΎΠ²Π΅Π½ ΠΈ ΠΏΠΎΡΠ΄ΠΎΠ²Π΅Π½ ΡΠΎΠΎΠ±ΡΠ°ΡΠ°Ρ, ΠΊΠ°ΠΊΠΎ ΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΡΠ²Π°ΡΠ° Π½Π° Π±ΡΠΎΡΠΎΡ Π½Π° ΠΈΡΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²ΡΡΠΊΠΈ.
- ΠΠ»Π°ΡΠΊΠΈ Π·Π° ΠΊΠΎΠ½ΡΡΠΎΠ»Π° Π½Π° ΠΏΡΠΈΡΡΠ°ΠΏ ΠΊΠΎΠΈ ΡΠ°Π±ΠΎΡΠ°Ρ Π²ΠΎ ΠΎΠ΄Π½ΠΎΡ Π½Π° ΠΊΠΎΡΠΈΡΠ½ΠΈΠΊ ΠΈΠ»ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΠΌ (ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π³ΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΡΠ΅ Π³Π»Π΅Π΄Π°ΡΠ΅ΡΠΎ ΡΠΏΠΈΡΠΎΠΊ Π½Π° Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈ, Π΄Π° Π·Π°Π±ΡΠ°Π½ΠΈΡΠ΅ ΠΏΠΎΡΡΠ°Π²ΡΠ²Π°ΡΠ΅, ΠΏΡΠ΅Π·Π΅ΠΌΠ°ΡΠ΅, ΠΏΡΠ΅ΠΏΠΈΡΡΠ²Π°ΡΠ΅, Π±ΡΠΈΡΠ΅ΡΠ΅, ΠΏΡΠ΅ΠΈΠΌΠ΅Π½ΡΠ²Π°ΡΠ΅ ΠΈΠ»ΠΈ ΠΌΠ΅Π½ΡΠ²Π°ΡΠ΅ Π½Π° ΠΏΡΠ°Π²Π°ΡΠ° Π·Π° ΠΏΡΠΈΡΡΠ°ΠΏ, Π΄Π° Π·Π°Π±ΡΠ°Π½ΠΈΡΠ΅ ΡΠΎΠ·Π΄Π°Π²Π°ΡΠ΅ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΠΌΠΈ ΠΈΠ»ΠΈ ΡΠΈΠΌΠ±ΠΎΠ»ΠΈΡΠ½ΠΈ Π²ΡΡΠΊΠΈ ΠΈΡΠ½.).
- ΠΠ° ΡΠ΅ΠΊΠΎΡ ΠΊΠΎΡΠΈΡΠ½ΠΈΠΊ, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°ΡΠ΅ ΠΏΠΎΠ΅Π΄ΠΈΠ½Π΅ΡΠ½ΠΈ ΠΌΡΠ΅ΠΆΠ½ΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΡΠ²Π°ΡΠ°, Π½Π° ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π΄ΠΎΠ·Π²ΠΎΠ»ΠΈΡΠ΅ Π½Π°ΡΠ°Π²ΡΠ²Π°ΡΠ° ΡΠ°ΠΌΠΎ ΠΎΠ΄ ΠΎΠ΄ΡΠ΅Π΄Π΅Π½ΠΈ IP ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΠΌΡΠ΅ΠΆΠΈ.
- ΠΠΎΠ΄Π΄ΡΠΆΡΠ²Π° ΠΏΠΎΠ²ΡΠ·ΡΠ²Π°ΡΠ΅ Π½Π° ΡΠΈΠ»ΡΡΠΈ Π·Π° ΠΏΡΠ΅Π·Π΅ΠΌΠ΅Π½Π° ΡΠΎΠ΄ΡΠΆΠΈΠ½Π° Π²ΠΎ ΠΎΠ΄Π½ΠΎΡ Π½Π° ΠΏΠΎΠ΅Π΄ΠΈΠ½Π΅ΡΠ½ΠΈ ΠΊΠΎΡΠΈΡΠ½ΠΈΡΠΈ ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΠΌΠΈ (Π½Π° ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π±Π»ΠΎΠΊΠΈΡΠ°ΡΠ΅ ΠΏΡΠ΅Π·Π΅ΠΌΠ°ΡΠ΅ Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈ ΡΠΎ ΠΎΠ΄ΡΠ΅Π΄Π΅Π½Π° Π΅ΠΊΡΡΠ΅Π½Π·ΠΈΡΠ°).
- ΠΠΎΠΆΠ½ΠΎ Π΅ Π΄Π° ΡΠ΅ ΠΏΠΎΠ²ΡΠ·Π°Ρ ΡΠ°ΠΊΡΠ²Π°ΡΠΈ ΠΊΠΎΠΈ ΡΠ΅ Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π°Ρ Π·Π° Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΠΎ Π΄Π°ΡΠΎΡΠ΅ΠΊΠ° (ΠΏΡΠ΅Π·Π΅ΠΌΠ°ΡΠ΅, Π±ΡΠΈΡΠ΅ΡΠ΅, ΠΏΡΠ΅ΠΈΠΌΠ΅Π½ΡΠ²Π°ΡΠ΅ ΠΈΡΠ½.). ΠΠΎΠΊΡΠ°Ρ ΡΠ°ΠΊΡΠ²Π°ΡΠΈΡΠ΅ ΡΠΎ ΠΏΠΎΠ²ΠΈΡΠΈ, ΠΏΠΎΠ΄Π΄ΡΠΆΠ°Π½ΠΎ Π΅ ΠΈ ΠΈΡΠΏΡΠ°ΡΠ°ΡΠ΅ ΠΈΠ·Π²Π΅ΡΡΡΠ²Π°ΡΠ° Π²ΠΎ ΡΠΎΡΠΌΠ° Π½Π° HTTP Π±Π°ΡΠ°ΡΠ°.
- ΠΠ²ΡΠΎΠΌΠ°ΡΡΠΊΠΎ ΠΏΡΠ΅ΠΊΠΈΠ½ΡΠ²Π°ΡΠ΅ Π½Π° Π½Π΅Π°ΠΊΡΠΈΠ²Π½ΠΈ Π²ΡΡΠΊΠΈ.
- ΠΠΆΡΡΠΈΡΠ°ΡΠ΅ Π½Π° Π°ΡΠΎΠΌΡΠΊΠ°ΡΠ° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΠ° Π±Π΅Π· ΠΏΡΠ΅ΠΊΠΈΠ½ Π½Π° Π²ΡΡΠΊΠΈΡΠ΅.
- ΠΠ±Π΅Π·Π±Π΅Π΄ΡΠ²Π°ΡΠ΅ ΠΌΠ΅ΡΡΠΈΠΊΠ° Π·Π° ΡΠ»Π΅Π΄Π΅ΡΠ΅ Π²ΠΎ ΠΡΠΎΠΌΠ΅ΡΠ΅Ρ.
- ΠΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΡ HAProxy PROXY Π΅ ΠΏΠΎΠ΄Π΄ΡΠΆΠ°Π½ Π·Π° ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ°ΡΠ΅ Π½Π° load balancing ΠΈΠ»ΠΈ ΠΏΡΠΎΠΊΡΠΈ ΠΊΠΎΠ½Π΅ΠΊΡΠΈΠΈ ΡΠΎ SFTP/SCP ΡΡΠ»ΡΠ³ΠΈΡΠ΅ Π±Π΅Π· Π³ΡΠ±Π΅ΡΠ΅ Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π·Π° ΠΈΠ·Π²ΠΎΡΠ½Π°ΡΠ° IP Π°Π΄ΡΠ΅ΡΠ° Π½Π° ΠΊΠΎΡΠΈΡΠ½ΠΈΠΊΠΎΡ.
- REST API Π·Π° ΡΠΏΡΠ°Π²ΡΠ²Π°ΡΠ΅ ΡΠΎ ΠΊΠΎΡΠΈΡΠ½ΠΈΡΠΈ ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΠΌΠΈ, ΠΊΡΠ΅ΠΈΡΠ°ΡΠ΅ ΡΠ΅Π·Π΅ΡΠ²Π½ΠΈ ΠΊΠΎΠΏΠΈΠΈ ΠΈ Π³Π΅Π½Π΅ΡΠΈΡΠ°ΡΠ΅ ΠΈΠ·Π²Π΅ΡΡΠ°ΠΈ Π·Π° Π°ΠΊΡΠΈΠ²Π½ΠΈ Π²ΡΡΠΊΠΈ.
- ΠΠ΅Π± ΠΈΠ½ΡΠ΅ΡΡΠ΅ΡΡ (http://127.0.0.1:8080/web) Π·Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΠ° ΠΈ ΡΠ»Π΅Π΄Π΅ΡΠ΅ (ΠΏΠΎΠ΄Π΄ΡΠΆΠ°Π½Π° Π΅ ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΠ° ΠΏΡΠ΅ΠΊΡ ΡΠ΅Π΄ΠΎΠ²Π½ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΠΊΠΈ Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈ).
- ΠΠΎΠΆΠ½ΠΎΡΡ Π·Π° Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°ΡΠ΅ Π½Π° ΠΏΠΎΡΡΠ°Π²ΠΊΠΈΡΠ΅ Π²ΠΎ ΡΠΎΡΠΌΠ°ΡΠΈ JSON, TOML, YAML, HCL ΠΈ env-Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈ.
- ΠΠΎΠ΄Π΄ΡΡΠΊΠ° Π·Π° ΠΏΠΎΠ²ΡΠ·ΡΠ²Π°ΡΠ΅ ΠΏΡΠ΅ΠΊΡ 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.
- Π‘ΠΊΠ»Π°Π΄ΠΈΡΠ°ΡΠ΅ Π»ΠΎΠ³ΠΎΠ²ΠΈ Π²ΠΎ JSON ΡΠΎΡΠΌΠ°Ρ.
- ΠΠΎΠ΄Π΄ΡΡΠΊΠ° Π·Π° Π²ΠΈΡΡΡΠ΅Π»Π½ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΠΌΠΈ (Π½Π° ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠΎΠ΄ΡΠΆΠΈΠ½Π°ΡΠ° Π½Π° ΠΎΠ΄ΡΠ΅Π΄Π΅Π½ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΠΌ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΡΠ΅ΡΠ²ΠΈΡΠ° Π½Π΅ ΠΎΠ΄ Π»ΠΎΠΊΠ°Π»Π½ΠΈΠΎΡ FS, ΡΡΠΊΡ ΠΎΠ΄ Π½Π°Π΄Π²ΠΎΡΠ΅ΡΠ½ΠΎ ΡΠΊΠ»Π°Π΄ΠΈΡΠ°ΡΠ΅ ΠΎΠ±Π»Π°ΠΊ).
- Cryptfs ΠΏΠΎΠ΄Π΄ΡΠΆΡΠ²Π° ΡΡΠ°Π½ΡΠΏΠ°ΡΠ΅Π½ΡΠ½ΠΎ ΡΠΈΡΡΠΈΡΠ°ΡΠ΅ Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ ΠΏΡΠΈ Π·Π°ΡΡΠ²ΡΠ²Π°ΡΠ΅ Π²ΠΎ FS ΠΈ Π΄Π΅ΡΠΈΡΡΠΈΡΠ°ΡΠ΅ ΠΏΡΠΈ Π²ΡΠ°ΡΠ°ΡΠ΅.
- ΠΠΎΠ΄Π΄ΡΡΠΊΠ° Π·Π° ΠΏΡΠ΅ΠΏΡΠ°ΡΠ°ΡΠ΅ Π²ΡΡΠΊΠΈ Π΄ΠΎ Π΄ΡΡΠ³ΠΈ SFTP ΡΠ΅ΡΠ²Π΅ΡΠΈ.
- Π‘ΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ Π΄Π° ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ SFTPGo ΠΊΠ°ΠΊΠΎ ΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌ SFTP Π·Π° OpenSSH.
- Π‘ΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ Π΄Π° ΡΠ΅ ΡΠΊΠ»Π°Π΄ΠΈΡΠ°Π°Ρ ΠΈΠ½Π³Π΅ΡΠ΅Π½ΡΠΈΠΈΡΠ΅ ΠΈ Π΄ΠΎΠ²Π΅ΡΠ»ΠΈΠ²ΠΈΡΠ΅ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ Π²ΠΎ ΡΠΈΡΡΠΈΡΠ°Π½Π° ΡΠΎΡΠΌΠ° ΠΊΠΎΡΠΈΡΡΠ΅ΡΡΠΈ ΡΠ΅ΡΠ²Π΅ΡΠΈ KMS (Π£ΡΠ»ΡΠ³ΠΈ Π·Π° ΡΠΏΡΠ°Π²ΡΠ²Π°ΡΠ΅ ΡΠΎ ΠΊΠ»ΡΡΠ΅Π²ΠΈ), ΠΊΠ°ΠΊΠΎ ΡΡΠΎ ΡΠ΅ Vault, GCP KMS, AWS KMS.
ΠΠ·Π²ΠΎΡ: opennet.ru