JellyGate

module
v1.5.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 9, 2026 License: MIT

README

JellyGate Logo

JellyGate

Docker Build GHCR Image

Admin and onboarding portal for Jellyfin, with native LDAP/Active Directory support.


Overview

JellyGate centralizes invitations, account creation, password resets, LDAP / Active Directory integration, and administrative workflows for Jellyfin.

Screenshots

JellyGate Dashboard

📸 More Screenshots / Plus de captures d'écran
Login Page Users Management
Login Page Users Management
Invitations Management Audit Logs
Invitations Management Audit Logs
Settings
Settings

Installation

Using Docker Compose is the simplest and recommended way to deploy JellyGate. It keeps the stack stable and easy to update.

1. Prepare the folder

mkdir jellygate && cd jellygate
curl -O https://raw.githubusercontent.com/maelmoreau21/JellyGate/main/docker-compose.yml
curl -O https://raw.githubusercontent.com/maelmoreau21/JellyGate/main/.env.example
cp .env.example .env

2. Configure

Edit .env with your settings:

# Required: secret key for session signing
JELLYGATE_SECRET_KEY=generate_a_random_key_here

# Jellyfin
JELLYFIN_URL=http://your-jellyfin:8096
JELLYFIN_API_KEY=your_admin_api_key

3. Start

docker compose up -d

[!IMPORTANT] Docker Compose reads the .env file from the deployment folder, not .env.local. After updating JELLYFIN_API_KEY or JELLYFIN_URL, recreate the container:

docker compose config
docker compose up -d --force-recreate
docker logs jellygate --tail 100

[!TIP] If you prefer PostgreSQL instead of SQLite, use: docker compose -f docker-compose.postgres.yml up -d

4. Access

Open http://localhost:8097/admin/login and sign in with your Jellyfin admin account.


Features

Area Details
Invitations Unique links, expiry, quotas, labels, Jellyfin presets, automation mappings
Accounts Atomic provisioning across LDAP + Jellyfin + SQL with rollback on failure
Users Admin listing, toggle access, delete, Jellyfin sync, user profile
Password reset Public request, token flow, Jellyfin + LDAP update
Security CSRF, rate limiting, centralized HTTP headers, signed cookies
Audit Advanced filters, CSV/JSON export, request_id correlation
i18n Full multilingual system (fr, en, etc.)
Integrations SMTP, Discord, Telegram, Matrix, seerrr, JellyTrack

Configuration

Variable Required Default Description
JELLYGATE_SECRET_KEY Yes - Session signing key (min 32 chars)
JELLYGATE_PORT No 8097 HTTP port
JELLYGATE_BASE_URL No http://localhost:8097 Public base URL
JELLYGATE_DATA_DIR No /data Data directory inside the container
JELLYGATE_TRUST_PROXY_HEADERS No false Trust proxy headers (X-Forwarded-For, etc.) for client IP detection
JELLYFIN_URL Yes - Jellyfin URL
JELLYFIN_API_KEY Yes - Jellyfin API key
DB_TYPE No sqlite sqlite or postgres

[!NOTE] LDAP, SMTP, webhooks, and email templates are configured in the admin UI.

Optional integrations (URLs + API keys):

  • JELLYSEERR_URL / JELLYSEERR_API_KEY
  • JELLYTRACK_URL / JELLYTRACK_API_KEY
  • OMBI_URL / OMBI_API_KEY

Localization

Language selection is automatic in this order: lang cookie > Accept-Language header > default_lang. A language selector is also available in the UI.


Development

npm run build:css     # Build Tailwind CSS
go build ./...        # Compile check
go test ./...         # Run tests
go run ./cmd/i18ncheck # Verify translations

License

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

Directories

Path Synopsis
cmd
i18ncheck command
i18ncoverage command
jellygate command
Package main est le point d'entrée de JellyGate.
Package main est le point d'entrée de JellyGate.
internal
config
Package config gère le chargement et la validation de la configuration de JellyGate à partir des variables d'environnement.
Package config gère le chargement et la validation de la configuration de JellyGate à partir des variables d'environnement.
database
Package database gère la connexion SQL (SQLite ou PostgreSQL) et les migrations automatiques de JellyGate.
Package database gère la connexion SQL (SQLite ou PostgreSQL) et les migrations automatiques de JellyGate.
handlers
Package handlers — admin.go
Package handlers — admin.go
jellyfin
Package jellyfin fournit un client REST pour interagir avec l'API Jellyfin.
Package jellyfin fournit un client REST pour interagir avec l'API Jellyfin.
ldap
Package ldap fournit un client LDAPS pour interagir avec Active Directory.
Package ldap fournit un client LDAPS pour interagir avec Active Directory.
mail
Package mail fournit un client SMTP pour l'envoi d'emails dans JellyGate.
Package mail fournit un client SMTP pour l'envoi d'emails dans JellyGate.
middleware
Package middleware contient les middlewares HTTP de JellyGate.
Package middleware contient les middlewares HTTP de JellyGate.
notify
Package notify envoie des notifications multi-plateformes (Discord, Telegram, Matrix).
Package notify envoie des notifications multi-plateformes (Discord, Telegram, Matrix).
render
Package render fournit le moteur de templates HTML pour JellyGate.
Package render fournit le moteur de templates HTML pour JellyGate.
session
Package session gère les sessions admin de JellyGate.
Package session gère les sessions admin de JellyGate.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL