mirror of
https://github.com/pelican-dev/panel.git
synced 2025-05-20 02:54:45 +02:00

Starting the docker container is hampered due to setting `chown -R www-data:www-data /var/www/html/` on every start, causing it to traverse the entire directory which in our use case is very slow. This PR instead changes it to set permissions as part of the build process. Sidenote: Is `LE_EMAIL` supposed to be used in addition to `ADMIN_EMAIL`?
65 lines
1.6 KiB
Bash
65 lines
1.6 KiB
Bash
#!/bin/ash -e
|
|
|
|
#mkdir -p /var/log/supervisord/ /var/log/php8/ \
|
|
|
|
## check for .env file and generate app keys if missing
|
|
if [ -f /pelican-data/.env ]; then
|
|
echo "external vars exist."
|
|
rm -rf /var/www/html/.env
|
|
else
|
|
echo "external vars don't exist."
|
|
rm -rf /var/www/html/.env
|
|
touch /pelican-data/.env
|
|
|
|
## manually generate a key because key generate --force fails
|
|
if [ -z $APP_KEY ]; then
|
|
echo -e "Generating key."
|
|
APP_KEY=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1)
|
|
echo -e "Generated app key: $APP_KEY"
|
|
echo -e "APP_KEY=$APP_KEY" > /pelican-data/.env
|
|
else
|
|
echo -e "APP_KEY exists in environment, using that."
|
|
echo -e "APP_KEY=$APP_KEY" > /pelican-data/.env
|
|
fi
|
|
|
|
## enable installer
|
|
echo -e "APP_INSTALLED=false" >> /pelican-data/.env
|
|
fi
|
|
|
|
mkdir /pelican-data/database
|
|
ln -s /pelican-data/.env /var/www/html/
|
|
ln -s /pelican-data/database/database.sqlite /var/www/html/database/
|
|
|
|
if ! grep -q "APP_KEY=" .env || grep -q "APP_KEY=$" .env; then
|
|
echo "Generating APP_KEY..."
|
|
php artisan key:generate --force
|
|
else
|
|
echo "APP_KEY is already set."
|
|
fi
|
|
|
|
## make sure the db is set up
|
|
echo -e "Migrating Database"
|
|
php artisan migrate --force
|
|
|
|
echo -e "Optimizing Filament"
|
|
php artisan filament:optimize
|
|
|
|
## start cronjobs for the queue
|
|
echo -e "Starting cron jobs."
|
|
crond -L /var/log/crond -l 5
|
|
|
|
export SUPERVISORD_CADDY=false
|
|
|
|
## disable caddy if SKIP_CADDY is set
|
|
if [[ -z $SKIP_CADDY ]]; then
|
|
echo "Starting PHP-FPM and Caddy"
|
|
export SUPERVISORD_CADDY=true
|
|
else
|
|
echo "Starting PHP-FPM only"
|
|
fi
|
|
|
|
chown -R www-data:www-data /pelican-data/.env /pelican-data/database
|
|
|
|
echo "Starting Supervisord"
|
|
exec "$@"
|