sarveshpatel commited on
Commit
2853c55
Β·
verified Β·
1 Parent(s): b25e893

Update start.sh

Browse files
Files changed (1) hide show
  1. start.sh +31 -69
start.sh CHANGED
@@ -2,86 +2,54 @@
2
  set -e
3
 
4
  echo "=========================================="
5
- echo "πŸš€ Starting PostgreSQL + pgAdmin Space"
6
  echo "=========================================="
7
 
8
- # Environment variables (set via HF Space secrets)
9
  export HF_TOKEN="${HF_TOKEN:-}"
10
- export XET_DATASET="${XET_DATASET:-your-username/postgres-backup}"
11
  export PGPASSWORD="${POSTGRES_PASSWORD:-postgres123}"
12
 
13
- # Create pgAdmin runner script
14
- cat > /app/run_pgadmin.py << 'PGADMIN_RUNNER'
15
- import os
16
- os.environ['PGADMIN_DEFAULT_EMAIL'] = 'admin@admin.com'
17
- os.environ['PGADMIN_DEFAULT_PASSWORD'] = 'admin123'
18
- os.environ['PGADMIN_CONFIG_SERVER_MODE'] = 'False'
19
- os.environ['PGADMIN_CONFIG_MASTER_PASSWORD_REQUIRED'] = 'False'
20
-
21
- import sys
22
- sys.path.insert(0, '/app')
23
- from pgadmin_config import *
24
-
25
- from pgadmin4 import app
26
- from pgadmin4.pgAdmin4 import create_app
27
-
28
- application = create_app()
29
-
30
- if __name__ == '__main__':
31
- application.run(
32
- host='0.0.0.0',
33
- port=7860,
34
- debug=False,
35
- use_reloader=False,
36
- threaded=True
37
- )
38
- PGADMIN_RUNNER
39
-
40
  # ============================================
41
- # RESTORE FROM XET STORAGE (if available)
42
  # ============================================
43
- echo "πŸ“¦ Checking for existing backup in Xet dataset..."
44
-
45
- python3 << 'RESTORE_SCRIPT'
46
  import os
47
  import sys
48
  from pathlib import Path
49
 
50
  try:
51
- from huggingface_hub import hf_hub_download, list_repo_files, HfApi
52
 
53
  hf_token = os.environ.get('HF_TOKEN')
54
- dataset_id = os.environ.get('XET_DATASET', 'your-username/postgres-backup')
55
 
56
- if not hf_token:
57
- print("⚠️ No HF_TOKEN set, skipping restore")
58
  sys.exit(0)
59
 
60
- api = HfApi(token=hf_token)
61
-
62
  try:
63
  files = list_repo_files(dataset_id, repo_type="dataset", token=hf_token)
64
  if 'backup/pg_backup.sql' in files:
65
- print(f"βœ… Found backup in {dataset_id}, will restore after PostgreSQL starts")
66
- # Download backup file
67
- backup_path = hf_hub_download(
68
  repo_id=dataset_id,
69
  filename="backup/pg_backup.sql",
70
  repo_type="dataset",
71
  token=hf_token,
72
  local_dir="/data"
73
  )
74
- print(f"πŸ“₯ Downloaded backup to {backup_path}")
75
  else:
76
  print("ℹ️ No backup found, starting fresh")
77
  except Exception as e:
78
- print(f"ℹ️ Could not access dataset: {e}")
79
 
80
- except ImportError as e:
81
- print(f"⚠️ Import error: {e}")
82
  except Exception as e:
83
- print(f"⚠️ Restore check failed: {e}")
84
  RESTORE_SCRIPT
 
85
 
86
  # ============================================
87
  # INITIALIZE POSTGRESQL
@@ -91,51 +59,45 @@ echo "πŸ—„οΈ Setting up PostgreSQL..."
91
  if [ ! -f "/data/postgres/PG_VERSION" ]; then
92
  echo "πŸ“ Initializing new PostgreSQL database..."
93
 
94
- # Initialize as postgres user
95
  sudo -u postgres /usr/lib/postgresql/15/bin/initdb -D /data/postgres -E UTF8 --locale=C
96
 
97
- # Configure PostgreSQL
98
- echo "host all all 127.0.0.1/32 md5" >> /data/postgres/pg_hba.conf
99
- echo "local all all trust" >> /data/postgres/pg_hba.conf
 
100
 
101
- # Start temporarily to create user and database
102
  sudo -u postgres /usr/lib/postgresql/15/bin/pg_ctl -D /data/postgres -l /tmp/pg_init.log start
103
-
104
  sleep 3
105
 
106
- # Create user and database
107
- sudo -u postgres psql -c "ALTER USER postgres PASSWORD '${PGPASSWORD}';"
108
- sudo -u postgres psql -c "CREATE DATABASE appdb OWNER postgres;"
109
 
110
- # Restore from backup if exists
111
  if [ -f "/data/backup/pg_backup.sql" ]; then
112
  echo "πŸ”„ Restoring from backup..."
113
- sudo -u postgres psql -d appdb -f /data/backup/pg_backup.sql || echo "⚠️ Restore had some issues, continuing..."
114
  echo "βœ… Restore completed"
115
  fi
116
 
117
  # Stop temporary instance
118
  sudo -u postgres /usr/lib/postgresql/15/bin/pg_ctl -D /data/postgres stop
 
119
 
