From f02b61046f641ca334103b4532a8bc6e43c4cb0e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=92=D0=B8=D0=BA=D1=82=D0=BE=D1=80?= <78488229+viktor138irk@users.noreply.github.com> Date: Fri, 8 May 2026 15:21:13 +0900 Subject: [PATCH] Add initial admin panel app --- admin-panel/src/main.jsx | 66 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 admin-panel/src/main.jsx diff --git a/admin-panel/src/main.jsx b/admin-panel/src/main.jsx new file mode 100644 index 0000000..1ec4825 --- /dev/null +++ b/admin-panel/src/main.jsx @@ -0,0 +1,66 @@ +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 || 'http://localhost:3000'; + +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 ( +
+
+
+

Raspi Telegram Live Chat

+

Админка управления чатом

+

MVP-каркас: backend на Raspberry Pi, фронт на VPS/FastPanel, операторы в Telegram.

+
+ +
+ +
+
+ +

Backend

+

API: {API_URL}

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

FastPanel-safe deploy

+

Деплой будет обновлять только static-файлы admin/widget внутри разрешённых webroot-директорий.

+
+ +
+ +

SOCKS5 для Telegram

+

Настройки proxy заложены в backend config и будут вынесены в админку отдельным разделом.

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