webdav 服务器
基于 http 协议, 速度还算比较快, 最方便的是: 如果是使用 MacOS, 可以直接用 Finder 链接, 如果是 windows 可以使用资源管理器链接, 不用额外安装其他客户端
- ugeek/webdav 基于 Nginx 的 webdav, 最容易配置, 速度快, 支持的平台多(amd/arm/Raspberry等都支持)
- difeid/webdav-server-rs Rust 版本的 webdav-server, 速度非常快(更多功能正在开发中, 可尝鲜体验)
- hacdias/webdav Go语言版本的 webdav 实现, 体积小, 速度较快
- bytemark/webdav 基于 Apache 的 webdav 镜像, 虽然下载次数多, 实测容易崩溃, 下载速度也不如其他
yaml
services:
webdav-server:
image: ugeek/webdav:amd64 # 注意CPU指令集平台tag
container_name: webdav-server
restart: always
ports:
- 8080:80
volumes:
- ./data:/media
environment:
- USERNAME=admin
- PASSWORD=admin123456 # 注意修改密码
- TZ=Asia/Shanghai
- UDI=1000
- GID=1000Rust 版本的 webdav-server, 可尝鲜体验
在MacOS中不知道为什么可以用 Finder 链接, 却无法用 Cyberduck 链接
txt
.
├── config 配置目录
│ ├── htpasswd.conf 账户验证配置
│ └── webdav-server.toml 服务核心配置
├── data 文件存放目录
│ └── 1.txt
└── docker-compose.yaml docker-compose配置文件
3 directories, 4 filesyaml
services:
webdav-server-rs-app:
image: difeid/webdav-server-rs:latest
restart: always
ports:
- 8080:4918
volumes:
- ./data:/data
- ./config:/configtoml
# Webdav server settings.
# docs: https://github.com/difeid/webdav-server-rs
[server]
listen = [ "0.0.0.0:4918", "[::]:4918" ]
uid = 33
gid = 33
identification = "webdav-server-rs"
[accounts]
auth-type = "htpasswd.conf"
acct-type = "unix"
realm = "Webdav Server"
[htpasswd.conf]
htpasswd = "/config/htpasswd.conf"
# username: admin
# password: admin123456
# generate htpasswd file online: https://hostingcanada.org/htpasswd-generator/#password
[unix]
cache-timeout = 120
min-uid = 1000
supplementary-groups = false
[[location]]
route = [ "/*path" ]
methods = [ "webdav-rw" ]
auth = "opportunistic"
handler = "filesystem"
on_notfound = "return"
setuid = false
directory = "/data" # webdav file save path
autoindex = true
hide-symlinks = true
case-insensitive = "false"txt
admin:$2y$10$gW9pdANvbPaYTe2kdSGlxu4ghKtd2Kuq1QC/8Tyw/nPBHPBcUEM1.
user2:$2y$10$gW9pdANvbPaYTe2kdSGlxu4ghKtd2Kuq1QC/8Tyw/nPBHPBcUEM1.ftp 服务器
- fauria/vsftpd 简洁易用
- vsftpgo 功能更丰富,但是配置也更复杂一些
传输速度快但功能简单
yaml
services:
vsftpd:
image: fauria/vsftpd:latest
container_name: vsftpd
restart: always
ports:
# 链接的时候注意端口
- "2020:20"
- "2021:21"
- "20000:20000"
volumes:
- "./data:/home/vsftpd"
environment:
FTP_USER: admin # 登录账号
FTP_PASS: admin123456 # 注意修改密码
PASV_MIN_PORT: 20000
PASV_MAX_PORT: 20000
PASV_ADDRESS: 127.0.0.1 # 注意修改,FTP服务地址,默认使用宿主机地址nextcloud
功能丰富的开源网盘系统, 社区活跃, 服务端主要用 PHP 实现, 缺点是速度堪忧
yml
networks:
nextcloud-net:
services:
db:
image: mysql:8
container_name: nextcloud_mysql8
restart: always
command: --transaction-isolation=READ-COMMITTED --log-bin=binlog --binlog-format=ROW
ports:
- "3306:3306"
networks:
- nextcloud-net
volumes:
- ./mysql_data:/var/lib/mysql
- ./mysql_conf:/etc/mysql # 如果不手动修改配置, 请注释这行, 否则会报错
environment:
TZ: Asia/Shanghai
MYSQL_ROOT_PASSWORD: root1314
MYSQL_PASSWORD: nextcloud
MYSQL_DATABASE: nextcloud
MYSQL_USER: nextcloud
app:
image: nextcloud:stable
container_name: nextcloud_app
restart: always
depends_on:
- db
ports:
- 8080:80
networks:
- nextcloud-net
volumes:
- ./nextcloud:/var/www/html
environment:
MYSQL_PASSWORD: nextcloud
MYSQL_DATABASE: nextcloud
MYSQL_USER: nextcloud
MYSQL_HOST: dbseafile
适合备份同步/协作编辑文件, 可看作开源版的坚果云
yaml
networks:
seafile-net:
services:
db:
image: mariadb:10.11
restart: always
container_name: seafile-mysql
hostname: database_server
environment:
MYSQL_ROOT_PASSWORD: root-password # mysql 服务 root 用户密码
MYSQL_LOG_CONSOLE: true
volumes:
- ./seafile-mysql:/var/lib/mysql # mysql 数据
networks:
- seafile-net
memcached:
image: memcached:1.6 # 缓存服务
restart: always
container_name: seafile-memcached
entrypoint: memcached -m 256
networks:
- seafile-net
seafile:
image: seafileltd/seafile-mc:11.0.1 # 注意版本
restart: always
container_name: seafile
volumes:
- ./seafile-data:/shared
ports:
- "80:80"
#- "443:443" # 是否使用 https 协议
environment:
DB_HOST: database_server
DB_ROOT_PASSWD: root-password
TIME_ZONE: Asia/Shanghai
SEAFILE_ADMIN_EMAIL: your_email@example.com # 管理员账号邮箱
SEAFILE_ADMIN_PASSWORD: your_admin_password # 管理员账号密码
SEAFILE_SERVER_LETSENCRYPT: false
SEAFILE_SERVER_HOSTNAME: seafile.example.com # 你的域名(csrf)
depends_on:
- db
- memcached
networks:
- seafile-netcloudreve
速度非常快, 开源版本的百度网盘
sh
# 创建 docker 项目工作目录
mkdir cloudreve-driver
cd cloudreve-driver
# 创建 docker-compose.yaml 配置文件
touch docker-compose.yaml
# 创建 cloudreve 数据存放目录和一些配置文件
mkdir data && \
mkdir cloudreve && \
mkdir cloudreve/{uploads,avatar} && \
touch cloudreve/conf.ini && \
touch cloudreve/cloudreve.db && \yaml
services:
cloudreve:
container_name: cloudreve
image: cloudreve/cloudreve:latest
restart: unless-stopped
ports:
# 如果部署在 阿里云/腾讯云 需要在安全组中开放端口
- "12000:5212"
volumes:
- temp_data:/data
- ./cloudreve/uploads:/cloudreve/uploads
- ./cloudreve/avatar:/cloudreve/avatar
- ./cloudreve/conf.ini:/cloudreve/conf.ini
- ./cloudreve/cloudreve.db:/cloudreve/cloudreve.db
depends_on:
- aria2
aria2:
container_name: aria2
image: p3terx/aria2-pro
restart: unless-stopped
environment:
# 注意修改这个密码
RPC_SECRET: your_password
RPC_PORT: 6800
volumes:
- ./aria2/config:/config
- temp_data:/data
volumes:
temp_data:
driver: local
driver_opts:
type: none
device: $PWD/data
o: bind