This commit is contained in:
southseact-3d
2026-02-09 15:39:28 +00:00
parent d5065b117f
commit df58e4b239
5 changed files with 2 additions and 216 deletions

View File

@@ -166,96 +166,6 @@ else
mkdir -p "$REPO_DIR"
fi
log "Setting up OpenSMTPD service..."
OPENSMTPD_SYSTEM_BINARY="/usr/sbin/smtpd"
OPENSMTPD_INSTALL_ROOT="/workspace/src/backend/app/opensmtpd/install"
if [ -d "${REPO_DIR}/backend/app/opensmtpd" ]; then
OPENSMTPD_INSTALL_ROOT="${REPO_DIR}/backend/app/opensmtpd/install"
fi
OPENSMTPD_CONFIG="${OPENSMTPD_INSTALL_ROOT}/etc/smtpd.conf"
OPENSMTPD_PID_FILE="${OPENSMTPD_INSTALL_ROOT}/var/run/smtpd.pid"
OPENSMTPD_CUSTOM_BINARY="${OPENSMTPD_INSTALL_ROOT}/sbin/smtpd"
ensure_opensmtpd_layout() {
if [ ! -x "$OPENSMTPD_SYSTEM_BINARY" ]; then
return
fi
mkdir -p "${OPENSMTPD_INSTALL_ROOT}/sbin"
mkdir -p "${OPENSMTPD_INSTALL_ROOT}/etc"
mkdir -p "${OPENSMTPD_INSTALL_ROOT}/var/spool/smtpd"
mkdir -p "${OPENSMTPD_INSTALL_ROOT}/var/spool/queue"
mkdir -p "${OPENSMTPD_INSTALL_ROOT}/var/run"
if [ ! -e "$OPENSMTPD_CUSTOM_BINARY" ]; then
ln -s "$OPENSMTPD_SYSTEM_BINARY" "$OPENSMTPD_CUSTOM_BINARY"
fi
if [ -x "/usr/sbin/smtpctl" ] && [ ! -e "${OPENSMTPD_INSTALL_ROOT}/sbin/smtpctl" ]; then
ln -s "/usr/sbin/smtpctl" "${OPENSMTPD_INSTALL_ROOT}/sbin/smtpctl"
fi
if [ -x "/usr/bin/sendmail" ] && [ ! -e "${OPENSMTPD_INSTALL_ROOT}/sbin/sendmail" ]; then
ln -s "/usr/bin/sendmail" "${OPENSMTPD_INSTALL_ROOT}/sbin/sendmail"
fi
if [ -d "/etc/ssl/certs" ] && [ ! -e "${OPENSMTPD_INSTALL_ROOT}/etc/certs" ]; then
ln -s "/etc/ssl/certs" "${OPENSMTPD_INSTALL_ROOT}/etc/certs"
fi
chmod -R 755 "${OPENSMTPD_INSTALL_ROOT}/var" 2>/dev/null || true
}
ensure_opensmtpd_layout
# Determine which binary to use (prefer custom, fallback to system)
OPENSMTPD_BINARY=""
if [ -x "$OPENSMTPD_CUSTOM_BINARY" ]; then
OPENSMTPD_BINARY="$OPENSMTPD_CUSTOM_BINARY"
log "Using custom OpenSMTPD binary: $OPENSMTPD_BINARY"
elif [ -x "$OPENSMTPD_SYSTEM_BINARY" ]; then
OPENSMTPD_BINARY="$OPENSMTPD_SYSTEM_BINARY"
log "Using system OpenSMTPD binary: $OPENSMTPD_BINARY"
else
# Try to find in PATH
if command -v smtpd &>/dev/null; then
OPENSMTPD_BINARY="$(command -v smtpd)"
log "Using OpenSMTPD from PATH: $OPENSMTPD_BINARY"
fi
fi
if [ -n "$OPENSMTPD_BINARY" ] && [ -f "$OPENSMTPD_CONFIG" ]; then
log "OpenSMTPD configuration found at $OPENSMTPD_CONFIG"
# Check if OpenSMTPD is already running
if [ -f "$OPENSMTPD_PID_FILE" ] && kill -0 "$(cat "$OPENSMTPD_PID_FILE")" 2>/dev/null; then
log "OpenSMTPD is already running (PID: $(cat "$OPENSMTPD_PID_FILE"))"
else
log "Starting OpenSMTPD..."
"$OPENSMTPD_BINARY" -d -f "$OPENSMTPD_CONFIG" 2>&1 &
OPENSMTPD_PID=$!
# Wait for OpenSMTPD to start
sleep 2
if kill -0 "$OPENSMTPD_PID" 2>/dev/null; then
log "OpenSMTPD started successfully (PID: $OPENSMTPD_PID)"
echo "$OPENSMTPD_PID" > "$OPENSMTPD_PID_FILE"
else
log "WARNING: OpenSMTPD failed to start"
fi
fi
else
log "OpenSMTPD not configured or binary not found, skipping SMTP setup"
if [ ! -f "$OPENSMTPD_CONFIG" ]; then
log " Config file missing: $OPENSMTPD_CONFIG"
fi
if [ -z "$OPENSMTPD_BINARY" ]; then
log " Binary not found at: $OPENSMTPD_CUSTOM_BINARY or $OPENSMTPD_SYSTEM_BINARY"
fi
fi
log "Starting Shopify AI App Builder service..."
# Use /opt/webchat directly as it contains the actual server.js with node_modules
@@ -373,14 +283,6 @@ cleanup() {
monitor_resources
fi
# Stop OpenSMTPD if running
if [ -n "$OPENSMTPD_PID" ] && kill -0 "$OPENSMTPD_PID" 2>/dev/null; then
log "Terminating OpenSMTPD service (PID: $OPENSMTPD_PID)"
kill "$OPENSMTPD_PID" 2>/dev/null || true
wait "$OPENSMTPD_PID" 2>/dev/null || true
log "OpenSMTPD service terminated"
fi
if [ -n "$MONITOR_PID" ] && kill -0 "$MONITOR_PID" 2>/dev/null; then
log "Terminating monitor process (PID: $MONITOR_PID)"
kill "$MONITOR_PID" 2>/dev/null || true