用docker部署ArtiPub开源的一文多发平台

yum docker nginx centos7 运维 · best · 于 4年前 发布 · 2834 次阅读

ArtiPub (Article Publisher的简称,意为"文章发布者")是一款开源的一文多发平台,可以帮助文章作者将编写好的文章自动发布到掘金、SegmentFault、CSDN、知乎、开源中国等技术媒体平台,传播优质知识,获取最大的曝光度。ArtiPub安装简单,提供了多种安装方式,可以一键安装使用,安装一般只要5分钟。

ArtiPub目前支持文章编辑、文章发布、数据统计的功能,后期我们会加入存量文章导入、数据分析的功能,让您更好的管理、优化您的技术文章。此外,我们还会接入更多媒体渠道,真正做到让文章随处可阅。

就放一张图来看看就知道有多强大

开发团队做的很全面了,尝试着用npm安装,发现构建的过程太费劲了,果断放弃。 因为我是一个使用者,所以还是docker吧,希望docker版本能更新及时。

通过Docker,可以免去安装MongoDB的步骤,也是我们最推荐的安装方式。使用Docker安装ArtiPub前,请确保您安装了Docker以及Docker Compose。

Docker 安装参考:CentOS7 下 Docker 升级到最新版本

本地端运行

本地端运行就相当于桌面软件的感觉。 如果需要本地端运行直接参考官方说明就好,只不过注意要把mongodb的路径挂在外面以防丢失数据。

注意:如果你想在阿里云、腾讯云上运行,请跳过本段,直接看服务器端安装。

version: '3.3'
services:
  app:
    image: "tikazyq/artipub:latest"
    environment:
      MONGO_HOST: "mongo"
      ARTIPUB_API_ADDRESS: "localhost:3000" # 后端API地址,如果安装地址不在本机,请修改为服务器IP地址+端口号(默认为3000)
    ports:
      - "8000:8000" # frontend
      - "3000:3000" # backend
    depends_on:
      - mongo
  mongo:
    image: mongo:latest
    volumes:
      - /srv/data/db:/data/db ####重点在这
    restart: always
    ports:
      - "27017:27017"

然后在命令行中输入如下命令。

docker-compose up

然后在浏览器中输入 http://localhost:8000 可以看到界面。

服务器端安装

如果你想在阿里云、腾讯云上运行,相当于搭建个网站,网站技术就复杂了,又是web服务,又是接口,又是数据库的。 所以针对一个普通用户,更得需要docker了。

ArtiPub 是用前后端分离的技术实现,所以有个两个端:

所以,把界面和接口传出来得靠web服务,我这里习惯用Nginx,所以还需要安装nginx。

整个过程:

  1. 解析一个域名到主机,如:ap.bestyii.com
  2. 安装Nginx:参考此文第一部分即可 CentOS 7 下 Nginx 安全加固配置规范
  3. 配置nginx.conf
  4. 配置docker-compose.yaml文件

配置docker-compose.yaml文件

在您的项目目录下创建docker-compose.yaml文件,输入如下内容。

services:
  app:
    image: "tikazyq/artipub:latest"
    environment:
      MONGO_HOST: "mongo"
      ARTIPUB_API_ADDRESS: "ap.bestyii.com/api" #### 接口端API地址
    ports:
      - "8000:8000" # frontend
      - "3000:3000" # backend
    depends_on:
      - mongo
  mongo:
    image: mongo:latest
    volumes:
      - /srv/data/db:/data/db  #### 数据库放到外面目录防止数据丢失
    restart: always
    ports:
      - "27017:27017"

然后在命令行中输入如下命令。

docker-compose up -d

Nginx 配置文件

创建/etc/nginx/conf.d/com.bestyii.ap.conf文件,填入以下信息

server {
    listen       80;
    server_name  ap.bestyii.com; #域名别忘了换自己的

    #charset koi8-r;
    access_log  /var/log/nginx/com.bestyii.ap.access.log  main;
    error_log /var/log/nginx/com.bestyii.ap.error.log;

   #api后面的/必须保留
    location /api/ {
        proxy_set_header Host $http_host;
        proxy_pass http://127.0.0.1:3000/;
        #后面/必须保留,不然会把api 也带过去,导致404
    }

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

检测nignx,并重启

nginx -t

service nginx reload

然后在浏览器中输入 http://ap.bestyii.com 可以看到界面。

行走江湖安全最重要

这个程序没有用户概念,所以得自行加锁。

加锁请参考:CentOS 7 下 Nginx HTTP Authorization之Basic Auth设置

本文由 best 创作,采用 知识共享署名 3.0 中国大陆许可协议 进行许可。 可自由转载、引用,但需署名作者且注明文章出处。

共收到 0 条回复
没有找到数据。
添加回复 (需要登录)
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册