sftpgo

command module
v2.7.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 23, 2025 License: AGPL-3.0 Imports: 1 Imported by: 0

README

SFTPGo

CI Status Mentioned in Awesome Go

Full-featured and highly configurable event-driven file transfer solution. Server protocols: SFTP, HTTP/S, FTP/S, WebDAV. Storage backends: local filesystem, encrypted local filesystem, S3 (compatible) Object Storage, Google Cloud Storage, Azure Blob Storage, other SFTP servers.

With SFTPGo you can leverage local and cloud storage backends for exchanging and storing files internally or with business partners using the same tools and processes you are already familiar with.

The WebAdmin UI allows to easily create and manage your users, folders, groups and other resources.

The WebClient UI allows end users to change their credentials, browse and manage their files in the browser and setup two-factor authentication which works with Microsoft Authenticator, Google Authenticator, Authy and other compatible apps.

Sponsors

SFTPGo remains committed to open source. The core features are freely available and maintained. If you rely on SFTPGo in your projects, consider becoming a sponsor to help ensure its long-term sustainability.

Your sponsorship helps cover maintenance, security updates and ongoing development of the open-source edition.

Thank you to our sponsors
Platinum sponsors

Aledade logo

Jump Trading logo

WP Engine logo

Silver sponsors

IDCS logo

Bronze sponsors

7digital logo

servinga logo

ReUI logo

Support

The open-source version of SFTPGo is free to use under the terms of its license. We are proud to provide a robust and fully functional edition that meets the needs of many production environments.

While we do not offer direct free support, community support is available. You can use GitHub Discussions to ask questions, share feedback and engage with other users of the project.

If you require guaranteed support, expert guidance, or advanced features, consider using SFTPGo Enterprise: a commercially licensed edition of SFTPGo that extends the open source version with enterprise-only features and full support.

SFTPGo Enterprise is available in two deployment options:

  • On-premises: Deploy on your own infrastructure with full control and commercial-grade support. More details: sftpgo.com/on-premises
  • Fully managed SaaS: Let us handle the infrastructure. Ideal for teams that want a secure, scalable, and maintenance-free setup with full support included. More details: sftpgo.com/saas

Documentation

You can explore all supported features and configuration options at docs.sftpgo.com.

You can select the version you're using from the top-left corner of the documentation site. If you're using the open-source edition, please make sure to switch to the corresponding documentation. The "Enterprise" docs, shown by default, include features that may only be available in the licensed edition or our SaaS offerings.

Internationalization

The translations are available via Crowdin, who have granted us an open source license.

Before start translating please take a look at our contribution guidelines.

Release Cadence

SFTPGo follows a feature-driven release cycle rather than a fixed, time-based schedule. Currently, our primary development efforts are focused on the Enterprise edition, which benefits from a faster release cadence and receives major new features (see changelog).

This open-source version of SFTPGo remains maintained and will continue to receive bug fixes and essential updates. However, not all enhancements introduced in the Enterprise edition will be available.

Acknowledgements

SFTPGo makes use of the third party libraries listed inside go.mod.

We are very grateful to all the people who contributed with ideas and/or pull requests.

Thank you to ysura for granting us stable access to a test AWS S3 account.

Thank you to KeenThemes for granting us a custom license to use their amazing themes for the SFTPGo WebAdmin and WebClient user interfaces, across both the Open Source and Open Core versions.

Thank you to Crowdin for granting us an Open Source License.

Thank you to Incode for helping us to improve the UI/UX.

License

SFTPGo source code is licensed under the GNU AGPL-3.0-only with additional terms.

The theme used in WebAdmin and WebClient user interfaces is proprietary, this means:

  • KeenThemes HTML/CSS/JS components are allowed for use only within the SFTPGo product and restricted to be used in a resealable HTML template that can compete with KeenThemes products anyhow.
  • The SFTPGo WebAdmin and WebClient user interfaces (HTML, CSS and JS components) based on this theme are allowed for use only within the SFTPGo product and therefore cannot be used in derivative works/products without an explicit grant from the SFTPGo Team.

