Секреты вынесены в config/init.custom.conf + config/secrets.env
- config/init.conf — шаблон (секреты всегда пустые), в git - config/init.custom.conf — боевой конфиг, монтируется в /lampac/init.conf, собирается scripts/config-secrets.py apply из шаблона + secrets.env - docker-compose.yaml: монтирует ./config/init.custom.conf:/lampac/init.conf - scripts/config-secrets.py: apply/export/check/status - scripts/install-git-hooks.sh: post-merge/post-checkout -> apply, pre-commit -> check --staged - scripts/restore-lampa-main.sh: восстановление веб-клиента из архива - .gitignore: init.custom.conf, secrets.env, lampa-main/, restore.sh zip - lampa-main смонтирован как bind-mount ./lampa-main:/lampac/wwwroot/lampa-main, переживает docker compose up -d (раньше исчезал из writable-слоя) - README: раздел «Секреты», обновлена «Структура проекта» и «Обновление», «Безопасность» переписана под новую схему - AGENT: правило 10 дополнено init.custom.conf/secrets.env/хуками, §11 Tg-notify ссылается на apply, §1 упоминает lampa-main bind-mount
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
#!/usr/bin/env bash
|
||||
# Восстанавливает веб-клиент Lampa (wwwroot/lampa-main), который LampaCron
|
||||
# берёт с github.com и который пропадает при пересоздании контейнера
|
||||
# (нет в образе, живёт только в writable-слое).
|
||||
#
|
||||
# bash scripts/restore-lampa-main.sh scripts/lampa-main.zip
|
||||
set -e
|
||||
cd "$(git rev-parse --show-toplevel)"
|
||||
ZIP="${1:-scripts/lampa-main.zip}"
|
||||
if [ ! -f "$ZIP" ]; then
|
||||
echo "нет $ZIP — берите архив с https://github.com/yumata/lampa/archive/refs/heads/main.zip"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
docker exec lampac sh -c "rm -rf /lampac/wwwroot/lampa-main /lampac/wwwroot/lampa.zip"
|
||||
docker cp "$ZIP" lampac:/lampac/wwwroot/lampa.zip
|
||||
|
||||
docker exec lampac sh -c '
|
||||
cd /lampac/wwwroot
|
||||
unzip -q -o lampa-main.zip
|
||||
mv lampa-main-main lampa-main 2>/dev/null || mv lampa-main lampa-main 2>/dev/null || true
|
||||
chown -R 1000:1000 lampa-main
|
||||
rm -f lampa.zip
|
||||
# инъекция lampainit.js (делает LampaCron при следующем старте)
|
||||
python3 - <<PY
|
||||
import os
|
||||
p="/lampac/wwwroot/lampa-main/index.html"
|
||||
html=open(p,encoding="utf-8").read()
|
||||
if "src=\"/lampainit.js\"" not in html:
|
||||
html=html.replace("</body>", "<script src=\"/lampainit.js\"></script></body>")
|
||||
open(p,"w",encoding="utf-8").write(html)
|
||||
print("index.html: lampainit.js внедрён")
|
||||
else:
|
||||
print("index.html: уже был")
|
||||
PY
|
||||
'
|
||||
|
||||
echo "lampa-main восстановлен ($(docker exec lampac sh -c 'find /lampac/wwwroot/lampa-main -type f | wc -l') файлов)"
|
||||
Reference in New Issue
Block a user