feat(deploy): add Dockerfile and compose for server sync
This commit is contained in:
1 parent
7674fc2c47
commit
b9d82e54c7
4 files changed
+159
No files matched your search
@@ -0,0 +1,20 @@
|
||||
# 本地凭据与运行期数据
|
||||
config.json
|
||||
config.json.bak
|
||||
config.json.tmp
|
||||
data/
|
||||
|
||||
# 开发与测试
|
||||
.venv/
|
||||
.uv/
|
||||
.pytest_cache/
|
||||
__pycache__/
|
||||
*.pyc
|
||||
tests/
|
||||
tools/
|
||||
|
||||
# Git 与编辑器
|
||||
.git/
|
||||
.gitignore
|
||||
.idea/
|
||||
.vscode/
|
||||
+32
@@ -0,0 +1,32 @@
|
||||
# 咻咻满 Reaction 看板 —— 单体服务镜像
|
||||
#
|
||||
# 运行:只读 Web + 调度 + Telegram(与 `python app.py` 等价)。
|
||||
# 配置挂载到 /config,数据挂载到 /data。
|
||||
|
||||
FROM python:3.14-slim
|
||||
|
||||
ENV TZ=Asia/Shanghai \
|
||||
PYTHONUNBUFFERED=1 \
|
||||
PYTHONDONTWRITEBYTECODE=1 \
|
||||
PIP_NO_CACHE_DIR=1
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y --no-install-recommends tzdata ca-certificates \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# 依赖锁定在 uv.lock 的 httpx 0.28.1;如需新增依赖请同步 pyproject.toml / uv.lock。
|
||||
RUN pip install --no-cache-dir "httpx==0.28.1"
|
||||
|
||||
COPY app.py favsort.py ./
|
||||
COPY reaction_board ./reaction_board
|
||||
COPY vendor ./vendor
|
||||
|
||||
VOLUME ["/config", "/data"]
|
||||
EXPOSE 8080
|
||||
|
||||
HEALTHCHECK --interval=30s --timeout=5s --start-period=20s --retries=3 \
|
||||
CMD python -c "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8080/api/health', timeout=3)"
|
||||
|
||||
CMD ["python", "app.py", "--config", "/config/config.json"]
|
||||
@@ -0,0 +1,92 @@
|
||||
{
|
||||
"bilibili": {
|
||||
"read": {
|
||||
"mid": 0,
|
||||
"csrf": "从 read 账号 cookie 中的 bili_jct 取值",
|
||||
"cookie": "只读账号的完整 Cookie(需含 SESSDATA、bili_jct、DedeUserID 等)"
|
||||
},
|
||||
"write": {
|
||||
"mid": 0,
|
||||
"csrf": "从 write 账号 cookie 中的 bili_jct 取值",
|
||||
"cookie": "写入账号的完整 Cookie(用于加入收藏夹和排序)"
|
||||
}
|
||||
},
|
||||
"telegram": {
|
||||
"enabled": false,
|
||||
"bot_token": "replace-with-telegram-bot-token",
|
||||
"chat_id": 0
|
||||
},
|
||||
"web": {
|
||||
"host": "0.0.0.0",
|
||||
"port": 8080,
|
||||
"auth_token": "replace-with-a-long-random-token",
|
||||
"public_base_url": ""
|
||||
},
|
||||
"storage": {
|
||||
"database_path": "/data/app.db",
|
||||
"backup_dir": "/data/backup",
|
||||
"backup_keep_days": 14
|
||||
},
|
||||
"folders": [
|
||||
{ "year": 2025, "media_id": 4451053851, "title": "咻咻满-reaction-2025" },
|
||||
{ "year": 2026, "media_id": 3700023351, "title": "咻咻满 reaction 合集" }
|
||||
],
|
||||
"track_fans": [37754047],
|
||||
"up_blacklist_seed": [
|
||||
261052419,
|
||||
1908537643,
|
||||
1701121088,
|
||||
542262,
|
||||
376316958,
|
||||
145178393,
|
||||
66389997,
|
||||
293976264,
|
||||
3026109
|
||||
],
|
||||
"schedule": {
|
||||
"discover_minutes": 60,
|
||||
"folder_sync_minutes": 60,
|
||||
"full_folder_refresh_hours": 6,
|
||||
"snapshot_at": "00:01",
|
||||
"candidate_ttl_days": 7
|
||||
},
|
||||
"discover": {
|
||||
"keywords": ["咻咻满 reaction", "咻咻满 充电"],
|
||||
"pages": 2,
|
||||
"window_days": 14
|
||||
},
|
||||
"notify": {
|
||||
"min_score": 2,
|
||||
"max_items_per_message": 10
|
||||
},
|
||||
"classify": {
|
||||
"require_title": "咻咻满",
|
||||
"self_mid": 37754047,
|
||||
"positive": [
|
||||
"reaction",
|
||||
"re",
|
||||
"反应",
|
||||
"看",
|
||||
"听",
|
||||
"初听",
|
||||
"首次",
|
||||
"点评",
|
||||
"锐评",
|
||||
"路人",
|
||||
"震惊",
|
||||
"双人"
|
||||
],
|
||||
"charge": ["充电", "加急", "专场"],
|
||||
"negative": ["歌切", "切片", "纯享", "搬运", "完整版"],
|
||||
"duration_boost": { "gt_30min": 1, "gt_60min": 2 }
|
||||
},
|
||||
"heat_weights": {
|
||||
"view": 0.3,
|
||||
"like": 0.2,
|
||||
"coin": 0.2,
|
||||
"favorite": 0.15,
|
||||
"share": 0.1,
|
||||
"reply": 0.03,
|
||||
"danmaku": 0.02
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
services:
|
||||
board:
|
||||
build: .
|
||||
image: reaction-board:latest
|
||||
container_name: reaction-board
|
||||
restart: unless-stopped
|
||||
init: true
|
||||
environment:
|
||||
TZ: Asia/Shanghai
|
||||
ports:
|
||||
- "8080:8080"
|
||||
volumes:
|
||||
- ./config.json:/config/config.json
|
||||
- ./data:/data
|
||||
command: ["python", "app.py", "--config", "/config/config.json"]
|
||||
Reference in new issue
Block a user