import React, { useEffect, useState } from 'react'; import { createRoot } from 'react-dom/client'; import { RefreshCw, Server, ShieldCheck, Wifi } from 'lucide-react'; import './styles.css'; const API_URL = import.meta.env.VITE_API_URL || 'https://api.stackworks.ru'; function App() { const [health, setHealth] = useState(null); const [loading, setLoading] = useState(false); async function checkHealth() { setLoading(true); try { const response = await fetch(API_URL + '/health'); setHealth(await response.json()); } catch (error) { setHealth({ ok: false, error: error.message }); } finally { setLoading(false); } } useEffect(() => { checkHealth(); }, []); return (

WSChat

Admin panel

VPS backend, website widget, Telegram operators.

Backend

API: {API_URL}

{JSON.stringify(health, null, 2)}

FastPanel-safe deploy

Deploy updates only widget/admin static files inside the configured webroot.

Telegram SOCKS5

Proxy settings are already supported by backend config and will be moved into admin settings.

); } createRoot(document.getElementById('root')).render();