gitextract_3usfk2f2/ ├── .cirrus.yml ├── .github/ │ ├── FUNDING.yml │ ├── ISSUE_TEMPLATE/ │ │ ├── bug_report.yml │ │ ├── config.yml │ │ └── feature_request.yml │ ├── PULL_REQUEST_TEMPLATE.md │ ├── dependabot.yml │ └── workflows/ │ ├── .editorconfig │ ├── codeql.yml │ ├── development.yml │ ├── docker.yml │ └── release.yml ├── .gitignore ├── .golangci.yml ├── CODEOWNERS ├── CODE_OF_CONDUCT.md ├── Dockerfile ├── Dockerfile.alpine ├── Dockerfile.distroless ├── LICENSE ├── NOTICE ├── README.md ├── SECURITY.md ├── crowdin.yml ├── docker/ │ └── scripts/ │ └── download-plugins.sh ├── examples/ │ ├── OTP/ │ │ └── authy/ │ │ ├── README.md │ │ ├── checkpwd/ │ │ │ ├── README.md │ │ │ ├── go.mod │ │ │ └── main.go │ │ ├── extauth/ │ │ │ ├── README.md │ │ │ ├── go.mod │ │ │ └── main.go │ │ └── keyint/ │ │ ├── README.md │ │ ├── go.mod │ │ └── main.go │ ├── backup/ │ │ ├── README.md │ │ └── backup │ ├── bulkupdate/ │ │ ├── README.md │ │ └── bulkuserupdate │ ├── convertusers/ │ │ ├── README.md │ │ └── convertusers │ ├── ldapauth/ │ │ ├── README.md │ │ ├── go.mod │ │ ├── go.sum │ │ └── main.go │ ├── ldapauthserver/ │ │ ├── README.md │ │ ├── cmd/ │ │ │ ├── root.go │ │ │ └── serve.go │ │ ├── config/ │ │ │ └── config.go │ │ ├── go.mod │ │ ├── go.sum │ │ ├── httpd/ │ │ │ ├── auth.go │ │ │ ├── httpd.go │ │ │ ├── ldapauth.go │ │ │ ├── models.go │ │ │ └── tlsutils.go │ │ ├── ldapauth.toml │ │ ├── logger/ │ │ │ ├── logger.go │ │ │ ├── request_logger.go │ │ │ └── sync_wrapper.go │ │ ├── main.go │ │ └── utils/ │ │ ├── utils.go │ │ └── version.go │ ├── php-activedirectory-http-server/ │ │ └── README.md │ └── quotascan/ │ ├── README.md │ └── scanuserquota ├── go.mod ├── go.sum ├── init/ │ ├── com.github.drakkan.sftpgo.plist │ └── sftpgo.service ├── internal/ │ ├── acme/ │ │ ├── account.go │ │ └── acme.go │ ├── bundle/ │ │ └── bundle.go │ ├── cmd/ │ │ ├── acme.go │ │ ├── gen.go │ │ ├── gencompletion.go │ │ ├── genman.go │ │ ├── initprovider.go │ │ ├── install_windows.go │ │ ├── ping.go │ │ ├── portable.go │ │ ├── portable_disabled.go │ │ ├── reload_windows.go │ │ ├── resetprovider.go │ │ ├── resetpwd.go │ │ ├── revertprovider.go │ │ ├── root.go │ │ ├── rotatelogs_windows.go │ │ ├── serve.go │ │ ├── service_windows.go │ │ ├── signals_unix.go │ │ ├── signals_windows.go │ │ ├── smtptest.go │ │ ├── start_windows.go │ │ ├── status_windows.go │ │ ├── stop_windows.go │ │ └── uninstall_windows.go │ ├── command/ │ │ ├── command.go │ │ └── command_test.go │ ├── common/ │ │ ├── actions.go │ │ ├── actions_test.go │ │ ├── clientsmap.go │ │ ├── clientsmap_test.go │ │ ├── common.go │ │ ├── common_test.go │ │ ├── connection.go │ │ ├── connection_test.go │ │ ├── dataretention.go │ │ ├── dataretention_test.go │ │ ├── defender.go │ │ ├── defender_test.go │ │ ├── defenderdb.go │ │ ├── defenderdb_test.go │ │ ├── defendermem.go │ │ ├── eventmanager.go │ │ ├── eventmanager_test.go │ │ ├── eventscheduler.go │ │ ├── httpauth.go │ │ ├── httpauth_test.go │ │ ├── protocol_test.go │ │ ├── ratelimiter.go │ │ ├── ratelimiter_test.go │ │ ├── tlsutils.go │ │ ├── tlsutils_test.go │ │ ├── transfer.go │ │ ├── transfer_test.go │ │ ├── transferschecker.go │ │ └── transferschecker_test.go │ ├── config/ │ │ ├── config.go │ │ ├── config_darwin.go │ │ ├── config_fallback.go │ │ ├── config_linux.go │ │ └── config_test.go │ ├── dataprovider/ │ │ ├── actions.go │ │ ├── admin.go │ │ ├── apikey.go │ │ ├── bolt.go │ │ ├── bolt_disabled.go │ │ ├── cachedpassword.go │ │ ├── cacheduser.go │ │ ├── configs.go │ │ ├── dataprovider.go │ │ ├── eventrule.go │ │ ├── group.go │ │ ├── iplist.go │ │ ├── memory.go │ │ ├── mysql.go │ │ ├── mysql_disabled.go │ │ ├── node.go │ │ ├── pgsql.go │ │ ├── pgsql_disabled.go │ │ ├── quotaupdater.go │ │ ├── role.go │ │ ├── scheduler.go │ │ ├── session.go │ │ ├── share.go │ │ ├── sqlcommon.go │ │ ├── sqlite.go │ │ ├── sqlite_disabled.go │ │ ├── sqlqueries.go │ │ ├── unixcrypt.go │ │ ├── unixcrypt_disabled.go │ │ └── user.go │ ├── ftpd/ │ │ ├── cryptfs_test.go │ │ ├── ftpd.go │ │ ├── ftpd_test.go │ │ ├── handler.go │ │ ├── internal_test.go │ │ ├── server.go │ │ └── transfer.go │ ├── httpclient/ │ │ └── httpclient.go │ ├── httpd/ │ │ ├── api_admin.go │ │ ├── api_configs.go │ │ ├── api_defender.go │ │ ├── api_eventrule.go │ │ ├── api_events.go │ │ ├── api_folder.go │ │ ├── api_group.go │ │ ├── api_http_user.go │ │ ├── api_iplist.go │ │ ├── api_keys.go │ │ ├── api_maintenance.go │ │ ├── api_mfa.go │ │ ├── api_quota.go │ │ ├── api_retention.go │ │ ├── api_role.go │ │ ├── api_shares.go │ │ ├── api_user.go │ │ ├── api_utils.go │ │ ├── auth_utils.go │ │ ├── file.go │ │ ├── flash.go │ │ ├── flash_test.go │ │ ├── handler.go │ │ ├── httpd.go │ │ ├── httpd_test.go │ │ ├── internal_test.go │ │ ├── middleware.go │ │ ├── oauth2.go │ │ ├── oauth2_test.go │ │ ├── oidc.go │ │ ├── oidc_test.go │ │ ├── oidcmanager.go │ │ ├── resetcode.go │ │ ├── resources.go │ │ ├── resources_embedded.go │ │ ├── server.go │ │ ├── token.go │ │ ├── web.go │ │ ├── webadmin.go │ │ ├── webclient.go │ │ ├── webtask.go │ │ └── webtask_test.go │ ├── httpdtest/ │ │ ├── httpdtest.go │ │ └── httpfsimpl.go │ ├── jwt/ │ │ ├── jwt.go │ │ └── jwt_test.go │ ├── kms/ │ │ ├── basesecret.go │ │ ├── builtin.go │ │ ├── kms.go │ │ └── local.go │ ├── logger/ │ │ ├── hclog.go │ │ ├── lego.go │ │ ├── logger.go │ │ ├── mail.go │ │ ├── request_logger.go │ │ ├── slog.go │ │ └── sync_wrapper.go │ ├── metric/ │ │ ├── metric.go │ │ └── metric_disabled.go │ ├── mfa/ │ │ ├── mfa.go │ │ ├── mfa_test.go │ │ └── totp.go │ ├── plugin/ │ │ ├── auth.go │ │ ├── ipfilter.go │ │ ├── kms.go │ │ ├── notifier.go │ │ ├── plugin.go │ │ ├── searcher.go │ │ └── util.go │ ├── service/ │ │ ├── service.go │ │ ├── service_portable.go │ │ ├── service_windows.go │ │ ├── signals_unix.go │ │ └── signals_windows.go │ ├── sftpd/ │ │ ├── cryptfs_test.go │ │ ├── handler.go │ │ ├── httpfs_test.go │ │ ├── internal_test.go │ │ ├── lister.go │ │ ├── scp.go │ │ ├── server.go │ │ ├── sftpd.go │ │ ├── sftpd_test.go │ │ ├── ssh_cmd.go │ │ └── transfer.go │ ├── smtp/ │ │ ├── oauth2.go │ │ └── smtp.go │ ├── telemetry/ │ │ ├── router.go │ │ ├── telemetry.go │ │ └── telemetry_test.go │ ├── util/ │ │ ├── errors.go │ │ ├── i18n.go │ │ ├── resources.go │ │ ├── resources_embedded.go │ │ ├── util.go │ │ ├── util_fallback.go │ │ └── util_unix.go │ ├── version/ │ │ └── version.go │ ├── vfs/ │ │ ├── azblobfs.go │ │ ├── azblobfs_disabled.go │ │ ├── cryptfs.go │ │ ├── fileinfo.go │ │ ├── filesystem.go │ │ ├── folder.go │ │ ├── gcsfs.go │ │ ├── gcsfs_disabled.go │ │ ├── httpfs.go │ │ ├── osfs.go │ │ ├── s3fs.go │ │ ├── s3fs_disabled.go │ │ ├── sftpfs.go │ │ ├── statvfs_fallback.go │ │ ├── statvfs_linux.go │ │ ├── statvfs_unix.go │ │ ├── sys_unix.go │ │ ├── sys_windows.go │ │ └── vfs.go │ └── webdavd/ │ ├── file.go │ ├── handler.go │ ├── internal_test.go │ ├── mimecache.go │ ├── server.go │ ├── webdavd.go │ └── webdavd_test.go ├── main.go ├── openapi/ │ ├── httpfs.yaml │ ├── openapi.yaml │ └── swagger-ui/ │ ├── index.css │ ├── index.html │ ├── swagger-initializer.js │ ├── swagger-ui-bundle.js │ ├── swagger-ui-standalone-preset.js │ └── swagger-ui.css ├── pkgs/ │ ├── build.sh │ ├── choco/ │ │ ├── sftpgo.nuspec │ │ └── tools/ │ │ └── ChocolateyInstall.ps1 │ ├── debian/ │ │ ├── changelog │ │ ├── compat │ │ ├── control │ │ ├── copyright │ │ ├── patches/ │ │ │ ├── config.diff │ │ │ └── series │ │ ├── postinst │ │ ├── rules │ │ ├── sftpgo-docs.docs │ │ ├── sftpgo.dirs │ │ ├── sftpgo.install │ │ ├── sftpgo.install.arm64 │ │ ├── sftpgo.install.armhf │ │ ├── sftpgo.install.ppc64el │ │ └── source/ │ │ └── format │ └── scripts/ │ ├── deb/ │ │ ├── postinstall.sh │ │ ├── postremove.sh │ │ └── preremove.sh │ └── rpm/ │ ├── postinstall │ ├── postremove │ └── preremove ├── sftpgo.json ├── static/ │ ├── assets/ │ │ ├── css/ │ │ │ └── style.bundle.css │ │ ├── js/ │ │ │ └── scripts.bundle.js │ │ └── plugins/ │ │ ├── custom/ │ │ │ ├── datatables/ │ │ │ │ ├── datatables.bundle.css │ │ │ │ └── datatables.bundle.js │ │ │ ├── flatpickr/ │ │ │ │ └── l10n/ │ │ │ │ ├── de.js │ │ │ │ ├── es.js │ │ │ │ ├── fr.js │ │ │ │ ├── it.js │ │ │ │ └── zh.js │ │ │ └── formrepeater/ │ │ │ └── formrepeater.bundle.js │ │ └── global/ │ │ ├── plugins.bundle.css │ │ └── plugins.bundle.js │ └── locales/ │ ├── de/ │ │ └── translation.json │ ├── en/ │ │ └── translation.json │ ├── es/ │ │ └── translation.json │ ├── fr/ │ │ └── translation.json │ ├── it/ │ │ └── translation.json │ └── zh-CN/ │ └── translation.json ├── templates/ │ ├── common/ │ │ ├── base.html │ │ ├── baselogin.html │ │ ├── changepassword.html │ │ ├── forgot-password.html │ │ ├── login.html │ │ ├── message.html │ │ ├── reset-password.html │ │ ├── twofactor-recovery.html │ │ └── twofactor.html │ ├── email/ │ │ ├── password-expiration.html │ │ └── reset-password.html │ ├── webadmin/ │ │ ├── admin.html │ │ ├── admins.html │ │ ├── adminsetup.html │ │ ├── base.html │ │ ├── configs.html │ │ ├── connections.html │ │ ├── defender.html │ │ ├── eventaction.html │ │ ├── eventactions.html │ │ ├── eventrule.html │ │ ├── eventrules.html │ │ ├── events.html │ │ ├── folder.html │ │ ├── folders.html │ │ ├── fsconfig.html │ │ ├── group.html │ │ ├── groups.html │ │ ├── iplist.html │ │ ├── iplists.html │ │ ├── maintenance.html │ │ ├── mfa.html │ │ ├── profile.html │ │ ├── role.html │ │ ├── roles.html │ │ ├── status.html │ │ ├── user.html │ │ └── users.html │ └── webclient/ │ ├── base.html │ ├── editfile.html │ ├── files.html │ ├── mfa.html │ ├── profile.html │ ├── share.html │ ├── sharedownload.html │ ├── sharelogin.html │ ├── shares.html │ ├── shareupload.html │ └── viewpdf.html ├── tests/ │ ├── eventsearcher/ │ │ ├── go.mod │ │ ├── go.sum │ │ └── main.go │ └── ipfilter/ │ ├── go.mod │ ├── go.sum │ └── main.go └── windows-installer/ ├── LICENSE_with_NOTICE.txt ├── README.txt └── sftpgo.iss