diff --git a/ap.html b/ap.html new file mode 100644 index 0000000..e69de29 diff --git a/docker-compose.upstream.yaml b/docker-compose.upstream.yaml new file mode 100644 index 0000000..c439e68 --- /dev/null +++ b/docker-compose.upstream.yaml @@ -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 diff --git a/docker-compose.yml b/docker-compose.yml index 42411b6..2b216d4 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -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 diff --git a/lampac-docker/config/init.conf b/lampac-docker/config/init.conf index 42c8830..59a2772 100644 --- a/lampac-docker/config/init.conf +++ b/lampac-docker/config/init.conf @@ -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" diff --git a/wl.html b/wl.html new file mode 100644 index 0000000..e69de29