SFTPGo 搭建自己的网盘

SFTPGo 是什么?

SFTPGo 是一种基于事件驱动的文件传输解决方案。它支持多种协议(SFTP、SCP、FTP/S、WebDAV、HTTP/S)和多种存储后端。

通过 SFTPGo,您可以利用本地和云存储后端,使用您已经熟悉的工具和流程,与业务伙伴内部或外部交换和存储文件。

WebAdmin UI 允许您轻松创建和管理用户、文件夹、组及其他资源。

WebClient UI 允许终端用户在浏览器中更改他们的凭据、浏览和管理他们的文件,并设置双因素身份验证,该功能与 Microsoft Authenticator、Google Authenticator、Authy 以及其他兼容的应用程序配合使用。

安装

SFTPGo 可以运行在小型嵌入式设备或大型 Kubernetes 集群上。它支持 Linux、Windows、macOS 和 FreeBSD 等操作系统,其他 *BSD 变体也应该可以运行。

要求

唯一的(可选)要求是需要一个合适的 SQL 服务器作为数据提供者:

  • 支持 PostgreSQL、MySQL 和 MariaDB 的上游版本。

  • 支持 CockroachDB 稳定版。

如果使用嵌入式 SQLite、bolt 或内存数据提供者,可以省略此要求。

AWS

SFTPGo 可在 AWS Marketplace 上获取。

Marketplace 上的版本已预配置了特定的数据提供者,但都可以重新配置为使用其他数据提供者。

Azure

SFTPGo 可在 Azure Marketplace 上获取:

  • SFTPGo for Linux

  • SFTPGo for Windows

  • SFTPGo for AKS

Linux

通过俄勒冈州立大学的免费镜像服务提供 APT 和 YUM 仓库。特别感谢俄勒冈州立大学开源实验室主任 Lance Albertson。

SFTPGo 包含在某些发行版的仓库中,我们只记录我们直接维护的包。

Ubuntu

对于 Ubuntu,提供了一个 PPA。

1
2
3
4
5
6
7
sudo add-apt-repository ppa:sftpgo/sftpgo
sudo apt update
sudo apt install sftpgo

```

安装完成后,SFTPGo 应已使用默认配置运行,并已配置为在启动时自动启动。可以使用以下命令检查其状态:

systemctl status sftpgo

1
2
3
4
5
6
7
8
9
10
### APT 仓库  

支持的发行版:
- Debian 10 "buster"

- Debian 11 "bullseye"

- Debian 12 "bookworm"

导入包管理系统使用的公钥:

curl -sS https://ftp.osuosl.org/pub/sftpgo/apt/gpg.key | sudo gpg --dearmor -o /usr/share/keyrings/sftpgo-archive-keyring.gpg

1
2
3
  
如果收到错误提示 gnupg
 未安装,可以使用以下命令安装:

sudo apt install gnupg

1
2
  
创建 SFTPGo 源列表文件:

CODENAME=$(lsb_release -c -s)
echo “deb [signed-by=/usr/share/keyrings/sftpgo-archive-keyring.gpg] https://ftp.osuosl.org/pub/sftpgo/apt ${CODENAME} main” | sudo tee /etc/apt/sources.list.d/sftpgo.list

1
2
  
重新加载包数据库并安装 SFTPGo:

sudo apt update
sudo apt install sftpgo

1
2
3
4
5
6
### YUM 仓库  

YUM 仓库可用于通用的基于 Red Hat 的发行版以及 Suse/OpenSuse。
#### 基于 Red Hat 的发行版

创建 SFTPGo 仓库:

ARCH=$(uname -m)
curl -sS https://ftp.osuosl.org/pub/sftpgo/yum/${ARCH}/sftpgo.repo | sudo tee /etc/yum.repos.d/sftpgo.repo

1
2
  
重新加载包数据库并安装 SFTPGo:

sudo yum update
sudo yum install sftpgo

1
2
  
启动 SFTPGo 服务并将其配置为在系统启动时自动启动:

sudo systemctl start sftpgo
sudo systemctl enable sftpgo

1
2
3
#### Suse/OpenSUSE  

导入包管理系统使用的公钥:

sudo rpm --import https://ftp.osuosl.org/pub/sftpgo/apt/gpg.key

1
2
  
添加 SFTPGo 仓库:

ARCH=$(uname -m)
sudo zypper addrepo -f “https://ftp.osuosl.org/pub/sftpgo/yum/${ARCH}” sftpgo

1
2
  
重新加载包数据库并安装 SFTPGo:

sudo zypper refresh
sudo zypper install sftpgo

1
2
  
启动 SFTPGo 服务并将其配置为在系统启动时自动启动:

sudo systemctl start sftpgo
sudo systemctl enable sftpgo

### Arch Linux  
  
SFTPGo 可通过 AUR 获取:  
- sftpgo。此包跟随稳定版发布。需要 git  
、gcc  
 和 go  
 来构建。  
  
- sftpgo-bin。此包跟随稳定版发布,从 GitHub 下载预构建的 Linux 二进制文件。不需要 git  
、gcc  
 和 go  
 来构建。  
  
- sftpgo-git。此包构建并安装最新的 git main  
 分支。需要 git  
、gcc  
 和 go  
 来构建。  
  
## Windows  
  
可以从我们的发布页面下载并安装 Windows 安装程序。安装程序将注册并运行 SFTPGo 作为 Windows 服务。  
  
其他选项:  
- 使用便携版按需运行 SFTPGo。  
  
- 使用 winget 包安装并运行 SFTPGo 作为 Windows 服务:winget install SFTPGo  
。  
  
- 使用 Chocolatey 包安装并运行 SFTPGo 作为 Windows 服务。  
  
## macOS  
  
SFTPGo 可作为 Homebrew Formula 获取。  
## FreeBSD  
  
SFTPGo 包含在 FreeBSD Ports 中。  
## Docker  
  
SFTPGo 提供官方 Docker 镜像,详情请参考相关文档。  
  
  


![江达小记](/images/wechatmpscan.png)