Files
cloudron-romm/start.sh

57 lines
1.9 KiB
Bash
Executable File

#!/bin/bash
set -eu
mkdir -p /app/data/library /app/data/config /app/data/assets /app/data/resources
mkdir -p /tmp/vite-temp /tmp/vite /tmp/cache
touch /app/data/config/config.yml
# ensure that data directory is owned by 'cloudron' user
chown -R cloudron:cloudron /app/data /tmp/vite-temp /tmp/vite /tmp/cache
cd /app/data
export ROMM_DB_DRIVER=postgresql
export DB_HOST=${CLOUDRON_POSTGRESQL_HOST}
export DB_PORT=${CLOUDRON_POSTGRESQL_PORT}
export DB_NAME=${CLOUDRON_POSTGRESQL_DATABASE}
export DB_USER=${CLOUDRON_POSTGRESQL_USERNAME}
export DB_PASSWD=${CLOUDRON_POSTGRESQL_PASSWORD}
export OIDC_PROVIDER=${CLOUDRON_OIDC_PROVIDER_NAME}
export OIDC_CLIENT_ID=${CLOUDRON_OIDC_CLIENT_ID}
export OIDC_CLIENT_SECRET=${CLOUDRON_OIDC_CLIENT_SECRET}
export OIDC_REDIRECT_URI="${CLOUDRON_APP_ORIGIN}/api/oauth/openid"
export OIDC_SERVER_APPLICATION_URL=${CLOUDRON_OIDC_ISSUER}
export UV_PYTHON_INSTALL_DIR=/app/code/uv
export DEV_HTTPS=false
export __VITE_ADDITIONAL_SERVER_ALLOWED_HOSTS=${CLOUDRON_APP_DOMAIN}
export XDG_CACHE_HOME=/tmp/cache
export REDIS_HOST=${CLOUDRON_REDIS_HOST}
export REDIS_PORT=${CLOUDRON_REDIS_PORT}
export ROMM_BASE_PATH=/app/data
export ROMM_TMP_PATH=/tmp
TEMPLATE_FILE="/app/pkg/env.sh.template"
ENV_FILE="/app/data/env.sh"
# Check if env.sh exists in /app/data
if [ -f "$ENV_FILE" ]; then
echo "env.sh already exists in $ENV_FILE"
else
# Copy the template to the target location
echo "Copying $TEMPLATE_FILE to $ENV_FILE"
cp "$TEMPLATE_FILE" "$ENV_FILE"
chmod +x "$ENV_FILE"
# Generate a new secret key using openssl
SECRET_KEY=$(openssl rand -hex 32 2>/dev/null)
echo "export ROMM_AUTH_SECRET_KEY=$SECRET_KEY" >> "$ENV_FILE"
echo "Successfully created $ENV_FILE from template"
fi
source /app/data/env.sh
echo "==> Starting supervisor"
exec /usr/bin/supervisord --configuration /etc/supervisor/supervisord.conf --nodaemon -i Romm