2C 安装教程

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
简介: 2C 安装教程

8.png

2C的目的是为了构建一个多源(公众号、RSS)、干净、个性化的阅读环境,前情提要:


如果你在公众号阅读体验下深切感受到对于广告的无奈,那么这个项目就是你需要的,一起看看怎么安装部署2C吧。


开始


2C项目对于一些基础环境是有一点要求的,为了尽可能减少开发者部署使用的复杂度(特别是非Python开发者),因此我计划使用Docker进行调度运行,这样对用户的使用来说是比较方便的,请按照以下酌情执行TODO


  • 安装Docker

  • [必读]环境变量

  • 镜像安装运行:❤️ 推荐

  • 一键安装

  • 单独安装(已有DB)

  • 代码安装2C

  • 下载2C

  • 配置2C

  • 运行2C

  • 分发器配置

推荐直接使用Docker进行安装,可使用Docker 极速下载进行安装。


环境变量


2C项目环境变量说明:

# ======================================系统环境配置======================================#
# 当前目录为模块
PYTHONPATH=${PYTHONPATH}:${PWD}
# =======================================数据库配置=======================================#
# MongoDB 用户名
CC_M_USER=""
# MongoDB 密码
CC_M_PASS=""
# MongoDB IP
# Docker Compose 形式启动的话,此行配置不变
CC_M_HOST="2c_mongodb"
# MongoDB 端口
CC_M_PORT="27017"
# MongoDB DB 最好不要变
CC_M_DB="2c"
# ======================================接口服务配置======================================#
# Flask 是否开启Flask的Debug模式
CC_FLASK_DEBUG=0
# Flask IP
CC_HOST="localhost"
# Flask 端口
CC_HTTP_PORT=8060
# Flask 服务启动的 worker 数量
CC_WORKERS=1
# =======================================采集器配置=======================================#
# 采集目标公众号,多个公众号请用;分割
CC_WECHAT_ACCOUNT="是不是很酷;老胡的储物柜"
# =======================================分发器配置=======================================#
# 2C 发送器中端配置,以;区分
# 目前支持:ding[钉钉] wecom[企业微信] 持续开发
CC_SENDER_NAME="ding;wecom"
# 分发终端为钉钉钉必须配置的Token
CC_D_TOKEN=""
# 分发终端为企业微信的配置
CC_WECOM_ID=""
CC_WECOM_AGENT_ID="-1"
CC_WECOM_SECRET=""

环境变量长期维护地址,见环境配置。


镜像安装


一键安装

mkdir 2c && cd 2c
# 数据库目录
mkdir mongodb_data
# 配置 pro.env 具体查看 doc/02.环境变量.md
vim pro.env

配置docker-compose,执行:vim docker-compose.yaml,输入:

version: "3"
services:
  2c_schedule:
    image: howie6879/2c:schedule_v0.1.0
    restart: always
    container_name: 2c_schedule
    volumes:
      - ./pro.env:/data/code/pro.env
    links:
      - 2c_mongodb
    depends_on:
      - 2c_mongodb
    networks:
      - 2c-network
  2c_mongodb:
    image: mongo:3.6
    restart: always
    container_name: 2c_mongodb
    ports:
      - "27017:27017"
    volumes:
      - ./mongodb_data:/data/db
    networks:
      - 2c-network
networks:
  2c-network:
    driver: bridge

或者点击这里下载最新的配置文件。


然后在当前目录2c_rooot_path终端执行以下命令启动:

docker-compose up -d
# 输出
# Creating network "2c_2c-network" with driver "bridge"
# Creating 2c_mongodb ... done
# Creating 2c_schedule ... done

不出意外,可以看到下面容器成功启动:

9.png

单独安装


2C项目的存储部署依赖MongoDB,如果你已经部署好了MongoDB,直接在env配置文件里面进行数据库配置即可。


如果你没有MongoDB,可以使用Docker一键执行:

# 数据库路径,开发者可自由设置
mkdir -p /data/db
docker run --name mongodb  --restart=always -p 27017:27017 -v /data/db:/data/db -d mongo:3.6

可在Docker查询是否成功启动:

docker ps -a
# 输出
# CONTAINER ID   IMAGE       COMMAND                  CREATED         STATUS         PORTS                      NAMES
# 758617a57827   mongo:3.6   "docker-entrypoint.s…"   3 seconds ago   Up 2 seconds   0.0.0.0:27017->27017/tcp   mongodb

接下来启动2c

mkdir 2c
# 配置 pro.env 具体查看 doc/02.环境变量.md
vim pro.env
# 启动
docker run -d -it --restart=always -v $PWD/pro.env:/data/code/pro.env --name 2c_schedule howie6879/2c:schedule_v0.1.0

输出日志如下:

Loading .env environment variables...
[2021:12:23 23:08:35] INFO  2C Schedule started successfully :)
[2021:12:23 23:08:35] INFO  2C Schedule time: 00:00 06:00
[2021:12:23 23:09:36] INFO  2C playwright 匹配公众号 老胡的储物柜(howie_locker) 成功! 正在提取最新文章: 我的周刊(第018期)
[2021:12:23 23:09:39] INFO  2C 公众号文章持久化成功! 👉 老胡的储物柜
[2021:12:23 23:09:40] INFO  2C 🤗 微信公众号文章更新完毕(1/1)

码安装


代码安装支持系统如下:


  • Windows

  • MacOS

  • Ubuntu 18.04 & 20.04

其他系统请使用Docker进行安装。


下载2C


安装2C前,需要你的系统环境安装有Python3.7+环境。如果确认准备好环境,请进入终端,做环境检查,如下命令:

