Lëshimi i parë i rëndësishëm i serverit , që lejon organizimin e aksesit të largët në skedarë përmes protokollit SFTP, SCP/SSH dhe Rsync. SFTPGo gjithashtu mund të përdoret për të ofruar akses në depo Git duke përdorur protokollin SSH. Të dhënat mund të merren si nga sistemi lokal i skedarëve, ashtu edhe nga ruajtësit e jashtëm, të përshtatshëm me Amazon S3 dhe Google Cloud Storage. Për ruajtjen e bazës së përdoruesve dhe meta të dhënave përdoren DB me mbështetje SQL apo formate çelës/valshe, të tilla si PostgreSQL 9.4+, MySQL 5.6+, SQLite 3.x ose . Ka gjithashtu një mod për ruajtjen e meta të dhënave në memorje, që nuk kërkon lidhje me një DB të jashtme. Kodi i projektit është shkruar në gjuhën Go dhe në licencë GPLv3.
Karakteristikat kryesore:
- PĂ«r çdo llogari aplikohet izolimi chroot, i cili kufizon aksesin nĂ« katalogun e pĂ«rdoruesit. ĂshtĂ« e mundur tĂ« krijohen katalogĂ« virtualĂ« qĂ« referohen nĂ« tĂ« dhĂ«nat jashtĂ« katalogut tĂ« pĂ«rdoruesit.
- LlogaritĂ« ruhen nĂ« njĂ« bazĂ« virtuale tĂ« pĂ«rdoruesve, e cila nuk ndĂ«rthuret me bazĂ«n e tĂ« dhĂ«nave sistemore. PĂ«r ruajtjen e bazĂ«s sĂ« tĂ« dhĂ«nave tĂ« pĂ«rdoruesve mund tĂ« pĂ«rdoren SQLite, MySQL, PostgreSQL, bbolt dhe ruajtje nĂ« memorje. Sigurohen mjete pĂ«r pĂ«rputhjen e llogarive virtuale dhe atyre sistemore â Ă«shtĂ« e mundur pĂ«rputhja direkte ose arbitrare (njĂ« pĂ«rdorues i sistemit mund tĂ« jetĂ« i pĂ«rputhur me njĂ« pĂ«rdorues tjetĂ«r virtual).
- Përkrahja e autentikimit me çelësa publikë, çelësa SSH dhe fjalëkalime (përfshirë autentikimin interaktiv me hyrje të fjalëkalimit nga tastiera). Mund të lidhen disa çelësa për çdo përdorues, si dhe të konfigurohet autentikimi me shumë faktorë dhe shumë hapa (për shembull, në rastin e një autentikimi të suksesshëm me çelës, mund të kërkohet një fjalëkalim shtesë).
- Për çdo përdorues është e mundur të konfigurohen metoda të ndryshme autentikimi, si dhe të përcaktohen metoda të veta që realizohen përmes thirrjes së programeve të jashtme autentikues (për shembull, për autentikimin përmes LDAP) ose dërgimit të kërkesave përmes HTTP API.
- ĂshtĂ« e mundur lidhja me pĂ«rpunues tĂ« jashtĂ«m ose thirrje HTTP API pĂ«r ndryshimin dinamik tĂ« parametrave tĂ« pĂ«rdoruesit, qĂ« thirren para hyrjes sĂ« pĂ«rdoruesit. MbĂ«shtetet i pĂ«rdoruesve gjatĂ« lidhjes.
- Përkrahja e kuotave individuale për madhësinë e të dhënave dhe numrin e skedarëve.
- Përkrahja e kufizimit të kapacitetit me konfigurim të veçantë për kufizimet e trafikut hyrës dhe dalës, si dhe kufizimeve për numrin e lidhjeve të njëkohshme.
- Mjete për ndarjen e aksesit, që veprojnë në lidhje me përdoruesin ose katalogun (mund të kufizohet shikimi i listës së skedarëve, të ndalohet ngarkimi, shkarkimi, rishkrimi, fshirja, rinovimi ose ndryshimi i të drejtave të aksesit, të ndalohet krijimi i katalogëve ose lidhjeve simbolike, etj.).
- Për çdo përdorues mund të përcaktohen kufizime individuale rrjeti, për shembull, mund të lejohet akses vetëm nga disa IP ose nënrrjeta të caktuara.
- Mbështetet lidhja e filtrave të përmbajtjes së ngarkuar në lidhje me përdorues të veçantë dhe katalogë (p.sh., mund të bllokoni ngarkimin e skedarëve me një prapashtesë të caktuar).
- Mundësia e lidhjes së menaxherëve që aktivizohen gjatë operacioneve të ndryshme me skedarin (ngarkim, fshirje, rinovim, etj.). Përveç thirrjes së menaxherëve, mbështetet dërgimi i njoftimeve në formën e kërkesave HTTP.
- Automatizimi i përfundimit të lidhjeve të paaktivizuara.
- Përditësimi atomar i konfigurimit pa ndërprerë lidhjet.
- e metrikave për monitorimin në Prometheus.
- Mbështetet protokolli HAProxy PROXY për organizimin e balansimit të ngarkesës ose për proksimin e lidhjeve në shërbimet SFTP/SCP pa humbur informacionin mbi IP-në origjinale të përdoruesit.
- për menaxhimin e përdoruesve dhe katalogëve, krijimin e kopjeve rezervë dhe formimin e raporteve mbi lidhjet aktive.
- (http://127.0.0.1:8080/web) për konfigurimin dhe monitorimin (mbështetet edhe konfigurimi përmes skedarëve të zakonshëm të konfigurimit).
- Mundësia e përcaktimit të konfigurimeve në formate JSON, TOML, YAML, HCL dhe envfile.
- lidhjet SSH me akses të kufizuar në komandat sistemore. P.sh., është e lejuar ekzekutimi i komandave të nevojshme për funksionimin e Git (git-receive-pack, git-upload-pack, git-upload-archive) dhe rsync, si dhe disa komanda të ndërtuara (scp, md5sum, sha*sum, cd, pwd, sftpgo-copy dhe sftpgo-remove).
- Modaliteti për ndarjen e një katalogu të përbashkët me gjenerimin automatik të të dhënave të akreditimit për lidhje, që shpallen përmes multicast DNS.
- Sistemi i përbuiltur për analizën e performancës.
- Migrim i thjeshtuar i llogarive sistemore Linux.
- e regjistrimeve në formatin JSON.
Burimi: opennet.ru
