Files
lampac/scripts/restore-lampa-main.sh
T
prodik 25c591b45a Секреты вынесены в 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
2026-10-04 15:42:16 +00:00

38 lines
1.5 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/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') файлов)"