911 lines
27 KiB
HTML
911 lines
27 KiB
HTML
<!doctype html>
|
|
<html
|
|
lang="ru"
|
|
dir="ltr"
|
|
class="scroll-smooth"
|
|
data-default-appearance="light"
|
|
data-auto-appearance="true"><head><script src="/livereload.js?mindelay=10&v=2&port=1313&path=livereload" data-no-instant defer></script>
|
|
<meta charset="utf-8">
|
|
|
|
<meta http-equiv="content-language" content="ru">
|
|
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
|
<meta name="theme-color">
|
|
|
|
|
|
|
|
<title>Запустил свой сайт · Sokolab</title>
|
|
<meta name="title" content="Запустил свой сайт · Sokolab">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<meta name="description" content="Как я поднял сайт и Gitea на своём сервере">
|
|
|
|
|
|
<meta name="keywords" content="сервер,hugo,">
|
|
|
|
|
|
|
|
<link rel="canonical" href="http://localhost:1313/blog/hello/">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<meta name="author" content="Alexander Sokolov aka s0k0l">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<link href="https://t.me/sokolex" rel="me">
|
|
|
|
|
|
|
|
|
|
|
|
<link href="https://git.sokolab.xyz/sokol" rel="me">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<meta property="og:url" content="http://localhost:1313/blog/hello/">
|
|
<meta property="og:site_name" content="Sokolab">
|
|
<meta property="og:title" content="Запустил свой сайт">
|
|
<meta property="og:description" content="Как я поднял сайт и Gitea на своём сервере">
|
|
<meta property="og:locale" content="ru">
|
|
<meta property="og:type" content="article">
|
|
<meta property="article:section" content="blog">
|
|
<meta property="article:published_time" content="2026-10-05T21:14:48+04:00">
|
|
<meta property="article:modified_time" content="2026-10-05T21:14:48+04:00">
|
|
<meta property="article:tag" content="Сервер">
|
|
<meta property="article:tag" content="Hugo">
|
|
|
|
|
|
<meta name="twitter:card" content="summary">
|
|
<meta name="twitter:title" content="Запустил свой сайт">
|
|
<meta name="twitter:description" content="Как я поднял сайт и Gitea на своём сервере">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<link
|
|
type="text/css"
|
|
rel="stylesheet"
|
|
href="/css/main.bundle.min.5f770476384eeda5282750bf95a91c1d626de7f2ab009004dd7ee0a9097a3686a13e1bee22ee7795fb23c7fbc0fc72e86ad1981d1ab62928e21a33eba23dddd1.css"
|
|
integrity="sha512-X3cEdjhO7aUoJ1C/lakcHWJt5/KrAJAE3X7gqQl6NoahPhvuIu53lfsjx/vA/HLoatGYHRq2KSjiGjProj3d0Q==">
|
|
|
|
|
|
|
|
<script
|
|
type="text/javascript"
|
|
src="/js/appearance.min.2fd4cae71f73e7d5de8d256fdda25088b81b3f192c1e688761f6c12c77cb3c43cae8132e194a7f37019d495951c1f99c70dbf4e1938a3a0896eb4d2ced842bc0.js"
|
|
integrity="sha512-L9TK5x9z59XejSVv3aJQiLgbPxksHmiHYfbBLHfLPEPK6BMuGUp/NwGdSVlRwfmccNv04ZOKOgiW600s7YQrwA=="></script>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<script defer src="/lib/zoom/zoom.min.umd.a527109b68c082a70f3697716dd72a9d5aa8b545cf800cecbbc7399f2ca6f6e0ce3e431f2062b48bbfa47c9ea42822714060bef309be073f49b9c0e30d318d7b.js" integrity="sha512-pScQm2jAgqcPNpdxbdcqnVqotUXPgAzsu8c5nyym9uDOPkMfIGK0i7+kfJ6kKCJxQGC+8wm+Bz9JucDjDTGNew=="></script>
|
|
|
|
<script defer src="/js/medium-zoom.67b71ecf7eecce38673a92244d1ffd93edb5f1aeedd12e725d0f67fe901828fa3562f6a6d64ad290b36b7d7034b8ea16e63486d75d957bcf6a2732923e5d46e6.js" integrity="sha512-Z7cez37szjhnOpIkTR/9k+218a7t0S5yXQ9n/pAYKPo1Yvam1krSkLNrfXA0uOoW5jSG112Ve89qJzKSPl1G5g=="></script>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<script
|
|
defer
|
|
type="text/javascript"
|
|
id="script-bundle"
|
|
src="/js/main.bundle.min.be4a11c293f9b8ab20ab872f73c6b0c584fcba4a0df2c8ef7f414a5805c0ddab955ac23bec4a6d92a06087498d445cb2bf26a6602a27981980efe2bda70104a4.js"
|
|
integrity="sha512-vkoRwpP5uKsgq4cvc8awxYT8ukoN8sjvf0FKWAXA3auVWsI77EptkqBgh0mNRFyyvyamYConmBmA7+K9pwEEpA=="
|
|
data-copy="Копировать"
|
|
data-copied="Скопировано"></script>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
|
|
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
|
|
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
|
|
<link rel="manifest" href="/site.webmanifest">
|
|
|
|
|
|
|
|
<script type="application/ld+json">
|
|
[{
|
|
"@context": "https://schema.org",
|
|
"@type": "Article",
|
|
"articleSection": "Блог",
|
|
"name": "Запустил свой сайт",
|
|
"headline": "Запустил свой сайт",
|
|
|
|
"inLanguage": "ru",
|
|
"url" : "http://localhost:1313/blog/hello/",
|
|
"author" : {
|
|
"@type": "Person",
|
|
"name": "Alexander Sokolov aka s0k0l",
|
|
"image": "http://localhost:1313/img/me.jpg",
|
|
"sameAs": ["https://t.me/sokolex", "https://git.sokolab.xyz/sokol"]
|
|
},
|
|
"copyrightYear": "2026",
|
|
"dateCreated": "2026-10-05T21:14:48\u002b04:00",
|
|
"datePublished": "2026-10-05T21:14:48\u002b04:00",
|
|
|
|
"dateModified": "2026-10-05T21:14:48\u002b04:00",
|
|
|
|
"keywords": ["сервер","hugo"],
|
|
|
|
"mainEntityOfPage": "http://localhost:1313/blog/hello/",
|
|
"wordCount": 35
|
|
}]
|
|
</script>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</head>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<body class="flex flex-col h-screen m-auto leading-7 max-w-7xl px-6 sm:px-14 md:px-24 lg:px-32 text-lg bg-neutral text-neutral-900 dark:bg-neutral-800 dark:text-neutral bf-scrollbar">
|
|
<div id="the-top" class="absolute flex self-center">
|
|
<a
|
|
class="px-3 py-1 text-sm -translate-y-8 rounded-b-lg bg-primary-200 focus:translate-y-0 dark:bg-neutral-600"
|
|
href="#main-content">
|
|
<span class="font-bold text-primary-600 pe-2 dark:text-primary-400">↓</span>
|
|
Перейти к основному содержимому
|
|
</a>
|
|
</div>
|
|
<header>
|
|
|
|
|
|
<div class="main-menu flex items-center w-full gap-2 p-1 pl-0">
|
|
|
|
|
|
<a href="/" class="text-base font-medium truncate min-w-0 shrink">
|
|
Sokolab
|
|
</a>
|
|
|
|
<div class="flex items-center ms-auto">
|
|
<div class="hidden md:flex">
|
|
<nav aria-label="" class="flex items-center gap-x-5 h-12">
|
|
|
|
|
|
|
|
|
|
<a
|
|
href="/blog/"
|
|
|
|
class="flex items-center bf-icon-color-hover"
|
|
aria-label="Блог"
|
|
title="Блог">
|
|
|
|
|
|
<span class="text-sm font-medium break-normal">
|
|
Блог
|
|
</span>
|
|
|
|
</a>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<div class="flex items-center">
|
|
<button
|
|
id="appearance-switcher"
|
|
aria-label="Переключить на темный вид"
|
|
type="button"
|
|
class="text-sm bf-icon-color-hover"
|
|
title="Переключить на темный вид">
|
|
<div class="flex items-center justify-center dark:hidden">
|
|
<span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M32 256c0-123.8 100.3-224 223.8-224c11.36 0 29.7 1.668 40.9 3.746c9.616 1.777 11.75 14.63 3.279 19.44C245 86.5 211.2 144.6 211.2 207.8c0 109.7 99.71 193 208.3 172.3c9.561-1.805 16.28 9.324 10.11 16.95C387.9 448.6 324.8 480 255.8 480C132.1 480 32 379.6 32 256z"/></svg>
|
|
</span>
|
|
</div>
|
|
<div class="items-center justify-center hidden dark:flex">
|
|
<span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M256 159.1c-53.02 0-95.1 42.98-95.1 95.1S202.1 351.1 256 351.1s95.1-42.98 95.1-95.1S309 159.1 256 159.1zM509.3 347L446.1 255.1l63.15-91.01c6.332-9.125 1.104-21.74-9.826-23.72l-109-19.7l-19.7-109c-1.975-10.93-14.59-16.16-23.72-9.824L256 65.89L164.1 2.736c-9.125-6.332-21.74-1.107-23.72 9.824L121.6 121.6L12.56 141.3C1.633 143.2-3.596 155.9 2.736 164.1L65.89 256l-63.15 91.01c-6.332 9.125-1.105 21.74 9.824 23.72l109 19.7l19.7 109c1.975 10.93 14.59 16.16 23.72 9.824L256 446.1l91.01 63.15c9.127 6.334 21.75 1.107 23.72-9.822l19.7-109l109-19.7C510.4 368.8 515.6 356.1 509.3 347zM256 383.1c-70.69 0-127.1-57.31-127.1-127.1c0-70.69 57.31-127.1 127.1-127.1s127.1 57.3 127.1 127.1C383.1 326.7 326.7 383.1 256 383.1z"/></svg>
|
|
</span>
|
|
</div>
|
|
</button>
|
|
</div>
|
|
|
|
|
|
|
|
<button
|
|
id="search-button"
|
|
aria-label="Поиск (/)"
|
|
class="flex items-center gap-2 rounded-lg border bf-border-color bf-border-color-hover bg-neutral-100/50 px-2 py-1 text-sm text-neutral-500 transition-colors hover:text-primary-600 dark:bg-neutral-800/50 dark:text-neutral-400 dark:hover:text-primary-400"
|
|
title="Поиск (/)">
|
|
<span class="relative block icon"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="search" class="svg-inline--fa fa-search fa-w-16" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M505 442.7L405.3 343c-4.5-4.5-10.6-7-17-7H372c27.6-35.3 44-79.7 44-128C416 93.1 322.9 0 208 0S0 93.1 0 208s93.1 208 208 208c48.3 0 92.7-16.4 128-44v16.3c0 6.4 2.5 12.5 7 17l99.7 99.7c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.6.1-34zM208 336c-70.7 0-128-57.2-128-128 0-70.7 57.2-128 128-128 70.7 0 128 57.2 128 128 0 70.7-57.2 128-128 128z"/></svg>
|
|
</span>
|
|
<kbd
|
|
id="search-shortcut-hint"
|
|
class="pointer-events-none font-sans text-xs text-neutral-500 dark:text-neutral-400"
|
|
aria-hidden="true">
|
|
⌘K
|
|
</kbd>
|
|
</button>
|
|
|
|
</nav>
|
|
|
|
|
|
|
|
</div>
|
|
<div class="flex md:hidden">
|
|
|
|
<div class="mobile-header-row relative flex items-center h-14 gap-4">
|
|
|
|
|
|
|
|
<button
|
|
id="appearance-switcher-mobile"
|
|
type="button"
|
|
aria-label="Переключить на темный вид"
|
|
title="Переключить на темный вид"
|
|
class="flex items-center justify-center text-neutral-900 hover:text-primary-600 dark:text-neutral-200 dark:hover:text-primary-400">
|
|
<div class="dark:hidden">
|
|
<span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M32 256c0-123.8 100.3-224 223.8-224c11.36 0 29.7 1.668 40.9 3.746c9.616 1.777 11.75 14.63 3.279 19.44C245 86.5 211.2 144.6 211.2 207.8c0 109.7 99.71 193 208.3 172.3c9.561-1.805 16.28 9.324 10.11 16.95C387.9 448.6 324.8 480 255.8 480C132.1 480 32 379.6 32 256z"/></svg>
|
|
</span>
|
|
</div>
|
|
<div class="hidden dark:block">
|
|
<span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M256 159.1c-53.02 0-95.1 42.98-95.1 95.1S202.1 351.1 256 351.1s95.1-42.98 95.1-95.1S309 159.1 256 159.1zM509.3 347L446.1 255.1l63.15-91.01c6.332-9.125 1.104-21.74-9.826-23.72l-109-19.7l-19.7-109c-1.975-10.93-14.59-16.16-23.72-9.824L256 65.89L164.1 2.736c-9.125-6.332-21.74-1.107-23.72 9.824L121.6 121.6L12.56 141.3C1.633 143.2-3.596 155.9 2.736 164.1L65.89 256l-63.15 91.01c-6.332 9.125-1.105 21.74 9.824 23.72l109 19.7l19.7 109c1.975 10.93 14.59 16.16 23.72 9.824L256 446.1l91.01 63.15c9.127 6.334 21.75 1.107 23.72-9.822l19.7-109l109-19.7C510.4 368.8 515.6 356.1 509.3 347zM256 383.1c-70.69 0-127.1-57.31-127.1-127.1c0-70.69 57.31-127.1 127.1-127.1s127.1 57.3 127.1 127.1C383.1 326.7 326.7 383.1 256 383.1z"/></svg>
|
|
</span>
|
|
</div>
|
|
</button>
|
|
|
|
|
|
|
|
<button
|
|
id="search-button-mobile"
|
|
aria-label="Поиск (/)"
|
|
class="flex items-center justify-center bf-icon-color-hover"
|
|
title="Поиск (/)">
|
|
<span class="relative block icon"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="search" class="svg-inline--fa fa-search fa-w-16" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M505 442.7L405.3 343c-4.5-4.5-10.6-7-17-7H372c27.6-35.3 44-79.7 44-128C416 93.1 322.9 0 208 0S0 93.1 0 208s93.1 208 208 208c48.3 0 92.7-16.4 128-44v16.3c0 6.4 2.5 12.5 7 17l99.7 99.7c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.6.1-34zM208 336c-70.7 0-128-57.2-128-128 0-70.7 57.2-128 128-128 70.7 0 128 57.2 128 128 0 70.7-57.2 128-128 128z"/></svg>
|
|
</span>
|
|
</button>
|
|
|
|
|
|
|
|
<input type="checkbox" id="mobile-menu-toggle" autocomplete="off" class="hidden peer">
|
|
<label
|
|
for="mobile-menu-toggle"
|
|
tabindex="0"
|
|
role="button"
|
|
aria-expanded="false"
|
|
aria-controls="mobile-menu-dialog"
|
|
aria-label=""
|
|
class="flex items-center justify-center cursor-pointer bf-icon-color-hover">
|
|
<span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M0 96C0 78.33 14.33 64 32 64H416C433.7 64 448 78.33 448 96C448 113.7 433.7 128 416 128H32C14.33 128 0 113.7 0 96zM0 256C0 238.3 14.33 224 32 224H416C433.7 224 448 238.3 448 256C448 273.7 433.7 288 416 288H32C14.33 288 0 273.7 0 256zM416 448H32C14.33 448 0 433.7 0 416C0 398.3 14.33 384 32 384H416C433.7 384 448 398.3 448 416C448 433.7 433.7 448 416 448z"/></svg>
|
|
</span>
|
|
</label>
|
|
|
|
<div
|
|
id="mobile-menu-dialog"
|
|
role="dialog"
|
|
aria-modal="true"
|
|
aria-label=""
|
|
style="scrollbar-gutter: stable;"
|
|
class="z-50 invisible overflow-y-auto opacity-0 transition-[opacity,visibility] duration-300 peer-checked:visible peer-checked:opacity-100
|
|
|
|
fixed inset-0 px-6 py-20 bg-neutral-50/97 dark:bg-neutral-900/99
|
|
|
|
bf-scrollbar">
|
|
<label
|
|
for="mobile-menu-toggle"
|
|
tabindex="0"
|
|
role="button"
|
|
aria-expanded="false"
|
|
aria-controls="mobile-menu-dialog"
|
|
class="fixed end-8 top-5 z-50 h-12 w-12 rounded-full flex items-center justify-center cursor-pointer select-none bf-icon-color-hover border bf-border-color bf-border-color-hover bg-neutral-50 dark:bg-neutral-900">
|
|
<span class="sr-only"></span>
|
|
<span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><path fill="currentColor" d="M310.6 361.4c12.5 12.5 12.5 32.75 0 45.25C304.4 412.9 296.2 416 288 416s-16.38-3.125-22.62-9.375L160 301.3L54.63 406.6C48.38 412.9 40.19 416 32 416S15.63 412.9 9.375 406.6c-12.5-12.5-12.5-32.75 0-45.25l105.4-105.4L9.375 150.6c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0L160 210.8l105.4-105.4c12.5-12.5 32.75-12.5 45.25 0s12.5 32.75 0 45.25l-105.4 105.4L310.6 361.4z"/></svg>
|
|
</span>
|
|
</label>
|
|
<nav
|
|
aria-label=""
|
|
class="mx-auto max-w-md space-y-6">
|
|
|
|
|
|
|
|
<div class="px-2">
|
|
<div class="flex items-center gap-4">
|
|
<a
|
|
href="/blog/"
|
|
aria-label="Блог"
|
|
|
|
class="flex grow items-center gap-4 group bf-icon-color-hover text-neutral-700 dark:text-neutral-200">
|
|
|
|
<span title="Блог" class="text-2xl font-bold tracking-tight">
|
|
Блог
|
|
</span>
|
|
</a>
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</nav>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</header>
|
|
<div class="relative flex flex-col grow">
|
|
<main id="main-content" class="grow">
|
|
|
|
|
|
|
|
|
|
|
|
<article>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<header id="single_header" class="mt-5 max-w-prose">
|
|
|
|
<h1 class="mt-0 text-4xl font-extrabold text-neutral-900 dark:text-neutral">
|
|
Запустил свой сайт
|
|
</h1>
|
|
<div class="mt-1 mb-6 text-base text-neutral-500 dark:text-neutral-400 print:hidden">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<div class="flex flex-row flex-wrap items-center">
|
|
|
|
|
|
<time datetime="2026-10-05T21:14:48+04:00">5 октября 2026</time><span class="px-2 text-primary-500">·</span><span>35 слов</span><span class="px-2 text-primary-500">·</span><span title="Время чтения">1 минута</span>
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<div class="flex author">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<img
|
|
class="!mt-0 !mb-0 h-24 w-24 rounded-full me-4"
|
|
width="96"
|
|
height="96"
|
|
alt="Alexander Sokolov aka s0k0l"
|
|
src="/img/me_hu_3067d7fc4314244e.jpg"
|
|
data-zoom-src="/img/me_hu_a7a552336841cea9.jpg">
|
|
|
|
|
|
<div class="place-self-center">
|
|
|
|
<div class="text-[0.6rem] uppercase leading-3 text-neutral-500 dark:text-neutral-400">
|
|
Автор
|
|
</div>
|
|
<div class="font-semibold leading-6 text-neutral-800 dark:text-neutral-300">
|
|
Alexander Sokolov aka s0k0l
|
|
</div>
|
|
|
|
|
|
<div class="text-sm text-neutral-700 dark:text-neutral-400">Пара предложений о себе</div>
|
|
|
|
<div class="text-2xl sm:text-lg">
|
|
<div class="flex flex-wrap text-neutral-400 dark:text-neutral-500 space-x-2">
|
|
|
|
|
|
|
|
<a
|
|
class="email-link hover:text-primary-700 dark:hover:text-primary-400"
|
|
href="#"
|
|
|
|
data-email="bWFpbHRvOnhhbGV4LnNva29sQGdtYWlsLmNvbQ=="
|
|
|
|
target="_blank"
|
|
aria-label="Email"
|
|
title="Email"
|
|
rel="me noopener noreferrer"
|
|
><span class="inline-block align-text-bottom"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M207.8 20.73c-93.45 18.32-168.7 93.66-187 187.1c-27.64 140.9 68.65 266.2 199.1 285.1c19.01 2.888 36.17-12.26 36.17-31.49l.0001-.6631c0-15.74-11.44-28.88-26.84-31.24c-84.35-12.98-149.2-86.13-149.2-174.2c0-102.9 88.61-185.5 193.4-175.4c91.54 8.869 158.6 91.25 158.6 183.2l0 16.16c0 22.09-17.94 40.05-40 40.05s-40.01-17.96-40.01-40.05v-120.1c0-8.847-7.161-16.02-16.01-16.02l-31.98 .0036c-7.299 0-13.2 4.992-15.12 11.68c-24.85-12.15-54.24-16.38-86.06-5.106c-38.75 13.73-68.12 48.91-73.72 89.64c-9.483 69.01 43.81 128 110.9 128c26.44 0 50.43-9.544 69.59-24.88c24 31.3 65.23 48.69 109.4 37.49C465.2 369.3 496 324.1 495.1 277.2V256.3C495.1 107.1 361.2-9.332 207.8 20.73zM239.1 304.3c-26.47 0-48-21.56-48-48.05s21.53-48.05 48-48.05s48 21.56 48 48.05S266.5 304.3 239.1 304.3z"/></svg>
|
|
</span></span></a
|
|
>
|
|
|
|
|
|
|
|
|
|
<a
|
|
class=" hover:text-primary-700 dark:hover:text-primary-400"
|
|
href="https://t.me/sokolex"
|
|
|
|
target="_blank"
|
|
aria-label="Telegram"
|
|
title="Telegram"
|
|
rel="me noopener noreferrer"
|
|
><span class="inline-block align-text-bottom"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path fill="currentColor" d="M248,8C111.033,8,0,119.033,0,256S111.033,504,248,504,496,392.967,496,256,384.967,8,248,8ZM362.952,176.66c-3.732,39.215-19.881,134.378-28.1,178.3-3.476,18.584-10.322,24.816-16.948,25.425-14.4,1.326-25.338-9.517-39.287-18.661-21.827-14.308-34.158-23.215-55.346-37.177-24.485-16.135-8.612-25,5.342-39.5,3.652-3.793,67.107-61.51,68.335-66.746.153-.655.3-3.1-1.154-4.384s-3.59-.849-5.135-.5q-3.283.746-104.608,69.142-14.845,10.194-26.894,9.934c-8.855-.191-25.888-5.006-38.551-9.123-15.531-5.048-27.875-7.717-26.8-16.291q.84-6.7,18.45-13.7,108.446-47.248,144.628-62.3c68.872-28.647,83.183-33.623,92.511-33.789,2.052-.034,6.639.474,9.61,2.885a10.452,10.452,0,0,1,3.53,6.716A43.765,43.765,0,0,1,362.952,176.66Z"/></svg>
|
|
</span></span></a
|
|
>
|
|
|
|
|
|
|
|
|
|
<a
|
|
class=" hover:text-primary-700 dark:hover:text-primary-400"
|
|
href="https://git.sokolab.xyz/sokol"
|
|
|
|
target="_blank"
|
|
aria-label="Gitea"
|
|
title="Gitea"
|
|
rel="me noopener noreferrer"
|
|
><span class="inline-block align-text-bottom"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" viewBox="5.67 143.05 628.65 387.55"><path fill="currentColor" d="M115.912 143.075c-6.462 0-13.762.525-22.012 2.325-8.7 1.8-33.5 7.4-53.8 26.9C-4.9 212.4 6.6 276.2 8 285.8c1.7 11.7 6.9 44.2 31.7 72.5 45.8 56.1 144.4 54.8 144.4 54.8s12.1 28.9 30.6 55.5c25 33.1 50.7 58.9 75.7 62 63 0 188.9-.1 188.9-.1s12 .1 28.3-10.3c14-8.5 26.5-23.4 26.5-23.4S547 483 565 451.5c5.5-9.7 10.1-19.1 14.1-28 0 0 55.2-117.1 55.2-231.1-1.1-34.5-9.6-40.6-11.6-42.6-4.1-4.1-9.6-4-9.6-4s-117.2 6.6-177.9 8c-13.267.3-26.433.597-39.5.697l.1 117.002s57.4 24.202 83.1 40.102c3.7 2.3 10.2 6.798 12.9 14.398 2.1 6.1 2 13.101-1 19.301l-61 126.9c-6.2 12.7-21.4 18.1-33.9 12l-126.9-61c-12.5-6-17.9-21.2-11.8-33.8l61-126.9c6-12.5 21.2-17.9 33.8-11.8a5290.322 5290.322 0 0 0 27 12.954c0-36.449-.1-109.053-.1-109.053-29 .4-89.2-2.201-89.2-2.201s-141.4-7.1-156.8-8.5c-4.9-.3-10.525-.825-16.988-.825zm12.188 48.026s7.1 59.399 15.7 94.199c7.2 29.2 24.8 77.7 24.8 77.7s-26.1-3.1-43-9.1c-25.9-8.5-36.9-18.7-36.9-18.7S69.6 321.8 60 295.4c-16.5-44.2-1.4-71.2-1.4-71.2s8.4-22.5 38.5-30c13.8-3.7 31-3.1 31-3.1z"/><path fill="currentColor" d="M326.8 380.1c-8.2.1-15.4 5.8-17.3 13.8-1.9 8 2 16.3 9.1 20 7.7 4 17.5 1.8 22.7-5.4 5.1-7.1 4.3-16.9-1.8-23.1l24-49.1c1.5.1 3.7.2 6.2-.5 4.1-.9 7.1-3.6 7.1-3.6 4.2 1.8 8.6 3.8 13.2 6.1 4.8 2.4 9.3 4.9 13.4 7.3.9.5 1.8 1.1 2.8 1.9 1.6 1.3 3.4 3.1 4.7 5.5 1.9 5.5-1.9 14.9-1.9 14.9-2.3 7.6-18.4 40.6-18.4 40.6-8.1-.2-15.3 5-17.7 12.5-2.6 8.1 1.1 17.3 8.9 21.3 7.8 4 17.4 1.7 22.5-5.3 5-6.8 4.6-16.3-1.1-22.6 1.9-3.7 3.7-7.4 5.6-11.3 5-10.4 13.5-30.4 13.5-30.4.9-1.7 5.7-10.3 2.7-21.3-2.5-11.4-12.6-16.7-12.6-16.7-12.2-7.9-29.2-15.2-29.2-15.2s0-4.1-1.1-7.1c-1.1-3.1-2.8-5.1-3.9-6.3 4.7-9.7 9.4-19.3 14.1-29-4.1-2-8.1-4-12.2-6.1-4.8 9.8-9.7 19.7-14.5 29.5-6.7-.1-12.9 3.5-16.1 9.4-3.4 6.3-2.7 14.1 1.9 19.8l-24.6 50.4z"/></svg></span></span></a
|
|
>
|
|
|
|
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
<div class="mb-5"></div>
|
|
|
|
|
|
|
|
</header>
|
|
|
|
|
|
<section class="flex flex-col max-w-full mt-0 prose dark:prose-invert lg:flex-row">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<div class="min-w-0 min-h-0 max-w-fit">
|
|
|
|
|
|
<div class="article-content max-w-prose mb-20">
|
|
<p>Сегодня запустил sokolab.xyz. Всё крутится на моём сервере в Docker.</p>
|
|
|
|
<h2 class="relative group">Как это устроено
|
|
<div id="как-это-устроено" class="anchor"></div>
|
|
|
|
<span
|
|
class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
|
|
<a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%d0%ba%d0%b0%d0%ba-%d1%8d%d1%82%d0%be-%d1%83%d1%81%d1%82%d1%80%d0%be%d0%b5%d0%bd%d0%be" aria-label="Якорь">#</a>
|
|
</span>
|
|
|
|
</h2>
|
|
<p>Сайт собран на Hugo, исходники лежат в моей <a href="https://git.sokolab.xyz/sokol" target="_blank" rel="noreferrer">Gitea</a>.</p>
|
|
<figure><img
|
|
class="my-0 rounded-md"
|
|
loading="lazy"
|
|
decoding="async"
|
|
fetchpriority="low"
|
|
alt="Схема"
|
|
src="schema.png"
|
|
></figure>
|
|
<ul>
|
|
<li>пишу пост в Markdown;</li>
|
|
<li>делаю <code>git push</code>;</li>
|
|
<li>через минуту он на сайте.</li>
|
|
</ul>
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</div>
|
|
</section>
|
|
|
|
|
|
<footer class="pt-8 max-w-prose print:hidden">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</footer>
|
|
</article>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<div
|
|
id="scroll-to-top"
|
|
class="fixed bottom-6 end-6 z-50 transform translate-y-4 opacity-0 duration-200">
|
|
<a
|
|
href="#the-top"
|
|
class="pointer-events-auto flex h-12 w-12 items-center justify-center rounded-full bg-neutral/50 text-xl text-neutral-700 hover:text-primary-600 dark:bg-neutral-800/50 dark:text-neutral dark:hover:text-primary-400"
|
|
aria-label="Пролистать наверх"
|
|
title="Пролистать наверх">
|
|
↑
|
|
</a>
|
|
</div>
|
|
|
|
</main><footer id="site-footer" class="py-10 print:hidden">
|
|
|
|
|
|
|
|
|
|
<div class="flex items-center justify-between">
|
|
|
|
|
|
<p class="text-sm text-neutral-500 dark:text-neutral-400">
|
|
©
|
|
2026
|
|
Alexander Sokolov aka s0k0l
|
|
</p>
|
|
|
|
|
|
|
|
|
|
<p class="text-xs text-neutral-500 dark:text-neutral-400">
|
|
|
|
|
|
Работает на <a class="hover:underline hover:decoration-primary-400 hover:text-primary-500"
|
|
href="https://gohugo.io/" target="_blank" rel="noopener noreferrer">Hugo</a> & <a class="hover:underline hover:decoration-primary-400 hover:text-primary-500"
|
|
href="https://blowfish.page/" target="_blank" rel="noopener noreferrer">Blowfish</a>
|
|
</p>
|
|
|
|
</div>
|
|
|
|
|
|
</footer>
|
|
<div
|
|
id="search-wrapper"
|
|
role="dialog"
|
|
aria-modal="true"
|
|
aria-label="Поиск"
|
|
class="invisible fixed inset-0 flex h-screen w-screen cursor-default flex-col bg-neutral-500/50 p-4 backdrop-blur-sm dark:bg-neutral-900/50 sm:p-6 md:p-[10vh] lg:p-[12vh] z-500"
|
|
data-url="/">
|
|
<div
|
|
id="search-modal"
|
|
class="flex flex-col w-full max-w-3xl min-h-0 mx-auto border rounded-md shadow-lg top-20 border-neutral-200 bg-neutral dark:border-neutral-700 dark:bg-neutral-800">
|
|
<header class="relative z-10 flex items-center justify-between flex-none px-2">
|
|
<form class="flex items-center flex-auto min-w-0">
|
|
<div class="flex items-center justify-center w-8 h-8 text-neutral-400">
|
|
<span class="relative block icon"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="search" class="svg-inline--fa fa-search fa-w-16" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M505 442.7L405.3 343c-4.5-4.5-10.6-7-17-7H372c27.6-35.3 44-79.7 44-128C416 93.1 322.9 0 208 0S0 93.1 0 208s93.1 208 208 208c48.3 0 92.7-16.4 128-44v16.3c0 6.4 2.5 12.5 7 17l99.7 99.7c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.6.1-34zM208 336c-70.7 0-128-57.2-128-128 0-70.7 57.2-128 128-128 70.7 0 128 57.2 128 128 0 70.7-57.2 128-128 128z"/></svg>
|
|
</span>
|
|
</div>
|
|
<input
|
|
type="search"
|
|
id="search-query"
|
|
aria-label="Поиск"
|
|
class="flex flex-auto h-12 mx-1 bg-transparent appearance-none focus:outline-dotted focus:outline-2 focus:outline-transparent"
|
|
placeholder="Поиск"
|
|
tabindex="0">
|
|
</form>
|
|
<button
|
|
id="close-search-button"
|
|
class="flex items-center justify-center w-8 h-8 text-neutral-700 hover:text-primary-600 dark:text-neutral dark:hover:text-primary-400"
|
|
title="Закрыть (Esc)">
|
|
<span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><path fill="currentColor" d="M310.6 361.4c12.5 12.5 12.5 32.75 0 45.25C304.4 412.9 296.2 416 288 416s-16.38-3.125-22.62-9.375L160 301.3L54.63 406.6C48.38 412.9 40.19 416 32 416S15.63 412.9 9.375 406.6c-12.5-12.5-12.5-32.75 0-45.25l105.4-105.4L9.375 150.6c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0L160 210.8l105.4-105.4c12.5-12.5 32.75-12.5 45.25 0s12.5 32.75 0 45.25l-105.4 105.4L310.6 361.4z"/></svg>
|
|
</span>
|
|
</button>
|
|
</header>
|
|
<section class="flex-auto px-2 overflow-auto">
|
|
<ul id="search-results">
|
|
|
|
</ul>
|
|
</section>
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
</body>
|
|
|
|
</html>
|