Docker部署个人观影数据

前言

之前通过 doumark-action 部署了豆瓣观影页面,但是经常出现图片打不开的情况,作者可能设置了一些访问限制。根据其仓库中的 API 使用Python 写了一个后端,通过 API 获取到个人的标记数据,存入到 SQLite 数据库中,再通过查询展示到前端。目前项目只是初步完成,还存在许多问题,不过大致能跑起来,可以通过 docker 部署,也可以直接克隆项目后运行。

项目信息

项目地址如下:

项目采用的框架如下:

特点

直接部署

直接部署需要克隆项目到本地:

GIT
https://github.com/tom2almighty/douban-showcase.git
点击展开查看更多

使用下面的命令安装依赖:

PYTHON
pip install --no-cache-dir -r requirements.txt
点击展开查看更多

环境变量

.env 文件中配置环境变量,主要修改豆瓣 ID、域名和想要展示的类型。具体的参数如下:

PLAINTEXT
DOUBAN_USER_ID=123456789
DOUBAN_API_HOST=frodo.douban.com
DOUBAN_API_KEY=0ac44ae016490db2204ce0a042db2916
AUTH_TOKEN= 

SERVER_DOMAIN=http://localhost:5000

# 同步支持的类型: movie, book, music, game, drama
DOUBAN_SYNC_TYPES=movie,book  

# API服务设置
API_PORT=5000
API_HOST=0.0.0.0

# 时区设置
TIMEZONE=Asia/Shanghai

# 数据库设置
SQLITE_DB_PATH=data/douban.db

# 图片设置
DOWNLOAD_COVERS=false
LOCAL_COVER_PATH=data/covers
# 图片展示策略: original(原始链接), local(本地缓存), mixed(混合模式)
COVER_DISPLAY_STRATEGY=mixed
# 图片代理设置 当图片展示策略为 original 或者 mixed时生效
COVER_PROXY=false

# 同步设置
ENABLE_AUTO_SYNC=true
SYNC_INTERVAL_HOURS=24

# 日志设置
LOG_FILE=data/douban-sync.log
LOG_LEVEL=INFO
点击展开查看更多

主要参数说明如下:

启动命令

完成后在项目根目录执行启动命令:

PYTHON
# 基本启动
python -m src.app

# 或者使用简写形式
python run.py

# 指定端口和主机
python -m src.app --port 8000 --host localhost

# 启动时执行全量同步
python -m src.app --sync

# 启动时执行增量同步
python -m src.app --sync-incremental

# 启动时同步封面图片
python -m src.app --sync-images

# 清除统计数据缓存
python -m src.app --clear-cache

# 组合使用
python -m src.app --port 8000 --sync-incremental --sync-images
点击展开查看更多

Docker 部署

新建文件夹,创建 compose 文件和 .env 文件。

BASH
cd /opt
mkdir -p douban-showcase
cd douban-showcase
touch compose.yml && touch .env
vim compose.yml
点击展开查看更多

compose.yml 文件中挂载数据存储目录和环境变量文件:

YAML
version: '3.8'
services:
  douban-showcase:
    image: tom2al/douban-showcase
    container_name: douban-showcase
    ports:
      - "5000:5000"
    volumes:
      - ./.env:/app/.env
      - ./data:/app/data
    restart: unless-stopped
点击展开查看更多

修改环境变量文件后运行容器:docker compose up -d

版权声明

作者: Tom Almighty

链接: https://blog.grew.cc/posts/e78f21e/

许可证: CC BY-NC-SA 4.0

本文采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。

评论

开始搜索

输入关键词搜索文章内容

↑↓
ESC
⌘K 快捷键