File size: 2,448 Bytes
79becd2
 
 
6ff9480
94f1533
 
 
79becd2
 
6ff9480
79becd2
94f1533
de5b0e9
94f1533
77a2880
 
94f1533
 
5266caf
79becd2
 
 
a603a7e
fd3f2e6
 
 
 
 
 
 
 
 
94f1533
79becd2
0a550c0
 
5266caf
0a550c0
79becd2
94f1533
5266caf
79becd2
 
 
 
5266caf
 
79becd2
f7ed979
 
 
 
 
 
 
 
f002194
f7ed979
 
 
 
 
f002194
 
f7ed979
 
 
79becd2
f7ed979
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#!/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..."
# First, check if there's a postmaster.pid file and remove it if the process isn't running
if [ -f "/data/postgresql/data/postmaster.pid" ]; then
    pid=$(cat /data/postgresql/data/postmaster.pid | head -1)
    if ! kill -0 "$pid" 2>/dev/null; then
        echo "Removing stale PID file..."
        rm /data/postgresql/data/postmaster.pid
    fi
fi

pg_ctl -D /data/postgresql/data -o "-c listen_addresses='*' -c unix_socket_directories='/data/postgresql/run'" start

# Create the 'node' database if it doesn't exist
echo "Creating 'node' database if it doesn't exist..."
createdb -h localhost node || true

# 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

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

# Debug network information
echo "Network Debug Information:"
echo "-------------------------"
ip addr show
echo "-------------------------"
netstat -tulpn
echo "-------------------------"

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

# Maybe we need to bind to 0.0.0.0 explicitly
export HOSTNAME="0.0.0.0"

# Run the original entrypoint script
./web/entrypoint.sh node ./web/server.js --keepAliveTimeout 110000 --hostname 0.0.0.0