Den første betydelige utgivelsen av serveren har skjedd , som muliggjør fjernadgang til filer ved hjelp av protokollene SFTP, SCP/SSH og Rsync. SFTPGo kan også brukes til å gi tilgang til Git-lagre ved hjelp av SSH-protokollen. Data kan leveres fra både det lokale filsystemet og fra eksterne lagringsløsninger som er kompatible med Amazon S3 og Google Cloud Storage. Brukerdata og metadata lagres i databaser som støtter SQL eller nøkkel/verdi-format, som PostgreSQL 9.4+, MySQL 5.6+, SQLite 3.x eller . Det er også en modus for lagring av metadata i minnet, som ikke krever tilkobling til en ekstern database. Prosjektkoden er skrevet i Go-språket og er lisensiert under GPLv3.
Hovedfunksjoner:
- For hver konto brukes chroot-isolasjon, som begrenser tilgangen til brukerens hjemmekatalog. Det er mulig å opprette virtuelle kataloger som refererer til data utenfor brukerens hjemmekatalog.
- Kontoene lagres i en virtuell brukerdatabase som ikke overlapper med den systemmessige brukerdatabasen. For lagring av brukerdatabasen kan man bruke SQLite, MySQL, PostgreSQL, bbolt og minnelagring. Det tilbys verktøy for å matche virtuelle og systembrukerkontoer — det er mulig med direkte eller vilkårlig matching (én systembruker kan matches med en annen virtuell bruker).
- Støtte for autentisering med offentlige nøkler, SSH-nøkler og passord (inkludert interaktiv autentisering med tastaturinngang av passord). Det er mulig å knytte flere nøkler til hver bruker, samt å konfigurere multiseksjons og flertrinnsautentisering (f.eks. kan det etter vellykket autentisering med nøkkel kreves passord i tillegg).
- For hver bruker er det mulig å konfigurere forskjellige autentiseringsmetoder, samt definere egne metoder ved å kalle eksterne autentiseringsprogrammer (f.eks. for autentisering via LDAP) eller sende forespørsel gjennom HTTP API.
- Det er mulig å koble til eksterne behandlere eller HTTP API-kall for dynamisk endring av brukerparametere, som blir kalt før brukerlogger seg på. Støtte for opprettelse av brukere ved tilkobling.
- Støtte for individuelle kvoter for datastørrelse og antall filer.
- Støtte for båndbreddebegrensning med separate innstillinger for innkommende og utgående trafikk, samt begrensninger på antall samtidige tilkoblinger.
- Rettighetsadministrasjon som kan knyttes til bruker eller katalog (kan begrense visning av filoversikter, forby opplastning, nedlasting, omdøping, fjerning, endring av rettigheter, forby oppretting av kataloger eller symbolsk lenker, osv.).
- For hver bruker kan det defineres individuelle nettverksbegrensninger, for eksempel tillate innkommende forbindelser kun fra bestemte IP-adresser eller nettverk.
- Støtte for tilkoblede filtre for opplastet innhold knyttet til bestemte brukere og kataloger (for eksempel kan opplastning av filer med bestemte filtyper blokkeres).
- Mulighet for å knytte håndterere som aktiveres ved ulike filoperasjoner (opplasting, fjerning, omdøping, osv.). I tillegg til å kalle håndterere støttes også sending av varsler i form av HTTP-forespørsel.
- Automatisk avslutning av inaktive forbindelser.
- Atomisk oppdatering av konfigurasjonen uten avbrudd i forbindelsene.
- metrikker for overvåking i Prometheus.
- Støtte for HAProxy PROXY-protokollen for organisering av belastningsfordeling eller proxying av forbindelser til SFTP/SCP tjenester uten tap av informasjon om original IP-adresse.
- for administrasjon av brukere og kataloger, opprettelse av sikkerhetskopier og generering av rapporter om aktive forbindelser.
- (http://127.0.0.1:8080/web) for konfigurasjon og overvåking (støtte for konfigurasjon via vanlige konfigurasjonsfiler er også tilgjengelig).
- Mulighet for å definere innstillinger i formatene JSON, TOML, YAML, HCL og envfile.
- tilkoblinger via SSH med begrenset tilgang til systemkommandoer. For eksempel er kjøring av kommandoer nødvendig for Git (git-receive-pack, git-upload-pack, git-upload-archive) og rsync, samt noen innebygde kommandoer (scp, md5sum, sha*sum, cd, pwd, sftpgo-copy og sftpgo-remove) tillatt.
- Mode for deling av en felles katalog med automatisk generering av påloggingsinformasjon, annonsert via multicast DNS.
- Innebygget system for ytelsesanalyse.
- Forenklet migrering av Linux-systemkontoer.
- av logger i JSON-format.
Kilde: opennet.ru
