new changes
This commit is contained in:
@@ -246,31 +246,19 @@ npm run build
|
|||||||
echo ""
|
echo ""
|
||||||
echo "[5/6] Configuring systemd..."
|
echo "[5/6] Configuring systemd..."
|
||||||
REDIS_AFTER="redis.target"
|
REDIS_AFTER="redis.target"
|
||||||
if [ "$PKG" = apt ]; then
|
REDIS_WANTS=""
|
||||||
|
case "$PKG" in
|
||||||
|
apt)
|
||||||
REDIS_AFTER="redis-server.service"
|
REDIS_AFTER="redis-server.service"
|
||||||
fi
|
REDIS_WANTS="Wants=redis-server.service"
|
||||||
|
;;
|
||||||
cat > "/etc/systemd/system/${SYSTEMD_UNIT}.service" << EOF
|
dnf|yum)
|
||||||
[Unit]
|
REDIS_AFTER="redis.service"
|
||||||
Description=YakPanel Backend
|
REDIS_WANTS="Wants=redis.service"
|
||||||
After=network.target $REDIS_AFTER
|
;;
|
||||||
|
esac
|
||||||
[Service]
|
|
||||||
Type=simple
|
|
||||||
User=root
|
|
||||||
WorkingDirectory=$INSTALL_PATH/backend
|
|
||||||
Environment="PATH=$INSTALL_PATH/backend/venv/bin:\$PATH"
|
|
||||||
ExecStart=$INSTALL_PATH/backend/venv/bin/uvicorn app.main:app --host 127.0.0.1 --port $BACKEND_PORT
|
|
||||||
Restart=always
|
|
||||||
|
|
||||||
[Install]
|
|
||||||
WantedBy=multi-user.target
|
|
||||||
EOF
|
|
||||||
|
|
||||||
systemctl daemon-reload
|
|
||||||
systemctl enable "$SYSTEMD_UNIT"
|
|
||||||
systemctl restart "$SYSTEMD_UNIT" || systemctl start "$SYSTEMD_UNIT"
|
|
||||||
|
|
||||||
|
# Redis must be up before Uvicorn; starting it after the panel caused 502 (nginx OK, API down).
|
||||||
case "$PKG" in
|
case "$PKG" in
|
||||||
apt)
|
apt)
|
||||||
systemctl enable redis-server 2>/dev/null || true
|
systemctl enable redis-server 2>/dev/null || true
|
||||||
@@ -282,6 +270,45 @@ case "$PKG" in
|
|||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
cat > "/etc/systemd/system/${SYSTEMD_UNIT}.service" << EOF
|
||||||
|
[Unit]
|
||||||
|
Description=YakPanel Backend
|
||||||
|
After=network.target $REDIS_AFTER
|
||||||
|
$REDIS_WANTS
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=simple
|
||||||
|
User=root
|
||||||
|
WorkingDirectory=$INSTALL_PATH/backend
|
||||||
|
Environment="PATH=$INSTALL_PATH/backend/venv/bin:\$PATH"
|
||||||
|
ExecStart=$INSTALL_PATH/backend/venv/bin/uvicorn app.main:app --host 127.0.0.1 --port $BACKEND_PORT
|
||||||
|
Restart=always
|
||||||
|
RestartSec=3
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
|
EOF
|
||||||
|
|
||||||
|
systemctl daemon-reload
|
||||||
|
systemctl enable "$SYSTEMD_UNIT"
|
||||||
|
systemctl restart "$SYSTEMD_UNIT" || systemctl start "$SYSTEMD_UNIT"
|
||||||
|
|
||||||
|
backend_ok=0
|
||||||
|
for _ in {1..40}; do
|
||||||
|
if curl -sfS --max-time 2 "http://127.0.0.1:${BACKEND_PORT}/api/health" >/dev/null 2>&1; then
|
||||||
|
backend_ok=1
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
sleep 0.5
|
||||||
|
done
|
||||||
|
if [ "$backend_ok" -ne 1 ]; then
|
||||||
|
echo ""
|
||||||
|
echo "WARNING: Backend did not respond on http://127.0.0.1:${BACKEND_PORT}/api/health (login will show 502 via Nginx)."
|
||||||
|
echo "Check: systemctl status $SYSTEMD_UNIT --no-pager"
|
||||||
|
echo "Logs: journalctl -u $SYSTEMD_UNIT -n 80 --no-pager"
|
||||||
|
echo "If SELinux is Enforcing: setsebool -P httpd_can_network_connect 1"
|
||||||
|
fi
|
||||||
|
|
||||||
write_nginx_site() {
|
write_nginx_site() {
|
||||||
local target="$1"
|
local target="$1"
|
||||||
cat > "$target" << NGINXEOF
|
cat > "$target" << NGINXEOF
|
||||||
@@ -300,6 +327,9 @@ server {
|
|||||||
proxy_set_header X-Real-IP \$remote_addr;
|
proxy_set_header X-Real-IP \$remote_addr;
|
||||||
proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;
|
proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;
|
||||||
proxy_set_header X-Forwarded-Proto \$scheme;
|
proxy_set_header X-Forwarded-Proto \$scheme;
|
||||||
|
proxy_connect_timeout 60s;
|
||||||
|
proxy_send_timeout 60s;
|
||||||
|
proxy_read_timeout 60s;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
NGINXEOF
|
NGINXEOF
|
||||||
@@ -319,6 +349,13 @@ systemctl start nginx 2>/dev/null || true
|
|||||||
nginx -t
|
nginx -t
|
||||||
systemctl reload nginx 2>/dev/null || systemctl restart nginx
|
systemctl reload nginx 2>/dev/null || systemctl restart nginx
|
||||||
|
|
||||||
|
# Nginx -> upstream (e.g. 127.0.0.1:$BACKEND_PORT) is blocked by default on EL + SELinux => 502.
|
||||||
|
if command -v getenforce >/dev/null 2>&1 && [ "$(getenforce 2>/dev/null)" = "Enforcing" ]; then
|
||||||
|
if command -v setsebool >/dev/null 2>&1; then
|
||||||
|
setsebool -P httpd_can_network_connect 1 2>/dev/null || true
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
if systemctl is-active --quiet firewalld 2>/dev/null; then
|
if systemctl is-active --quiet firewalld 2>/dev/null; then
|
||||||
firewall-cmd --permanent --add-port="${PANEL_PORT}/tcp" >/dev/null 2>&1 || true
|
firewall-cmd --permanent --add-port="${PANEL_PORT}/tcp" >/dev/null 2>&1 || true
|
||||||
firewall-cmd --reload >/dev/null 2>&1 || true
|
firewall-cmd --reload >/dev/null 2>&1 || true
|
||||||
@@ -337,5 +374,6 @@ echo " Access: http://YOUR_SERVER_IP:$PANEL_PORT"
|
|||||||
echo " Login: admin / admin"
|
echo " Login: admin / admin"
|
||||||
echo ""
|
echo ""
|
||||||
echo " Change your password after first login."
|
echo " Change your password after first login."
|
||||||
echo " SELinux: if Nginx returns 403, see README (labels or temporary permissive)."
|
echo " UI works but login shows 502? Backend down or SELinux: systemctl status $SYSTEMD_UNIT; journalctl -u $SYSTEMD_UNIT -n 50"
|
||||||
|
echo " SELinux: installer calls setsebool httpd_can_network_connect if Enforcing; see README for 403 on static files."
|
||||||
echo "=========================================="
|
echo "=========================================="
|
||||||
|
|||||||
Reference in New Issue
Block a user