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

運維技術·軟件/源碼·lala.im · 2020-09-01 · 115 人浏览

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

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 [email protected]

预览:

範例

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