[~] python --version                                                                 
Python 3.7.9 :: Anaconda, Inc.
[~] pip --version
pip 20.1 from /Users/howie/.local/share/virtualenvs/2c-pL4LHJaI/lib/python3.7/site-packages/pip (python 3.7)

本项目使用 pipenv 进行项目管理,安装使用过程如下:

# 确保有Python3.7+环境
git clone https://github.com/howie6879/2c.git
cd 2c
# 创建基础环境
pipenv install --python={your_python3.7+_path}  --skip-lock --dev

搭建好基础环境后,就需要对项目进行配置,具体参考如下2C配置部分。


配置2C


2C项目的配置文件位于路径src/config/config.py下,使用者可以进行以下配置:


  • 配置需要订阅的公众号

  • 数据库


  • 分发器类型配置

直接在.env文件中增加相关[环境配置]即可:

# 公众号配置, 输入你订阅的公众号名称即可
CC_WECHAT_ACCOUNT="是不是很酷;老胡的储物柜"
# 数据库配置
# 如果是本机开发,使用上述方法搭建的`MongoDB`,以下内容保持不变即可
CC_M_USER=""
CC_M_PASS=""
CC_M_HOST=""
CC_M_PORT="27017"
CC_M_DB="2c"
# 分发器配置
# 目前分发器支持类型如下:
#   - ding:钉钉
#   - wecom:企业微信
CC_SENDER_NAME="ding;wecom"
CC_D_TOKEN=""
CC_WECOM_ID=""
CC_WECOM_AGENT_ID="-1"
CC_WECOM_SECRET=""

对于分发器相关对象的密钥申请教程,详见本文下方的[2C分发器配置]。


运行2C


配置完成后,直接在终端运行即可:

# 配置.env 具体查看 doc/00.环境变量.md 启动
pipenv run dev_schedule

不出意外,会得到以下输出:

> pipenv run dev_schedule 
[2021:12:23 22:17:52] INFO  2C Schedule started successfully :)
[2021:12:23 22:17:53] INFO  2C Schedule time:
 00:00
 06:00
 09:00
 12:00
 15:00
 18:00
 21:00
[2021:12:23 22:17:56] INFO  2C playwright 匹配公众号 是不是很酷(isnt_it_cool) 成功! 正在提取最新文章: 软件工程师和算法竞赛
[2021:12:23 22:17:59] INFO  2C 公众号文章持久化成功! 👉 是不是很酷 
[2021:12:23 22:18:02] INFO  2C playwright 匹配公众号 老胡的储物柜(howie_locker) 成功! 正在提取最新文章: 我的周刊(第018期)
[2021:12:23 22:18:05] INFO  2C 公众号文章持久化成功! 👉 老胡的储物柜 
[2021:12:23 22:18:08] INFO  2C 🤗 微信公众号文章更新完毕(2/2)

这样就成功启动了,微信终端分发效果如下:

10.png

2C分发器配置


目前分发器支持类型如下:


  • [推荐] wecom:企业微信

  • ding:钉钉

钉钉


建立一个群聊用于接收文章消息,然后新增一个群机器人,如下图:

3.jpg

然后配置机器人:

4.jpg

最后记住机器人对应的Token,一般格式如下:

1dea61224e683d90c5d3694c89e30841681567747f41fb9722597d48655f4365,那么此时分发器配置如下:

# 分发配置,目标支持:ding[钉钉]、wecom[企业微信]、tg[Telegram] 等等
# 目前仅支持钉钉
SENDER_LIST = ["ding"]
# 申请钉钉TOKEN时候,关键字必须带有 [2c]
DD_TOKEN = os.getenv('CC_D_TOKEN', '1dea61224e683d90c5d3694c89e30841681567747f41fb9722597d48655f4365')

企业微信


如果你热衷微信生态,2C同样对企业微信做了支持,请先随便用手机号注册一个企业微信。

首先创造应用:

11.png

获取相关ID:

12.png

企业ID在我的企业->企业信息->企业ID


为了方便可以在微信上接收消息,记得开启微信插件,进入下图所在位置,然扫码关注你的二维码即可:

13.png

现在你获取了以下三个参数,请到对应配置填写秘钥即可。


分发器文档长期维护地址,见2C分发器配置。


相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。   相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
相关文章
|
C# Windows
C#的安装教程
C#的安装教程
236 0
|
1月前
|
消息中间件 存储 Unix
Mac系统安装教程
Mac系统安装教程
35 1
Mac系统安装教程
|
7月前
|
Python Windows
Anaconda最新版详细安装教程
Anaconda最新版详细安装教程
262 0
|
7月前
|
Web App开发 前端开发 JavaScript
Less 安装教程
Less 安装教程
83 0
|
机器学习/深度学习 决策智能 Windows
CTex完整、详细、亲测安装教程,初步使用教程
CTex完整、详细、亲测安装教程,初步使用教程
1186 0
|
缓存 数据挖掘 Linux
Anaconda3最新版2022版的下载安装配置及使用教程(建议收藏,持续更新..)
​ Anaconda,中文大蟒蛇,是一个开源的Python发行版本,其包含了conda、Python等180多个科学包及其依赖项。 Anaconda集成了我们几乎常用的包,用于快速安装,运行和升级及其依赖项在计算机便捷的创建,和保存,加载切换环境。同时conda也是一个环境管理器。 ​
1287 1
Anaconda3最新版2022版的下载安装配置及使用教程(建议收藏,持续更新..)
anaconda安装教程-手把手教你安装
anaconda安装教程-手把手教你安装
anaconda安装教程-手把手教你安装
EndNoteX9完整详细安装教程
EndNoteX9完整详细安装教程
1848 0
EndNoteX9完整详细安装教程