静看光阴荏苒
不管不顾不问不说也不念

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

这个程序应该是很久没更新了,最近看到又有更新,网上也没找到预览,就想搭建一个看看。

搭建完了之后发现界面不是很好看,但是功能还比较多,并且不需要数据库,很轻量。

程序对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等格式的文件,支持设定到期时间:

赞(3)
未经允许不得转载:荒岛 » bepasty:一个粘贴板/临时文件共享程序
分享到: 更多 (0)

评论 6

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. #1

    如果不用反代,用IP直接打开,端口是?

    Foliage2周前 (11-18) Chrome 86.0.4240.93 Chrome 86.0.4240.93 iPhone iOS 14.2 iPhone iOS 14.2回复
    • 这个gunicorn配置的是套接字监听,不能直接用端口打开,如果要用端口的话,你可以把gunicorn后面的配置改为端口监听。

      LALA1周前 (11-22) Google Chrome 80.0.3987.163 Google Chrome 80.0.3987.163 Windows 10 x64 Edition Windows 10 x64 Edition回复
      • 好的,謝謝!

        Foliage1周前 (11-22) Google Chrome 87.0.4280.66 Google Chrome 87.0.4280.66 Android 8.1.0 Android 8.1.0回复
  2. #2

    问一个新手问题 像这种部署方式完成后 我想在相同的机器上再部署一个 ss+v2plugin 应该怎么写 nginx 呢?因为我不想写blog 同时直接打开域名一个 nginx 反代页面也太扎眼了 如果我在 A机器上放一个 sshwofty+ss+v2plugin B机器上放一个bepasty+ss+v2plugin 这样我应该怎么操作呢 大佬有时间水几篇教程吧 :razz: 给大佬磕头.jpg

    cossxiu2周前 (11-20) Google Chrome 86.0.4240.183 Google Chrome 86.0.4240.183 Windows 10 x64 Edition Windows 10 x64 Edition回复
    • 对于nginx来说本质上没有什么区别,还是反代,只需要把反代的端口改成ss的就行了,可以参考这个:https://lala.im/6434.html

      LALA1周前 (11-22) Google Chrome 80.0.3987.163 Google Chrome 80.0.3987.163 Windows 10 x64 Edition Windows 10 x64 Edition回复
  3. #3

    我也有一个问题,拉拉缺男朋友吗?我报名排队一个

    男神15小时前 Google Chrome 87.0.4280.66 Google Chrome 87.0.4280.66 Windows 10 x64 Edition Windows 10 x64 Edition回复

分享创造快乐

广告合作资源投稿