| #!/bin/sh |
|
|
| |
| echo "Creating necessary directories in the persistent /data volume..." |
| mkdir -p /data/postgresql/data /data/postgresql/run /data/backups |
| chmod 0700 /data/postgresql/data |
| chmod 0755 /data/postgresql/run |
| chmod 0777 /data/backups |
| chown -R postgres:postgres /data/postgresql |
| chown -R postgres:postgres /data/backups |
|
|
| |
| echo "Initializing PostgreSQL if not already initialized..." |
| if [ ! -f "/data/postgresql/data/PG_VERSION" ]; then |
| |
| echo "Initializing database..." |
| su-exec postgres initdb -D /data/postgresql/data |
| |
| |
| echo "local all all trust" > /data/postgresql/data/pg_hba.conf |
| echo "host all all 127.0.0.1/32 trust" >> /data/postgresql/data/pg_hba.conf |
| echo "host all all ::1/128 trust" >> /data/postgresql/data/pg_hba.conf |
| echo "host all all 0.0.0.0/0 trust" >> /data/postgresql/data/pg_hba.conf |
| echo "host all all ::/0 trust" >> /data/postgresql/data/pg_hba.conf |
| fi |
|
|
| |
| echo "Starting PostgreSQL..." |
| su-exec postgres pg_ctl -D /data/postgresql/data -o "-c listen_addresses='*' -c unix_socket_directories='/data/postgresql/run'" start |
|
|
| |
| echo "Waiting for PostgreSQL to be ready..." |
| until pg_isready -h localhost; do |
| echo "Waiting for PostgreSQL to be ready..." |
| sleep 1 |
| done |
|
|
| |
| echo "Creating database and roles..." |
| su-exec postgres createuser -h /data/postgresql/run -s postgres || true |
| su-exec postgres createdb -h /data/postgresql/run node || true |
|
|
| |
| |
| |
| if [ ! -f "/data/postgresql/data/MIGRATION_DONE" ]; then |
| echo "Starting database restore..." |
| |
| |
| if [ -n "$HF_TOKEN" ] && [ -n "$BACKUP_DATASET_REPO" ]; then |
| echo "Attempting to download backup from HF Dataset: $BACKUP_DATASET_REPO" |
| python3 /backup_to_hf.py download |
| if [ -f "/data/backups/langfuse_backup.sql" ]; then |
| echo "Restoring from HF Dataset backup..." |
| su-exec postgres psql -h /data/postgresql/run -U postgres -d node -f /data/backups/langfuse_backup.sql || echo "Restore warning/error occurred, check logs." |
| touch /data/postgresql/data/MIGRATION_DONE |
| echo "Migration from HF Dataset completed successfully." |
| else |
| echo "No backup found in HF Dataset, trying local backup..." |
| fi |
| fi |
| |
| |
| if [ ! -f "/data/postgresql/data/MIGRATION_DONE" ]; then |
| if [ -f "/langfuse_backup.sql" ]; then |
| echo "Restoring from local backup file..." |
| su-exec postgres psql -h /data/postgresql/run -U postgres -d node -f /langfuse_backup.sql || echo "Restore warning/error occurred, check logs." |
| touch /data/postgresql/data/MIGRATION_DONE |
| echo "Migration from local backup completed successfully." |
| else |
| echo "No backup files found, starting fresh." |
| touch /data/postgresql/data/MIGRATION_DONE |
| fi |
| fi |
| else |
| echo "Migration already done, skipping." |
| fi |
|
|
| |
| if [ -n "$SPACE_ID" ]; then |
| echo "Setting NEXTAUTH_URL to https://huggingface.co/spaces/${SPACE_ID}" |
| |
| export NEXTAUTH_URL="https://${SPACE_HOST}" |
| else |
| echo "WARNING: SPACE_ID not found" |
| fi |
|
|
| |
| export DATABASE_URL="postgresql://postgres:postgres@localhost:5432/node" |
|
|
| |
| if [ -z "$NEXTAUTH_SECRET" ]; then |
| export NEXTAUTH_SECRET="JHZyqP4phQZsq3M0fDsRfRkuTR3-nFR8ELM3m3FAuYM" |
| fi |
| if [ -z "$SALT" ]; then |
| export SALT="Sh-xFAjPN8cZD_SreYCpVW4Qx6k8e1-A26r6-c8mPtA" |
| fi |
|
|
| |
| export HOSTNAME="0.0.0.0" |
| export HOST="0.0.0.0" |
| export PORT=3000 |
|
|
| |
| export LANGFUSE_CSP_DISABLE="true" |
|
|
| |
| |
| export AUTH_CUSTOM_CLIENT_ID=$OAUTH_CLIENT_ID |
| export AUTH_CUSTOM_CLIENT_SECRET=$OAUTH_CLIENT_SECRET |
| export AUTH_CUSTOM_ISSUER=$OPENID_PROVIDER_URL |
| export AUTH_CUSTOM_SCOPE=$OAUTH_SCOPES |
| export AUTH_CUSTOM_NAME="Hugging Face" |
|
|
| |
| export AUTH_DISABLE_USERNAME_PASSWORD="false" |
|
|
| |
| if [ -n "$AUTH_DISABLE_SIGNUP" ]; then |
| export AUTH_DISABLE_SIGNUP="$AUTH_DISABLE_SIGNUP" |
| else |
| export AUTH_DISABLE_SIGNUP="false" |
| fi |
|
|
| |
| |
| |
| if [ -n "$HF_TOKEN" ] && [ -n "$BACKUP_DATASET_REPO" ]; then |
| echo "Starting backup daemon in background..." |
| python3 /backup_to_hf.py daemon & |
| else |
| echo "⚠ Backup daemon disabled (HF_TOKEN or BACKUP_DATASET_REPO not set)" |
| fi |
|
|
| |
| echo "Starting Next.js..." |
| ./web/entrypoint.sh node ./web/server.js \ |
| --keepAliveTimeout 110000 |
|
|