More information about compliance.

Note: We do not provide legal advice. If you have questions about license compliance or whether your use case is permitted under the license terms, please consult your legal team.

Copyright (C) 2019 - 2025 Nicola Murino

Documentation

Overview

Fully featured and highly configurable SFTP server with optional FTP/S and WebDAV support. For more details about features, installation, configuration and usage please refer to the README inside the source tree: https://github.com/drakkan/sftpgo/blob/main/README.md

Directories

Path Synopsis
internal
acme
Package acme provides automatic access to certificates from Let's Encrypt and any other ACME-based CA The code here is largely coiped from https://github.com/go-acme/lego/tree/master/cmd This package is intended to provide basic functionality for obtaining and renewing certificates and implements the "HTTP-01" and "TLSALPN-01" challenge types.
Package acme provides automatic access to certificates from Let's Encrypt and any other ACME-based CA The code here is largely coiped from https://github.com/go-acme/lego/tree/master/cmd This package is intended to provide basic functionality for obtaining and renewing certificates and implements the "HTTP-01" and "TLSALPN-01" challenge types.
cmd
Package cmd provides Command Line Interface support
Package cmd provides Command Line Interface support
command
Package command provides command configuration for SFTPGo hooks
Package command provides command configuration for SFTPGo hooks
common
Package common defines code shared among file transfer packages and protocols
Package common defines code shared among file transfer packages and protocols
config
Package config manages the configuration
Package config manages the configuration
dataprovider
Package dataprovider provides data access.
Package dataprovider provides data access.
ftpd
Package ftpd implements the FTP protocol
Package ftpd implements the FTP protocol
httpclient
Package httpclient provides HTTP client configuration for SFTPGo hooks
Package httpclient provides HTTP client configuration for SFTPGo hooks
httpd
Package httpd implements REST API and Web interface for SFTPGo.
Package httpd implements REST API and Web interface for SFTPGo.
httpdtest
Package httpdtest provides utilities for testing the supported REST API.
Package httpdtest provides utilities for testing the supported REST API.
jwt
Package jwt provides functionality for creating, parsing, and validating JSON Web Tokens (JWT) used in authentication and authorization workflows.
Package jwt provides functionality for creating, parsing, and validating JSON Web Tokens (JWT) used in authentication and authorization workflows.
kms
Package kms provides Key Management Services support
Package kms provides Key Management Services support
logger
Package logger provides logging capabilities.
Package logger provides logging capabilities.
metric
Package metric provides Prometheus metrics support
Package metric provides Prometheus metrics support
mfa
Package mfa provides supports for Multi-Factor authentication modules
Package mfa provides supports for Multi-Factor authentication modules
plugin
Package plugin provides support for the SFTPGo plugin system
Package plugin provides support for the SFTPGo plugin system
service
Package service allows to start and stop the SFTPGo service
Package service allows to start and stop the SFTPGo service
sftpd
Package sftpd implements the SSH File Transfer Protocol as described in https://tools.ietf.org/html/draft-ietf-secsh-filexfer-02.
Package sftpd implements the SSH File Transfer Protocol as described in https://tools.ietf.org/html/draft-ietf-secsh-filexfer-02.
smtp
Package smtp provides supports for sending emails
Package smtp provides supports for sending emails
telemetry
Package telemetry provides telemetry information for SFTPGo, such as:
Package telemetry provides telemetry information for SFTPGo, such as:
util
Package util provides some common utility methods
Package util provides some common utility methods
version
Package version defines SFTPGo version details
Package version defines SFTPGo version details
vfs
Package vfs provides local and remote filesystems support
Package vfs provides local and remote filesystems support
webdavd
Package webdavd implements the WebDAV protocol
Package webdavd implements the WebDAV protocol

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL