Skip to content

JigSawFr/aiometadata-docker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

14 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

AIOMetadata Docker

Latest Version Docker Pulls Build Status License

🐳 Docker images for AIOMetadata - The Ultimate Stremio Metadata Addon


TorBox

⚑ Sponsored by TorBox
Premium Torrent & Usenet Cloud Downloader - 80Gbps Speeds


This repository automatically builds and publishes versioned Docker images from the official cedya77/aiometadata releases.

✨ Features

  • πŸ”„ Auto-sync - Automatically builds new releases every 6 hours
  • 🏷️ Versioned tags - Full semver support (1.15.0, 1.15, 1, latest, beta)
  • πŸ—οΈ Multi-arch - Native builds for linux/amd64 and linux/arm64 (no QEMU emulation)
  • 🩺 Healthcheck - Built-in Docker HEALTHCHECK for orchestrators
  • πŸ” Signed images - All images signed with Cosign (keyless/OIDC)
  • πŸ—œοΈ Optimized - Zstd compression for smaller image size
  • πŸ”„ Auto-updates - Base image updates via Renovate

πŸš€ Quick Start

Docker Run

docker run -d \
  --name aiometadata \
  -p 1337:1337 \
  -e REDIS_URL=redis://your-redis:6379 \
  -e HOST_NAME=http://localhost:1337 \
  -e TMDB_API=your_tmdb_api_key \
  -e DATABASE_URL=file:./addon/data/addon.db \
  ghcr.io/jigsawfr/aiometadata-docker:latest

Docker Compose (Recommended)

  1. Download the docker-compose.yml:
curl -O https://raw.githubusercontent.com/JigSawFr/aiometadata-docker/main/docker-compose.yml
  1. Create a .env file:
# Required
HOST_NAME=https://your-domain.com
TMDB_API=your_tmdb_api_key

# Optional
ADMIN_KEY=your_admin_key
FANART_API=your_fanart_api_key
RPDB_API_KEY=your_rpdb_api_key
  1. Start the stack:
docker compose up -d

πŸ“¦ Available Tags

Tag Description
latest Latest stable release
beta Latest pre-release/beta
1.15.0 Specific version
1.15 Latest patch for v1.15.x
1 Latest minor/patch for v1.x.x

Pull Commands

# Latest stable
docker pull ghcr.io/jigsawfr/aiometadata-docker:latest

# Specific version
docker pull ghcr.io/jigsawfr/aiometadata-docker:1.15.0

# Beta channel
docker pull ghcr.io/jigsawfr/aiometadata-docker:beta

πŸ”§ Environment Variables

Required

Variable Description Example
REDIS_URL Redis connection URL redis://localhost:6379
HOST_NAME Your public domain https://your-domain.com
TMDB_API TMDB API key (Get one) abc123...
DATABASE_URI SQLite or PostgreSQL URL sqlite://addon/data/db.sqlite

Optional - API Keys

Variable Description
TVDB_API_KEY TVDB API key (series/anime metadata)
FANART_API_KEY Fanart.tv API key (logos, backgrounds)
RPDB_API_KEY RatingPosterDB API key (ratings on posters)
MDBLIST_API_KEY MDBList API key (personal lists)
GEMINI_API_KEY Gemini API key (AI search features)

Optional - AniList Integration

Variable Description
ANILIST_CLIENT_ID AniList OAuth client ID
ANILIST_CLIENT_SECRET AniList OAuth client secret
ANILIST_REDIRECT_URI AniList callback URL

Optional - Trakt Integration

Variable Description
TRAKT_CLIENT_ID Trakt OAuth client ID
TRAKT_CLIENT_SECRET Trakt OAuth client secret
TRAKT_REDIRECT_URI Trakt callback URL

Optional - Server Configuration

Variable Description Default
PORT Server port 1337
NODE_ENV Node environment production
LOG_LEVEL Logging level (silent/fatal/error/warn/info/debug/trace) info
TZ Timezone System default
ADMIN_KEY Dashboard admin key -
ADDON_PASSWORD Addon protection password -
ADDON_NAME_SUFFIX Suffix for addon name in manifest -
ADDON_LOGO_URL Custom logo URL -

