fix(setup/native): correct repo URL, paths, and systemd for native install; support sqlite in production knex config

This commit is contained in:
2025-09-09 11:13:01 +02:00
parent ee13556c5c
commit 87b8414e44
2 changed files with 47 additions and 36 deletions
+11 -3
View File
@@ -26,7 +26,9 @@ 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
connection: (process.env.DATABASE_CLIENT || 'pg') === 'pg'
? {
host: process.env.DB_HOST || 'db', host: process.env.DB_HOST || 'db',
port: process.env.DB_PORT || 5432, port: process.env.DB_PORT || 5432,
user: process.env.DB_USER || 'picpeak', user: process.env.DB_USER || 'picpeak',
@@ -38,8 +40,13 @@ const config = {
idleTimeoutMillis: 30000, idleTimeoutMillis: 30000,
keepAlive: true, keepAlive: true,
keepAliveInitialDelayMillis: 0 keepAliveInitialDelayMillis: 0
}
: {
filename: path.join(__dirname, process.env.DATABASE_PATH || './data/photo_sharing.db')
}, },
pool: { useNullAsDefault: (process.env.DATABASE_CLIENT || 'pg') !== 'pg',
pool: (process.env.DATABASE_CLIENT || 'pg') === 'pg'
? {
min: 5, min: 5,
max: 25, max: 25,
acquireTimeoutMillis: 60000, acquireTimeoutMillis: 60000,
@@ -48,7 +55,8 @@ const config = {
reapIntervalMillis: 1000, reapIntervalMillis: 1000,
createRetryIntervalMillis: 200, createRetryIntervalMillis: 200,
propagateCreateError: false propagateCreateError: false
}, }
: undefined,
migrations: { migrations: {
directory: './migrations' directory: './migrations'
}, },
+14 -11
View File
@@ -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}"
} }