lala.im:bepasty:一个粘贴板/临时文件共享程序

運維技術·軟件/源碼·lala.im · 2020-11-17 · 114 人浏览

原文地址:https://lala.im/7609.html,請支持原作者!該處僅作轉載。

这个程序应该是很久没更新了,最近看到又有更新,网上也没找到预览,就想搭建一个看看。
搭建完了之后发现界面不是很好看,但是功能还比较多,并且不需要数据库,很轻量。
程序对python版本应该是有要求,我这里使用的是Debian10默认的python3.7.3。
安装需要用到的软件包/设置supervisor/nginx开机自启:

apt -y install git build-essential nginx supervisor python3-dev python3-pip python3-venv
systemctl enable --now supervisor nginx

新建一个用户/切到这个用户下:

useradd -m -s /bin/bash bepasty
su - bepasty

新建数据存储和日志存储用的目录:

mkdir storage logs

创建/启用python3虚拟环境:

python3 -m venv bepasty
source bepasty/bin/activate

拉取项目源码/安装依赖/安装Gunicorn:

git clone https://github.com/bepasty/bepasty-server.git
cd bepasty-server/
pip3 install wheel
pip3 install -e .
pip3 install gunicorn gevent

新建一个程序需要用到的配置文件:

nano bepasty.conf

写入如下配置:

SITENAME = 'Moonbridge'
ASCIINEMA_THEME = 'monokai'
MAX_ALLOWED_FILE_SIZE = 5 * 1000 * 1000 * 1000
MAX_BODY_SIZE = 1 * 1024 * 1024 - 8192
UPLOAD_LOCKED = False
USE_PYTHON_MAGIC = True
STORAGE = 'filesystem'
STORAGE_FILESYSTEM_DIRECTORY = '/home/bepasty/storage/'
SECRET_KEY = 'example'
SESSION_COOKIE_SECURE = False
PERMANENT_SESSION = False
PERMANENT_SESSION_LIFETIME = 31 * 24 * 3600
PERMISSIONS = {
    'password': 'admin,list,create,modify,read,delete',
}
DEFAULT_PERMISSIONS = 'read'

这里有几个需要注意的地方:
SECRET_KEY需要自己设置一个随机的字符串。其次是PERMISSIONS,下面的password改成你的密码。
另外DEFAULT_PERMISSIONS是针对访客(未登录的用户)权限,这里我配置的是read,也就是访客有查看文件的权限。
更多的配置和说明可以参考这个文件:
https://github.com/bepasty/bepasty-server/blob/master/src/bepasty/config.py
接下来切回root用户下:

su - root

新建一个supervisor的配置文件用于守护程序:

nano /etc/supervisor/conf.d/bepasty.conf

写入如下配置:

[program:bepasty]
environment=BEPASTY_CONFIG="/home/bepasty/bepasty-server/bepasty.conf"
directory=/home/bepasty/bepasty-server
command=/home/bepasty/bepasty/bin/gunicorn bepasty.wsgi --name bepasty --workers=4 --log-level=info --bind=unix:/home/bepasty/gunicorn.sock --pid /home/bepasty/gunicorn.pid -k gevent               
user=bepasty
autostart=true
autorestart=true
redirect_stderr=true
stdout_logfile=/home/bepasty/logs/gunicorn_supervisor.log

启动bepasty即可:

supervisorctl update

最后新建nginx反向代理配置文件:

nano /etc/nginx/conf.d/bepasty.conf

写入如下配置:

upstream pasty_server {
  server unix:/home/bepasty/gunicorn.sock fail_timeout=0;
}

server {
  listen 80;
  server_name bepasty.imlala.best; # 换成你的域名
  client_max_body_size 0;

  access_log /home/bepasty/logs/nginx-access.log;
  error_log /home/bepasty/logs/nginx-error.log;

  location / {
      proxy_set_header Host $http_host;
      proxy_pass http://pasty_server;
  }

  location /static/ {
      alias /home/bepasty/bepasty-server/src/bepasty/static/;
  }
}

重载nginx:

systemctl reload nginx

如果需要配置ssl,安装并使用certbot即可帮你自动配置:

apt -y install python-certbot-nginx
certbot --nginx

打开你的域名应该可以看到这个程序的首页,在右上角输入你在bepasty.conf内配置的密码即可登录:

範例
程序支持粘贴板,还可以上传图片/视频/MP3等格式的文件,支持设定到期时间:

範例

運維技術 軟件/源碼 lala.im
Theme Jasmine by Kent Liao