72 lines
2.4 KiB
Bash
72 lines
2.4 KiB
Bash
#!/bin/bash
|
|
set -e
|
|
|
|
# PostgreSQL configuration from Cloudron environment variables
|
|
if [ -n "${CLOUDRON_POSTGRESQL_HOST}" ]; then
|
|
export INVENTREE_DB_ENGINE="postgresql"
|
|
export INVENTREE_DB_NAME="${CLOUDRON_POSTGRESQL_DATABASE}"
|
|
export INVENTREE_DB_USER="${CLOUDRON_POSTGRESQL_USERNAME}"
|
|
export INVENTREE_DB_PASSWORD="${CLOUDRON_POSTGRESQL_PASSWORD}"
|
|
export INVENTREE_DB_HOST="${CLOUDRON_POSTGRESQL_HOST}"
|
|
export INVENTREE_DB_PORT="${CLOUDRON_POSTGRESQL_PORT}"
|
|
else
|
|
echo "PostgreSQL addon not configured!"
|
|
exit 1
|
|
fi
|
|
|
|
# Ensure data directories exist
|
|
if [ ! -d "${INVENTREE_HOME}/media" ]; then
|
|
echo "Creating media directory..."
|
|
mkdir -p "${INVENTREE_HOME}/media"
|
|
cp -rn /tmp/data/media/* "${INVENTREE_HOME}/media/" || true
|
|
fi
|
|
|
|
if [ ! -d "${INVENTREE_HOME}/static" ]; then
|
|
echo "Creating static directory..."
|
|
mkdir -p "${INVENTREE_HOME}/static"
|
|
cp -rn /tmp/data/static/* "${INVENTREE_HOME}/static/" || true
|
|
fi
|
|
|
|
if [ ! -d "${INVENTREE_HOME}/plugins" ]; then
|
|
echo "Creating plugins directory..."
|
|
mkdir -p "${INVENTREE_HOME}/plugins"
|
|
cp -rn /tmp/data/plugins/* "${INVENTREE_HOME}/plugins/" || true
|
|
fi
|
|
|
|
if [ ! -d "${INVENTREE_HOME}/config" ]; then
|
|
echo "Creating config directory..."
|
|
mkdir -p "${INVENTREE_HOME}/config"
|
|
cp -rn /tmp/data/config/* "${INVENTREE_HOME}/config/" || true
|
|
fi
|
|
|
|
# Generate secret key if it doesn't exist
|
|
if [ ! -f "${INVENTREE_SECRET_KEY_FILE}" ]; then
|
|
echo "Generating secret key..."
|
|
python3 -c "from django.core.management.utils import get_random_secret_key; print(get_random_secret_key())" > "${INVENTREE_SECRET_KEY_FILE}"
|
|
fi
|
|
|
|
cd /app/code/inventree
|
|
|
|
# Set InvenTree base URL (from Cloudron environment)
|
|
export INVENTREE_BASE_URL="https://${CLOUDRON_APP_DOMAIN}"
|
|
|
|
# Apply database migrations and collect static files
|
|
echo "Applying database migrations..."
|
|
/app/code/env/bin/python manage.py migrate --noinput
|
|
|
|
echo "Collecting static files..."
|
|
/app/code/env/bin/python manage.py collectstatic --noinput
|
|
|
|
# Create superuser if not exists
|
|
echo "Checking for superuser..."
|
|
DJANGO_SUPERUSER_PASSWORD="${INVENTREE_ADMIN_PASSWORD}" \
|
|
/app/code/env/bin/python manage.py createsuperuser --noinput \
|
|
--username "${INVENTREE_ADMIN_USER}" \
|
|
--email "${INVENTREE_ADMIN_EMAIL}" || true
|
|
|
|
# Set proper permissions
|
|
chown -R cloudron:cloudron "${INVENTREE_HOME}"
|
|
|
|
# Start supervisor to manage processes
|
|
echo "Starting supervisor..."
|
|
exec /usr/bin/supervisord -c /etc/supervisor/supervisord.conf |