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
All checks were successful
Deploy Production (ss-tools.crewsportswear.app) / deploy (push) Successful in 1m15s
This commit is contained in:
21
.env
21
.env
@@ -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)
|
|
||||||
@@ -2,10 +2,18 @@ const fs = require('fs');
|
|||||||
const path = require('path');
|
const path = require('path');
|
||||||
|
|
||||||
// SSL Configuration (optional - only needed if not using Traefik/reverse proxy)
|
// SSL Configuration (optional - only needed if not using Traefik/reverse proxy)
|
||||||
const sslConfig = process.env.USE_SSL === 'true' ? {
|
let sslConfig = null;
|
||||||
key: fs.readFileSync(process.env.SSL_KEY_PATH || '/etc/httpd/ssl/crewsportswear_app.key', 'utf8'),
|
if (process.env.USE_SSL === 'true') {
|
||||||
cert: fs.readFileSync(process.env.SSL_CERT_PATH || '/etc/httpd/ssl/certs/current_cert.crt', 'utf8')
|
try {
|
||||||
} : null;
|
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
|
// CORS Configuration
|
||||||
const allowedOrigins = [
|
const allowedOrigins = [
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ services:
|
|||||||
- "traefik.http.routers.screenshot-service.rule=Host(`ss-tools.crewsportswear.app`)"
|
- "traefik.http.routers.screenshot-service.rule=Host(`ss-tools.crewsportswear.app`)"
|
||||||
- "traefik.http.routers.screenshot-service.entrypoints=websecure"
|
- "traefik.http.routers.screenshot-service.entrypoints=websecure"
|
||||||
- "traefik.http.routers.screenshot-service.tls=true"
|
- "traefik.http.routers.screenshot-service.tls=true"
|
||||||
- "traefik.http.routers.screenshot-service.tls.certresolver=letsencrypt"
|
- "traefik.http.routers.screenshot-service.tls.certresolver=le"
|
||||||
|
|
||||||
# Service
|
# Service
|
||||||
- "traefik.http.services.screenshot-service.loadbalancer.server.port=5955"
|
- "traefik.http.services.screenshot-service.loadbalancer.server.port=5955"
|
||||||
|
|||||||
21
server.js
21
server.js
@@ -68,11 +68,30 @@ const server = serverConfig.useSSL && sslConfig
|
|||||||
? https.createServer(sslConfig, app)
|
? https.createServer(sslConfig, app)
|
||||||
: http.createServer(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 protocol = serverConfig.useSSL && sslConfig ? 'https' : 'http';
|
||||||
const sslNote = serverConfig.useSSL && sslConfig ? '(Direct SSL)' : '(SSL via Traefik/Reverse Proxy)';
|
const sslNote = serverConfig.useSSL && sslConfig ? '(Direct SSL)' : '(SSL via Traefik/Reverse Proxy)';
|
||||||
|
|
||||||
// Start server
|
// 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('╔════════════════════════════════════════════════════════════╗');
|
||||||
console.log('║ Screenshot Service - Unified Application Started ║');
|
console.log('║ Screenshot Service - Unified Application Started ║');
|
||||||
console.log('╚════════════════════════════════════════════════════════════╝');
|
console.log('╚════════════════════════════════════════════════════════════╝');
|
||||||
|
|||||||
Reference in New Issue
Block a user