Pinry:一个瀑布流图片分享系统

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

预览:

全部为采集文章,文中的 联系方式 均不是 本人 的!

发表评论