new changes

This commit is contained in:
Niranjan
2026-04-07 04:03:46 +05:30
parent 73148d2b09
commit e2f2d5cc38

View File

@@ -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=""
REDIS_AFTER="redis-server.service" case "$PKG" in
fi apt)
REDIS_AFTER="redis-server.service"
cat > "/etc/systemd/system/${SYSTEMD_UNIT}.service" << EOF REDIS_WANTS="Wants=redis-server.service"
[Unit] ;;
Description=YakPanel Backend dnf|yum)
After=network.target $REDIS_AFTER REDIS_AFTER="redis.service"
REDIS_WANTS="Wants=redis.service"
[Service] ;;
Type=simple esac
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 "=========================================="