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

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

Полный справочник всех полей конфигурации 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-ключОписаниеПо умолчанию
Addrserver.addrАдрес и порт сервера:888
SystemDNSserver.system_dns0.3 NEW Системный DNS-резолвер вместо встроенного Go. Решает проблемы с локальным DNS (MikroTik, CHR). Требует CGO_ENABLED=1false
DNSServersserver.dns_servers0.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-ключОписаниеПо умолчанию
Enabletelegram.enableВключить TG-авторизациюfalse
BotTokentelegram.bot_tokenТокен Telegram-бота
AdminIDtelegram.admin_idID суперадминистратора в Telegram
BotNametelegram.bot_nameUsername бота (без @)
MaxDevicesPerUsertelegram.max_devices_per_userЛимит устройств на пользователя3
AutoApprovetelegram.auto_approveАвто-одобрение новых пользователейfalse
AutoApproveDaystelegram.auto_approve_daysСрок авто-одобрения в днях30
RequiredChatstelegram.required_chats0.3 NEW Обязательные подписки на каналы/группы (массив {chat_id, title, link})
CheckIntervalMintelegram.check_interval_min0.3 NEW Интервал проверки подписок (минуты)60

Парольная авторизация

[admin]
password = "my_password"
{
  "AdminAuth": {
    "Password": "my_password"
  }
}
ПолеTOML-ключОписание
Passwordadmin.passwordПароль администратора. При первом запуске хэшируется.
При включённой парольной авторизации автоматически настраивается TOTP 2FA — при первом входе нужно отсканировать QR-код.

TorrServer

[torrserver]
port = 9080
# password = ""
# home_dir = ""
{
  "TorrServer": {
    "Port": 9080,
    "URL": "",
    "Password": "",
    "HomeDir": "/opt/lampac/torrserver"
  }
}
ПолеTOML-ключОписаниеПо умолчанию
Porttorrserver.portHTTP-порт локального TorrServer (не используется для встроенного)9080
URLtorrserver.urlURL внешнего TorrServer
Passwordtorrserver.passwordПарольавтоопределение из accs.db
HomeDirtorrserver.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-ключОписаниеПо умолчанию
Modetmdb_proxy.modeРежим проксирования TMDB API"self"
Hosttmdb_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-ключОписание
URIproxy.vless.entries.uriURI прокси (vless, vmess, ss, trojan)
Balancersproxy.vless.entries.balancersСписок балансеров для этого прокси
Labelproxy.vless.entries.labelМетка отображения
Engineproxy.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-ключОписаниеПо умолчанию
Enablekit.enableВключить Kitfalse
CacheToSecondskit.cache_to_secondsTTL кэша60
ServerHostkit.server_hostПубличный HTTPS URL
Encryptkit.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-ключОписание
Enablesync.enableВключить синхронизацию
Typesync.type"master" или "slave"
SyncFullsync.sync_fullСинхронизировать всю конфигурацию или только пользователей
APIHostsync.api_hostURL мастер-сервера (для slave)
APIPasswdsync.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-ключОписание
hostonline.<name>.hostURL API-сервера
tokenonline.<name>.tokenТокен аутентификации
api_hostonline.<name>.api_hostURL API (для балансеров с отдельным API)
cookieonline.<name>.cookieСессионные куки
loginonline.<name>.loginЛогин
passwordonline.<name>.passwordПароль
hlsonline.<name>.hlsВключить HLS

VideoDB (мульти-CDN)

ПолеTOML-ключОписаниеПо умолчанию
hostonline.videodb.hostСайт-источник метаданныхhttps://kinogo.media
api_hostonline.videodb.api_hostОсновной CDN (obrut.show, сайт AN)https://30bf3790.obrut.show
api_host2online.videodb.api_host2Вторичный CDN (obrut.show, сайт cjM)https://d6dd387e.obrut.show
fallback_hostonline.videodb.fallback_hostFallback CDN (collaps embed → interkh.com)https://api.variyt.ws

Каскад CDN: api_hostapi_host2fallback_host. Если фильм не найден на первом CDN, пробуется следующий.

Zetflix

ПолеTOML-ключОписаниеПо умолчанию
hostonline.zetflix.hostURL сервераhttps://go.zet-flix.online
hlsonline.zetflix.hlsИспользовать HLStrue
stream_proxyonline.zetflix.stream_proxyПроксировать потокиtrue

Mirage

