简介
什么是 Copyparty ?
Copyparty
是一个用Python
编写的便携式文件服务器,它将众多功能(如加速可续传的上传、文件去重、WebDAV
、FTP
、TFTP
、媒体索引、缩略图等)集成到了一个文件中,并且几乎没有强制性依赖。你可以直接运行它,将任何设备变成一个文件服务器,并通过网页浏览器进行访问。
主要特点
- 可恢复上传:支持加速的可恢复文件上传,确保在网络中断时可以继续上传。
- 多协议支持:提供多种协议,包括
HTTP
、WebDAV
、FTP
、TFTP
等,适应不同的使用需求。 - 去重功能:通过文件链接实现上传去重,节省存储空间。
- 多平台兼容:可以在
Windows
、Linux
、macOS
、Android
等多个平台上运行。 - 用户权限管理: 支持每个文件夹和用户的权限管理,确保文件安全。
- 媒体索引和缩略图:自动生成媒体文件的缩略图,并支持音频、视频和图片的播放。
- 动态文档:支持
Markdown
文档的查看和编辑。 - 零配置:只需运行一个脚本即可开始使用,无需复杂的配置过程。
- 易于部署: 提供
Docker
镜像,可以快速方便地进行部署。
应用场景
- 在家庭或办公室网络中快速搭建一个临时的文件共享服务器。
- 将闲置的电脑或树莓派等设备变成一个功能强大的个人网盘。
- 为团队提供一个简单易用的文件协作平台。
Copyparty
为用户提供了一种灵活、高效的文件管理解决方案。
准备
Copyparty
的功能有点多,上来就给我看懵了。官方建议使用配置文件,而不是直接使用参数
配置文件采用了类似 YAML
的文件格式,老苏找了一个简化版的,命名为 copyparty.conf
即可
# not actually YAML but lets pretend:
# -*- mode: yaml -*-
# vim: ft=yaml:
[global]
e2dsa # enable file indexing and filesystem scanning
e2ts # enable multimedia indexing
ansi # enable colors in log messages (both in logfiles and stdout)
# q, lo: /cfg/log/%Y-%m%d.log # log to file instead of docker
# p: 3939 # listen on another port
# ipa: 10.89. # only allow connections from 10.89.*
# df: 16 # stop accepting uploads if less than 16 GB free disk space
# ver # show copyparty version in the controlpanel
# grid # show thumbnails/grid-view by default
# theme: 2 # monokai
# name: datasaver # change the server-name that's displayed in the browser
# stats, nos-dup # enable the prometheus endpoint, but disable the dupes counter (too slow)
# no-robots, force-js # make it harder for search engines to read your server
[accounts]
ed: wark # username: password
[/] # create a volume at "/" (the webroot), which will
/w # share /w (the docker data volume)
accs:
rw: * # everyone gets read-write access, but
rwmda: ed # the user "ed" gets read-write-move-delete-admin
如果你忘记了这个文件,启动后会看到这样的界面
安装
在群晖上以 Docker 方式安装。
在注册表中搜索 copyparty
,选择 copyparty/ac
,版本选择 latest
。
本文写作时,
latest
版本对应为1.19.4
;
卷
在 docker
文件夹中,创建一个新文件夹 copyparty
,并在其中建立两个子文件夹 files
和 config
。
将上一步保存的 copyparty.conf
放入 config
目录中
文件夹 | 装载路径 | 说明 |
---|---|---|
docker/copyparty/files | /w | 存放您要共享的文件 |
docker/copyparty/config | /cfg | 存放配置文件和历史记录数据库 |
端口
本地端口不冲突就行。
本地端口 | 容器端口 |
---|---|
3923 | 3923 |
命令行安装
如果你熟悉命令行,可能用 docker cli
更快捷
# 新建文件夹 copyparty 和 子目录
mkdir -p /volume1/docker/copyparty/{config,files}
# 进入 copyparty 目录
cd /volume1/docker/copyparty
# 将 copyparty.conf 放入 config 目录中
# 运行容器
docker run -d \
--restart unless-stopped \
--name copyparty \
-p 3923:3923 \
-v $(pwd)/files:/w \
-v $(pwd)/config:/cfg \
copyparty/ac
也可以用 docker-compose
安装,将下面的内容保存为 docker-compose.yml
文件
services:
copyparty:
image: copyparty/ac:latest
container_name: copyparty
ports:
- 3923:3923
volumes:
- ./files:/w
- ./config:/cfg
environment:
LD_PRELOAD: /usr/lib/libmimalloc-secure.so.NOPE
# enable mimalloc by replacing "NOPE" with "2" for a nice speed-boost (will use twice as much ram)
PYTHONUNBUFFERED: 1
# ensures log-messages are not delayed (but can reduce speed a tiny bit)
stop_grace_period: 15s # thumbnailer is allowed to continue finishing up for 10s after the shutdown signal
healthcheck:
# hide it from logs with "/._" so it matches the default --lf-url filter
test: ["CMD-SHELL", "wget --spider -q 127.0.0.1:3923/?reset=/._"]
interval: 1m
timeout: 2s
retries: 5
然后执行下面的命令
# 新建文件夹 copyparty 和 子目录
mkdir -p /volume1/docker/copyparty/{config,files}
# 进入 copyparty 目录
cd /volume1/docker/copyparty
# 将 docker-compose.yml 放入当前目录
# 将 copyparty.conf 放入 config 目录中
# 一键启动
docker-compose up -d
运行
在浏览器中输入 http://群晖IP:3923
就能看到主界面
在 files
目录中放入了一些文件
刷新页面
音视频、pdf
、图片都可以直接播放或者阅读
WebDAV
以 RaiDrive
为例
- 地址:
群晖IP
- 端口:
3923
- 用户:
ed
, 是copyparty.conf
中设置的username
- 密码:
wark
,是copyparty.conf
中设置的password
连接成功后
更多的功能,等需要用的时候,再研究吧
参考文档
9001/copyparty: Portable file server with accelerated resumable uploads, dedup, WebDAV, FTP, TFTP, zeroconf, media indexer, thumbnails++ all in one file, no deps
地址:https://github.com/9001/copyparty
copyparty/scripts/docker at hovudstraum · 9001/copyparty
地址:https://github.com/9001/copyparty/tree/hovudstraum/scripts/docker