Справочник конфигурации

Справочник конфигурации

Полный справочник всех полей конфигурации 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 Системный DNS-резолвер вместо встроенного Go. Решает проблемы с локальным DNS (MikroTik, CHR). 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/
CacheSizeMB torrserver.cache_size_mb RAM-кэш (МБ) 64
DiskCacheMB torrserver.disk_cache_mb Дисковый кэш (МБ) 1024
PreloadMB torrserver.preload_mb Предзагрузка (МБ) 5
DisableUpload torrserver.disable_upload Отключить раздачу true
TorrServer всегда встроен в бинарник Al(co)pac. Поле url используется для переопределения на внешний сервер — в этом случае встроенный TorrServer не запускается.

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.cc
  • disabled — без проксирования, 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_hostapi_host2fallback_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