Initial commit: Digital Home dashboard

This commit is contained in:
Cosmo
2026-04-15 20:31:28 +00:00
commit c5c4603903
33 changed files with 1384 additions and 0 deletions

View File

@@ -0,0 +1,79 @@
export default function BookmarksPage() {
const categories = [
{
label: "Статьи",
emoji: "📰",
links: [
{ name: "Habr", url: "https://habr.com/ru/feed/", desc: "Технические статьи" },
{ name: "VC.ru", url: "https://vc.ru/", desc: "Бизнес и технологии" },
],
},
{
label: "Dev",
emoji: "💻",
links: [
{ name: "GitHub", url: "https://github.com/", desc: "Репозитории" },
{ name: "Go Playground", url: "https://go.dev/play/", desc: "Тест Go кода" },
{ name: "pkg.go.dev", url: "https://pkg.go.dev/", desc: "Go пакеты" },
{ name: "Flutter Docs", url: "https://docs.flutter.dev/", desc: "Документация Flutter" },
{ name: ".NET Docs", url: "https://docs.microsoft.com/dotnet/", desc: "Документация .NET" },
{ name: "Docker Hub", url: "https://hub.docker.com/", desc: "Docker образы" },
],
},
{
label: "AI",
emoji: "🤖",
links: [
{ name: "OpenRouter", url: "https://openrouter.ai/", desc: "AI роутер" },
{ name: "Hugging Face", url: "https://huggingface.co/", desc: "ML модели" },
{ name: "Groq Console", url: "https://console.groq.com/", desc: "Groq API" },
{ name: "Together AI", url: "https://api.together.xyz/", desc: "Together AI" },
],
},
{
label: "Инфраструктура",
emoji: "🏗️",
links: [
{ name: "Proxmox", url: "http://192.168.31.100:8006", desc: "Виртуализация" },
{ name: "Tailscale", url: "https://login.tailscale.com/admin/", desc: "VPN сеть" },
],
},
];
return (
<div className="space-y-6">
<div>
<h1 className="text-2xl font-bold text-white">Bookmarks</h1>
<p className="text-slate-400 text-sm">Избранные ссылки</p>
</div>
{categories.map((cat) => (
<div key={cat.label}>
<h3 className="flex items-center gap-2 text-sm font-semibold text-slate-400 uppercase tracking-wider mb-3">
<span>{cat.emoji}</span>
{cat.label}
</h3>
<div className="grid grid-cols-2 md:grid-cols-3 lg:grid-cols-4 xl:grid-cols-5 gap-3">
{cat.links.map((link) => (
<a
key={link.url}
href={link.url}
target="_blank"
rel="noopener noreferrer"
className="glass-card p-4 hover:scale-[1.02] transition-transform group"
>
<div className="text-sm font-medium text-white group-hover:text-indigo-300 transition-colors truncate">
{link.name}
</div>
<div className="text-xs text-slate-500 mt-1 truncate">{link.desc}</div>
<div className="text-xs text-slate-700 mt-2 truncate text-right group-hover:text-slate-500 transition-colors">
{new URL(link.url).hostname}
</div>
</a>
))}
</div>
</div>
))}
</div>
);
}