Прокси для заблокированных источников: network_mode host + globalproxy/useproxy

This commit is contained in:
2026-09-11 23:34:45 +03:00
parent 3c01ac4a3b
commit 54e15a9b58
5 changed files with 88 additions and 7 deletions
View File
+52
View File
@@ -0,0 +1,52 @@
---
# Lampac — primary Compose file (production-like run on your machine). Use `docker compose up -d` from the repo root.
#
# BEFORE you uncomment `volumes` below:
# 1. Create host dirs: mkdir -p lampac-docker/config lampac-docker/plugins
# 2. Copy config: cp config/example.init.conf lampac-docker/config/init.conf
# 3. Root password (one line): printf '%s' 'your_strong_password' > lampac-docker/config/passwd
# 4. Uncomment the entire `volumes:` block (and each volume line under it).
#
# If you skip step 4, the container uses init.conf/passwd baked into the image — host files are ignored.
# Full walkthrough: README.md → «Быстрый старт» → Docker.
#
name: lampac
services:
lampac:
image: ghcr.io/lampac-nextgen/lampac
container_name: lampac
# Use host networking instead of bridge below: uncomment the next line and remove or adjust `ports` / `networks`.
# network_mode: host
networks:
lampac:
ipv4_address: 10.10.10.10
ports:
- 9118:9118
restart: unless-stopped
shm_size: 1024mb
logging:
options:
tag: "{{.Name}}"
# --- Mount your own files (commented by default). Paths are relative to this compose file. ---
# volumes:
# # Required for custom setup: root password (WebLog, etc.) → must exist on host before `up`
# - ./lampac-docker/config/passwd:/lampac/passwd
# # Main JSON/YAML config (hot-reloaded). In-container path is always /lampac/init.conf
# - ./lampac-docker/config/init.conf:/lampac/init.conf
# # Optional: extra user module dir (see README → Docker → manifest.json). Example name is illustrative.
# - ./lampac-docker/mods/BulbaCrawler:/lampac/mods/BulbaCrawler
# # Optional: Lampa client plugin override
# - ./lampac-docker/plugins/lampainit.js:/lampac/plugins/override/lampainit.js
# # Optional: persist cache across restarts
# - ./lampac-docker/cache:/lampac/cache
# # Optional: persist SQLite / local DB dirs
# - ./lampac-docker/database:/lampac/database
networks:
lampac:
name: lampac
driver: bridge
ipam:
config:
- subnet: 10.10.10.0/24
+7 -6
View File
@@ -1,14 +1,15 @@
name: lampac
# Lampac NextGen — backend-сервер для приложения Lampa (LAN-only).
# Порт слушается ТОЛЬКО на LAN-интерфейсе 192.168.1.80, без Traefik.
# Внутри контейнера слушатель — 0.0.0.0:9118 (см. lampac-docker/config/init.conf).
# Lampac NextGen — backend-сервер для приложения Lampa.
# Сетевой режим: host — контейнеру нужен доступ к хостовому sing-box (127.0.0.1:1080),
# через который проксируются заблокированные источники (kinogo.media, kinobase.org и др.).
# LAN-only сохраняется за счёт listen.ip = 192.168.1.80 в lampac-docker/config/init.conf,
# поэтому блок `ports:` здесь не нужен (при network_mode: host он ещё и несовместим).
services:
lampac:
image: ghcr.io/lampac-nextgen/lampac:latest
container_name: lampac
ports:
- "${LAMPAC_BIND}:${LAMPAC_PORT}:9118"
network_mode: host
restart: unless-stopped
# Chrome/Playwright активно ест shared memory — 64 МБ по умолчанию мало
shm_size: 1024mb
@@ -18,7 +19,7 @@ services:
volumes:
# Конфиг (hot-reload, применяется без перезапуска)
- ./lampac-docker/config/init.conf:/lampac/init.conf
# Root-пароль для служебных функций (WebLog/AdminPanel). Файл: chmod 600, в .gitignore
# Root-пароль для служебных функций (WebLog/DatabaseEditor). Файл: chmod 600, в .gitignore
- ./lampac-docker/config/passwd:/lampac/passwd
# Файловый кеш
- ./lampac-docker/cache:/lampac/cache
+29 -1
View File
@@ -1,7 +1,7 @@
{
"listen": {
"version": true,
"ip": "0.0.0.0",
"ip": "192.168.1.80",
"port": 9118,
"scheme": "http",
"localhost": "127.0.0.1"
@@ -33,6 +33,34 @@
"timecode": true
}
},
"proxy": {
"list": [
"socks5h://127.0.0.1:1080"
],
"maxRequestError": 2
},
"globalproxy": [
{
"name": "vpn",
"pattern": "(kodik-api|kodikplayer|api\\.anilibria\\.app|anime1\\.best|rstprgapipt|kinogo\\.media|kinobase\\.org|coldfilm\\.ink|zet-flix|anilib\\.me|aniboom\\.one)",
"list": [
"socks5h://127.0.0.1:1080"
],
"maxRequestError": 2
}
],
"VideoDB": {
"useproxy": true
},
"Kinobase": {
"useproxy": true
},
"Vibix": {
"useproxy": true
},
"VeoVeo": {
"useproxy": true
},
"chromium": {
"enable": true,
"executablePath": "/usr/bin/chromium"
View File