mirror of
https://github.com/euzu/tuliprox.git
synced 2026-10-14 03:42:30 +02:00
* docs: overhaul introduction and architecture guide - Rewrite index.md into a comprehensive Operator Manual - Add detailed explanation of the System Architecture (Rust/WASM) - Document core unique features: Session Holding, Grace Periods, and Shared Streams - Add Metadata Enrichment details (TMDB, PTT, and FFprobe) - Implement Mermaid sequence diagram for Network Flow Architecture - Update documentation map with new link structure * docs: refactor deployment guides into installation and build manuals - Split deployment.md into installation.md and build-and-deploy.md - Add comprehensive Docker Compose examples and volume explanations - Document image variants (scratch vs. alpine) for DevSecOps best practices - Expand on cross-compilation (MUSL, ARM, Windows) and WASM toolchains - Add documentation for the "Docker Container Templates" ecosystem (Traefik, Gluetun, CrowdSec) - Update CLI argument reference table
3.3 KiB
3.3 KiB
Getting Started
Recommended reading order
- Installation
- Configuration (Core System)
- Add Sources & Targets
- API Proxy
- Streaming & Proxy
- Templates
- Mappings
Run Tuliprox via docker compose
services:
tuliprox:
container_name: tuliprox
image: ghcr.io/euzu/tuliprox-alpine:latest
working_dir: /app
volumes:
- /opt/tuliprox/config:/app/config
- /opt/tuliprox/data:/app/data
- /opt/tuliprox/backup:/app/backup
- /opt/tuliprox/downloads:/app/downloads
- /opt/tuliprox/cache:/app/cache
environment:
- TZ=Europe/Berlin
ports:
- "8901:8901"
restart: unless-stopped
healthcheck:
test: ["CMD", "/app/tuliprox", "-p", "/app/config", "--healthcheck"]
interval: 30s
timeout: 10s
retries: 3
start_period: 10s
Open the Web UI afterward and continue with the configuration.
First configuration steps
For a new setup, the usual first goal is:
- add one working input
- create one target
- confirm playlist output
- confirm one stream works
- only then add mapping, filtering, reverse proxy and metadata features
That keeps failures local and makes provider-specific issues much easier to diagnose.
Run modes
Tuliprox has two main modes:
- CLI mode: process playlists once and exit
- Server mode: run the API, background tasks and Web UI integration
Main commands
Run once:
cargo run --bin tuliprox -- -c config/config.yml -i config/source.yml
Run as server:
cargo run --bin tuliprox -- -s -c config/config.yml -i config/source.yml
Generate a UI password hash:
cargo run --bin tuliprox -- --genpwd
CLI arguments
Usage: tuliprox [OPTIONS]
Options:
-H, --home <HOME>
-p, --config-path <CONFIG_PATH>
-c, --config <CONFIG_FILE>
-i, --source <SOURCE_FILE>
-m, --mapping <MAPPING_FILE>
-T, --template <TEMPLATE_FILE>
-t, --target <TARGET>
-a, --api-proxy <API_PROXY>
-s, --server
-l, --log-level <LOG_LEVEL>
--genpwd
--healthcheck
--scan-library
--force-library-rescan
--dbx
--dbm
--dbms
--dbe
--dbv
--dbx, --dbm, --dbe, --dbv and --dbms open the internal database viewers for Xtream, M3U, EPG, target-id mapping and metadata retry status files.
Important files
config/config.yml: application and server configurationconfig/source.yml: inputs, providers, targetsconfig/api-proxy.yml: users and published server URLsconfig/mapping.yml/config/template.yml: optional mapping and template rulesconfig/user.txt: Web UI login credentials (username:hash[:groups]). If:groupsis omitted, the user falls back to the legacyadminassignment. Examples:admin:$argon2id$...andeditor:$argon2id$...:operatorsconfig/groups.txt: RBAC permission group definitions (optional)
Default project layout
Tuliprox resolves its home directory in this order:
--homeTULIPROX_HOME- directory of the
tuliproxbinary
Typical directories below that home:
config/data/data/backup/downloads/web/cache/
All relative paths in the configuration are resolved against that home directory.