Optional - Cache Configuration

Variable Description Default
META_TTL Metadata cache TTL (seconds) 604800 (7 days)
CATALOG_TTL Catalog cache TTL (seconds) 86400 (1 day)
CATALOG_LIST_ITEMS_SIZE Items per catalog page 20
ENABLE_CACHE_WARMING Enable cache warming on startup true
CACHE_WARMUP_MODE Warm-up mode (essential/comprehensive) essential
CACHE_WARM_INTERVAL_HOURS Cache warming interval 24

Optional - Proxy Configuration

Variable Description
SOCKS_PROXY_URL SOCKS proxy for all requests
HTTP_PROXY HTTP proxy for all requests
HTTPS_PROXY HTTPS proxy for all requests
TMDB_SOCKS_PROXY_URL SOCKS proxy for TMDB requests
MAL_SOCKS_PROXY_URL SOCKS proxy for Jikan/MAL requests

πŸ“– Full documentation: ENVIRONMENT_VARIABLES.md

πŸ” Verify Image Signature

All images are signed with Cosign. Verify with:

cosign verify ghcr.io/jigsawfr/aiometadata-docker:latest \
  --certificate-identity-regexp=".*" \
  --certificate-oidc-issuer-regexp=".*"

🩺 Health Check

The container includes a built-in health check:

HEALTHCHECK --interval=30s --timeout=10s --start-period=60s --retries=3 \
    CMD wget -q --spider http://localhost:1337/api/cache/health || exit 1

Monitor health status:

docker inspect --format='{{.State.Health.Status}}' aiometadata

πŸ“Š Monitoring

Access the dashboard at http://your-host:1337/dashboard (requires ADMIN_KEY if set).

Endpoints

Endpoint Description
/ Configuration UI
/dashboard Admin dashboard
/api/cache/health Health check endpoint
/stremio/:uuid/manifest.json Stremio manifest

πŸ”„ Updates

Images are automatically built when:

  • A new release is published on cedya77/aiometadata
  • The Node.js Alpine base image is updated (via Renovate)

Manual Update

docker compose pull
docker compose up -d

πŸ“ Volumes

Path Description
/app/addon/data SQLite database and user data

🌐 Reverse Proxy

Traefik

Uncomment the Traefik labels in docker-compose.yml:

labels:
  - "traefik.enable=true"
  - "traefik.http.routers.aiometadata.rule=Host(`aiometadata.yourdomain.com`)"
  - "traefik.http.routers.aiometadata.entrypoints=websecure"
  - "traefik.http.routers.aiometadata.tls.certresolver=letsencrypt"
  - "traefik.http.services.aiometadata.loadbalancer.server.port=1337"

Nginx

server {
    listen 443 ssl http2;
    server_name aiometadata.yourdomain.com;

    location / {
        proxy_pass http://localhost:1337;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

🀝 Contributing

Issues and PRs are welcome! For upstream addon issues, please report to cedya77/aiometadata.

πŸ—οΈ Build Architecture

This project uses native ARM64 runners for multi-architecture builds:

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  ubuntu-latest  β”‚     β”‚ ubuntu-24.04-armβ”‚
β”‚    (AMD64)      β”‚     β”‚     (ARM64)     β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€     β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ Native build    β”‚     β”‚ Native build    β”‚
β”‚ β†’ :tag-amd64    β”‚     β”‚ β†’ :tag-arm64    β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜
         β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                     β–Ό
           β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
           β”‚ Create Manifest β”‚
           β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
           β”‚ docker manifest β”‚
           β”‚    β†’ :tag       β”‚
           β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

This approach avoids QEMU emulation issues with native modules like sqlite3.

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.


Upstream Project: cedya77/aiometadata
Last Check:

About

🐳 Automated Docker images for AIOMetadata - The Ultimate Stremio Metadata Addon | Multi-arch (amd64/arm64) | Auto-sync with upstream | Cosign signed

Topics

Resources

License

Stars

2 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors