Sharry非常适合用于临时分享一些你的文件,同时它还可以创建一个公共上传页面用于接收别人分享给你的文件。
功能方面基本满足我的所有需求,我用过很多同类程序,可以说这个Sharry是我体验后感觉最好的了。
root@racknerd-626f077:~# which nix
/root/.nix-profile/bin/nix
root@racknerd-626f077:~# nix profile install github:eikek/sharry --extra-experimental-features nix-command --extra-experimental-features flakes
root@racknerd-626f077:~# which sharry
/root/.nix-profile/bin/sharry
root@racknerd-626f077:~#
-------------------------------------------------------
Try it out
You can try out sharry by running the following:
nix run github:eikek/sharry
To pass a configuration file, provide it to the command after a double-dash:
nix run github:eikek/sharry -- /path/to/sharry.conf
This will run the latest release using a file-based database in the
/tmp
directory.
A more elaborate setup can be started using the test-vm
:
nix run github:eikek/sharry#nixosConfigurations.test-vm.config.system.build.vm
This starts a VM with sharry installed connected to a PostgreSQL database.
Install via Nix
Sharry can be installed via the nix package manager. Sharry is currently not part of the nixpkgs collection, but you can use this flake.
$ nix profile install github:eikek/sharry
from https://eikek.github.io/sharry/doc/nix
https://eikek.github.io/sharry/doc/install
项目地址:https://github.com/eikek/sharry
---------------------------------------------------
Sharry:一个非常好用的文件分享程序
Sharry非常适合用于临时分享一些你的文件,同时它还可以创建一个公共上传页面用于接收别人分享给你的文件。
功能方面基本满足我的所有需求,我用过很多同类程序,可以说这个Sharry是我体验后感觉最好的了。
安装这里使用docker+nginx反代,首先还是老样子把需要用到的软件装一下:
apt -y update
apt -y install nginx python-certbot-nginx curl
curl -sSL https://get.docker.com/ | sh
systemctl start docker
systemctl enable docker nginx
curl -L https://github.com/docker/compose/releases/download/1.25.4/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
新建一个docker-compose:
mkdir -p /opt/docker-sharry && cd /opt/docker-sharry && nano docker-compose.yml
写入如下配置:
version: '3.5'
services:
sharry:
image: eikek0/sharry:1.3.1
container_name: sharry
depends_on:
- sharry-db
ports:
- "9090:9090"
volumes:
- ./sharry.conf:/opt/sharry.conf
command: /opt/sharry.conf
restart: unless-stopped
sharry-db:
image: postgres:11-alpine
container_name: sharry_db
environment:
- POSTGRES_DB=sharry
- POSTGRES_USER=sharry
- POSTGRES_PASSWORD=password
volumes:
- ./postgres_data:/var/lib/postgresql/data
restart: unless-stopped
接着新建一个sharry的配置文件:
nano sharry.conf
写入如下配置:
sharry.restserver {
base-url = "https://sharry.imlala.best" # 修改成你的域名
bind {
address = "0.0.0.0"
port = 9090
}
webapp {
app-name = "imlala"
app-icon = ""
app-logo = ""
app-footer = ""
app-footer-visible = false
chunk-size = "100M"
welcome-message = ""
}
backend {
auth {
fixed {
enabled = true
user = "admin" # 管理员账号
password = "password" # 管理员密码
}
}
jdbc {
url = "jdbc:postgresql://sharry-db:5432/sharry"
user = "sharry"
password = "password" # 数据库密码,与POSTGRES_PASSWORD环境变量要一致
}
signup {
mode = "invite"
invite-time = "14 days"
invite-password = "generate-invite" # 邀请链接生成密码
}
share {
chunk-size = "512K"
max-size = "1024G"
max-validity = 365 days
}
cleanup {
enabled = true
interval = 14 days
invalid-age = 7 days
}
}
}
注:
上面的这个配置是我根据自己的需求来的,还有一些其他的配置,你可以参考官方的文档来更改,这里就不多介绍了
https://eikek.github.io/sharry/doc/configure
确认没问题后up起来即可:
docker-compose up -d
现在新建一个nginx反代配置文件:
nano /etc/nginx/conf.d/sharry.conf
写入如下配置:
server {
listen 80;
server_name sharry.imlala.best; # 换成你的域名
client_max_body_size 0;
location / {
proxy_pass http://127.0.0.1:9090;
proxy_buffering off;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
最后使用certbot签发一个ssl证书即可:
certbot --nginx --agree-tos --no-eff-email --email xxxxx@qq.com
访问你的域名能看到程序的登录页面。
点创建分享,就可以开始分享你的文件了,在这里可以设置描述/过期时间/密码保护/最大浏览次数等。
No comments:
Post a Comment