Liuli在树莓派上的配置教程

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
简介: Liuli在树莓派上的配置教程

Liuli[1]的目标是帮助你一站式构建多源、干净、个性化的阅读环境,目前还在缓慢开发迭代中,欢迎更多的朋友参与进来,其当前可应用的场景有:


建议使用前看一下上面的文章,有个大概印象,接下来将根据以下方式来介绍如何在树莓派上面安装Liuli:


  • Docker 部署

  • 源码部署

PS:本项目已开源,地址见github.com/liuli-io/liuli,欢迎给个Star🤟🏻


安装 MongoDB [重要]


因为Liuli依赖MongoDB作为数据库,而在树莓派下Docker启用MongoDB有点混乱,所以这块咱就直接在系统上安装,再者因为有的朋友可能配置不是很高,都带不动Docker,到时直接源码部署的话更是要在系统上安装。


安装MongoDB

# 升级更新
sudo apt update
sudo apt upgrade
# 在`/etc/apt/sources.list`添加软件源
wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list
# 安装MongoDB
sudo apt-get update
sudo apt-get install -y mongodb-org
# 启动
sudo systemctl daemon-reload
sudo systemctl enable mongod
sudo systemctl start mongod
# 查看状态
sudo systemctl status mongod
# 进入MongoDB
mongo

创建用户:

use admin
db.createUser(
    {
        "user": "liuli",
        "pwd": "liuli",
        "roles": [
            "userAdminAnyDatabase",
            "dbAdminAnyDatabase",
            "readWriteAnyDatabase"
        ]
    }
)
exit

配置操作sudo vim /etc/mongod.conf,改动如下:

# 修改 bindIp 为 0.0.0.0,外部可访问
net:
  port: 27017
  bindIp: 0.0.0.0
# 增加登录验证
security:
   authorization: enabled

重启生效:

sudo systemctl restart mongod

此时登录:

# 注意自己的 ip
sudo mongo --host "192.168.0.2" -u "liuli" -p "liuli"
# 查看数据库
> db.adminCommand({listDatabases: 1})

Docker 部署


总的来说,Docker部署还是比较方便的,特别针对不熟悉Python的朋友,所以把这个方式放在第一位。


安装 Docker


首先我们来安装Docker

sudo apt-get install apt-transport-https ca-certificates software-properties-common -y
curl -fsSL https://get.docker.com -o get-docker.sh
# 如果网速慢,可以尝试:sudo sh get-docker.sh --mirror Aliyun
sudo sh get-docker.sh
# 添加密钥
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/raspbian/gpg | sudo apt-key add -
# 在`/etc/apt/sources.list`添加软件源
sudo add-apt-repository \
    "deb [arch=armhf] https://mirrors.aliyun.com/docker-ce/linux/raspbian \
    $(lsb_release -cs) \
    stable"
sudo groupadd docker
sudo usermod -aG docker $USER
# 更新
sudo apt-get update
sudo apt-get upgrade
# 刷新
newgrp docker
# 启动
sudo systemctl enable docker
sudo systemctl start docker
# 测试
sudo docker run hello-world

可以考虑引入portainer来管理:

sudo mkdir -p /data/docker_data/portainer_data
sudo docker run -d -p 8001:8000 -p 9001:9000 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v /data/docker_data/portainer_data:/data portainer/portainer-ce

Docker 部署


接下来就是正式部署了:

# 下载 api 和 schedule 镜像
sudo docker pull liuliio/api:v0.1.3
sudo docker pull liuliio/schedule:v0.2.4
# 建立配置目录
sudo mkdir -p liuli/liuli_config
sudo touch liuli/pro.env
sudo touch liuli/liuli_config/wechat.json

先来看看pro.env配置:

