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