fix(static): Rebranding
This commit is contained in:
1 parent
214cb72e1e
commit
680ed76150
6 files changed
+376
-1839
No files matched your search
+74
-165
@@ -7,200 +7,109 @@
|
||||
<title>srcoder.moe</title>
|
||||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;600&display=swap" rel="stylesheet">
|
||||
<link rel="stylesheet" href="{{ url_for('static', filename='css/style.css') }}">
|
||||
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&family=JetBrains+Mono:wght@400;500&display=swap" rel="stylesheet">
|
||||
<link rel="stylesheet" href="{{ url_for('static', filename='css/main.css') }}">
|
||||
<link rel="icon" href="data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'><text y='.9em' font-size='90'>🛰️</text></svg>">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="bg-glow" aria-hidden="true"></div>
|
||||
<div class="grid-overlay" aria-hidden="true"></div>
|
||||
|
||||
<header class="site-header" id="top">
|
||||
<nav class="nav">
|
||||
<a class="logo" href="#top">
|
||||
<span class="logo-mark"></></span>
|
||||
<span class="logo-text">srcoder<span class="accent">.moe</span></span>
|
||||
</a>
|
||||
|
||||
<button class="nav-toggle" id="navToggle" aria-label="Меню" aria-expanded="false">
|
||||
<span></span><span></span><span></span>
|
||||
</button>
|
||||
|
||||
<ul class="nav-links" id="navLinks">
|
||||
<li><a href="{{ url_for('author') }}" class="nav-cta">Об авторе</a></li>
|
||||
<header>
|
||||
<div class="container nav">
|
||||
<a class="logo" href="{{ url_for('index') }}">srcoder<b>.moe</b></a>
|
||||
<ul class="nav-links">
|
||||
<li><a class="nav-cta" href="{{ url_for('author') }}">/author</a></li>
|
||||
</ul>
|
||||
</nav>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<main>
|
||||
<section class="hero">
|
||||
<h1 class="hero-title" data-reveal>
|
||||
Привет, это <span class="gradient-text">srcoder.moe</span>
|
||||
</h1>
|
||||
|
||||
<main class="container">
|
||||
<section class="hero" style="border-top:none">
|
||||
<div class="idx">01 — личный сервер</div>
|
||||
<h1>Привет, это srcoder.moe</h1>
|
||||
</section>
|
||||
|
||||
<section class="section" id="services">
|
||||
<div class="section-head" data-reveal>
|
||||
<span class="section-tag">// сервисы</span>
|
||||
<h2 class="section-title">Что развёрнуто на сервере</h2>
|
||||
<p class="section-desc">Семь сервисов, закрывающих все базовые потребности — от кода до поиска.</p>
|
||||
<section id="services">
|
||||
<div class="sec-head">
|
||||
<span class="num">02</span>
|
||||
<h2>Что развёрнуто на сервере</h2>
|
||||
<span class="rule"></span>
|
||||
</div>
|
||||
|
||||
<div class="cards">
|
||||
<article class="card" data-reveal>
|
||||
<img class="card-icon" src="{{ url_for('static', filename='images/gitea.svg')}}" alt="" loading="lazy">
|
||||
<div class="card-body">
|
||||
<h3>Gitea</h3>
|
||||
<p>Лёгкая самохостируемая платформа для хранения git-репозиториев:
|
||||
Issues, Pull Requests, вики, CI и права доступа — весь процесс
|
||||
разработки живёт на моём домене, без зависимости от внешних хостингов.</p>
|
||||
</div>
|
||||
<span class="card-badge">git / разработка</span>
|
||||
<article class="card">
|
||||
<div class="card-top"><img src="{{ url_for('static', filename='images/gitea.svg') }}" alt=""><span class="num">01</span></div>
|
||||
<h3>Gitea</h3>
|
||||
<p>Лёгкая самохостируемая платформа для хранения git-репозиториев: issues, PR, вики, CI и права доступа — весь процесс разработки живёт на моём домене.</p>
|
||||
<div class="cat">git / разработка</div>
|
||||
</article>
|
||||
|
||||
<article class="card" data-reveal>
|
||||
<img class="card-icon" src="{{ url_for('static', filename='images/matrix.svg')}}" alt="" loading="lazy">
|
||||
<div class="card-body">
|
||||
<h3>Matrix</h3>
|
||||
<p>Открытый децентрализованный протокол обмена сообщениями в реальном времени —
|
||||
по сути независимый мессенджер с сквозным шифрованием, комнатами и звонками.
|
||||
Свои данные сервер хранит сам, а общение идёт напрямую между участниками.</p>
|
||||
</div>
|
||||
<span class="card-badge">мессенджер</span>
|
||||
<article class="card">
|
||||
<div class="card-top"><img src="{{ url_for('static', filename='images/matrix.svg') }}" alt=""><span class="num">02</span></div>
|
||||
<h3>Matrix</h3>
|
||||
<p>Децентрализованный протокол обмена сообщениями: сквозное шифрование, комнаты и звонки. Данные хранит сервер, общение идёт напрямую.</p>
|
||||
<div class="cat">мессенджер</div>
|
||||
</article>
|
||||
|
||||
<article class="card" data-reveal>
|
||||
<img class="card-icon" src="{{ url_for('static', filename='images/sharkey.png')}}" alt="" loading="lazy">
|
||||
<div class="card-body">
|
||||
<h3>Sharkey</h3>
|
||||
<p>Современный форк федерированной соцсети Misskey: микроблоги, реакции,
|
||||
сторис и ленты. Через протокол ActivityPub аккаунты общаются с другими
|
||||
инстансами Fediverse — то есть это моя собственная соцсеть с мостом
|
||||
в Mastodon и соседние сервера.</p>
|
||||
</div>
|
||||
<span class="card-badge">соцсеть</span>
|
||||
<article class="card">
|
||||
<div class="card-top"><img src="{{ url_for('static', filename='images/sharkey.png') }}" alt=""><span class="num">03</span></div>
|
||||
<h3>Sharkey</h3>
|
||||
<p>Форк федерированной соцсети Misskey: микроблоги, реакции, сторис и ленты с мостом в Mastodon и соседние серверы Fediverse.</p>
|
||||
<div class="cat">соцсеть</div>
|
||||
</article>
|
||||
|
||||
<article class="card" data-reveal>
|
||||
<img class="card-icon" src="{{ url_for('static', filename='images/copyparty.svg')}}" alt="" loading="lazy">
|
||||
<div class="card-body">
|
||||
<h3>Copyparty</h3>
|
||||
<p>Самописный файловый сервер с веб-интерфейсом: загрузка, шаринг,
|
||||
инстант-загрузчики, интегрированный файловый браузер и даже
|
||||
возможность стримить звук. Простое и быстрое хранилище
|
||||
для любых файлов — от бэкапов до публичных дистрибутивов.</p>
|
||||
</div>
|
||||
<span class="card-badge">файлы</span>
|
||||
<article class="card">
|
||||
<div class="card-top"><img src="{{ url_for('static', filename='images/copyparty.svg') }}" alt=""><span class="num">04</span></div>
|
||||
<h3>Copyparty</h3>
|
||||
<p>Файловый сервер с веб-интерфейсом: загрузка, шаринг, инстант-загрузчики и стриминг звука. Быстрое хранилище от бэкапов до дистрибутивов.</p>
|
||||
<div class="cat">файлы</div>
|
||||
</article>
|
||||
|
||||
<article class="card" data-reveal>
|
||||
<img class="card-icon" src="{{ url_for('static', filename='images/grafana.svg')}}" alt="" loading="lazy">
|
||||
<div class="card-body">
|
||||
<h3>Grafana</h3>
|
||||
<p>Система мониторинга и визуализации: собирает метрики сервера —
|
||||
нагрузку CPU, память, диск, трафик и здоровье сервисов —
|
||||
и рисует их живыми дашбордами. Благодаря ей я вижу, что происходит
|
||||
с машиной, ещё до того, как что-то сломается.</p>
|
||||
</div>
|
||||
<span class="card-badge">мониторинг</span>
|
||||
<article class="card">
|
||||
<div class="card-top"><img src="{{ url_for('static', filename='images/grafana.svg') }}" alt=""><span class="num">05</span></div>
|
||||
<h3>Grafana</h3>
|
||||
<p>Мониторинг и визуализация: собирает нагрузку CPU, память, диск, трафик и здоровье сервисов, рисует их живыми дашбордами.</p>
|
||||
<div class="cat">мониторинг</div>
|
||||
</article>
|
||||
|
||||
<article class="card" data-reveal>
|
||||
<img class="card-icon" src="{{ url_for('static', filename='images/freshrss.svg')}}" alt="" loading="lazy">
|
||||
<div class="card-body">
|
||||
<h3>FreshRSS</h3>
|
||||
<p>Самохостируемый RSS-агрегатор: собирает ленты блогов, новостных
|
||||
сайтов и подкастов в одну спокойную читалку — без рекламы,
|
||||
алгоритмов и слежки. Подписки и история чтения хранятся
|
||||
на моём сервере и синхронизируются с любого устройства.</p>
|
||||
</div>
|
||||
<span class="card-badge">RSS / подписки</span>
|
||||
<article class="card">
|
||||
<div class="card-top"><img src="{{ url_for('static', filename='images/freshrss.svg') }}" alt=""><span class="num">06</span></div>
|
||||
<h3>FreshRSS</h3>
|
||||
<p>RSS-агрегатор без рекламы и алгоритмов: блоги, новости и подкасты в одной спокойной читалке, синхронизируемой с любого устройства.</p>
|
||||
<div class="cat">RSS / подписки</div>
|
||||
</article>
|
||||
|
||||
<article class="card card-featured" data-reveal>
|
||||
<img class="card-icon" src="{{ url_for('static', filename='images/4get.png')}}" alt="" loading="lazy">
|
||||
<div class="card-body">
|
||||
<h3>4get</h3>
|
||||
<p>Самописная мета-поисковая система: параллельно опрашивает несколько
|
||||
поисковиков и выдаёт объединённую выдачу без рекламы и слежки.
|
||||
Расположена по адресу <a class="inline-link" href="https://search.srcoder.moe" rel="noopener">search.srcoder.moe</a>.</p>
|
||||
</div>
|
||||
<span class="card-badge">поиск</span>
|
||||
<article class="card">
|
||||
<div class="card-top"><img src="{{ url_for('static', filename='images/4get.png') }}" alt=""><span class="num">07</span></div>
|
||||
<h3>4get</h3>
|
||||
<p>Мета-поисковая система: параллельно опрашивает несколько поисковиков и выдаёт объединённую выдачу без рекламы и слежки. <a href="https://search.srcoder.moe" rel="noopener">search.srcoder.moe</a></p>
|
||||
<div class="cat">поиск</div>
|
||||
</article>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="section" id="about">
|
||||
<div class="about" data-reveal>
|
||||
<div class="about-text">
|
||||
<span class="section-tag">// о сервере</span>
|
||||
|
||||
<p>
|
||||
Хостер моего сервера — <a class="inline-link" href="https://play2go.cloud" rel="noopener">Play2Go</a>:
|
||||
он предоставляет хорошие тарифы на виртуальные серверы по доступной цене
|
||||
и современное оборудование. Из минусов — иногда случаются проблемы с сетью,
|
||||
но в целом для моих задач подходит хорошо.
|
||||
</p>
|
||||
|
||||
<h3 class="about-sub">Характеристики сервера</h3>
|
||||
<dl class="spec-list">
|
||||
<div class="spec-row">
|
||||
<dt>Процессор</dt>
|
||||
<dd>2 vCPU AMD Ryzen 9 5950X</dd>
|
||||
</div>
|
||||
<div class="spec-row">
|
||||
<dt>Оперативная память</dt>
|
||||
<dd>4 GB DDR4</dd>
|
||||
</div>
|
||||
<div class="spec-row">
|
||||
<dt>Хранилище</dt>
|
||||
<dd>120 GB NVMe SSD</dd>
|
||||
</div>
|
||||
<div class="spec-row">
|
||||
<dt>Скорость сети</dt>
|
||||
<dd>До 1 Gbit/s</dd>
|
||||
</div>
|
||||
<div class="spec-row">
|
||||
<dt>Защита от DDoS</dt>
|
||||
<dd>Мощная защита от атак L3–L4</dd>
|
||||
</div>
|
||||
</dl>
|
||||
|
||||
<a href="{{ url_for('author') }}" class="btn btn-primary about-btn">Страница об авторе →</a>
|
||||
<section id="about">
|
||||
<div class="sec-head">
|
||||
<span class="num">03</span>
|
||||
<h2>О сервере</h2>
|
||||
<span class="rule"></span>
|
||||
</div>
|
||||
<div class="about-grid">
|
||||
<div>
|
||||
<p>Хостер моего сервера — <a href="https://play2go.cloud" rel="noopener">Play2Go</a>: хорошие тарифы на виртуальные серверы по доступной цене и современное оборудование. Из минусов — иногда случаются проблемы с сетью, но в целом для моих задач подходит хорошо.</p>
|
||||
</div>
|
||||
<div class="about-terminal" aria-hidden="true">
|
||||
<div class="terminal-bar">
|
||||
<span class="dot red"></span><span class="dot yellow"></span><span class="dot green"></span>
|
||||
<span class="terminal-title">srcoder@srv</span>
|
||||
</div>
|
||||
<pre class="terminal-body"><code id="typed"></code></pre>
|
||||
<div>
|
||||
<ul class="specs">
|
||||
<li><span>cpu</span><span>2 vCPU AMD Ryzen 9 5950X</span></li>
|
||||
<li><span>ram</span><span>4 GB DDR4</span></li>
|
||||
<li><span>disk</span><span>120 GB NVMe SSD</span></li>
|
||||
<li><span>net</span><span>До 1 Gbit/s</span></li>
|
||||
<li><span>ddos</span><span>Защита L3–L4</span></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</section>
|
||||
</main>
|
||||
|
||||
<footer class="site-footer">
|
||||
<div class="footer-inner">
|
||||
<div class="footer-col footer-left">
|
||||
<span class="footer-badge"><span class="pulse"></span>Сервер существует с 2025 года</span>
|
||||
</div>
|
||||
|
||||
<div class="footer-col footer-center">
|
||||
<a href="https://git.srcoder.moe/Black_Raven/srcoder.moe" rel="noopener">
|
||||
Исходный код сайта
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="footer-col footer-right">
|
||||
<a href="mailto:w0ron.black@yandex.ru">w0ron.black@yandex.ru</a>
|
||||
</div>
|
||||
<footer>
|
||||
<div class="container footer-inner">
|
||||
<span>// с 2025 года</span>
|
||||
<a href="https://git.srcoder.moe/Black_Raven/srcoder.moe" rel="noopener">исходный код</a>
|
||||
<a href="mailto:w0ron.black@yandex.ru">w0ron.black@yandex.ru</a>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<script src="{{ url_for('static', filename='js/main.js') }}"></script>
|
||||
</body>
|
||||
</html>
|
||||
Reference in new issue
Block a user