fix(setup/native): correct repo URL, paths, and systemd for native install; support sqlite in production knex config
This commit is contained in:
+31
-23
@@ -26,29 +26,37 @@ const config = {
|
|||||||
|
|
||||||
production: {
|
production: {
|
||||||
client: process.env.DATABASE_CLIENT || 'pg',
|
client: process.env.DATABASE_CLIENT || 'pg',
|
||||||
connection: {
|
// Support both Postgres and SQLite in production based on DATABASE_CLIENT
|
||||||
host: process.env.DB_HOST || 'db',
|
connection: (process.env.DATABASE_CLIENT || 'pg') === 'pg'
|
||||||
port: process.env.DB_PORT || 5432,
|
? {
|
||||||
user: process.env.DB_USER || 'picpeak',
|
host: process.env.DB_HOST || 'db',
|
||||||
password: process.env.DB_PASSWORD,
|
port: process.env.DB_PORT || 5432,
|
||||||
database: process.env.DB_NAME || 'picpeak',
|
user: process.env.DB_USER || 'picpeak',
|
||||||
ssl: process.env.DB_SSL === 'true' ? { rejectUnauthorized: false } : false,
|
password: process.env.DB_PASSWORD,
|
||||||
// Connection stability settings
|
database: process.env.DB_NAME || 'picpeak',
|
||||||
connectionTimeoutMillis: 30000,
|
ssl: process.env.DB_SSL === 'true' ? { rejectUnauthorized: false } : false,
|
||||||
idleTimeoutMillis: 30000,
|
// Connection stability settings
|
||||||
keepAlive: true,
|
connectionTimeoutMillis: 30000,
|
||||||
keepAliveInitialDelayMillis: 0
|
idleTimeoutMillis: 30000,
|
||||||
},
|
keepAlive: true,
|
||||||
pool: {
|
keepAliveInitialDelayMillis: 0
|
||||||
min: 5,
|
}
|
||||||
max: 25,
|
: {
|
||||||
acquireTimeoutMillis: 60000,
|
filename: path.join(__dirname, process.env.DATABASE_PATH || './data/photo_sharing.db')
|
||||||
createTimeoutMillis: 60000,
|
},
|
||||||
idleTimeoutMillis: 30000,
|
useNullAsDefault: (process.env.DATABASE_CLIENT || 'pg') !== 'pg',
|
||||||
reapIntervalMillis: 1000,
|
pool: (process.env.DATABASE_CLIENT || 'pg') === 'pg'
|
||||||
createRetryIntervalMillis: 200,
|
? {
|
||||||
propagateCreateError: false
|
min: 5,
|
||||||
},
|
max: 25,
|
||||||
|
acquireTimeoutMillis: 60000,
|
||||||
|
createTimeoutMillis: 60000,
|
||||||
|
idleTimeoutMillis: 30000,
|
||||||
|
reapIntervalMillis: 1000,
|
||||||
|
createRetryIntervalMillis: 200,
|
||||||
|
propagateCreateError: false
|
||||||
|
}
|
||||||
|
: undefined,
|
||||||
migrations: {
|
migrations: {
|
||||||
directory: './migrations'
|
directory: './migrations'
|
||||||
},
|
},
|
||||||
|
|||||||
+14
-11
@@ -13,7 +13,7 @@ IFS=$'\n\t'
|
|||||||
# Script configuration
|
# Script configuration
|
||||||
readonly SCRIPT_VERSION="2.0.0"
|
readonly SCRIPT_VERSION="2.0.0"
|
||||||
readonly APP_NAME="PicPeak"
|
readonly APP_NAME="PicPeak"
|
||||||
readonly REPO_URL="https://github.com/yourusername/wedding-photo-sharing"
|
readonly REPO_URL="https://github.com/the-luap/picpeak.git"
|
||||||
readonly NODE_VERSION="20"
|
readonly NODE_VERSION="20"
|
||||||
readonly MIN_RAM_DOCKER=2048
|
readonly MIN_RAM_DOCKER=2048
|
||||||
readonly MIN_RAM_NATIVE=1024
|
readonly MIN_RAM_NATIVE=1024
|
||||||
@@ -564,7 +564,9 @@ setup_native_installation() {
|
|||||||
|
|
||||||
# Install dependencies
|
# Install dependencies
|
||||||
log_step "Installing dependencies..."
|
log_step "Installing dependencies..."
|
||||||
cd "$NATIVE_APP_DIR/backend"
|
# The repository root contains both backend/ and frontend/
|
||||||
|
# Install backend production dependencies
|
||||||
|
cd "$NATIVE_APP_DIR/backend/backend"
|
||||||
npm install --production
|
npm install --production
|
||||||
|
|
||||||
# Generate secrets
|
# Generate secrets
|
||||||
@@ -573,7 +575,7 @@ setup_native_installation() {
|
|||||||
|
|
||||||
# Create .env file
|
# Create .env file
|
||||||
log_step "Creating configuration..."
|
log_step "Creating configuration..."
|
||||||
cat > "$NATIVE_APP_DIR/backend/.env" <<EOF
|
cat > "$NATIVE_APP_DIR/backend/backend/.env" <<EOF
|
||||||
# PicPeak Native Configuration
|
# PicPeak Native Configuration
|
||||||
# Generated: $(date)
|
# Generated: $(date)
|
||||||
|
|
||||||
@@ -588,10 +590,11 @@ ADMIN_PASSWORD=$ADMIN_PASSWORD
|
|||||||
ADMIN_EMAIL=$ADMIN_EMAIL
|
ADMIN_EMAIL=$ADMIN_EMAIL
|
||||||
|
|
||||||
# Database
|
# Database
|
||||||
DATABASE_PATH=$NATIVE_APP_DIR/backend/database.sqlite
|
DATABASE_CLIENT=sqlite3
|
||||||
|
DATABASE_PATH=$NATIVE_APP_DIR/backend/backend/data/photo_sharing.db
|
||||||
|
|
||||||
# Storage
|
# Storage
|
||||||
PHOTOS_DIR=$NATIVE_APP_DIR/events
|
STORAGE_PATH=$NATIVE_APP_DIR
|
||||||
|
|
||||||
# Email
|
# Email
|
||||||
SMTP_ENABLED=${SMTP_HOST:+true}
|
SMTP_ENABLED=${SMTP_HOST:+true}
|
||||||
@@ -618,11 +621,11 @@ EOF
|
|||||||
|
|
||||||
# Set permissions
|
# Set permissions
|
||||||
chown -R $NATIVE_APP_USER:$NATIVE_APP_USER "$NATIVE_APP_DIR"
|
chown -R $NATIVE_APP_USER:$NATIVE_APP_USER "$NATIVE_APP_DIR"
|
||||||
chmod 600 "$NATIVE_APP_DIR/backend/.env"
|
chmod 600 "$NATIVE_APP_DIR/backend/backend/.env"
|
||||||
|
|
||||||
# Run database migrations
|
# Run database migrations
|
||||||
log_step "Initializing database..."
|
log_step "Initializing database..."
|
||||||
cd "$NATIVE_APP_DIR/backend"
|
cd "$NATIVE_APP_DIR/backend/backend"
|
||||||
sudo -u $NATIVE_APP_USER npm run migrate
|
sudo -u $NATIVE_APP_USER npm run migrate
|
||||||
|
|
||||||
# Create systemd services
|
# Create systemd services
|
||||||
@@ -654,7 +657,7 @@ After=network.target
|
|||||||
[Service]
|
[Service]
|
||||||
Type=simple
|
Type=simple
|
||||||
User=$NATIVE_APP_USER
|
User=$NATIVE_APP_USER
|
||||||
WorkingDirectory=$NATIVE_APP_DIR/backend
|
WorkingDirectory=$NATIVE_APP_DIR/backend/backend
|
||||||
Environment="NODE_ENV=production"
|
Environment="NODE_ENV=production"
|
||||||
ExecStart=/usr/bin/node server.js
|
ExecStart=/usr/bin/node server.js
|
||||||
Restart=always
|
Restart=always
|
||||||
@@ -675,7 +678,7 @@ After=network.target picpeak-backend.service
|
|||||||
[Service]
|
[Service]
|
||||||
Type=simple
|
Type=simple
|
||||||
User=$NATIVE_APP_USER
|
User=$NATIVE_APP_USER
|
||||||
WorkingDirectory=$NATIVE_APP_DIR/backend
|
WorkingDirectory=$NATIVE_APP_DIR/backend/backend
|
||||||
Environment="NODE_ENV=production"
|
Environment="NODE_ENV=production"
|
||||||
ExecStart=/usr/bin/node src/services/workerManager.js
|
ExecStart=/usr/bin/node src/services/workerManager.js
|
||||||
Restart=always
|
Restart=always
|
||||||
@@ -878,8 +881,8 @@ print_success_message() {
|
|||||||
echo
|
echo
|
||||||
echo "📚 Documentation:"
|
echo "📚 Documentation:"
|
||||||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||||||
echo "Setup Guide: https://github.com/yourusername/wedding-photo-sharing/blob/main/SIMPLE_SETUP.md"
|
echo "Setup Guide: https://github.com/the-luap/picpeak/blob/main/SIMPLE_SETUP.md"
|
||||||
echo "Full Docs: https://github.com/yourusername/wedding-photo-sharing"
|
echo "Full Docs: https://github.com/the-luap/picpeak"
|
||||||
echo
|
echo
|
||||||
echo -e "${GREEN}✨ Setup complete! Visit the admin panel to start creating galleries.${NC}"
|
echo -e "${GREEN}✨ Setup complete! Visit the admin panel to start creating galleries.${NC}"
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user