File size: 1,947 Bytes
79becd2
 
 
6ff9480
94f1533
 
 
79becd2
 
6ff9480
79becd2
94f1533
de5b0e9
94f1533
77a2880
 
94f1533
 
5266caf
79becd2
 
 
a603a7e
94f1533
79becd2
 
94f1533
5266caf
79becd2
 
 
 
c7401ed
e9bdc69
 
2261097
f7ed979
e9bdc69
f002194
 
c7401ed
 
f7ed979
b318189
 
 
 
 
cfa5bdb
363aae7
3b348aa
 
fa4eb55
 
338f11c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#!/bin/sh

# Create necessary directories in the persistent /data volume
echo "Creating necessary directories in the persistent /data volume..."
mkdir -p /data/postgresql/data /data/postgresql/run
chmod 0700 /data/postgresql/data
chmod 0755 /data/postgresql/run

# Initialize PostgreSQL if not already initialized
echo "Initializing PostgreSQL if not already initialized..."
if [ ! -f "/data/postgresql/data/PG_VERSION" ]; then
    # Initialize database
    echo "Initializing database..."
    initdb -D /data/postgresql/data
    
    # Modify pg_hba.conf to allow local connections
    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 0.0.0.0/0 trust" >> /data/postgresql/data/pg_hba.conf
fi

# Start PostgreSQL with the persistent directories
echo "Starting PostgreSQL..."
pg_ctl -D /data/postgresql/data -o "-c listen_addresses='*' -c unix_socket_directories='/data/postgresql/run'" start

# Wait for PostgreSQL to be ready
echo "Waiting for PostgreSQL to be ready..."
until pg_isready -h localhost; do
  echo "Waiting for PostgreSQL to be ready..."
  sleep 1
done

# Set NEXTAUTH_URL based on SPACE_HOST if available
if [ -n "$SPACE_ID" ]; then
    echo "Setting NEXTAUTH_URL to https://huggingface.co/spaces/${SPACE_ID}"
    export NEXTAUTH_URL="https://huggingface.co/spaces/${SPACE_ID}"
else
    echo "WARNING: SPACE_ID not found"
fi

# Update DATABASE_URL to use TCP connection
export DATABASE_URL="postgresql://postgres:postgres@localhost:5432/node"

# Export these environment variables to influence Next.js binding
export HOSTNAME="0.0.0.0"
export HOST="0.0.0.0"
export PORT=3000

# Start Next.js in the background
exec ./web/entrypoint.sh node ./web/server.js \
    --keepAliveTimeout 110000 \
    --hostname "0.0.0.0" \
    --port 3000 \
    --experimental-hostname-validation=false \
    --experimental-https=false &