Remove .env file and enhance SSL error handling in server configuration
All checks were successful
Deploy Production (ss-tools.crewsportswear.app) / deploy (push) Successful in 1m15s

This commit is contained in:
Frank John Begornia
2025-12-31 02:46:02 +08:00
parent 82ad68a4d2
commit 2067c72dc6
4 changed files with 33 additions and 27 deletions

21
.env
View File

@@ -1,21 +0,0 @@
# Server Configuration
PORT=5955
HOST=0.0.0.0
# SSL Configuration (only needed if not using Traefik)
# Set USE_SSL=true if you want to handle SSL directly
# Set USE_SSL=false when deploying behind Traefik/reverse proxy
USE_SSL=false
# SSL Certificate Paths (only used when USE_SSL=true)
# SSL_KEY_PATH=/etc/httpd/ssl/crewsportswear_app.key
# SSL_CERT_PATH=/etc/httpd/ssl/certs/current_cert.crt
# Screenshot Configuration
OUTPUT_DIR=/var/www/html/images/
BASE_URL=https://crewsportswear.app:5955/
VIEWPORT_WIDTH=1366
VIEWPORT_HEIGHT=1100
WAIT_TIME=10000
# Viewer URLs (configured in config.js)

View File

@@ -2,10 +2,18 @@ const fs = require('fs');
const path = require('path');
// SSL Configuration (optional - only needed if not using Traefik/reverse proxy)
const sslConfig = process.env.USE_SSL === 'true' ? {
key: fs.readFileSync(process.env.SSL_KEY_PATH || '/etc/httpd/ssl/crewsportswear_app.key', 'utf8'),
cert: fs.readFileSync(process.env.SSL_CERT_PATH || '/etc/httpd/ssl/certs/current_cert.crt', 'utf8')
} : null;
let sslConfig = null;
if (process.env.USE_SSL === 'true') {
try {
sslConfig = {
key: fs.readFileSync(process.env.SSL_KEY_PATH || '/etc/httpd/ssl/crewsportswear_app.key', 'utf8'),
cert: fs.readFileSync(process.env.SSL_CERT_PATH || '/etc/httpd/ssl/certs/current_cert.crt', 'utf8')
};
} catch (err) {
console.error('Failed to read SSL certificates:', err.message);
console.log('Falling back to HTTP mode');
}
}
// CORS Configuration
const allowedOrigins = [

View File

@@ -24,7 +24,7 @@ services:
- "traefik.http.routers.screenshot-service.rule=Host(`ss-tools.crewsportswear.app`)"
- "traefik.http.routers.screenshot-service.entrypoints=websecure"
- "traefik.http.routers.screenshot-service.tls=true"
- "traefik.http.routers.screenshot-service.tls.certresolver=letsencrypt"
- "traefik.http.routers.screenshot-service.tls.certresolver=le"
# Service
- "traefik.http.services.screenshot-service.loadbalancer.server.port=5955"

View File

@@ -68,11 +68,30 @@ const server = serverConfig.useSSL && sslConfig
? https.createServer(sslConfig, app)
: http.createServer(app);
// Handle server errors
server.on('error', (err) => {
if (err.code === 'EADDRINUSE') {
console.error(`❌ Port ${serverConfig.port} is already in use`);
console.error(' Please stop the other process or use a different port');
} else if (err.code === 'ECONNREFUSED') {
console.error(`❌ Connection refused on ${serverConfig.host}:${serverConfig.port}`);
console.error(' Check if the port is accessible');
} else {
console.error('❌ Server error:', err);
}
process.exit(1);
});
const protocol = serverConfig.useSSL && sslConfig ? 'https' : 'http';
const sslNote = serverConfig.useSSL && sslConfig ? '(Direct SSL)' : '(SSL via Traefik/Reverse Proxy)';
// Start server
server.listen(serverConfig.port, serverConfig.host, () => {
server.listen(serverConfig.port, serverConfig.host, (err) => {
if (err) {
console.error('Failed to start server:', err);
process.exit(1);
}
console.log('╔════════════════════════════════════════════════════════════╗');
console.log('║ Screenshot Service - Unified Application Started ║');
console.log('╚════════════════════════════════════════════════════════════╝');