mirror of
https://github.com/euzu/tuliprox.git
synced 2026-10-23 16:22:31 +02:00
3.0 KiB
3.0 KiB
Getting Started
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/
All relative paths in the configuration are resolved against that home directory.
Quick Docker start
services:
tuliprox:
container_name: tuliprox
image: ghcr.io/euzu/tuliprox-alpine:latest
working_dir: /app
volumes:
- /home/tuliprox/tuliprox:/app/tuliprox
- /home/tuliprox/config:/app/config
- /home/tuliprox/data:/app/data
- /home/tuliprox/cache:/app/cache
environment:
- TZ=Europe/Paris
ports:
- "8901:8901"
restart: unless-stopped
Open the Web UI afterwards and continue with the configuration.
Good first milestone
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.