Docker部署个人观影数据
前言
之前通过 doumark-action
部署了豆瓣观影页面,但是经常出现图片打不开的情况,作者可能设置了一些访问限制。根据其仓库中的 API 使用Python
写了一个后端,通过 API 获取到个人的标记数据,存入到 SQLite 数据库中,再通过查询展示到前端。目前项目只是初步完成,还存在许多问题,不过大致能跑起来,可以通过 docker 部署,也可以直接克隆项目后运行。
项目信息
项目地址如下:
项目采用的框架如下:
- Flask
- Alpine.js
- TailwindCSS
特点
- 支持多种类型条目:movie、book、game、music、drama
- 筛选排序
- 统计功能
- 封面图下载
- 定期增量更新
直接部署
直接部署需要克隆项目到本地:
1https://github.com/tom2almighty/douban-showcase.git
使用下面的命令安装依赖:
1pip install --no-cache-dir -r requirements.txt
环境变量
在 .env
文件中配置环境变量,主要修改豆瓣 ID、域名和想要展示的类型。具体的参数如下:
1DOUBAN_USER_ID=123456789
2DOUBAN_API_HOST=frodo.douban.com
3DOUBAN_API_KEY=0ac44ae016490db2204ce0a042db2916
4AUTH_TOKEN=
5
6SERVER_DOMAIN=http://localhost:5000
7
8# 同步支持的类型: movie, book, music, game, drama
9DOUBAN_SYNC_TYPES=movie,book
10
11# API服务设置
12API_PORT=5000
13API_HOST=0.0.0.0
14
15# 时区设置
16TIMEZONE=Asia/Shanghai
17
18# 数据库设置
19SQLITE_DB_PATH=data/douban.db
20
21# 图片设置
22DOWNLOAD_COVERS=false
23LOCAL_COVER_PATH=data/covers
24# 图片展示策略: original(原始链接), local(本地缓存), mixed(混合模式)
25COVER_DISPLAY_STRATEGY=mixed
26# 图片代理设置 当图片展示策略为 original 或者 mixed时生效
27COVER_PROXY=false
28
29# 同步设置
30ENABLE_AUTO_SYNC=true
31SYNC_INTERVAL_HOURS=24
32
33# 日志设置
34LOG_FILE=data/douban-sync.log
35LOG_LEVEL=INFO
主要参数说明如下:
-
DOUBAN_USER_ID
:必填,个人豆瓣 ID -
SERVER_DOMAIN
:站点域名。 -
DOUBAN_SYNC_TYPES
:支持movie
book
music
drama
类型,其中movie
包含电视剧条目。 -
DOWNLOAD_COVERS
:是否下载封面图片。 -
LOCAL_COVER_PATH
:封面图下载路径,项目根目录相对路径。 -
COVER_DISPLAY_STRATEGY
:图片展示策略,支持local
original
mixed
。分别对应本地图片、原始链接、混合展示,混合展示优先展示本地下载图片,然后是原始链接图片,最后返回占位图。 -
COVER_PROXY
:是否图片代理,当图片展示策略为original
或者mixed
时生效,用来解决豆瓣图片无法直接访问问题。 -
ENABLE_AUTO_SYNC
:是否定期增量更细。 -
SYNC_INTERVAL_HOURS
:增量更新间隔。
启动命令
完成后在项目根目录执行启动命令:
1# 基本启动
2python -m src.app
3
4# 或者使用简写形式
5python run.py
6
7# 指定端口和主机
8python -m src.app --port 8000 --host localhost
9
10# 启动时执行全量同步
11python -m src.app --sync
12
13# 启动时执行增量同步
14python -m src.app --sync-incremental
15
16# 启动时同步封面图片
17python -m src.app --sync-images
18
19# 清除统计数据缓存
20python -m src.app --clear-cache
21
22# 组合使用
23python -m src.app --port 8000 --sync-incremental --sync-images
Docker 部署
新建文件夹,创建 compose
文件和 .env
文件。
1cd /opt
2mkdir -p douban-showcase
3cd douban-showcase
4touch compose.yml && touch .env
5vim compose.yml
在 compose.yml
文件中挂载数据存储目录和环境变量文件:
1version: '3.8'
2services:
3 douban-showcase:
4 image: tom2al/douban-showcase
5 container_name: douban-showcase
6 ports:
7 - "5000:5000"
8 volumes:
9 - ./.env:/app/.env
10 - ./data:/app/data
11 restart: unless-stopped
修改环境变量文件后运行容器:docker compose up -d
文章标题: Docker部署个人观影数据
文章链接: https://blog.grew.cc/posts/e78f21e/
版权声明: 本博客所有文章除特别声明外,均采用CC BY-NC-SA 4.0。