Справочник конфигурации
Полный справочник всех полей конфигурации 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.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 |