Docker部署个人观影数据

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