Isaac Quarenta
feat(backup): liga o pg_backup.sh (existia mas nunca era lancado) + restore remoto no arranque
891dd4c Download scripts/init_pg.sh from akra35567/Akiragpu: direct link, hf CLI and curl.
- Browser
- Download file 2.24 kB
-
https://huggingface.co/spaces/akra35567/Akiragpu/resolve/main/scripts/init_pg.sh
- Command line
-
hf download hf://spaces/akra35567/Akiragpu/scripts/init_pg.sh
-
curl -L -o init_pg.sh https://huggingface.co/spaces/akra35567/Akiragpu/resolve/main/scripts/init_pg.sh
2.24 kB
| # init_pg.sh — Inicia PostgreSQL + restaura backup + sobe app FastAPI com 2 workers | |
| set -e | |
| echo "🔧 [INIT] Iniciando PostgreSQL..." | |
| # ✅ Cria diretório persistente se não existir | |
| mkdir -p /data/pgdata | |
| chown -R postgres:postgres /data/pgdata 2>/dev/null || true | |
| chmod 700 /data/pgdata | |
| # Verifica se PostgreSQL já inicializado (dados persistidos) | |
| if [ ! -f "$PGDATA/PG_VERSION" ]; then | |
| echo "📦 [INIT] Primeira execução — inicializando PostgreSQL..." | |
| su - postgres -c "initdb -D $PGDATA" 2>/dev/null || true | |
| fi | |
| su - postgres -c "pg_ctl -D $PGDATA start" 2>/dev/null || pg_ctlcluster 15 main start 2>/dev/null || service postgresql start | |
| for i in $(seq 1 30); do | |
| if pg_isready -q 2>/dev/null; then | |
| echo "✅ [INIT] PostgreSQL pronto" | |
| break | |
| fi | |
| sleep 1 | |
| done | |
| su - postgres -c "psql -tc \"SELECT 1 FROM pg_roles WHERE rolname='akira'\" | grep -q 1" || \ | |
| su - postgres -c "psql -c \"CREATE USER akira WITH PASSWORD 'akira' SUPERUSER;\"" | |
| su - postgres -c "psql -tc \"SELECT 1 FROM pg_database WHERE datname='akira'\" | grep -q 1" || \ | |
| su - postgres -c "psql -c \"CREATE DATABASE akira OWNER akira;\"" | |
| # Historico de conversas: sem Persistent Storage, o /data/pgdata morre em cada | |
| # deploy — so o dump no dataset HF sobrevive. Tenta baixar o ultimo antes de | |
| # subir a app (dentro de pg_backup.sh so restaura se a BD estiver vazia). | |
| echo "[INIT] A restaurar historico (dataset HF -> PostgreSQL)..." | |
| bash /akira/scripts/pg_backup.sh restore-from-hf || true | |
| # Loop de backup periodico (dump local + upload para o dataset HF). | |
| # Antes este script existia mas NUNCA era lancado => nenhum backup era feito. | |
| echo "[INIT] A iniciar backup periodico..." | |
| mkdir -p /akira/data/cloud_sync | |
| nohup bash /akira/scripts/pg_backup.sh >> /akira/data/cloud_sync/backup.log 2>&1 & | |
| echo "🚀 [INIT] Iniciando Training Worker em background..." | |
| python /akira/treinamento_worker.py & | |
| TRAINING_PID=$! | |
| trap "kill $TRAINING_PID 2>/dev/null" EXIT | |
| echo "🚀 [INIT] Iniciando Akira FastAPI com 2 workers..." | |
| exec uvicorn main:app \ | |
| --host 0.0.0.0 \ | |
| --port 7860 \ | |
| --workers 2 \ | |
| --timeout-keep-alive 30 \ | |
| --limit-concurrency 200 | |