Add docker-compose setup for ani-cli-web
This commit is contained in:
@@ -1,5 +1,10 @@
|
|||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
|
## 0.30.1 - 2026-05-17
|
||||||
|
|
||||||
|
- Added a `docker-compose.yaml` file that builds the bundled Docker image, mounts `./downloads` and `./.ani-cli-web`, and exposes the ani-cli git remotes, branch, and startup flags through Compose environment defaults.
|
||||||
|
- Documented the Compose workflow alongside the existing Docker build and `docker run` setup.
|
||||||
|
|
||||||
## 0.30.0 - 2026-05-17
|
## 0.30.0 - 2026-05-17
|
||||||
|
|
||||||
- Added a Docker image build that clones `ani-cli` and `ani-cli-web` from configurable git remotes, installs `ani-cli` system-wide, and starts `ani-cli-web` from `/app`.
|
- Added a Docker image build that clones `ani-cli` and `ani-cli-web` from configurable git remotes, installs `ani-cli` system-wide, and starts `ani-cli-web` from `/app`.
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
A local web UI for a system-wide `ani-cli` install.
|
A local web UI for a system-wide `ani-cli` install.
|
||||||
|
|
||||||
Current version: `0.30.0`
|
Current version: `0.30.1`
|
||||||
|
|
||||||
## Project Layout
|
## Project Layout
|
||||||
|
|
||||||
@@ -11,6 +11,7 @@ ani-cli-web/
|
|||||||
app.py Public entrypoint, runtime wiring, watchlist domain logic, and CLI startup.
|
app.py Public entrypoint, runtime wiring, watchlist domain logic, and CLI startup.
|
||||||
app_support.py Shared runtime/state/config helpers plus queue and library file utilities.
|
app_support.py Shared runtime/state/config helpers plus queue and library file utilities.
|
||||||
Dockerfile Container image build for system-wide ani-cli plus /app ani-cli-web.
|
Dockerfile Container image build for system-wide ani-cli plus /app ani-cli-web.
|
||||||
|
docker-compose.yaml Compose service for building and running the container with persistent mounts.
|
||||||
queue_jobs.py Download queue and background watchlist-refresh workers.
|
queue_jobs.py Download queue and background watchlist-refresh workers.
|
||||||
watchlist_identity.py Safer watchlist identity resolution for queued download jobs.
|
watchlist_identity.py Safer watchlist identity resolution for queued download jobs.
|
||||||
title_matching.py Shared anime-title normalization and matching helpers.
|
title_matching.py Shared anime-title normalization and matching helpers.
|
||||||
@@ -91,6 +92,24 @@ docker run --rm \
|
|||||||
ani-cli-web
|
ani-cli-web
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Or start the same setup with Compose:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
docker compose up --build -d
|
||||||
|
```
|
||||||
|
|
||||||
|
The included `docker-compose.yaml` uses the same defaults as the `Dockerfile`, mounts `./downloads` to `/downloads`, mounts `./.ani-cli-web` to `/app/.ani-cli-web`, and lets you override build/runtime settings through environment variables such as:
|
||||||
|
|
||||||
|
```text
|
||||||
|
ANI_CLI=https://github.com/pystardust/ani-cli.git
|
||||||
|
ANI_CLI_BRANCH=master
|
||||||
|
ANI_CLI_WEB=https://gitea.coreplay.eu/Dymas/ani-cli-web.git
|
||||||
|
ANI_CLI_WEB_PORT=8421
|
||||||
|
UPDATE_ON_START=false
|
||||||
|
ANI_CLI_WEB_ALLOW_REMOTE=false
|
||||||
|
ANI_CLI_WEB_REMOTE_TOKEN=
|
||||||
|
```
|
||||||
|
|
||||||
Container defaults:
|
Container defaults:
|
||||||
|
|
||||||
- `ani-cli` is installed at `/usr/local/bin/ani-cli`.
|
- `ani-cli` is installed at `/usr/local/bin/ani-cli`.
|
||||||
|
|||||||
+1
-1
@@ -16,7 +16,7 @@ from uuid import uuid4
|
|||||||
PROJECT_ROOT = Path(__file__).resolve().parent
|
PROJECT_ROOT = Path(__file__).resolve().parent
|
||||||
ANI_CLI = os.environ.get("ANI_CLI_BIN") or shutil.which("ani-cli") or "ani-cli"
|
ANI_CLI = os.environ.get("ANI_CLI_BIN") or shutil.which("ani-cli") or "ani-cli"
|
||||||
APP_NAME = "ani-cli-web"
|
APP_NAME = "ani-cli-web"
|
||||||
VERSION = "0.30.0"
|
VERSION = "0.30.1"
|
||||||
ALLANIME_BASE = "allanime.day"
|
ALLANIME_BASE = "allanime.day"
|
||||||
ALLANIME_API = f"https://api.{ALLANIME_BASE}"
|
ALLANIME_API = f"https://api.{ALLANIME_BASE}"
|
||||||
ALLANIME_REFERER = "https://allmanga.to"
|
ALLANIME_REFERER = "https://allmanga.to"
|
||||||
|
|||||||
@@ -0,0 +1,23 @@
|
|||||||
|
services:
|
||||||
|
ani-cli-web:
|
||||||
|
build:
|
||||||
|
context: .
|
||||||
|
dockerfile: Dockerfile
|
||||||
|
args:
|
||||||
|
ANI_CLI: ${ANI_CLI:-https://github.com/pystardust/ani-cli.git}
|
||||||
|
ANI_CLI_BRANCH: ${ANI_CLI_BRANCH:-master}
|
||||||
|
ANI_CLI_WEB: ${ANI_CLI_WEB:-https://gitea.coreplay.eu/Dymas/ani-cli-web.git}
|
||||||
|
image: ani-cli-web:latest
|
||||||
|
restart: unless-stopped
|
||||||
|
ports:
|
||||||
|
- "${ANI_CLI_WEB_PORT:-8421}:8421"
|
||||||
|
environment:
|
||||||
|
UPDATE_ON_START: ${UPDATE_ON_START:-false}
|
||||||
|
ANI_CLI_WEB_HOST: 0.0.0.0
|
||||||
|
ANI_CLI_WEB_PORT: ${ANI_CLI_WEB_PORT:-8421}
|
||||||
|
ANI_CLI_WEB_ALLOW_REMOTE: ${ANI_CLI_WEB_ALLOW_REMOTE:-false}
|
||||||
|
ANI_CLI_WEB_REMOTE_TOKEN: ${ANI_CLI_WEB_REMOTE_TOKEN:-}
|
||||||
|
ANI_CLI_DOWNLOAD_DIR: /downloads
|
||||||
|
volumes:
|
||||||
|
- ./downloads:/downloads
|
||||||
|
- ./.ani-cli-web:/app/.ani-cli-web
|
||||||
Reference in New Issue
Block a user