PYTHONPATH=${PYTHONPATH}:${PWD}
LL_M_USER="liuli"
LL_M_PASS="liuli"
# 你的外部可访问ip
LL_M_HOST="192.168.0.2"
LL_M_PORT="27017"
LL_M_DB="admin"
LL_M_OP_DB="liuli"
LL_FLASK_DEBUG=0
LL_HOST="0.0.0.0"
LL_HTTP_PORT=8765
LL_DOMAIN=""
LL_WORKERS=1
# 上面这么多配置不用改,下面的才需要各自配置
# 是否发送通知给钉钉
LL_D_TOKEN=""
# 是否发送通知给微信
LL_WECOM_ID=""
LL_WECOM_AGENT_ID="-1"
LL_WECOM_SECRET=""
# 在你的github建立仓库 liuli_backup 即可
# 也可以不填,完全填空,也就是内容不备份到github
LL_GITHUB_TOKEN=""
LL_GITHUB_REPO="{your_github_name}/liuli_backup"
LL_GITHUB_DOMAIN="https://{your_github_name}.github.io/liuli_backup/"

请详细查看以下文档进行具体参数配置,按照流程操作,很简单:


  • 分发器配置[2]:钉钉微信配置获取教程

  • 备份器配置[3]:Github 备份器配置获取教程

  • 参数说明[4]:各个参数详细介绍

配置好后,请将以上内容写到sudo vim liuli/pro.env文件。


接下来直接配置公众号相关,直接使用Liuli官方的配置sudo vim liuli/liuli_config/wechat.json

{
    "name": "wechat",
    "author": "liuli_team",
    "doc_source": "liuli_wechat",
    "collector": {
        "wechat": {
            "wechat_list": [
                "小众消息"
            ],
            "delta_time": 5,
            "spider_type": "sg_ruia",
            "spider_type_des": "当镜像是schedule:playwright_*时,spider_type可填写sg_playwright"
        }
    },
    "processor": {
        "before_collect": [],
        "after_collect": [{
            "func": "ad_marker",
            "cos_value": 0.6
        }, {
            "func": "to_rss",
            "doc_source_list": ["liuli_wechat"],
            "link_source": "github"
        }]
    },
    "sender": {
        "sender_list": ["wecom"],
        "query_days": 7,
        "delta_time": 3
    },
    "backup": {
        "backup_list": ["mongodb"],
        "query_days": 7,
        "delta_time": 3,
        "init_config": {},
        "after_get_content": [{
            "func": "str_replace",
            "before_str": "data-src=\"",
            "after_str": "src=\"https://images.weserv.nl/?url="
        }]
    },
    "schedule": {
        "period_list": [
            "00:10",
            "12:10",
            "21:10"
        ]
    }
}

此时文件夹目录如下:

(base) ➜  cd liuli
(base) ➜  liuli tree -L 2
.
├── liuli_config
│   └── wechat.json
└── pro.env

配置完毕,接下来就可以启动了:

# 启动 API
sudo docker run -d -it --restart=always -p 8765:8765 -v $PWD/pro.env:/data/code/pro.env --name liuli_api liuliio/api:v0.1.3
# 启动 schedule
sudo docker run -d -it --restart=always -v $PWD/pro.env:/data/code/pro.env -v $PWD/liuli_config:/data/code/liuli_config --name liuli_schedule liuliio/schedule:v0.2.4

成功日志如下:

1.jpg

此时访问以下接口可进行验证:


至此,你可以订阅和查看目标公众号的文章了。


注意 ⚠️:IP 根据自身部署服务的 IP 填写


公众号 rss 地址效果:

2.png

目标公众号备份文章:

3.png

源码部署


如果你是直接看的源码部署,请先阅读Docker部署部分,拷贝好以下文件:


  • wechat.json

  • pro.env

首先,下载源码:

git clone https://github.com/liuli-io/liuli.git
# 删除掉 Pipfile 里面以下行
# black = "*"
# isort = "*"
# pylint = "*"
# pytest = "*"
# pandas = "*"
# numpy = "*"
# pypinyin = "*"
# playwright = "*"
# 保证有 python3.7+ 环境
pip install pipenv
pipenv install --python {your_python3.7_path} --skip-lock --dev
# 配置
# 将上面的 pro.env 内容拷贝
vim pro.env
# 删除 liuli_config 文件夹所有内容
# 将 wechat.json 复制到 liuli_config/wechat.json
# 启动 API
bash ./start.sh api pro
# 启动 schedule
bash ./start.sh schedule pro

