diff --git a/apps/sftpgo/README.md b/apps/sftpgo/README.md new file mode 100644 index 00000000..9595e86a --- /dev/null +++ b/apps/sftpgo/README.md @@ -0,0 +1,69 @@ +# SFTPGo + +功能齐全、高度可配置化、支持自定义 HTTP/S,FTP/S 和 WebDAV 的 SFTP 服务。 +一些存储后端支持:本地文件系统、加密本地文件系统、S3(兼容)对象存储,Google Cloud 存储,Azure Blob 存储,SFTP。 + +## 创建第一个管理员 + +开始使用 SFTPGo,你需要创建一个管理员用户: + +- 通过 web 管理员界面。默认 URL 是 [http://127.0.0.1:8080/web/admin](http://127.0.0.1:8080/web/admin) + +## 用户和目录管理 + +在启动 SFTPGo 之后,你可以管理用户和目录使用: + +- [基于 Web 的管理员界面](https://github.com/drakkan/sftpgo/blob/main/docs/web-admin.md) + +## 教程 + +一些手把手教程可以在源码文件树中的 [howto](https://github.com/drakkan/sftpgo/blob/main/docs/howto "How-to") 目录找到。 + +## 虚拟目录 + +用户 home 文件夹外或者基于不同存储提供的目录,可以作为虚拟目录进行暴露,详细信息参考 [虚拟目录](https://github.com/drakkan/sftpgo/blob/main/docs/virtual-folders.md)。 + +## 存储后端 + +### S3/GCP/Azure + +每个用户可以被映射到 [S3 兼容对象存储](https://github.com/drakkan/sftpgo/blob/main/docs/s3.md) /[Google Cloud 存储](https://github.com/drakkan/sftpgo/blob/main/docs/google-cloud-storage.md)/[Azure Blob 存储](https://github.com/drakkan/sftpgo/blob/main/docs/azure-blob-storage.md) bucket 或者一个 bucket 虚拟目录,通过 SFTP/SCP/FTP/WebDAV 进行暴露。 + +### SFTP 后端 + +每个用户可以被映射到另一个 SFTP 服务器账户或者它的子目录。更多的信息可以参考 [sftpfs](https://github.com/drakkan/sftpgo/blob/main/docs/sftpfs.md)。 + +### 加密后端 + +数据静态加密通过 [cryptfs 后端](https://github.com/drakkan/sftpgo/blob/main/docs/dare.md) 进行支持。 + +### 其它存储后端 + +添加新的存储后端非常简单: + +- 实现 [Fs 接口](./vfs/vfs.go#L28 "interface for filesystem backends") +- 更新用户方法 `GetFilesystem` 返回新的后端 +- 更新 web 接口和 REST API CLI +- 为新的存储后端添加向 `portable` 模式添加 flags + +无论如何,一些后端需要按次付费账户(或者他们提供限制期限内提供免费账户)。为了能够添加这些账户支持或者预览 PRs,请提供一个测试账户。测试账户必须在提供足够长时间维护此后端,并且支持每一次新的发行版之前做基本测试。 + +## 强力保护 + +SFTPGo 支持内置 [防护](https://github.com/drakkan/sftpgo/blob/main/docs/defender.md)。 + +你可以使用 [连接失败日志](https://github.com/drakkan/sftpgo/blob/main/docs/logs.md) 在诸如 [Fail2ban](http://www.fail2ban.org/) 进行工具内集成。[jails](./fail2ban/jails) 和 [filters](./fail2ban/filters) 示例,在 fail2ban 目录中与 `systemd`/`journald` 是可以同时工作的。 + +## 账户配置属性 + +关于账户配置属性的细节信息,请参考 [账户](https://github.com/drakkan/sftpgo/blob/main/docs/account.md)。 + +## 性能 + +SFTPGo 在没有特殊配置的情况下,可以实现低端硬件轻松达到 GB 量级连接,对于大多数场景足够使用了。 + +更多深度性能分析可以参考 [性能](https://github.com/drakkan/sftpgo/blob/main/docs/performance.md)。 + +## 许可证 + +GNU AGPL-3.0-only \ No newline at end of file diff --git a/apps/sftpgo/data.yml b/apps/sftpgo/data.yml new file mode 100755 index 00000000..534b6d88 --- /dev/null +++ b/apps/sftpgo/data.yml @@ -0,0 +1,20 @@ +name: SFTPGo +tags: + - 工具 +title: 支持自定义 HTTP/S,FTP/S 和 WebDAV 的 SFTP 服务 +type: 工具 +description: 支持自定义 HTTP/S,FTP/S 和 WebDAV 的 SFTP 服务 +additionalProperties: + key: sftpgo + name: SFTPGo + tags: + - Tool + shortDescZh: 支持自定义 HTTP/S,FTP/S 和 WebDAV 的 SFTP 服务 + shortDescEn: Support for custom HTTP/S, FTP/S, and WebDAV in SFTP service + type: tool + crossVersionUpdate: false + limit: 1 + recommend: 0 + website: https://sftpgo.com/ + github: https://github.com/drakkan/sftpgo/ + document: https://github.com/drakkan/sftpgo/blob/main/docs/howto/getting-started.md diff --git a/apps/sftpgo/logo.png b/apps/sftpgo/logo.png new file mode 100644 index 00000000..0a3ac9d2 Binary files /dev/null and b/apps/sftpgo/logo.png differ diff --git a/apps/sftpgo/v2.5.4/data.yml b/apps/sftpgo/v2.5.4/data.yml new file mode 100755 index 00000000..33e70ff9 --- /dev/null +++ b/apps/sftpgo/v2.5.4/data.yml @@ -0,0 +1,58 @@ +additionalProperties: + formFields: + - default: 8080 + edit: true + envKey: PANEL_APP_PORT_HTTP + labelEn: Web Port + labelZh: Web 端口 + required: true + rule: paramPort + type: number + - default: 2022 + edit: true + envKey: SFTP_PORT + labelEn: SFTP Port + labelZh: SFTP 端口 + required: true + rule: paramPort + type: number + - default: 2121 + edit: true + envKey: FTP_PORT + labelEn: FTP Port + labelZh: FTP 端口 + required: true + rule: paramPort + type: number + - default: 50000 + edit: true + envKey: PASSIVE_PORT_RANGE_START + labelEn: FTP Passive Mod Start Port + labelZh: FTP 被动模式起始端口 + required: true + rule: paramCommon + type: text + - default: 50100 + edit: true + envKey: PASSIVE_PORT_RANGE_END + labelEn: FTP Passive Mod End Port + labelZh: FTP 被动模式结束端口 (大于起始端口) + required: true + rule: paramCommon + type: text + - default: + edit: true + envKey: FTP_EXTERNAL_IP + labelEn: FTP External Ip (must change item) + labelZh: FTP 外部地址 (必改项) + required: true + rule: paramCommon + type: text + - default: 10080 + edit: true + envKey: WEBDAV_PORT + labelEn: WebDAV Port + labelZh: WebDAV 端口 + required: true + rule: paramPort + type: number diff --git a/apps/sftpgo/v2.5.4/docker-compose.yml b/apps/sftpgo/v2.5.4/docker-compose.yml new file mode 100644 index 00000000..f51d4eb1 --- /dev/null +++ b/apps/sftpgo/v2.5.4/docker-compose.yml @@ -0,0 +1,28 @@ +version: '3' +services: + sftpgo: + image: drakkan/sftpgo:v2.5.4-alpine + container_name: ${CONTAINER_NAME} + networks: + - 1panel-network + ports: + - ${PANEL_APP_PORT_HTTP}:8080 + - ${SFTP_PORT}:${SFTP_PORT} + - ${FTP_PORT}:${FTP_PORT} + - ${PASSIVE_PORT_RANGE_START}-${PASSIVE_PORT_RANGE_END}:${PASSIVE_PORT_RANGE_START}-${PASSIVE_PORT_RANGE_END} + - ${WEBDAV_PORT}:${WEBDAV_PORT} + environment: + SFTPGO_FTPD__BINDINGS__0__PORT: ${FTP_PORT} + SFTPGO_WEBDAVD__BINDINGS__0__PORT: ${WEBDAV_PORT} + SFTPGO_SFTPD__BINDINGS__0__PORT: ${SFTP_PORT} + SFTPGO_FTPD__BINDINGS__0__FORCE_PASSIVE_IP: ${FTP_EXTERNAL_IP} + SFTPGO_FTPD__PASSIVE_PORT_RANGE__START: ${PASSIVE_PORT_RANGE_START} + SFTPGO_FTPD__PASSIVE_PORT_RANGE__END: ${PASSIVE_PORT_RANGE_END} + volumes: + - ./data/data:/srv/sftpgo + - ./data/config:/var/lib/sftpgo + labels: + createdBy: "Apps" +networks: + 1panel-network: + external: true \ No newline at end of file