All checks were successful
Release / Scraper / Test (push) Successful in 10s
Release / UI / Build (push) Successful in 26s
Release / v2 / Build ui-v2 (push) Successful in 17s
Release / Scraper / Docker (push) Successful in 47s
Release / UI / Docker (push) Successful in 56s
CI / Scraper / Lint (pull_request) Successful in 7s
CI / Scraper / Test (pull_request) Successful in 8s
CI / UI / Build (pull_request) Successful in 16s
CI / Scraper / Docker Push (pull_request) Has been skipped
CI / UI / Docker Push (pull_request) Has been skipped
Release / v2 / Docker / ui-v2 (push) Successful in 56s
Release / v2 / Test backend (push) Successful in 4m35s
iOS CI / Build (pull_request) Successful in 4m28s
Release / v2 / Docker / backend (push) Successful in 1m29s
Release / v2 / Docker / runner (push) Successful in 1m39s
iOS CI / Test (pull_request) Successful in 9m51s
- backend/: Go API server and runner binaries with PocketBase + MinIO storage - ui-v2/: SvelteKit frontend rewrite - docker-compose-new.yml: compose file for the v2 stack - .gitea/workflows/release-v2.yaml: CI/CD for backend, runner, and ui-v2 Docker Hub images - scripts/pb-init.sh: migrate from wget to curl, add superuser bootstrap for fresh installs - .env.example: document DOCKER_BUILDKIT=1 for Colima users
101 lines
4.7 KiB
Plaintext
101 lines
4.7 KiB
Plaintext
# libnovel scraper — environment overrides
|
|
# Copy to .env and adjust values; do NOT commit this file with real secrets.
|
|
|
|
# ── Docker BuildKit ───────────────────────────────────────────────────────────
|
|
# Required for the backend/Dockerfile cache mounts (--mount=type=cache).
|
|
# BuildKit is the default in Docker Engine 23+, but Colima users may need this.
|
|
#
|
|
# If you see: "the --mount option requires BuildKit", enable it one of two ways:
|
|
#
|
|
# Option A — per-project (recommended, zero restart needed):
|
|
# Uncomment the line below and copy this file to .env.
|
|
# Docker Compose reads .env automatically, so BuildKit will be active for
|
|
# every `docker compose build` / `docker compose up --build` in this project.
|
|
#
|
|
# Option B — system-wide for Colima (persists across restarts):
|
|
# echo '{"features":{"buildkit":true}}' > ~/.colima/default/daemon.json
|
|
# colima stop && colima start
|
|
#
|
|
# DOCKER_BUILDKIT=1
|
|
|
|
# ── Service ports (host-side) ─────────────────────────────────────────────────
|
|
# Port the scraper HTTP API listens on (default 8080)
|
|
SCRAPER_PORT=8080
|
|
|
|
# Port PocketBase listens on (default 8090)
|
|
POCKETBASE_PORT=8090
|
|
|
|
# Port MinIO S3 API listens on (default 9000)
|
|
MINIO_PORT=9000
|
|
|
|
# Port MinIO web console listens on (default 9001)
|
|
MINIO_CONSOLE_PORT=9001
|
|
|
|
# Port Browserless Chrome listens on (default 3030)
|
|
BROWSERLESS_PORT=3030
|
|
|
|
# Port the SvelteKit UI listens on (default 3000)
|
|
UI_PORT=3000
|
|
|
|
# ── Browserless ───────────────────────────────────────────────────────────────
|
|
# Browserless API token (leave empty to disable auth)
|
|
BROWSERLESS_TOKEN=
|
|
|
|
# Number of concurrent browser sessions in Browserless
|
|
BROWSERLESS_CONCURRENT=10
|
|
|
|
# Queue depth before Browserless returns 429
|
|
BROWSERLESS_QUEUED=100
|
|
|
|
# Per-session timeout in ms
|
|
BROWSERLESS_TIMEOUT=60000
|
|
|
|
# Optional webhook URL for Browserless error alerts (leave empty to disable)
|
|
ERROR_ALERT_URL=
|
|
|
|
# Which Browserless strategy the scraper uses: content | scrape | cdp | direct
|
|
BROWSERLESS_STRATEGY=direct
|
|
|
|
# ── Scraper ───────────────────────────────────────────────────────────────────
|
|
# Chapter worker goroutines (0 = NumCPU inside the container)
|
|
SCRAPER_WORKERS=0
|
|
|
|
# Host path to mount as the static output directory
|
|
STATIC_ROOT=./static/books
|
|
|
|
# ── Kokoro-FastAPI TTS ────────────────────────────────────────────────────────
|
|
# Base URL for the Kokoro-FastAPI service. When running via docker-compose the
|
|
# default (http://kokoro:8880) is wired in automatically; override here only if
|
|
# you are pointing at an external or GPU instance.
|
|
KOKORO_URL=http://kokoro:8880
|
|
|
|
# Default voice used for chapter narration.
|
|
# Single voices: af_bella, af_sky, af_heart, am_adam, …
|
|
# Mixed voices: af_bella+af_sky or af_bella(2)+af_sky(1) (weighted blend)
|
|
KOKORO_VOICE=af_bella
|
|
|
|
# ── MinIO / S3 object storage ─────────────────────────────────────────────────
|
|
MINIO_ROOT_USER=admin
|
|
MINIO_ROOT_PASSWORD=changeme123
|
|
MINIO_BUCKET_CHAPTERS=libnovel-chapters
|
|
MINIO_BUCKET_AUDIO=libnovel-audio
|
|
|
|
# ── PocketBase ────────────────────────────────────────────────────────────────
|
|
# Admin credentials (used by scraper + UI server-side)
|
|
POCKETBASE_ADMIN_EMAIL=admin@libnovel.local
|
|
POCKETBASE_ADMIN_PASSWORD=changeme123
|
|
|
|
# ── SvelteKit UI ─────────────────────────────────────────────────────────────
|
|
# Internal URL the SvelteKit server uses to reach the scraper API.
|
|
# In docker-compose this is http://scraper:8080 (wired automatically).
|
|
# Override here only if running the UI outside of docker-compose.
|
|
SCRAPER_API_URL=http://localhost:8080
|
|
|
|
# Internal URL the SvelteKit server uses to reach PocketBase.
|
|
# In docker-compose this is http://pocketbase:8090 (wired automatically).
|
|
POCKETBASE_URL=http://localhost:8090
|
|
|
|
# Public MinIO URL reachable from the browser (for audio/presigned URLs).
|
|
# In production, point this at your MinIO reverse-proxy or CDN domain.
|
|
PUBLIC_MINIO_PUBLIC_URL=http://localhost:9000
|