查看日志:

((liuli) ) (base) ➜  liuli git:(main) ✗ bash ./start.sh api pro
Start api(pro) serve: PIPENV_DOTENV_LOCATION=./pro.env pipenv run gunicorn -c src/config/gunicorn.py src.api.http_app:app
Loading .env environment variables...
[2022-04-28 15:00:50 +0800] [29074] [INFO] Starting gunicorn 20.1.0
[2022-04-28 15:00:50 +0800] [29074] [INFO] Listening at: http://0.0.0.0:8765 (29074)
[2022-04-28 15:00:50 +0800] [29074] [INFO] Using worker: gevent
[2022-04-28 15:00:50 +0800] [29079] [INFO] Booting worker with pid: 29079
[2022:04:28 15:00:54] INFO  Liuli API server(v0.1.3) started successfully :)
...
相关实践学习
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
相关文章
|
6月前
|
数据可视化 物联网 Python
GNU Radio简介及流程图搭建
GNU Radio简介及流程图搭建
161 0
|
4月前
|
弹性计算 安全 Ubuntu
1Panel安装:阿里云服务器安装1Panel面板教程,超详细图文流程
阿里云服务器安装1Panel面板教程:首先远程连接ECS,执行安装命令。随后设置1Panel安装目录(默认`/opt`)、端口(默认20410)、安全入口、面板用户及密码。安装后需在安全组中开通20410端口。最后,通过`服务器IP:端口/安全入口`格式访问面板。更多细节参见完整教程。
|
6月前
|
移动开发 网络安全 虚拟化
锐捷EVE-NG交换机模拟环境搭建教程
搭建虚拟网络环境的教程,包括下载VMware、EVE-NG镜像和锐捷模拟器,通过链接获取资源。在VMware中导入OVA文件,设置虚拟机(启用Intel VT-x),网络适配器设为NAT模式。启动后,登录EVE平台,设置静态IP。然后通过SSH连接,将锐捷镜像文件、配置、图标和脚本上传到虚拟机相应目录,并修复权限。最后,介绍如何在EVE-NG平台上创建实验,添加交换机节点,启动并连接到交换机进行学习。
1773 0
锐捷EVE-NG交换机模拟环境搭建教程
|
6月前
|
PHP
​小课堂 -- sqli-lab环境
​小课堂 -- sqli-lab环境
29 0
|
6月前
​小课堂 -- IIS服务器搭建(ws2003)
​小课堂 -- IIS服务器搭建(ws2003)
76 0
|
Ubuntu 网络协议 关系型数据库
aaPanel Linux面板6.8.12安装教程
这篇文章介绍了aaPanel Linux面板6.8.12的安装教程。文章要求硬件配置,包括内存和硬盘,并要求安装操作系统为Centos 7.1+、Ubuntu 20、Debian 10等。文章提供了相应的安装命令,并指出命令需要在root权限下执行。此外,文章还列出了版本更新日志,包括文件管理和文件共享功能的增强,以及其他细节的调整。
467 1
|
开发框架 移动开发 数据可视化
HaaS UI 使用 树莓派 打造自己的第一个案例
HaaS UI 使用 树莓派 打造自己的第一个案例
255 0
|
Ubuntu IDE 网络协议
鸿蒙移植i.mx6ull(二) 环境搭建
鸿蒙移植i.mx6ull(二) 环境搭建
413 0
鸿蒙移植i.mx6ull(二) 环境搭建
|
安全 Shell 数据库连接
vulfocus入门靶机
vulfocus入门靶机WP
430 0
vulfocus入门靶机
|
Linux 数据安全/隐私保护 Windows
Tool之synergyc:synergyc的简介、安装、使用方法(鼠标键盘控制两台或多台电脑)之详细攻略
Tool之synergyc:synergyc的简介、安装、使用方法(鼠标键盘控制两台或多台电脑)之详细攻略
Tool之synergyc:synergyc的简介、安装、使用方法(鼠标键盘控制两台或多台电脑)之详细攻略