Linux端部署
更新历史
日期 | 版本 | 作者 | 更新内容 |
---|---|---|---|
2024-04-19 | 1.2 | mxdyeah | 增删内容 |
2024-04-12 | 1.1 | mxdyeah | 修复说明方法 |
2024-04-01 | 1.0 | mxdyeah | 初版 |
初版教程,写的还不够完善,请等待后续更新
有问题欢迎到Github发Issues,或者i#mxdyeah.top(# -> @)联系我
注意CentOS官方已计划停止维护CentOS Linux项目
本教程用可能遇到CentOS无法部署情况,部署不了请换系统!
目前完美测试通过:Debian 11,Ubuntu20.04、22.04、23.10,Alpine Linux,Fedora 38、39。
Arm平台遇到BUG请理性提出Issues,Arm平台我手上设备不全。
OpenBSD目前尚未完全测试通过,请等待后续调试。
clone本仓库:
首先建立相关部署文件夹,并cd到相关目录
此位置将作为程序运行位置
以下是示例,请改为实际文件夹
mkdir /path/to/epg
cd /path/to/epg
考虑到国内用户无法访问Github,所以从镜像站点下载.
git clone https://bgithub.com/mxdabc/epg/
如果您可以访问Github,推荐使用以下方式下载.
国内用户请选择Github镜像站!!!
git clone https://github.com/mxdabc/epg/
服务器没有Git的,可以wget以下压缩包
以下压缩包可能版本较老,建议还是用Git
wget -O epg.tar.gz https://res.mxdyeah.top/download/epg-latest.tar.gz
安装依赖
(1)Ubuntu、Debian系
sudo apt-get update
sudo apt-get install curl git python3 python3-pip -y
pip3 install python-dateutil django==4.2.11 requests beautifulsoup4 mysql-connector-python pymysql urllib3 redis -i https://pypi.tuna.tsinghua.edu.cn/simple
# 如果出现break-system-package,请加强制选项。即在pip3命令最后加入--break-system-package
(2)Alpine Linux
# 默认sudo,有些可能是doas,看情况使用。
sudo apk add --update --no-cache curl jq py3-configobj py3-pip py3-setuptools python3 python3-dev git
pip3 install python-dateutil django==4.2.11 requests beautifulsoup4 mysql-connector-python pymysql urllib3 redis -i https://pypi.tuna.tsinghua.edu.cn/simple
配置数据库
如果您是内网安装,可以使用SQLite3数据库,配置如下。
修改
[你的目录]/epg/settings.py
,找到以下代码块。
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': BASE_DIR / 'db.sqlite3',
},
}
MySQL用户需要导入db文件夹中的mysql.sql到相应数据库
修改
[你的目录]/epg/settings.py
,找到以下代码块。
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': '数据库名称',
'USER': '数据库用户名称',
'PASSWORD': '数据库密码',
'HOST': '127.0.0.1',
'PORT': '3306',
},
}
Linux 配置 Redis
仅并发量高或访问量大的用户需要配置Redis
内网访问量或请求数不高可以不用配置
请点上方链接查看
程序相关配置文件
[你的目录]/util/general.py
中有大部分配置
crawl_info
:需要采集的节目天数、生成xml的天数、是否需要换源等dirs
:生成测试文件目录chuanliu_Authorization
:如果使用川流TV来源,需要提供此信息
抓取数据并存入数据库
这是运行Web节面之前必须做的,否则Web界面为空。
python main.py #抓取数据并存入数据库,可设置为定时任务
python main.py -channel #抓取所有来源的频道
python main.py -n CCTV1 #单独测试某一频道
抓取的频道会加入Channel_list表,需要自己手动整理进Channel表中才可以抓取
可以打开http://ip地址:端口/admin/ 自己配置要抓取的列表
启动Web及API接口
python manage.py runserver 0.0.0.0:80
这里的0.0.0.0:80代表服务器运行在80端口,如果需要修改端口,请修改80为其他
同时服务器需在防火墙放行相应端口,在此不多赘述
Web界面地址
- 浏览器访问http://ip地址:端口/ 查看已有数据抓取情况.
- 浏览器访问http://ip地址:端口/admin/ 打开后台
- 默认用户名密码:
admin/admin
请一定更改! - V2.2及以上版本已修改密码到
epg123456
- DIYP接口
http://127.0.0.1/api/diyp/
需要提供参数?ch=CCTV1&date=20230309
进阶配置
# pip 安装uwsgi,并配置相关配置
pip3 install uwsgi -i https://pypi.tuna.tsinghua.edu.cn/simple