Files
panel/docker-entrypoint.sh

37 lines
1021 B
Bash

#!/bin/bash
# Container startup script
# This runs when the container starts, not during build
echo "🚀 Starting application..."
# Ensure data directory exists
mkdir -p /app/data
# Ensure uploads directory structure exists
mkdir -p /app/public/uploads/contracts
mkdir -p /app/public/uploads/projects
mkdir -p /app/public/uploads/tasks
# Set proper permissions for uploads directory
chmod -R 755 /app/public/uploads
# Create admin account if it doesn't exist
echo "🔧 Setting up admin account..."
node scripts/create-admin.js
# Run any pending database migrations
echo "🔄 Running database migrations..."
./run-migrations.sh
# Set up daily backup cron job (runs at 2 AM daily)
echo "⏰ Setting up daily backup cron job..."
echo "0 2 * * * cd /app && /usr/local/bin/node backup-db.mjs >> /app/data/backup.log 2>&1" > /etc/cron.d/backup-cron
chmod 0644 /etc/cron.d/backup-cron
crontab /etc/cron.d/backup-cron
service cron start
# Start the application
echo "✅ Starting production server..."
exec npm start