Pinry是一个开源的,用Python写的瀑布流图片分享系统。
这里我使用docker部署,由于我这台机器的系统是archlinux,下面安装docker的步骤是基于archlinux的。
如果需要debian或者centos安装docker的方法可以在本博客搜索关键字:docker
那首先我们安装docker和docker-compose,这里再安装一个nginx用于反向代理:
pacman -S docker docker-compose nginx-mainline certbot-nginx
设置docker/nginx开机自启:
systemctl enable docker nginx
新建目录以及docker-compose文件:
mkdir -p /opt/pinry && cd /opt/pinry && nano docker-compose.yml
写入如下配置:
version: "3.5" services: pinry: image: getpinry/pinry container_name: pinry restart: always ports: - 8087:80 volumes: - /opt/pinry/data:/data
然后up起来即可:
docker-compose up -d
接下来使用如下命令创建一个管理员账号:
docker-compose exec pinry python manage.py createsuperuser --settings=pinry.settings.docker
如有需求,你现在应该编辑一下pinry的配置文件:
nano /opt/pinry/data/local_settings.py
这里可以设置pinry的一些功能:
ALLOW_NEW_REGISTRATIONS = False # 关闭用户注册 PUBLIC = False # 所有内容登录可见
修改了pinry的配置后,使其生效必须要重启pinry容器:
docker-compose restart pinry
现在你可以检查一下访问VPSIP:8087是否能够打开Pinry的WEB界面,可以的话接下来配置Nginx反向代理。
archlinux包管理器安装的nginx与debian包管理器安装的有一点区别,debian安装的nginx是帮我们做好了一些include的,但archlinux并没有,所以这里我们可以按照debian的风格来配置nginx。
创建两个目录,一个用于可用站点(存放配置文件)一个用于启用站点:
mkdir /etc/nginx/sites-available mkdir /etc/nginx/sites-enabled
接着编辑nginx的主配置文件:
nano /etc/nginx/nginx.conf
在http块内添加如下引用:
http { include sites-enabled/*; }
然后在站点可用目录内新建一个站点配置文件,用于反向代理:
nano /etc/nginx/sites-available/pinry.conf
写入如下配置:
server { listen 80; server_name pinry.imlala.best; # 换成你的域名 client_max_body_size 0; location / { proxy_pass http://127.0.0.1:8087; proxy_buffering off; proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header X-Real-IP $remote_addr; } }
最后做一个软链接即可:
ln -s /etc/nginx/sites-available/pinry.conf /etc/nginx/sites-enabled/pinry.conf
如果要关闭一个站点,现在你只需删除软链接:
unlink /etc/nginx/sites-enabled/pinry.conf
重载nginx使配置生效:
systemctl reload nginx
如果需要https,你可以使用certbot签一个ssl证书,它会自动帮你配置nginx的相关设置:
certbot --nginx --agree-tos --no-eff-email --email xxxxx@qq.com
预览:
我用Debian去搭建,刚开始还好好的,到了反代那开始踩坑,幸好听大佬的,发现问题看日志,然后就成功了
大佬,能不能直接导入图片,而不是前台上传?
好像不行哦。