ПолеTOML-ключОписаниеПо умолчанию
api_hostonline.mirage.api_hostURL APIhttps://api.apbugall.org
link_hostonline.mirage.link_hostCDN хостhttps://quadrillion-as.stloadi.live
tokenonline.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-ключОписаниеПо умолчанию
MaxConcurrentbrowser_pool.max_concurrentМакс. параллельных сессий Chromium8
StreamCacheMaxbrowser_pool.stream_cache_maxМакс. записей в кэше стрим-URL2000
StreamCacheTTLHbrowser_pool.stream_cache_ttl_hTTL кэша в часах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-ключОписаниеПо умолчанию
Endpointllm.endpointURL API (OpenAI-совместимый)
ApiKeyllm.api_keyAPI-ключ
Modelllm.modelМодельqwen2.5-coder-14b
Templlm.tempTemperature0.1
MaxRetriesllm.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-ключОписаниеПо умолчанию
Enabledlna.enableВключить DLNAfalse
Pathdlna.pathHTTP-путь для файл-браузера"dlna"
UPnPdlna.upnpВключить UPnP/SSDP обнаружениеtrue
UPnPPortdlna.upnp_portПорт UPnP MediaServer1338
FriendlyNamedlna.friendly_nameИмя устройства в сети"Lampac DLNA"
UPnP DLNA позволяет Smart TV и медиаплеерам (VLC, Kodi) автоматически находить сервер в локальной сети через SSDP. В каталоге отображаются файлы из раздела DLNA и активные торрент-потоки.

YouTube OAuth

[youtube_oauth]
client_id = ""
client_secret = ""
{
  "YouTubeOAuth": {
    "ClientID": "",
    "ClientSecret": ""
  }
}
ПолеTOML-ключОписание
ClientIDyoutube_oauth.client_idOAuth Client ID (Google Cloud Console, тип: TVs and Limited Input)
ClientSecretyoutube_oauth.client_secretOAuth 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-ключОписаниеПо умолчанию
JacRedHostparser.jacred_hostХост JacRed (торрент-поиск)https://jacred.xyz
JackettHostparser.jackett_hostХост Jackett (альтернативный торрент-поиск)
JackettKeyparser.jackett_keyAPI-ключ 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_URLURL для fallback
LAMPAC_GO_METRICS_PATHPrometheus метрики
LAMPAC_GO_HEALTH_PATHHealth-check endpoint
LAMPAC_GO_READY_PATHReadiness-check endpoint
LAMPAC_GO_ACCESS_LOGЛогирование запросов
LAMPAC_GO_TG_AUTH_ENABLEВключить TG-авторизацию
LAMPAC_GO_TG_BOT_TOKENТокен TG-бота
LAMPAC_GO_TG_ADMIN_IDAdmin ID
LAMPAC_GO_TG_BOT_NAMEUsername бота
LAMPAC_GO_TG_MAX_DEVICESЛимит устройств
LAMPAC_GO_ADMIN_PASSWORDПароль администратора
LAMPAC_GO_TORRSERVER_PORTПорт TorrServer
LAMPAC_GO_TORRSERVER_HOMEДиректория TorrServer
LAMPAC_GO_JACRED_HOSTJacRed хост
Переменные окружения имеют наивысший приоритет. Порядок приоритета: env > config.toml > init.conf > current.conf > значения по умолчанию.

WebSocket 0.3 NEW

[websocket]
type = "nws"
inactive_after_minutes = 30
ПолеTOML-ключОписаниеПо умолчанию
Typewebsocket.typeТип WebSocket-сервера (nws | signalr)"nws"
InactiveAfterMinuteswebsocket.inactive_after_minutesТаймаут неактивного соединения (минуты)30

Sisi (18+)

[sisi]
spider = false
component = "sisi"
push_all = false
history_enable = true
ПолеTOML-ключОписаниеПо умолчанию
Spidersisi.spiderВключить модули для взрослыхfalse
Componentsisi.componentИмя компонента в Lampa"sisi"
PushAllsisi.push_allПоказывать все источникиfalse
HistoryEnablesisi.history_enableСохранять историюtrue

DLNA 0.3 NEW

[dlna]
enable = true
upnp = true
upnp_port = 1338
friendly_name = "Lampac DLNA"
mode = "stream"
ПолеTOML-ключОписаниеПо умолчанию
Enabledlna.enableВключить DLNA-серверfalse
UPnPdlna.upnpUPnP/SSDP discoveryfalse
UPnPPortdlna.upnp_portHTTP-порт для UPnP1338
FriendlyNamedlna.friendly_nameИмя устройства в списке DLNA"Lampac DLNA"
Modedlna.modeРежим: stream | download"stream"
Pathdlna.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-ключОписаниеПо умолчанию
Enableiptv.enableВключить IPTVfalse
EPGUrlsiptv.epg_urlsИсточники EPG
EPGUpdateHoursiptv.epg_update_hoursИнтервал обновления EPG (часы)6
MaxPlaylistsiptv.max_playlistsЛимит плейлистов на пользователя10
DefaultProxyiptv.default_proxyПроксирование потоков: none | all"none"
GlobalPlaylistsiptv.global_playlistsM3U-плейлисты для всех пользователей

