#!/bin/sh
set -e
APP_DIR=/var/www/html
echo "──────────────────────────────────────────"
echo " KOL Manager – Container Start"
echo "──────────────────────────────────────────"
cd "$APP_DIR"
# ── 1. Bootstrap .env ───────────────────────
if [ ! -f .env ]; then
if [ -f .env.docker ]; then
cp .env.docker .env
echo "[env] Copied .env.docker → .env"
else
echo "[env] WARNING: No .env or .env.docker found!"
fi
fi
# ── 2. Generate APP_KEY if empty ────────────
if grep -qE '^APP_KEY=$' .env 2>/dev/null; then
echo "[key] Generating application key…"
php artisan key:generate --force --quiet
fi
# ── 3. Ensure SQLite database file exists ───
if [ ! -f database/database.sqlite ]; then
echo "[db] Creating SQLite database file…"
touch database/database.sqlite
fi
# ── 4. Fix ownership / permissions ──────────
chown -R www-data:www-data \
storage \
bootstrap/cache \
database
chmod -R 775 \
storage \
bootstrap/cache \
database
# ── 5. Run migrations ────────────────────────
echo "[migrate] Running database migrations…"
php artisan migrate --force --no-interaction
# ── 6. Cache config / routes / views ────────
echo "[optimize] Caching configuration…"
php artisan config:cache --quiet
php artisan route:cache --quiet
php artisan view:cache --quiet
echo "──────────────────────────────────────────"
echo " All checks passed. Starting services…"
echo "──────────────────────────────────────────"
# ── 7. Hand off to Supervisor ────────────────
exec supervisord -c /etc/supervisord.conf