0x0
一个无废话的极简文件共享URL:0x0。
使用
上传文件:
1 2
| # MIME使用multipart/form-data curl -F 'file=@文件路径' [-F expires=24] [-F secret=密码] https://0x0.st
|
删除文件:
1
| curl -F token=Token -F delete= https://0x0.st/文件名
|
filebrowser
项目名为 filebrowser/filebrowser
安装
在Github页面下载二进制包,内容极其简单,只有一个二进制文件。
快速启动
将文件所有者修改为Root,权限设为755,然后移动到/usr/local/bin,在不使用任何子命令的情况下,fliebrowser会启动临时服务器并自动创建初始数据库,命令参数如下,注意,这些临时选项仅用于没有数据库时的初次设置,会被已有数据库中的配置覆盖,如果已经建立了数据库,请使用config子命令或配置文件进行修改。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| filebrowser -c 配置文件路径 -d 数据库路径 其他选项 -a 设置监听IP,默认127.0.0.1 -p 设置监听端口,默认8080 --cache-dir 设置缓存目录,默认不设置 -t 设置TLS证书路径 -k 设置TLS密钥路径 -r 文件的根目录,默认二进制文件同目录 --disable-exec 禁用条件命令 --disable-preview-resize 禁用调整预览大小 --disable-thumbnails 禁用图标预览 --disable-type-detection-by-header 禁用文件类型检测 --noauth 危险!无认证模式启动,仅供调试 --username 指定创建的初始(UID=1)用户的用户名,默认为admin --password 指定初始(UID=1)用户的密码,默认为admin,此密码应该为加密的密码,使用"filebrowser hash 明文密码"命令生成加密密码,不建议这么设置,应该在创建初始数据库后使用"users update"子命令修改
公用选项: -c 配置文件路径,如果不设置,默认会搜索"./", "$HOME/", "/etc/filebrowser"这三个目录,这个配置文件在线上导入导出配置时有用 -d 设置数据库路径,默认二进制文件同目录下的filebrowser.db
|
输入filebrowser hash 明文密码生成加密密码。
执行filebrowser -a 0.0.0.0 -p 8080 -d ~/.local/filebrowser/filebrowser.db -r /共享路径以用户模式启动临时用户名和密码都为admin的服务器并创建初始数据库。
配置(进阶)
启动时,如果没有使用-d选项指定数据库路径,fliebrowser会直接在当前目录下创建初始配置数据库。
我们推荐先执行filebrowser -d /数据库路径 config init手动指定数据库路径在不启动的情况下进行初始化。这种情况下建立的数据库中全部为默认设置,也不会创建初始(UID=1)用户,需要之后使用filebrowser users add手动添加。
使用filebrowser -d /数据库路径 config cat可以显示数据库中的配置详情。
导出配置文件的一些关键选项内容如下,均为默认内容:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
| { "server": { "root": ".", // 共享文件目录 "tlsKey": "", // TLS私钥路径 "tlsCert": "", // TLS证书路径 "port": "8080", // 监听端口 "address": "127.0.0.1", // 监听IP "log": "stdout", // 日志文件路径,默认标准输出 "enableThumbnails": false, // 启用图标预览 "resizePreview": false, // 启用预览大小调整 "enableExec": false, // 启用命令执行功能 "typeDetectionByHeader": false // 启用文件类型检测 }, "settings": { "key": "", // 序列号 "signup": false, // 允许注册 "createUserDir": false, // 允许创建用户目录 "userHomeBasePath": "/users", // 用户目录存储路径,这是相对于root的路径 "defaults": { "scope": ".", // 默认访问目录,这是相对于root的路径 "locale": "en", // 默认语言 "viewMode": "list", // 默认显示模式 "singleClick": false, // 默认单击打开 "sorting": { // 默认排序模式 "by": "name", // name, size, modified "asc": false }, "perm": { "admin": false, // 用户默认是否有管理员权限 "execute": true, // 用户默认是否有执行权限 "create": true, // 用户默认是否有创建文件权限 "rename": true, // 用户默认是否有重命名权限 "modify": true, // 用户默认是否有修改权限 "delete": true, // 用户默认是否有删除权限 "share": true, // 用户默认是否有分享权限 "download": true // 用户默认是否有下载权限 }, "commands": [], // 允许用户在网页执行的命令列表 "hideDotfiles": false // 默认隐藏点开头文件 }, "authMethod": "json", // 认证方式,可选json, proxy, noauth "branding": { "name": "", // 网站名 "disableExternal": false, // 禁用外部链接 "files": "" // 自定义文件路径 } } }
|
这些配置可以通过filebrowser -d /数据库路径 config set --option="value"进行设置,对应选项如下,这些设置会写入数据库所以也是永久化的。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| --root --key --cert --port --address --log --disable-thumbnails --disable-preview-resize --disable-exec --disable-type-detection-by-header --signup --scope --locale --viewMode --singleClick --sorting.by --sorting.asc --perm.admin --perm.create --perm.delete --perm.download --perm.execute --perm.modify --perm.rename --perm.share --commands 字符串列表 --auth.method --branding.name --branding.disableExternal --branding.files
--cache-dir
|
修改后,使用filebrowser export 路径可以导出配置文件。
之后可以使用filebrowser config import 路径导入外部配置文件到数据库。
一个模板配置文件(用于全局模式的):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| { "settings": { "signup": false, "createUserDir": false, "userHomeBasePath": "/home", "defaults": { "scope": ".", "locale": "zh-cn", "viewMode": "list", "singleClick": true, "sorting": { "by": "name", "asc": false }, "perm": { "admin": false, "execute": true, "create": true, "rename": true, "modify": true, "delete": true, "share": true, "download": true } }, "authMethod": "json" }, "server": { "root": "/srv/filebrowser", "tlsKey": "", "tlsCert": "", "port": "8080", "address": "0.0.0.0", "log": "stdout", "enableExec": false }, "auther": { "recaptcha": null } }
|
用户控制
使用用户控制命令时请使用Root权限。
1 2 3 4 5 6 7 8 9 10 11 12 13
| filebrowser users add|find|export|import|ls|rm|update
add 用户名 未加密密码 其他选项 # 添加用户,选项包括以上配置中的defaults中的大部分选项 export 路径 # 导出用户列表到文件 import 路径 # 从文件导入用户 find 用户名 # 搜索指定用户并打印详细信息 ls # 列出所有用户 rm ID|用户名 # 删除用户 update ID|用户名 选项 # 设置用户,选项包括以上配置中的defaults中的大部分选项
其他的选项: --username|-u # 修改用户名 --password|-p # 修改密码
|
条件命令
1 2 3 4 5
| filebrowser cmds add|ls|rm
add [before|after]_[copy|rename|delete|save] "command" 添加一条条件命令 rm [before|after]_[copy|rename|delete|save] 序号 删除一条条件命令 ls 列出所有条件命令
|
systemd
使用用户模式下的一个简单的systemd service文件模板为:
1 2 3 4 5 6 7 8 9 10 11 12
| [Unit] Description=File browser(User mode) After=network.target
[Service] Type=simple ProtectSystem=yes ExecStart=/usr/local/bin/filebrowser -c $HOME/.config/filebrowser.json -d $HOME/.local/filebrowser/filebrowser.db SuccessExitStatus=0 1
[Install] WantedBy=multi-user.target
|
相关配置文件请自行创建。
建议放在~/.config/systemd/user目录下,使用systemct --user enable启动。
系统全局安装标准方法
方法一
添加filebrowser用户
useradd -M -s /sbin/nologin filebrowser
在标准目录下创建filebrowser共享目录和数据库目录
mkdir /srv/filebrowser /var/lib/filebrowser /usr/local/etc/filebrowser
创建配置文件
nano /usr/local/etc/filebrowser/filebrowser.json
chown -R filebrowser:filebrowser /srv/filebrowser /var/lib/filebrowser /usr/local/etc/filebrowser
根据配置文件创建数据库
sudo -u filebrowser filebrowser -d /var/lib/filebrowser/filebrowser.db config init
导入配置文件
sudo -u filebrowser filebrowser -d /var/lib/filebrowser/filebrowser.db config import /usr/local/etc/filebrowser/filebrowser.json
创建systemd服务filebrowser.serivce,放在/etc/systemd/system目录下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| [Unit] Description=File browser After=network.target
[Service] Type=simple User=filebrowser Group=filebrowser ProtectSystem=yes ExecStart=/usr/local/bin/filebrowser -a 0.0.0.0 -c /usr/local/etc/filebrowser/filebrowser.json -d /var/lib/filebrowser/filebrowser.db SuccessExitStatus=0 1
[Install] WantedBy=multi-user.target
|
启动服务
systemctl enable --now filebrowser.service
方法二(无配置文件)
添加filebrowser用户
useradd -M -s /sbin/nologin filebrowser
在标准目录下创建filebrowser共享目录和数据库目录
mkdir -p /srv/filebrowser/data
mkdir -p /srv/filebrowser/share
chown -R filebrowser:filebrowser /srv/filebrowser
创建systemd服务filebrowser.serivce,放在/etc/systemd/system目录下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| [Unit] Description=File browser After=network.target
[Service] Type=simple User=filebrowser Group=filebrowser ProtectSystem=yes ExecStart=/usr/local/bin/filebrowser -a 0.0.0.0 -d /srv/filebrowser/data/filebrowser.db -r /srv/filebrowser/share [-t SSL证书路径] [-k SSL密钥路径] SuccessExitStatus=0 1
[Install] WantedBy=multi-user.target
|
启动服务
systemctl enable --now filebrowser.service
Docker搭建
命令为
1 2 3 4 5 6 7 8 9
| docker run -itd \ -v /srv/filebrowser/share:/srv \ # 指定根目录路径映射 -v /srv/filebrowser/data/filebrowser.db:/database/filebrowser.db \ # 指定数据库路径映射 -v /srv/filebrowser/data/settings.json:/config/settings.json \ # 指定配置文件路径映射 -e PUID=$(id -u) \ # 指定启动用户UID -e PGID=$(id -g) \ # 指定启动用户GID -p 8080:80 \ # 端口映射 --restart on-failure \ filebrowser/filebrowser
|
使用docker cp your-container-name:/database/filebrowser.db /path/to/filebrowser.db提取数据库文件。
借鉴上方系统服务搭建流程进行搭建。
dufs
支持WebDAV、HTTPS的无配置文件简易小型文件服务器
sigoden/dufs
安装
下载二进制文件,将文件所有者和所有组修改为root,权限设为755,然后移动到/usr/local/bin即可。
使用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| dufs [选项] [共享目录根路径,默认为.]
选项: -b, --bind IP 指定监听IP -p, --port 端口号 指定监听端口,默认5000 --path-prefix 路径 指定根URL路径前缀 --hidden 目录名 隐藏某些目录,以','分隔 -a, --auth 认证信息 添加认证信息,格式为 /相对路径@用户名:密码 --auth-method 认证方法 设置认证方法,默认digest,可选basic, digest -A, --allow-all 允许所有操作 --allow-upload 允许上传操作 --allow-delete 允许删除操作 --allow-search 允许搜索操作 --allow-symlink 允许链接操作 --allow-archive 允许归档操作 --enable-cors 启用CORS跨域资源共享 --render-index 请求目录时显示目录下的index.html,否则404 --render-try-index 请求目录时显示目录下的index.html,否则显示目录结构 --render-spa 使用SPA(单页面应用程序) --assets 路径 使用自定义资源文件覆盖内置资源文件 --tls-cert 证书路径 指定TLS证书路径 --tls-key 私钥路径 指定TLS私钥路径 --log-format 日志格式 自定义日志格式 --completions Shell名 显示Shell补全脚本,可选bash, elvish, fish, powershell, zsh
|
系统全局安装标准方法
添加dufs用户
useradd -M -s /sbin/nologin dufs
在标准目录下创建dufs共享目录,并修改所有权
mkdir /srv/dufs
chown -R dufs:dufs /srv/dufs
创建systemd服务dufs.serivce,放在/etc/systemd/system目录下
1 2 3 4 5 6 7 8 9 10 11 12
| [Unit] Description=dufs WebDAV server After=network.target
[Service] User=dufs Group=dufs ProtectSystem=yes ExecStart=/usr/local/bin/dufs -b 0.0.0.0 -p 5000 -A -a /@admin:password /srv/dufs [--tls-cert 证书路径] [--tls-key 私钥路径]
[Install] WantedBy=multi-user.target
|
启动服务
systemctl enable --now dufs
Docker搭建
命令为
1 2 3 4
| docker run -itd --name dufs \ -v /srv/dufs:/data \ -p 5000:5000 \ sigoden/dufs /data [选项,如-A]
|
选项与之前列出的保持一致。
alist
支持网盘同步和WebDAV的文件存储服务。
安装
在 alist-org/alist 下载二进制包,解压后执行chown root:root alist,chmod 755 alist赋予权限,然后移动到/usr/local/bin/目录。
使用
1 2 3 4 5 6 7 8 9
| admin 显示管理员信息 completion 生成Shell补全脚本 server 在指定IP下启动服务 restart 重启服务 start 以当前目录为工作目录,启动服务 stop 停止服务
--data 目录 指定配置文件所在目录和默认的数据保存目录,配置文件名为config.json --force-bin-dir 强制使用当前目录作为配置文件保存目录
|
在管理-索引界面选择一种索引方式,保存后建立索引,即可使用搜索功能。
配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| { "force": false, "address": "0.0.0.0", // 监听的IP "port": 5244, // 监听的端口 "site_url": "", // 监听的FQDN域名 "cdn": "", // 使用的CDM "jwt_secret": "", // 唯一密钥 "token_expires_in": 48, // Token过期时间 "database": { //数据库配置 "type": "sqlite3", // 可选sqlite3,mysql或postgres "host": "", // 数据库服务器IP "port": 0, // 数据库服务器端口 "user": "", // 数据库用户名 "password": "", // 数据库用户密码 "name": "", // 数据库库名 "db_file": "/etc/alist/data.db", // sqlite3文件保存位置 "table_prefix": "x_", // 表的前缀 "ssl_mode": "" // 是否使用SSL连接数据库 }, "scheme": { "https": false, // 是否使用HTTPS "cert_file": "", // SSL证书路径 "key_file": "" // SSL密钥路径 }, "temp_dir": "/etc/alist/temp", // 临时文件目录 "bleve_dir": "/etc/alist/bleve", // bleve索引文件目录 "log": { "enable": true, // 启用日志 "name": "/etc/alist/log/log.log", // 日志文件路径 "max_size": 10, // 最大日志文件大小 "max_backups": 5, // 最大日志备份数量 "max_age": 28, // 最大保存时间 "compress": false // 是否压缩 }, "max_connections": 0 // 最大并发连接数 }
|
系统全局安装标准方法
方法一
添加alist用户
useradd -M -s /sbin/nologin alist
在标准目录下创建alist共享目录和数据库目录,并修改所有权
mkdir /usr/local/etc/alist
mkdir /var/lib/alist
mkdir /var/log/alist
mkdir /srv/alist
创建配置文件/usr/local/etc/alist/config.json,内容如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| { "force": false, "address": "0.0.0.0", "port": 5244, "site_url": "", "cdn": "", "jwt_secret": "", "token_expires_in": 48, "database": { "type": "sqlite3", "host": "", "port": 0, "user": "", "password": "", "name": "", "db_file": "/var/lib/alist/data.db", "table_prefix": "x_", "ssl_mode": "" }, "scheme": { "https": false, "cert_file": "", "key_file": "" }, "temp_dir": "/var/lib/alist/temp", "bleve_dir": "/var/lib/alist/bleve", "log": { "enable": true, "name": "/var/log/alist/alist.log", "max_size": 10, "max_backups": 5, "max_age": 28, "compress": true }, "max_connections": 0 }
|
修改目录所有权:
chown -R alist:alist /usr/local/etc/alist
chown -R alist:alist /var/lib/alist
chown -R alist:alist /var/log/alist
chown -R alist:alist /srv/alist
创建systemd服务alist.serivce,放在/etc/systemd/system目录下:
1 2 3 4 5 6 7 8 9 10 11 12 13
| [Unit] Description=Alist web service After=network.target
[Service] User=alist Group=alist ProtectSystem=yes ExecStart=/usr/local/bin/alist server --data /usr/local/etc/alist Restart=on-failure
[Install] WantedBy=multi-user.target
|
执行sudo -u alist alist admin --data /usr/local/etc/alist查看管理员信息。
执行systemctl enable --now alist启动服务。
进入管理页面,在存储-本机存储中添加/srv/alist作为本机存储服务根文件夹路径。
访问http[s]://IP:Web端口/dav[/挂载目录]挂载WebDAV,用户名密码与WebUI一致。
方法二(无配置文件)
添加alist用户
useradd -M -s /sbin/nologin alist
创建alist服务目录并修改所有权
mkdir -p /srv/alist/data
mkdir -p /srv/alist/share
chown -R alist:alist /srv/alist
创建systemd服务alist.serivce,放在/etc/systemd/system目录下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| [Unit] Description=Alist web service After=network.target
[Service] User=alist Group=alist ProtectSystem=yes WorkingDirectory=/srv/alist ExecStart=/usr/local/bin/alist server --data /srv/alist/data Restart=on-failure
[Install] WantedBy=multi-user.target
|
执行sudo -u alist alist admin --data /srv/alist/data查看管理员信息。
执行systemctl enable --now alist启动服务。
进入管理页面,在存储-本机存储中添加将/srv/alist/share作为本机存储服务根文件夹路径。
访问http[s]://IP:Web端口/dav[/挂载目录]挂载WebDAV,用户名密码与WebUI一致。
Docker搭建
执行以下命令:
1 2 3 4 5 6 7
| docker run --name=alist -d --restart=always \ -v /srv/alist:/opt/alist \ -p 5244:5244 \ -e PUID=0 \ -e PGID=0 \ -e UMASK=022 \ xhofe/alist
|
执行docker exec -it alist ./alist admin查看管理员信息。
执行docker exec -it alist mkdir /opt/alist/share创建共享目录。
进入管理页面,在存储-本机存储中添加将/opt/alist/share作为本机存储服务根文件夹路径
访问http[s]://IP:Web端口/dav[/挂载目录]挂载WebDAV,用户名密码与WebUI一致。
ghfs
一个轻量级的HTTP文件共享服务器,特点是基于Vue。
安装
在 mjpclab/go-http-file-server 下载二进制包,解压后执行chown root:root ghfs,chmod 755 ghfs赋予权限,然后移动到/usr/local/bin/目录。
使用
配置文件与选项格式相同,在配置文件中一行写一个选项。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| --config 指定读取的配置文件,这会无视其他所有选项 --listen-plain 指定HTTP监听的套接字 --listen-tls 指定HTTPS监听的套接字 --hostname 指定监听的hostname -r|--root 指定根URL目录 -R|--empty-root 不使用根URL -a|--alias ":/url目录:/本机目录" 指定URL路径映射 --prefix 指定URL前缀 -/|--force-dir-slash 访问末尾必须带/ --default-sort 默认排序方式,可选n名称排序,e类型排序,s大小排序,t时间排序,_不排序 --global-restrict-access 指定禁止访问的IP -U|--global-upload 全局允许上传 --upload 设置允许上传的目录,相对路径 --global-mkdir 全局允许创建 --mkdir-dir 设置允许创建的目录 --global-delete 全局允许删除 --delete 设置允许删除的目录,相对路径 -A|--global-archive 全局允许下载 --archive 设置允许下载的目录,相对路径 --global-cors 全局允许CORS --cors 设置允许CORS的目录,相对路径 --global-auth 全局要求认证 --auth-dir 设置需要认证的目录 --user 用户名:密码 指定用户名和密码 -c|--cert 指定证书路径 -k|--key 指定密钥路径 --to-https 重定向到HTTPS -S|--show 显示指定文件 -H|--hide 隐藏指定文件 -L|--access-log 指定access日志文件,默认的-表示标准输出 -E|--error-log 指定error日志文件,默认的-表示标准输出
|
系统全局安装标准方法
添加ghfs用户
useradd -M -s /sbin/nologin ghfs
在标准目录下创建ghfs共享目录和数据库目录,并修改所有权
mkdir /usr/local/etc/ghfs
mkdir /var/log/ghfs
mkdir /srv/ghfs
创建配置文件/usr/local/etc/ghfs/config.conf,内容如下:
1 2 3 4 5 6 7 8 9 10 11 12
| --listen-plain :8080 --root /srv/ghfs --global-auth --user 用户名:密码 --global-upload --global-mkdir --global-delete --global-archive --global-cors --cert 证书路径 --key 密钥路径 --hide '.*'
|
修改目录所有权:
chown -R ghfs:ghfs /usr/local/etc/ghfs
chown -R ghfs:ghfs /var/log/ghfs
chown -R ghfs:ghfs /srv/ghfs
创建systemd服务ghfs.serivce,放在/etc/systemd/system目录下:
1 2 3 4 5 6 7 8 9 10 11 12 13
| [Unit] Description=Go http file server After=network.target
[Service] User=ghfs Group=ghfs ProtectSystem=yes ExecStart=/usr/local/bin/ghfs --config=/usr/local/etc/ghfs.conf ExecReload=/bin/kill -s HUP $MAINPID
[Install] WantedBy=multi-user.target
|
执行systemctl enable --now ghfs启动服务
CuteHttpFileServer
支持WebDAV的小型文件服务器,特色是有Windows下的GUI。
下载
在 CuteHttpFileServer 下载二进制包即可。
安装
下载二进制文件,将文件所有者修改为root,权限设为755,然后移动到/usr/local/bin即可。
使用
命令选项如下:
1 2 3 4 5 6
| --path= 指定分享目录,用|分隔 --port= 监听的端口 --allow= 允许访问的IP,使用not()进行黑名单模式 --rule=用户名:密码:rwd 进行用户认证,空用户名和密码表示游客用户,用|分隔 --log= 指定日志目录 --file= 指定配置文件
|
配置文件格式如下,可以在 iscute.cn/asset/chfs.ini 获取:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| # 监听端口 port= # 共享根目录,通过'|'进行分割 path= # IP地址过滤 allow= # 账户控制规则 rule= # 日志存放目录,如果赋值为空,表示禁用日志 log= # 网页标题 html.title= # 网页顶部的公告板。可以是文字,也可以是HTML标签,需要用一对``(反单引号)括住所有HTML标签。几个例子: html.notice= # 是否启用图片预览,true表示开启,false为关闭。默认开启 image.preview= # 下载目录策略。disable禁用; leaf仅限叶子目录的下载; enable或其他值不进行限制。默认值为enable folder.download= # 设置后启用HTTPS,注意监听端口变为为443 # 指定certificate文件 ssl.cert= # 指定private key文件 ssl.key= # 设置会话的生命周期,单位:分钟,默认为30分钟 session.timeout=
|
系统全局安装标准方法
添加chfs用户
useradd -M -s /sbin/nologin chfs
在标准目录下创建chfs共享目录,并修改所有权
mkdir /srv/chfs
mkdir /usr/local/etc/chfs
chown -R chfs:chfs /srv/chfs
chown -R chfs:chfs /usr/local/etc/chfs
创建/usr/local/etc/chfs/chfs.conf文件,内容如下:
1 2 3 4 5 6
| # 监听端口 port= # 共享根目录,通过'|'进行分割 path=/srv/chfs # 账户控制规则 rule=::r|用户名:密码:rwd
|
创建systemd服务chfs.serivce,放在/etc/systemd/system目录下:
1 2 3 4 5 6 7 8 9 10 11 12
| [Unit] Description=chfs WebDAV server After=network.target
[Service] User=chfs Group=chfs ProtectSystem=yes ExecStart=/usr/local/bin/chfs --file=/usr/local/etc/chfs/chfs.conf
[Install] WantedBy=multi-user.target
|
启动服务
systemctl enable --now chfs
Cloudreve
网络文件服务器,支持多家云厂商。
下载
在 cloudreve/Cloudreve) 下载二进制包即可。
安装
下载二进制文件,将文件所有者修改为root,权限设为755,然后移动到/usr/local/bin即可。
使用
命令选项如下:
1 2 3 4 5 6
| --path= 指定分享目录,用|分隔 --port= 监听的端口 --allow= 允许访问的IP,使用not()进行黑名单模式 --rule=用户名:密码:rwd 进行用户认证,空用户名和密码表示游客用户,用|分隔 --log= 指定日志目录 --file= 指定配置文件
|
配置文件格式如下,可以在 iscute.cn/asset/chfs.ini 获取:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82
| [System] ; 运行模式 Mode = master ; 监听端口 Listen = :5212 ; 是否开启 Debug Debug = false ; Session 密钥, 一般在首次启动时自动生成 SessionSecret = 23333 ; Hash 加盐, 一般在首次启动时自动生成 HashIDSalt = something really hard to guess ; 呈递客户端 IP 时使用的 Header ProxyHeader = X-Forwarded-For
; SSL 相关 [SSL] ; SSL 监听端口 Listen = :443 ; 证书路径 CertPath = fullchain.pem ; 私钥路径 KeyPath = privkey.pem
; 启用 Unix Socket 监听 [UnixSocket] Listen = /run/cloudreve/cloudreve.sock ; 设置产生的 socket 文件的权限 Perm = 0666
; 数据库相关,如果你只想使用内置的 SQLite 数据库,这一部分直接删去即可 [Database] ; 数据库类型,目前支持 sqlite/mysql/mssql/postgres Type = mysql ; MySQL 端口 Port = 3306 ; 用户名 User = root ; 密码 Password = root ; 数据库地址 Host = 127.0.0.1 ; 数据库名称 Name = v3 ; 数据表前缀 TablePrefix = cd_ ; 字符集 Charset = utf8mb4 ; SQLite 数据库文件路径 DBFile = cloudreve.db ; 进程退出前安全关闭数据库连接的缓冲时间 GracePeriod = 30 ; 使用 Unix Socket 连接到数据库 UnixSocket = false
; 从机模式下的配置 [Slave] ; 通信密钥 Secret = 1234567891234567123456789123456712345678912345671234567891234567 ; 回调请求超时时间 (s) CallbackTimeout = 20 ; 签名有效期 SignatureTTL = 60
; 跨域配置 [CORS] AllowOrigins = * AllowMethods = OPTIONS,GET,POST AllowHeaders = * AllowCredentials = false SameSite = Default Secure = lse
; Redis 相关 [Redis] Server = 127.0.0.1:6379 Password = DB = 0
; 从机配置覆盖 [OptionOverwrite] ; 可直接使用 `设置名称 = 值` 的格式覆盖 max_worker_num = 50
|
系统全局安装标准方法
方法一
添加cloudreve用户
useradd -M -s /sbin/nologin cloudreve
在标准目录下创建cloudreve共享目录,并修改所有权
mkdir /var/lib/cloudreve
mkdir /srv/cloudreve
mkdir /usr/local/etc/cloudreve
chown -R cloudreve:cloudreve /var/lib/cloudreve
chown -R cloudreve:cloudreve /usr/local/etc/cloudreve
chown -R cloudreve:cloudreve /srv/cloudreve
创建/usr/local/etc/cloudreve/cloudreve.conf文件,内容如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| [System] Mode = master Listen = :5212 Debug = false SessionSecret = ProxyHeader = X-Forwarded-For
[SSL] Listen = :443 CertPath = fullchain.pem KeyPath = privkey.pem
[Database] DBFile = /var/lib/cloudreve/cloudreve.db
|
创建systemd服务cloudreve.serivce,放在/etc/systemd/system目录下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| [Unit] Description=Cloudreve Documentation=https://docs.cloudreve.org After=network.target After=mysqld.service Wants=network.target
[Service] User=cloudreve Group=cloudreve WorkingDirectory=/var/lib/cloudreve ProtectSystem=yes ExecStart=/usr/local/bin/cloudreve -c /usr/local/etc/cloudreve/conf.ini Restart=on-abnormal RestartSec=5s KillMode=mixed StandardOutput=null
[Install] WantedBy=multi-user.target
|
启动服务
systemctl enable --now cloudreve
方法二(无配置文件)
添加cloudreve用户
useradd -M -s /sbin/nologin cloudreve
创建alist服务目录并修改所有权
chown -R cloudreve:cloudreve /srv/cloudreve
创建systemd服务alist.serivce,放在/etc/systemd/system目录下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| [Unit] Description=Cloudreve Documentation=https://docs.cloudreve.org After=network.target After=mysqld.service Wants=network.target
[Service] User=cloudreve Group=cloudreve WorkingDirectory=/srv/cloudreve ProtectSystem=yes ExecStart=/usr/local/bin/cloudreve Restart=on-abnormal RestartSec=5s KillMode=mixed StandardOutput=null
[Install] WantedBy=multi-user.target
|
执行systemctl enable --now cloudreve启动服务
Docker搭建
创建上传目录和头像目录:
mkdir -p /srv/cloudreve/uploads
mkdir -p /srv/cloudreve/avatar
创建配置文件和数据库文件
touch /srv/cloudreve/conf.ini
touch /srv/cloudreve/cloudreve.db
执行以下命令:
1 2 3 4 5 6 7
| docker run -d \ -p 5212:5212 \ -v /srv/cloudreve/conf.ini:/cloudreve/conf.ini \ -v /srv/cloudreve/cloudreve.db/cloudreve/cloudreve.db \ -v /srv/cloudreve/uploads:/cloudreve/uploads \ -v /srv/cloudreve/avatar:/cloudreve/avatar \ cloudreve/cloudreve
|
webd
小型文件服务器。
下载
在 https://gwgw.ga/fidx.html#/webd/ 下载二进制包即可。
安装
下载二进制文件,将文件所有者修改为root,权限设为755,然后移动到/usr/local/bin即可。
使用
命令选项如下:
1 2 3 4 5 6 7 8
| -c 指定配置文件,不再使用默认路径的 -h Webd.Hide -B Webd.Browser -l Webd.Listen 可指定多个 -w Webd.Root -g Webd.Guest -u 类似 Webd.User,需把空格用冒号替代,例如-u rlum:user1:pass1 配置文件和命令行参数一共能设置三个用户
|
配置文件格式如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| Webd.Root 指定网盘文件的路径,更改后需移动原 web 目录下的 .Trash 文件夹到新路径下,否则无法删除文件
Webd.Listen 监听端口或特定的地址,支持多个,可配置成[::]:9212来同时监听IPv6和IPv4
Webd.Hide 隐藏托盘图标,无参数,该项仅支持 Windows
Webd.User 设置用户的权限、用户名和密码,支持两个用户,但使用同一目录 比如Webd.User rlumS user1 pass1表示设置user1的密码为pass1,具有r、l、u、m、S、T五种权限。 其中 r 表示访问文件,l 表示获取文件列表,u 表示上传文件,m 表示删除移动重命名文件,S 表示显示隐藏文件,T 表示使用网页播放媒体文件(可保存播放进度)。 注意需将安装包 web 目录下的 .player.htm 文件放到 Webd.Root 目录下才可使用 T 权限。
Webd.Guest 设置无需登录的访客权限,参考上面的权限组合;设置成0表示禁用访客。
Webd.Browser 用于指定自定义的浏览器路径;该项还能解决双击托盘图标无法弹出界面的问题。
|
系统全局安装标准方法
添加webd用户
useradd -M -s /sbin/nologin webd
在标准目录下创建webd共享目录,并修改所有权
mkdir /srv/webd
mkdir /usr/local/etc/webd
chown -R chfs:chfs /srv/webd
chown -R chfs:chfs /etc/webd
创建/usr/local/etc/webd/webd.conf文件,内容如下:
1 2 3 4 5 6 7
| # 监听端口 Webd.Listen :9212 # 共享根目录,通过'|'进行分割 Webd.Root /srv/webd # 账户控制规则 Webd.User rlumST admin admin Webd.Guest 0
|
创建systemd服务webd.serivce,放在/etc/systemd/system目录下
1 2 3 4 5 6 7 8 9 10 11 12
| [Unit] Description=webd Server After=network.target
[Service] User=webd Group=webd ProtectSystem=yes ExecStart=/usr/local/bin/webd --file=/usr/local/etc/webd/webd.conf
[Install] WantedBy=multi-user.target
|
启动服务
systemctl enable --now webd
aliyundrive-webdav
将阿里云盘转换为WebDAV的程序。
下载
在 messense/aliyundrive-webdav 下载二进制包即可。
安装
下载二进制文件,将文件所有者修改为root,权限设为755,然后移动到/usr/local/bin即可。
使用
命令选项如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| qr 显示二维码
--host IP 监听IP,默认0.0.0.0 -p, --port 端口号 监听端口,默认8080 --client-id 客户端ID 阿里云盘客户端ID --client-secret 客户端密钥 阿里云盘客户端密钥 -r, --refresh-token Token 阿里云盘Token -U, --auth-user 用户名 WebDAV用户名 -W, --auth-password 密码 WebDAV密码 -I, --auto-index 自动生成index --root 目录 根URL目录 -w, --workdir 目录 工作目录 --no-trash 禁用回收站 --read-only 只读模式 --tls-cert 证书路径 指定SSL证书 --tls-key 密钥路径 指定SSL密钥 --no-self-upgrade 并不进行自动升级 --prefer-http-download 倾向于使用HTTP下载
|
登录方法
- 在 https://messense-aliyundrive-webdav-backendrefresh-token-ucs0wn.streamlit.app/ 获取Token。
- 执行
aliyundrive-webdav qr login扫码获取Token。
系统全局安装标准方法
添加webdav用户
useradd -M -s /sbin/nologin webdav
在标准目录下创建aliyundrive-webdav共享目录,并修改所有权
mkdir /usr/local/etc/aliyundrive-webdav
chown -R webdav:webdav /usr/local/etc/aliyundrive-webdav
创建systemd服务aliyundrive-webdav.serivce,放在/etc/systemd/system目录下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| [Unit] Description=AliyunDrive WebDAV After=network.target
[Service] Type=simple Environment="REFRESH_TOKEN=" "WEBDAV_AUTH_USER=" "WEBDAV_AUTH_PASSWORD=" ProtectSystem=yes ExecStart=/usr/local/bin/aliyundrive-webdav --auto-index -w /usr/local/etc/aliyundrive-webdav --no-self-upgrade --host 0.0.0.0 -p 8080 KillMode=process Restart=on-failure
[Install] WantedBy=multi-user.target
|
启动服务
systemctl enable --now aliyundrive-webdav
Docker搭建
创建目录
mkdir -p /srv/aliyundrive-webdav
拉取镜像
docker pull messense/aliyundrive-webdav
运行
1 2 3 4 5 6
| docker run -d --name=aliyundrive-webdav --restart=unless-stopped -p 8080:8080 \ -v /srv/aliyundrive-webdav:/etc/aliyundrive-webdav \ -e REFRESH_TOKEN='' \ -e WEBDAV_AUTH_USER=admin \ -e WEBDAV_AUTH_PASSWORD=admin \ messense/aliyundrive-webdav
|
aliyunpan
阿里云盘的CLI客户端,也可以用于WebDAV。
下载
在 tickstep/aliyunpan 下载二进制包即可。
安装
下载二进制文件,将文件权限设为755,然后移动到~/.local目录,然后创建软链接ln -s ~/.local/aliyunpan/aliyunpan ~/.local/bin/即可。
使用
登录方法
在 https://messense-aliyundrive-webdav-backendrefresh-token-ucs0wn.streamlit.app/ 获取Token。
子命令如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| login -RefreshToken= 登录阿里云盘账号 loglist 列出帐号列表 logout 退出阿里帐号 quota 获取当前帐号空间配额 su 切换阿里账号 token Token相关操作 who 获取当前帐号 clear, cls 清空控制台 history 显示命令历史 update 检测程序更新 config 显示和修改程序配置项 cd 切换工作目录 download, d 下载文件/目录 locate 获取文件下载链接 ls, l, ll 列出目录 mkdir 创建目录 mv 移动文件/目录 pwd 输出工作目录 recycle 回收站 rename 重命名文件 rm 删除文件/目录 share 分享文件/目录 tree 列出目录的树形图 upload, u 上传文件/目录
|
Docker部署
文件同步
拉取镜像
docker pull tickstep/aliyunpan-sync
运行
1 2 3 4 5 6 7 8 9
| docker run -d --name=aliyunpan-sync \ --restart=always \ -v 备份路径:/home/app/data \ -e TZ="Asia/Shanghai" \ -e ALIYUNPAN_REFRESH_TOKEN="" \ -e ALIYUNPAN_PAN_DIR="云盘目录" \ -e ALIYUNPAN_SYNC_MODE="upload" \ # 可选upload仅上传,download仅下载,sync双向同步 -e ALIYUNPAN_TASK_STEP="sync" \ # 可选scan仅扫描,sync进行同步 tickstep/aliyunpan-sync
|
WebDAV
拉取镜像
docker pull tickstep/aliyunpan-webdav
运行
1 2 3 4 5 6 7 8 9 10 11
| docker run -d --name=aliyunpan-webdav \ --restart=always \ -p 23077:23077 \ -e TZ="Asia/Shanghai" \ -e ALIYUNPAN_REFRESH_TOKEN="" \ -e ALIYUNPAN_AUTH_USER="admin" \ -e ALIYUNPAN_AUTH_PASSWORD="admin" \ -e ALIYUNPAN_WEBDAV_MODE="rw" \ # 可选rw读写,ro只读 -e ALIYUNPAN_PAN_DRIVE="File" \ # 可选File文件,Album相册 -e ALIYUNPAN_PAN_DIR="云盘目录" \ tickstep/aliyunpan-webdav
|
访问IP:23077进行使用。
go-file
基于go的文件共享服务,特点是自带图床和视频播放功能。
下载
在 songquanpeng/go-file 下载二进制包即可。
安装
下载二进制文件,将文件所有者修改为root,权限设为755,然后移动到/usr/local/bin即可。
使用
命令选项如下:
1 2 3 4 5 6 7 8
| --host 监听的IP --port 监听的端口 --enable-p2p 启用P2P --p2p-port P2P端口 --no-browser 并不自动打开浏览器 --path 共享的文件目录 --video 共享的视频目录 --log-dir 日志目录
|
还有一些环境变量会影响功能:
1 2 3
| REDIS_CONN_STRING Redis数据库地址,格式为redis://user:redispw@IP:Port SQL_DSN MySQL数据库地址,格式为user:password@tcp(IP:Port)/库名 SQLITE_PATH SQLite文件路径,默认为./.go-file.db
|
系统全局安装标准方法
添加go-file用户
useradd -M -s /sbin/nologin go-file
在标准目录下创建go-file共享目录,并修改所有权
mkdir /srv/go-file
mkdir /var/lib/go-file
chown -R go-file:go-file /srv/go-file
chown -R go-file:go-file /var/lib/go-file
创建systemd服务go-file.serivce,放在/etc/systemd/system目录下:
1 2 3 4 5 6 7 8 9 10 11 12
| [Unit] Description=Go file After=network.target
[Service] Type=simple Environment="SQLITE_PATH=/var/lib/go-file/go-file.db" ProtectSystem=yes ExecStart=/usr/local/bin/go-file --no-browser --path /srv/go-file
[Install] WantedBy=multi-user.target
|
启动服务
systemctl enable --now go-file
Docker部署
拉取镜像
docker pull justsong/go-file
运行
1 2 3 4 5
| docker run -d \ -p 3000:3000 \ -e TZ=Asia/Shanghai \ -v /srv/go-file:/data \ justsong/go-file
|
访问IP:3000进行使用。