XSearch 0.3 NEW

[xsearch]
enable = true
timeout_sec = 8
max_results = 30
tmdb_search = true
cache_ttl_sec = 300
ПолеTOML-ключОписаниеПо умолчанию
Enablexsearch.enableВключить кросс-балансерный поискfalse
TimeoutSecxsearch.timeout_secТаймаут на источник (секунды)8
MaxResultsxsearch.max_resultsЛимит результатов30
TMDBSearchxsearch.tmdb_searchВключить TMDB в поискtrue
CacheTTLSecxsearch.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-ключОписаниеПо умолчанию
Enablecluster.enableВключить кластерный режимfalse
Modecluster.modeРоль: primary | node
APIKeycluster.api_keyОбщий секрет для межнодовой аутентификации
Nodescluster.nodesСписок нод (host, weight)

Алиса 0.3 NEW

[alice]
enable = true
skill_id = ""
ПолеTOML-ключОписаниеПо умолчанию
Enablealice.enableВключить интеграцию с Яндекс Алисойfalse
SkillIDalice.skill_idID навыка (опционально, для валидации)

Календарь 0.3 NEW

[calendar]
enable = true
check_interval_min = 120
notify_tg = true
upcoming_days = 7
recent_days = 3
ПолеTOML-ключОписаниеПо умолчанию
Enablecalendar.enableВключить календарь серийfalse
CheckIntervalMincalendar.check_interval_minИнтервал проверки TMDB (минуты)120
NotifyTGcalendar.notify_tgУведомления в Telegramtrue
UpcomingDayscalendar.upcoming_daysПоказывать серии на N дней вперёд7
RecentDayscalendar.recent_daysПоказывать вышедшие серии за N дней3

Пропуск интро 0.3 NEW

[skip_intro]
enable = true
intro_default_sec = 0
outro_offset_sec = 0
enable_user_marks = true
ПолеTOML-ключОписаниеПо умолчанию
Enableskip_intro.enableВключить пропуск интро/outrofalse
IntroDefaultSecskip_intro.intro_default_secFallback длина интро (0 = только из БД)0
OutroOffsetSecskip_intro.outro_offset_secПропуск outro за N сек до конца (0 = откл)0
EnableUserMarksskip_intro.enable_user_marksПользовательские отметки интроtrue

OpenSubtitles 0.3 NEW

[opensubs]
enable = true
api_key = "your_api_key"
cache_ttl_min = 60
ПолеTOML-ключОписаниеПо умолчанию
Enableopensubs.enableВключить поиск субтитровfalse
APIKeyopensubs.api_keyAPI-ключ OpenSubtitles.com
UserAgentopensubs.user_agentИмя приложения для API"lampac v1"
CacheTTLMinopensubs.cache_ttl_minКэш результатов (минуты)60

AntiDPI 0.3 NEW

[antidpi]
enable = true
listen = "127.0.0.1:9898"
strategy = "auto"
ПолеTOML-ключОписаниеПо умолчанию
Enableantidpi.enableВключить обход DPIfalse
Listenantidpi.listenАдрес SOCKS5-прокси"127.0.0.1:9898"
Strategyantidpi.strategyСтратегия: auto | split-1 | split-2 | split-sni | none"auto"

Коллекции 0.3 NEW

[collections]
enable = true
cache_ttl_min = 60
ПолеTOML-ключОписаниеПо умолчанию
Enablecollections.enableSmart-коллекции TMDB (персоны, жанры, студии)false
CacheTTLMincollections.cache_ttl_minКэш (минуты)60

Browser Pool 0.3 NEW

[browser_pool]
max_concurrent = 3
stream_cache_max = 500
stream_cache_ttl_h = 4
ПолеTOML-ключОписаниеПо умолчанию
MaxConcurrentbrowser_pool.max_concurrentПараллельные Chrome-сессии3
StreamCacheMaxbrowser_pool.stream_cache_maxРазмер кэша потоков500
StreamCacheTTLHbrowser_pool.stream_cache_ttl_hTTL кэша (часы)4

Кэш файлов

[file_cache_inactive]
free_disk_space = 1073741824   # 1 ГБ
html = 5           # TTL HTML (минуты)
torrent = 2880     # TTL торрентов (минуты, 48ч)
hls = 90           # TTL HLS (минуты)
ПолеTOML-ключОписаниеПо умолчанию
FreeDiskSpacefile_cache_inactive.free_disk_spaceПорог экстренной очистки (байты)1073741824 (1 ГБ)
HTMLfile_cache_inactive.htmlTTL HTML-кэша (минуты)5
Torrentfile_cache_inactive.torrentTTL торрент-кэша (минуты)2880
HLSfile_cache_inactive.hlsTTL HLS-кэша (минуты)90