Sign inSign up

ivanmicai/anime-upscaling-app

By ivanmicai

•Updated about 2 months ago

Web dashboard for Anime Upscaling — self-hosted anime upscaling, interpolation and re-encoding

Image
Machine learning & AI
0

3.1K

ivanmicai/anime-upscaling-app repository overview

⁠Anime Upscaling — Web dashboard

Next.js dashboard for Anime Upscaling⁠, a self-hosted app for anime video restoration: upscaling, frame interpolation, re-encoding and integrity checks, powered by video2x⁠ and FFmpeg.

This image is the web UI only. It serves the dashboard and proxies requests to the API container — ivanmicai/anime-upscaling-api⁠, which runs the actual GPU work. Run both together, on matching tags.

Everything stays on your machine — no cloud, no telemetry, no per-minute pricing.

Website: https://ivanmicai.github.io/anime-upscaling/⁠

⁠What it gives you

  • Web dashboard for jobs, live logs, files, settings and saved pipelines
  • Reusable pipelines: chain upscale + interpolate + optimize as a single job
  • Per-step progress and ETA, with live log streaming per job
  • File explorer with natural-sort episode ordering across deep folder trees
  • Single-password login gate with a signed session cookie

⁠Image details

  • Next.js 16 standalone build on node:26-alpine
  • Runs as a non-root user (nextjs, uid 1001)
  • Listens on port 3000 by default — override with PORT
  • linux/amd64

⁠Quick start

This image needs the API container alongside it. Save as docker-compose.yml:

services:
  api:
    image: ivanmicai/anime-upscaling-api:latest
    container_name: anime-upscaling-api
    environment:
      API_PORT: 4751
      PROCESS_DIR: /data
      GPU_COUNT: 1
      STREAMS_PER_GPU: 1
      FFMPEG_STREAMS: 1
    expose: ["4751"]
    volumes:
      - ./data:/data
    restart: unless-stopped

  web:
    image: ivanmicai/anime-upscaling-app:latest
    container_name: anime-upscaling-app
    environment:
      PORT: 4750
      API_URL: http://api:4751
      PROCESS_DIR: /data
      AUTH_PASSWORD: replace-this-password
      AUTH_SECRET: replace-with-openssl-rand-hex-32
    ports:
      - "4750:4750"
    volumes:
      - ./data:/data:ro
    depends_on: [api]
    restart: unless-stopped

Then:

mkdir -p data/input data/output data/optimized data/interpolated data/temp
docker compose up -d

Open http://localhost:4750⁠ and log in with your AUTH_PASSWORD.

Drop source videos into data/input. Outputs land in data/output, data/optimized or data/interpolated, depending on the job or pipeline.

Or clone the repository and run make quickstart, which generates the secrets, creates the folders and starts both containers for you.

⁠NVIDIA GPU

Add the GPU reservation to the api service — the web container never touches the GPU:

  api:
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: 1
              capabilities: [gpu]

Requires the NVIDIA Container Toolkit⁠ on the host.

⁠Environment variables

VariableDefaultDescription
PORT3000Port the Next.js server listens on.
API_URLhttp://localhost:4751Base URL of the API container. Set it to http://api:4751 under Compose.
PROCESS_DIR/dataContainer path where the media tree is mounted.
AUTH_PASSWORDemptyPassword for the login gate. If left empty the gate is disabled and the app is open to anyone who can reach the port.
AUTH_SECRETemptySecret used to derive the session cookie. Generate with openssl rand -hex 32.

⁠Tags

TagMeaning
latestMost recent release
X.Y.ZExact release, matching the GitHub release
X.YLatest patch of that minor
XLatest release of that major

Keep this image and anime-upscaling-api on the same tag — they are released together.

⁠Security

Publish the web port only — the API is meant to stay on the internal Compose network. The built-in login is a single shared password for self-hosted use; put the service behind HTTPS, a VPN or a trusted reverse proxy if it is reachable outside a private network.

Tag summary

Content type

Image

Digest

sha256:0b368598b…

Size

80.2 MB

Last updated

about 2 months ago

docker pull ivanmicai/anime-upscaling-app