120
  echo "βœ… PostgreSQL initialized"
121
  else
122
- echo "βœ… PostgreSQL data directory exists"
123
  fi
124
 
125
- # Ensure correct ownership
126
  chown -R postgres:postgres /data/postgres
127
  chmod 700 /data/postgres
128
 
129
  echo "=========================================="
130
- echo "πŸŽ‰ Starting services via Supervisor"
131
- echo "=========================================="
132
- echo ""
133
- echo "πŸ“Š pgAdmin will be available at: https://your-space.hf.space"
134
- echo "πŸ‘€ Login: admin@admin.com / admin123"
135
- echo "πŸ—„οΈ PostgreSQL: localhost:5432"
136
- echo "πŸ“¦ Xet Dataset: ${XET_DATASET}"
137
  echo ""
 
 
138
  echo "=========================================="
139
 
140
- # Start supervisor (manages PostgreSQL, pgAdmin, and sync)
141
  exec /usr/bin/supervisord -c /etc/supervisor/conf.d/supervisord.conf
 
2
  set -e
3
 
4
  echo "=========================================="
5
+ echo "πŸš€ Starting PostgreSQL + pgweb Space"
6
  echo "=========================================="
7
 
 
8
  export HF_TOKEN="${HF_TOKEN:-}"
9
+ export XET_DATASET="${XET_DATASET:-}"
10
  export PGPASSWORD="${POSTGRES_PASSWORD:-postgres123}"
11
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
12
  # ============================================
13
+ # RESTORE FROM XET STORAGE
14
  # ============================================
15
+ if [ -n "$HF_TOKEN" ] && [ -n "$XET_DATASET" ]; then
16
+ echo "πŸ“¦ Checking for backup in Xet dataset..."
17
+ python3 << 'RESTORE_SCRIPT'
18
  import os
19
  import sys
20
  from pathlib import Path
21
 
22
  try:
23
+ from huggingface_hub import hf_hub_download, list_repo_files
24
 
25
  hf_token = os.environ.get('HF_TOKEN')
26
+ dataset_id = os.environ.get('XET_DATASET')
27
 
28
+ if not hf_token or not dataset_id:
 
29
  sys.exit(0)
30
 
 
 
31
  try:
32
  files = list_repo_files(dataset_id, repo_type="dataset", token=hf_token)
33
  if 'backup/pg_backup.sql' in files:
34
+ print(f"βœ… Found backup in {dataset_id}")
35
+ Path('/data/backup').mkdir(parents=True, exist_ok=True)
36
+ hf_hub_download(
37
  repo_id=dataset_id,
38
  filename="backup/pg_backup.sql",
39
  repo_type="dataset",
40
  token=hf_token,
41
  local_dir="/data"
42
  )
43
+ print("πŸ“₯ Backup downloaded")
44
  else:
45
  print("ℹ️ No backup found, starting fresh")
46
  except Exception as e:
47
+ print(f"ℹ️ Dataset access note: {e}")
48
 
 
 
49
  except Exception as e:
50
+ print(f"⚠️ Restore check: {e}")
51
  RESTORE_SCRIPT
52
+ fi
53
 
54
  # ============================================
55
  # INITIALIZE POSTGRESQL
 
59
  if [ ! -f "/data/postgres/PG_VERSION" ]; then
60
  echo "πŸ“ Initializing new PostgreSQL database..."
61
 
 
62
  sudo -u postgres /usr/lib/postgresql/15/bin/initdb -D /data/postgres -E UTF8 --locale=C
63
 
64
+ # Configure authentication
65
+ echo "local all all trust" > /data/postgres/pg_hba.conf
66
+ echo "host all all 127.0.0.1/32 trust" >> /data/postgres/pg_hba.conf
67
+ echo "host all all ::1/128 trust" >> /data/postgres/pg_hba.conf
68
 
69
+ # Start temporarily
70
  sudo -u postgres /usr/lib/postgresql/15/bin/pg_ctl -D /data/postgres -l /tmp/pg_init.log start
 
71
  sleep 3
72
 
73
+ # Create database
74
+ sudo -u postgres createdb appdb
75
+ echo "βœ… Database 'appdb' created"
76
 
77
+ # Restore backup if exists
78
  if [ -f "/data/backup/pg_backup.sql" ]; then
79
  echo "πŸ”„ Restoring from backup..."
80
+ sudo -u postgres psql -d appdb -f /data/backup/pg_backup.sql 2>/dev/null || true
81
  echo "βœ… Restore completed"
82
  fi
83
 
84
  # Stop temporary instance
85
  sudo -u postgres /usr/lib/postgresql/15/bin/pg_ctl -D /data/postgres stop
86
+ sleep 2
87
 
88
  echo "βœ… PostgreSQL initialized"
89
  else
90
+ echo "βœ… PostgreSQL data exists"
91
  fi
92
 
 
93
  chown -R postgres:postgres /data/postgres
94
  chmod 700 /data/postgres
95
 
96
  echo "=========================================="
97
+ echo "πŸŽ‰ Starting services..."
 
 
 
 
 
 
98
  echo ""
99
+ echo "πŸ“Š Web UI: https://your-space.hf.space"
100
+ echo "πŸ—„οΈ Database: appdb"
101
  echo "=========================================="
102
 
 
103
  exec /usr/bin/supervisord -c /etc/supervisor/conf.d/supervisord.conf