fix: normalizar DB_PATH y DATA_DIR a rutas absolutas y esperar tablas

Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
webui
brobert 2 weeks ago
parent c97a805d43
commit 5616ee8395

@ -13,7 +13,7 @@ export function resolveDbAbsolutePath(filename: string = 'tasks.db'): string {
if (dbPathEnv) {
return resolve(dbPathEnv);
}
const dataDir = env.DATA_DIR ? String(env.DATA_DIR) : 'data';
const dataDir = env.DATA_DIR ? String(env.DATA_DIR) : '/app/data';
return resolve(join(dataDir, filename));
}

@ -1,10 +1,51 @@
#!/bin/bash
set -euo pipefail
# Normalizar rutas de DB a absolutas para que bot y web apunten al mismo archivo
if [ -n "${DB_PATH:-}" ]; then
# readlink -f resuelve a ruta absoluta y elimina ./, ../, etc.
DB_PATH="$(readlink -f "$DB_PATH")" || true
export DB_PATH
else
DATA_DIR="${DATA_DIR:-/app/data}"
DATA_DIR="$(readlink -f "$DATA_DIR")" || true
export DATA_DIR
fi
# Determinar archivo de base de datos para esperas
if [ -n "${DB_PATH:-}" ]; then
DB_FILE="$DB_PATH"
else
DB_FILE="${DATA_DIR:-/app/data}/tasks.db"
fi
# Arranca el bot en segundo plano (puerto 3007 por defecto)
BOT_PORT="${BOT_PORT:-3007}"
PORT="$BOT_PORT" bun run index.ts &
# Esperar a que exista el archivo de DB (máx ~30s)
echo "[startup] Esperando a que exista la base de datos en: $DB_FILE"
for i in $(seq 1 150); do
if [ -f "$DB_FILE" ]; then break; fi
sleep 0.2
done
# Esperar a que las tablas de auth estén creadas por las migraciones del bot (máx ~30s)
if command -v sqlite3 >/dev/null 2>&1; then
echo "[startup] Verificando tablas de autenticación (web_tokens, web_sessions)..."
for i in $(seq 1 150); do
if [ -f "$DB_FILE" ]; then
HAS_AUTH=$(sqlite3 "$DB_FILE" "SELECT 1 FROM sqlite_master WHERE type='table' AND name IN ('web_tokens','web_sessions') LIMIT 1;" || true)
if [ "$HAS_AUTH" = "1" ]; then
break
fi
fi
sleep 0.2
done
else
echo "[startup] sqlite3 no disponible; se omite verificación de tablas (continuando)."
fi
# Arranca la web (SvelteKit) en segundo plano en el puerto 3008
WEB_PORT="${WEB_PORT:-3008}"
pushd apps/web >/dev/null

Loading…
Cancel
Save