Справочник конфигурации
Полный справочник всех полей конфигурации Al(co)pac.
Начиная с версии 0.2 основной формат конфигурации — TOML (config.toml). JSON-файлы (init.conf, current.conf) поддерживаются для обратной совместимости. При первом запуске настройки из init.conf автоматически мигрируются в config.toml.
Приоритет: переменные окружения > config.toml > init.conf > current.conf > значения по умолчанию.
Сервер
[server]
addr = ":888"{
"Server": {
"Addr": ":888"
}
}| Поле | TOML-ключ | Описание | По умолчанию |
|---|---|---|---|
Addr | server.addr | Адрес и порт сервера | :888 |
SystemDNS | server.system_dns | 0.3 NEW Системный DNS-резолвер вместо встроенного Go. Решает проблемы с локальным DNS (MikroTik, CHR). Требует CGO_ENABLED=1 | false |
DNSServers | server.dns_servers | 0.3 NEW Кастомные DNS-серверы. Поддержка DNS-over-TLS: ["tls://8.8.8.8"] (обходит перехват порта 53 роутером) | — |
Telegram авторизация
[telegram]
enable = true
bot_token = "123456:ABC..."
admin_id = 123456789
bot_name = "my_bot"
max_devices_per_user = 3
auto_approve = false
auto_approve_days = 30{
"TelegramAuth": {
"Enable": true,
"BotToken": "123456:ABC...",
"AdminID": 123456789,
"BotName": "my_bot",
"MaxDevicesPerUser": 3,
"AutoApprove": false,
"AutoApproveDays": 30
}
}| Поле | TOML-ключ | Описание | По умолчанию |
|---|---|---|---|
Enable | telegram.enable | Включить TG-авторизацию | false |
BotToken | telegram.bot_token | Токен Telegram-бота | — |
AdminID | telegram.admin_id | ID суперадминистратора в Telegram | — |
BotName | telegram.bot_name | Username бота (без @) | — |
MaxDevicesPerUser | telegram.max_devices_per_user | Лимит устройств на пользователя | 3 |
AutoApprove | telegram.auto_approve | Авто-одобрение новых пользователей | false |
AutoApproveDays | telegram.auto_approve_days | Срок авто-одобрения в днях | 30 |
RequiredChats | telegram.required_chats | 0.3 NEW Обязательные подписки на каналы/группы (массив {chat_id, title, link}) | — |
CheckIntervalMin | telegram.check_interval_min | 0.3 NEW Интервал проверки подписок (минуты) | 60 |
Парольная авторизация
[admin]
password = "my_password"{
"AdminAuth": {
"Password": "my_password"
}
}| Поле | TOML-ключ | Описание |
|---|---|---|
Password | admin.password | Пароль администратора. При первом запуске хэшируется. |
При включённой парольной авторизации автоматически настраивается TOTP 2FA — при первом входе нужно отсканировать QR-код.
TorrServer
[torrserver]
port = 9080
# password = ""
# home_dir = ""{
"TorrServer": {
"Port": 9080,
"URL": "",
"Password": "",
"HomeDir": "/opt/lampac/torrserver"
}
}| Поле | TOML-ключ | Описание | По умолчанию |
|---|---|---|---|
Port | torrserver.port | HTTP-порт локального TorrServer (не используется для встроенного) | 9080 |
URL | torrserver.url | URL внешнего TorrServer | — |
Password | torrserver.password | Пароль | автоопределение из accs.db |
HomeDir | torrserver.home_dir | Директория данных | {RepoRoot}/torrserver/ |
При использовании встроенного TorrServer (сборка
-torrs) настройки port не требуются — TorrServer работает внутри процесса Al(co)pac. В админ-панели отображается зелёная плашка «✓ TorrServer встроен в бинарник». Поле url можно использовать для переопределения на внешний сервер.TMDB Прокси
[tmdb_proxy]
mode = "self" # "self" | "alcopa" | "disabled"
host = "tmdb.alcopa.cc"{
"TMDBProxy": {
"Mode": "self",
"Host": "tmdb.alcopa.cc"
}
}| Поле | TOML-ключ | Описание | По умолчанию |
|---|---|---|---|
Mode | tmdb_proxy.mode | Режим проксирования TMDB API | "self" |
Host | tmdb_proxy.host | Хост для режима alcopa | "tmdb.alcopa.cc" |
Режимы:
self— TMDB API проксируется через ваш сервер (/tmdb/api/*,/tmdb/img/*)alcopa— через выделенный проксиtmdb.alcopa.ccdisabled— без проксирования, Lampa обращается к TMDB напрямую
Прокси VLESS
[[proxy.vless.entries]]
uri = "vless://..."
balancers = ["zetflix"]
label = "NL"
engine = "xray"{
"ProxyVless": {
"Entries": [
{
"URI": "vless://...",
"Balancers": ["zetflix"],
"Label": "NL",
"Engine": "xray"
}
]
}
}| Поле | TOML-ключ | Описание |
|---|---|---|
URI | proxy.vless.entries.uri | URI прокси (vless, vmess, ss, trojan) |
Balancers | proxy.vless.entries.balancers | Список балансеров для этого прокси |
Label | proxy.vless.entries.label | Метка отображения |
Engine | proxy.vless.entries.engine | "xray", "mihomo" или пусто (авто) |
Прокси Direct
[[proxy.direct.entries]]
uri = "socks5://host:port"
balancers = ["kinogo"]
label = "DE"{
"ProxyDirect": {
"Entries": [
{
"URI": "socks5://host:port",
"Balancers": ["kinogo"],
"Label": "DE"
}
]
}
}Транскодирование
[transcoding]
enable = false
ffmpeg = "ffmpeg"
max_concurrent_jobs = 5
temp_root = "cache/transcoding"{
"Transcoding": {
"Enable": false,
"FFmpeg": "/usr/bin/ffmpeg",
"TempRoot": "/tmp",
"MaxConcurrent": 2
}
}Kit
[kit]
enable = false
cache_to_seconds = 60
server_host = ""
encrypt = true{
"Kit": {
"Enable": false,
"CacheToSeconds": 60,
"ServerHost": "https://example.com"
}
}| Поле | TOML-ключ | Описание | По умолчанию |
|---|---|---|---|
Enable | kit.enable | Включить Kit | false |
CacheToSeconds | kit.cache_to_seconds | TTL кэша | 60 |
ServerHost | kit.server_host | Публичный HTTPS URL | — |
Encrypt | kit.encrypt | Шифровать токены | true |
Синхронизация (Master/Slave)
[sync]
enable = false
type = "master"
sync_full = false
api_host = ""
api_passwd = ""{
"Sync": {
"Enable": false,
"Type": "master",
"SyncFull": false,
"APIHost": "",
"APIPasswd": ""
}
}| Поле | TOML-ключ | Описание |
|---|---|---|
Enable | sync.enable | Включить синхронизацию |
Type | sync.type | "master" или "slave" |
SyncFull | sync.sync_full | Синхронизировать всю конфигурацию или только пользователей |
APIHost | sync.api_host | URL мастер-сервера (для slave) |
APIPasswd | sync.api_passwd | Пароль для аутентификации |
Балансеры
[online.rezka]
host = "https://rezka-ua.tv"
login = ""
password = ""
[online.collaps]
api_host = "https://api.variyt.ws"
token = ""
[online.filmix]
host = "http://filmixapp.cyou"
token = ""
[online.mirage]
api_host = "https://api.apbugall.org"
link_host = "https://quadrillion-as.stloadi.live"
token = ""
[online.videoseed]
host = "https://videoseed.tv"
token = ""
[online.videodb]
host = "https://kinogo.media"
api_host = "https://30bf3790.obrut.show"
api_host2 = "https://d6dd387e.obrut.show"
fallback_host = "https://api.variyt.ws"
[online.zetflix]
host = "https://go.zet-flix.online"
hls = true
stream_proxy = true
[online.redheadsound]
host = "https://redheadsound.studio"{
"Rezka": { "host": "...", "enable": true },
"Collaps": { "host": "api.variyt.ws", "token": "..." },
"Filmix": { "host": "filmixapp.cyou", "token": "..." },
"Mirage": { "token": "...", "MirageAPIHost": "...", "MirageLinkHost": "..." },
"Videoseed": { "token": "..." }
}Общие поля для балансеров:
| Поле | TOML-ключ | Описание |
|---|---|---|
host | online.<name>.host | URL API-сервера |
token | online.<name>.token | Токен аутентификации |
api_host | online.<name>.api_host | URL API (для балансеров с отдельным API) |
cookie | online.<name>.cookie | Сессионные куки |
login | online.<name>.login | Логин |
password | online.<name>.password | Пароль |
hls | online.<name>.hls | Включить HLS |
VideoDB (мульти-CDN)
| Поле | TOML-ключ | Описание | По умолчанию |
|---|---|---|---|
host | online.videodb.host | Сайт-источник метаданных | https://kinogo.media |
api_host | online.videodb.api_host | Основной CDN (obrut.show, сайт AN) | https://30bf3790.obrut.show |
api_host2 | online.videodb.api_host2 | Вторичный CDN (obrut.show, сайт cjM) | https://d6dd387e.obrut.show |
fallback_host | online.videodb.fallback_host | Fallback CDN (collaps embed → interkh.com) | https://api.variyt.ws |
Каскад CDN: api_host → api_host2 → fallback_host. Если фильм не найден на первом CDN, пробуется следующий.
Zetflix
| Поле | TOML-ключ | Описание | По умолчанию |
|---|---|---|---|
host | online.zetflix.host | URL сервера | https://go.zet-flix.online |
hls | online.zetflix.hls | Использовать HLS | true |
stream_proxy | online.zetflix.stream_proxy | Проксировать потоки | true |
Mirage
| Поле | TOML-ключ | Описание | По умолчанию |
|---|---|---|---|
api_host | online.mirage.api_host | URL API | https://api.apbugall.org |
link_host | online.mirage.link_host | CDN хост | https://quadrillion-as.stloadi.live |
token | online.mirage.token | Токен аутентификации | — |
Плагины
[web.plugins]
dlna = true
tracks = true
transcoding = true
tmdb_proxy = true
online = true
catalog = true
sisi = true
torrserver = true
backup = true
sync = true
bookmark = true
timecode = true
ads_free = true
web_player = true
web_player_android = false{
"InitPlugins": {
"Online": true,
"TorrServer": true,
"Catalog": true,
"Bookmark": true,
"Timecode": true,
"Tracks": false,
"DLNA": false,
"Transcoding": false,
"TMDBProxy": true,
"SISI": false,
"Backup": true,
"Sync": false,
"AdsFree": true
}
}Пул браузеров (Chromium)
[browser_pool]
max_concurrent = 8
stream_cache_max = 2000
stream_cache_ttl_h = 8{
"BrowserPool": {
"MaxConcurrent": 8,
"StreamCacheMax": 2000,
"StreamCacheTTLH": 8
}
}| Поле | TOML-ключ | Описание | По умолчанию |
|---|---|---|---|
MaxConcurrent | browser_pool.max_concurrent | Макс. параллельных сессий Chromium | 8 |
StreamCacheMax | browser_pool.stream_cache_max | Макс. записей в кэше стрим-URL | 2000 |
StreamCacheTTLH | browser_pool.stream_cache_ttl_h | TTL кэша в часах | 8 |
Пул браузеров используется балансерами, требующими рендеринг JavaScript (Mirage и др.). Требуется установленный Chromium.
LLM
[llm]
endpoint = "http://localhost:11434/v1"
api_key = ""
model = "qwen2.5-coder-14b"
temp = 0.1
max_retries = 5{
"LLM": {
"Endpoint": "http://localhost:11434/v1",
"ApiKey": "",
"Model": "qwen2.5-coder-14b",
"Temp": 0.1,
"MaxRetries": 5
}
}| Поле | TOML-ключ | Описание | По умолчанию |
|---|---|---|---|
Endpoint | llm.endpoint | URL API (OpenAI-совместимый) | — |
ApiKey | llm.api_key | API-ключ | — |
Model | llm.model | Модель | qwen2.5-coder-14b |
Temp | llm.temp | Temperature | 0.1 |
MaxRetries | llm.max_retries | Макс. повторов | 5 |
DLNA
[dlna]
enable = false
path = "dlna"
upnp = true
upnp_port = 1338
friendly_name = "Lampac DLNA"{
"DLNA": {
"Enable": false,
"Path": "dlna",
"UPnP": true,
"UPnPPort": 1338,
"FriendlyName": "Lampac DLNA"
}
}| Поле | TOML-ключ | Описание | По умолчанию |
|---|---|---|---|
Enable | dlna.enable | Включить DLNA | false |
Path | dlna.path | HTTP-путь для файл-браузера | "dlna" |
UPnP | dlna.upnp | Включить UPnP/SSDP обнаружение | true |
UPnPPort | dlna.upnp_port | Порт UPnP MediaServer | 1338 |
FriendlyName | dlna.friendly_name | Имя устройства в сети | "Lampac DLNA" |
UPnP DLNA позволяет Smart TV и медиаплеерам (VLC, Kodi) автоматически находить сервер в локальной сети через SSDP. В каталоге отображаются файлы из раздела DLNA и активные торрент-потоки.
YouTube OAuth
[youtube_oauth]
client_id = ""
client_secret = ""{
"YouTubeOAuth": {
"ClientID": "",
"ClientSecret": ""
}
}| Поле | TOML-ключ | Описание |
|---|---|---|
ClientID | youtube_oauth.client_id | OAuth Client ID (Google Cloud Console, тип: TVs and Limited Input) |
ClientSecret | youtube_oauth.client_secret | OAuth Client Secret |
YouTube OAuth использует Google Device Flow (как Smart TV). Пользователь вводит код на google.com/device, после чего в ленте Lampa появляются подписки и плейлисты YouTube. Команды бота:
/youtube_auth, /youtube_unbind.Парсер (JacRed / Jackett)
[parser]
jacred_host = "https://jacred.xyz"
jackett_host = ""
jackett_key = ""| Поле | TOML-ключ | Описание | По умолчанию |
|---|---|---|---|
JacRedHost | parser.jacred_host | Хост JacRed (торрент-поиск) | https://jacred.xyz |
JackettHost | parser.jackett_host | Хост Jackett (альтернативный торрент-поиск) | — |
JackettKey | parser.jackett_key | API-ключ Jackett | — |
JacRed и Jackett можно использовать одновременно. Также поддерживается top-level ключ
jacred_host (вне секций) для обратной совместимости.Переменные окружения
| Переменная | Описание |
|---|---|
LAMPAC_GO_ADDR | Адрес сервера |
LAMPAC_GO_REPO_ROOT | Корневая директория |
LAMPAC_GO_CACHE_DIR | Директория кэша |
LAMPAC_GO_LOCAL_CORE | Использовать локальные веб-файлы |
LAMPAC_GO_FALLBACK_ENABLE | Включить fallback |
LAMPAC_GO_LEGACY_BASE_URL | URL для fallback |
LAMPAC_GO_METRICS_PATH | Prometheus метрики |
LAMPAC_GO_HEALTH_PATH | Health-check endpoint |
LAMPAC_GO_READY_PATH | Readiness-check endpoint |
LAMPAC_GO_ACCESS_LOG | Логирование запросов |
LAMPAC_GO_TG_AUTH_ENABLE | Включить TG-авторизацию |
LAMPAC_GO_TG_BOT_TOKEN | Токен TG-бота |
LAMPAC_GO_TG_ADMIN_ID | Admin ID |
LAMPAC_GO_TG_BOT_NAME | Username бота |
LAMPAC_GO_TG_MAX_DEVICES | Лимит устройств |
LAMPAC_GO_ADMIN_PASSWORD | Пароль администратора |
LAMPAC_GO_TORRSERVER_PORT | Порт TorrServer |
LAMPAC_GO_TORRSERVER_HOME | Директория TorrServer |
LAMPAC_GO_JACRED_HOST | JacRed хост |
Переменные окружения имеют наивысший приоритет. Порядок приоритета: env >
config.toml > init.conf > current.conf > значения по умолчанию.WebSocket 0.3 NEW
[websocket]
type = "nws"
inactive_after_minutes = 30| Поле | TOML-ключ | Описание | По умолчанию |
|---|---|---|---|
Type | websocket.type | Тип WebSocket-сервера (nws | signalr) | "nws" |
InactiveAfterMinutes | websocket.inactive_after_minutes | Таймаут неактивного соединения (минуты) | 30 |
Sisi (18+)
[sisi]
spider = false
component = "sisi"
push_all = false
history_enable = true| Поле | TOML-ключ | Описание | По умолчанию |
|---|---|---|---|
Spider | sisi.spider | Включить модули для взрослых | false |
Component | sisi.component | Имя компонента в Lampa | "sisi" |
PushAll | sisi.push_all | Показывать все источники | false |
HistoryEnable | sisi.history_enable | Сохранять историю | true |
DLNA 0.3 NEW
[dlna]
enable = true
upnp = true
upnp_port = 1338
friendly_name = "Lampac DLNA"
mode = "stream"| Поле | TOML-ключ | Описание | По умолчанию |
|---|---|---|---|
Enable | dlna.enable | Включить DLNA-сервер | false |
UPnP | dlna.upnp | UPnP/SSDP discovery | false |
UPnPPort | dlna.upnp_port | HTTP-порт для UPnP | 1338 |
FriendlyName | dlna.friendly_name | Имя устройства в списке DLNA | "Lampac DLNA" |
Mode | dlna.mode | Режим: stream | download | "stream" |
Path | dlna.path | Директория для файлов | "dlna" |
IPTV 0.3 NEW
[iptv]
enable = true
epg_update_hours = 6
max_playlists = 10
default_proxy = "none"
global_playlists = ["https://..."]
epg_urls = ["https://..."]| Поле | TOML-ключ | Описание | По умолчанию |
|---|---|---|---|
Enable | iptv.enable | Включить IPTV | false |
EPGUrls | iptv.epg_urls | Источники EPG | — |
EPGUpdateHours | iptv.epg_update_hours | Интервал обновления EPG (часы) | 6 |
MaxPlaylists | iptv.max_playlists | Лимит плейлистов на пользователя | 10 |
DefaultProxy | iptv.default_proxy | Проксирование потоков: none | all | "none" |
GlobalPlaylists | iptv.global_playlists | M3U-плейлисты для всех пользователей | — |
XSearch 0.3 NEW
[xsearch]
enable = true
timeout_sec = 8
max_results = 30
tmdb_search = true
cache_ttl_sec = 300| Поле | TOML-ключ | Описание | По умолчанию |
|---|---|---|---|
Enable | xsearch.enable | Включить кросс-балансерный поиск | false |
TimeoutSec | xsearch.timeout_sec | Таймаут на источник (секунды) | 8 |
MaxResults | xsearch.max_results | Лимит результатов | 30 |
TMDBSearch | xsearch.tmdb_search | Включить TMDB в поиск | true |
CacheTTLSec | xsearch.cache_ttl_sec | Кэш результатов (секунды) | 300 |
Кластер 0.3 NEW
[cluster]
enable = true
mode = "primary"
api_key = "shared_secret"
[[cluster.nodes]]
host = "http://192.168.1.10:888"
weight = 1| Поле | TOML-ключ | Описание | По умолчанию |
|---|---|---|---|
Enable | cluster.enable | Включить кластерный режим | false |
Mode | cluster.mode | Роль: primary | node | — |
APIKey | cluster.api_key | Общий секрет для межнодовой аутентификации | — |
Nodes | cluster.nodes | Список нод (host, weight) | — |
Алиса 0.3 NEW
[alice]
enable = true
skill_id = ""| Поле | TOML-ключ | Описание | По умолчанию |
|---|---|---|---|
Enable | alice.enable | Включить интеграцию с Яндекс Алисой | false |
SkillID | alice.skill_id | ID навыка (опционально, для валидации) | — |
Календарь 0.3 NEW
[calendar]
enable = true
check_interval_min = 120
notify_tg = true
upcoming_days = 7
recent_days = 3| Поле | TOML-ключ | Описание | По умолчанию |
|---|---|---|---|
Enable | calendar.enable | Включить календарь серий | false |
CheckIntervalMin | calendar.check_interval_min | Интервал проверки TMDB (минуты) | 120 |
NotifyTG | calendar.notify_tg | Уведомления в Telegram | true |
UpcomingDays | calendar.upcoming_days | Показывать серии на N дней вперёд | 7 |
RecentDays | calendar.recent_days | Показывать вышедшие серии за N дней | 3 |
Пропуск интро 0.3 NEW
[skip_intro]
enable = true
intro_default_sec = 0
outro_offset_sec = 0
enable_user_marks = true| Поле | TOML-ключ | Описание | По умолчанию |
|---|---|---|---|
Enable | skip_intro.enable | Включить пропуск интро/outro | false |
IntroDefaultSec | skip_intro.intro_default_sec | Fallback длина интро (0 = только из БД) | 0 |
OutroOffsetSec | skip_intro.outro_offset_sec | Пропуск outro за N сек до конца (0 = откл) | 0 |
EnableUserMarks | skip_intro.enable_user_marks | Пользовательские отметки интро | true |
OpenSubtitles 0.3 NEW
[opensubs]
enable = true
api_key = "your_api_key"
cache_ttl_min = 60| Поле | TOML-ключ | Описание | По умолчанию |
|---|---|---|---|
Enable | opensubs.enable | Включить поиск субтитров | false |
APIKey | opensubs.api_key | API-ключ OpenSubtitles.com | — |
UserAgent | opensubs.user_agent | Имя приложения для API | "lampac v1" |
CacheTTLMin | opensubs.cache_ttl_min | Кэш результатов (минуты) | 60 |
AntiDPI 0.3 NEW
[antidpi]
enable = true
listen = "127.0.0.1:9898"
strategy = "auto"| Поле | TOML-ключ | Описание | По умолчанию |
|---|---|---|---|
Enable | antidpi.enable | Включить обход DPI | false |
Listen | antidpi.listen | Адрес SOCKS5-прокси | "127.0.0.1:9898" |
Strategy | antidpi.strategy | Стратегия: auto | split-1 | split-2 | split-sni | none | "auto" |
Коллекции 0.3 NEW
[collections]
enable = true
cache_ttl_min = 60| Поле | TOML-ключ | Описание | По умолчанию |
|---|---|---|---|
Enable | collections.enable | Smart-коллекции TMDB (персоны, жанры, студии) | false |
CacheTTLMin | collections.cache_ttl_min | Кэш (минуты) | 60 |
Browser Pool 0.3 NEW
[browser_pool]
max_concurrent = 3
stream_cache_max = 500
stream_cache_ttl_h = 4| Поле | TOML-ключ | Описание | По умолчанию |
|---|---|---|---|
MaxConcurrent | browser_pool.max_concurrent | Параллельные Chrome-сессии | 3 |
StreamCacheMax | browser_pool.stream_cache_max | Размер кэша потоков | 500 |
StreamCacheTTLH | browser_pool.stream_cache_ttl_h | TTL кэша (часы) | 4 |
Кэш файлов
[file_cache_inactive]
free_disk_space = 1073741824 # 1 ГБ
html = 5 # TTL HTML (минуты)
torrent = 2880 # TTL торрентов (минуты, 48ч)
hls = 90 # TTL HLS (минуты)| Поле | TOML-ключ | Описание | По умолчанию |
|---|---|---|---|
FreeDiskSpace | file_cache_inactive.free_disk_space | Порог экстренной очистки (байты) | 1073741824 (1 ГБ) |
HTML | file_cache_inactive.html | TTL HTML-кэша (минуты) | 5 |
Torrent | file_cache_inactive.torrent | TTL торрент-кэша (минуты) | 2880 |
HLS | file_cache_inactive.hls | TTL HLS-кэша (минуты) | 90 |