Claude super rough first cut of a few packages. Almost certainly entirely unusable...
This commit is contained in:
63
CloudronPackages/Grist/start.sh
Normal file
63
CloudronPackages/Grist/start.sh
Normal file
@@ -0,0 +1,63 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
# Cloudron environment variables
|
||||
export GRIST_APP_ROOT="/app/pkg/grist-core"
|
||||
export GRIST_DATA_DIR="/app/data/docs"
|
||||
export GRIST_SESSION_SECRET="${CLOUDRON_SESSION_SECRET}"
|
||||
export APP_HOME_URL="${CLOUDRON_APP_URL}"
|
||||
export GRIST_DOMAIN="${CLOUDRON_APP_DOMAIN}"
|
||||
export GRIST_SINGLE_ORG="cloudron"
|
||||
export GRIST_HIDE_UI_ELEMENTS="billing"
|
||||
export GRIST_MAX_UPLOAD_ATTACHMENT_MB=100
|
||||
export GRIST_MAX_UPLOAD_IMPORT_MB=300
|
||||
export GRIST_SANDBOX_FLAVOR="gvisor"
|
||||
export GRIST_USER_ROOT="/app/data"
|
||||
export GRIST_THROTTLE_CPU="true"
|
||||
export GRIST_DEFAULT_EMAIL="${CLOUDRON_ADMIN_EMAIL}"
|
||||
export GRIST_FORCE_LOGIN="true"
|
||||
export GRIST_SUPPORT_ANON="false"
|
||||
export COOKIE_MAX_AGE=2592000000 # 30 days in milliseconds
|
||||
|
||||
# Setup OpenID Connect for Cloudron authentication
|
||||
export GRIST_OIDC_IDP_ISSUER="${CLOUDRON_APP_ORIGIN}"
|
||||
export GRIST_OIDC_IDP_CLIENT_ID="${CLOUDRON_OAUTH_CLIENT_ID}"
|
||||
export GRIST_OIDC_IDP_CLIENT_SECRET="${CLOUDRON_OAUTH_CLIENT_SECRET}"
|
||||
export GRIST_OIDC_IDP_SCOPES="openid profile email"
|
||||
export GRIST_OIDC_SP_HOST="${CLOUDRON_APP_URL}"
|
||||
export GRIST_OIDC_SP_PROFILE_EMAIL_ATTR="email"
|
||||
export GRIST_OIDC_SP_PROFILE_NAME_ATTR="name"
|
||||
export GRIST_OIDC_IDP_ENABLED_PROTECTIONS="PKCE,STATE"
|
||||
|
||||
# Database configuration using Cloudron PostgreSQL addon
|
||||
export TYPEORM_TYPE="postgres"
|
||||
export TYPEORM_DATABASE="${CLOUDRON_POSTGRESQL_DATABASE}"
|
||||
export TYPEORM_USERNAME="${CLOUDRON_POSTGRESQL_USERNAME}"
|
||||
export TYPEORM_PASSWORD="${CLOUDRON_POSTGRESQL_PASSWORD}"
|
||||
export TYPEORM_HOST="${CLOUDRON_POSTGRESQL_HOST}"
|
||||
export TYPEORM_PORT="${CLOUDRON_POSTGRESQL_PORT}"
|
||||
export TYPEORM_LOGGING="false"
|
||||
|
||||
# Initialize or update data directories if they don't exist
|
||||
if [ ! -d "/app/data/docs" ]; then
|
||||
mkdir -p /app/data/docs
|
||||
echo "Created docs directory"
|
||||
fi
|
||||
|
||||
if [ ! -d "/app/data/home" ]; then
|
||||
mkdir -p /app/data/home
|
||||
echo "Created home directory"
|
||||
fi
|
||||
|
||||
# Copy initialization data if needed
|
||||
if [ -d "/app/pkg/init_data" ] && [ ! -f "/app/data/.initialized" ]; then
|
||||
cp -R /app/pkg/init_data/* /app/data/
|
||||
touch /app/data/.initialized
|
||||
echo "Copied initialization data"
|
||||
fi
|
||||
|
||||
# Ensure proper permissions
|
||||
chown -R cloudron:cloudron /app/data
|
||||
|
||||
# Start supervisor to manage Grist and Nginx
|
||||
exec /usr/bin/supervisord --nodaemon -c /etc/supervisor/supervisord.conf
|
Reference in New Issue
Block a user