Анализ страницы https://ramnode.com/deployment-guides
Основное Готовность: 100%
Домен
ramnode.com
Состояние доменного имени
?
Проверяем корректность доменного имени и наличие технических проблем на уровне домена.
Домен второго уровня идеален для продвижения.
Отличный запоминающийся домен.
Ответ сервера
200 Успешный ответ
HTTP-код ответа и цепочка редиректов
?
Код 200 — страница доступна. Коды 3xx — редиректы (цепочки замедляют загрузку и размывают ссылочный вес). Коды 4xx/5xx — ошибки, поисковик не сможет проиндексировать страницу.
Сервер настроен корректно.
Безопасность
Сайт безопасен
Использование HTTPS и SSL-сертификат
?
HTTPS — обязательный стандарт. Google и Яндекс отдают предпочтение защищённым сайтам. Отсутствие SSL или просроченный сертификат ведут к предупреждениям в браузере и снижению позиций.
Не настроен HSTS (Strict-Transport-Security) — рекомендуется включить.
На сайте работает защищенный протокол ssl и сайт открывается по https.
Ssl-сертификат действителен до 04.10.2026 22:45:22.
Поздравляем! Сайт не содержится в реестре РКН.
Кодировка
UTF-8
Кодировка символов страницы
?
Стандарт — UTF-8. Неправильная кодировка вызывает нечитаемые символы и мешает поисковику корректно распознать текст страницы.
Указана кодировка на странице UTF-8.
Язык
en
Атрибут lang в HTML-теге
?
Атрибут lang (<html lang="ru">) сообщает поисковикам и браузерам, на каком языке написана страница. Помогает при ранжировании в региональном поиске.
Язык документа указан явно: en.
Скорость загрузки
~0,52сек
Время отклика сервера (TTFB)
?
Time To First Byte — время до получения первого байта от сервера. Норма до 200 мс. Медленный отклик ухудшает пользовательский опыт и ранжирование: Яндекс и Google учитывают скорость страниц.
Скорость загрузки сайта 0,52сек оптимальна.
Объем документа
378Кб
Размер HTML-кода страницы
?
Слишком большой HTML замедляет парсинг браузером и сканирование поисковым роботом. Рекомендуется не более 200 Кб.
Объем html-документа 378Кб оптимален.
Структура html-документа корректна.
Ресурсы
Ресурсы: 5
Внешние ресурсы страницы (CSS, JS, изображения)
?
Количество и тип подключённых ресурсов влияют на скорость загрузки. Большое число запросов увеличивает время рендеринга страницы.
Кол-во файлов ресурсов 5 достаточно.
Показать полный список ресурсов
| Тип | Название | Значение |
|---|---|---|
| stylesheet | https://fonts.googleapis.com/css2?family=Ubuntu:wght@400;500;700&display=swap | |
| stylesheet | /assets/index-Ci7PHbuT.css | |
| js | https://analytics.ramnode.com/js/script.js | |
| js | text/javascript | https://cdn.cookielaw.org/scripttemplates/otSDKStub.js |
| js | module | /assets/index.ssr-DAywa4OB.js |
Серверные заголовки
Кол-во: 14
HTTP-заголовки ответа сервера
?
Заголовки сервера передают браузеру и поисковику служебную информацию: кеширование, безопасность (CSP, HSTS), сжатие (gzip). Правильная настройка ускоряет загрузку и повышает защищённость.
Найдены серверные заголовки 14шт. Подробнее про серверные заголовки.
Показать полный список серверных заголовков
| Ключ | Значение |
|---|---|
| Date | Sun, 23 Aug 2026 15:20:39 GMT |
| Server | cloudflare |
| nel | {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800} |
| X-Powered-By | Express |
| Cache-Control | public, max-age=3600, stale-while-revalidate=86400 |
| X-Content-Type-Options | nosniff |
| Vary | Accept-Encoding |
| report-to | {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=SowoJTX9J6sj03VOvmj2%2FRMRRPekVqEEyXIxrOzHiGZpyXJtgG1JinUTgJ%2F5dKjvwb2GQAzXh3NdY%2B%2FtfwmixjHLUfM1snh%2Bajb1QKBed6CZh05e5oXEw5Wjo7eP"}]} |
| Access-Control-Allow-Origin | * |
| Access-Control-Allow-Methods | GET, POST, OPTIONS, PUT, DELETE |
| Access-Control-Allow-Headers | DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range,Authorization |
| Access-Control-Expose-Headers | Content-Length,Content-Range |
| cf-cache-status | DYNAMIC |
| cf-ray | a2fb1a3fbb3ae988-DME |
CMS
Система управления сайтом (движок)
?
CMS — это движок, на котором работает сайт (WordPress, 1C-Bitrix, Tilda и др.). Знание CMS помогает понять возможности SEO-оптимизации и подобрать подходящие инструменты. «Не определена» — вероятно, самописный сайт или нестандартная сборка.
Сайт работает на CMS PrestaShop.
Веб-сервер
Программное обеспечение сервера
?
Веб-сервер — это ПО, которое отдаёт страницы посетителям (nginx, Apache, IIS, LiteSpeed и др.). Определяется по серверным заголовкам ответа (Server, X-Powered-By и т.п.). «Не определён» — сервер намеренно скрывает эти заголовки, это нормальная практика безопасности.
Сайт работает на веб-сервере Cloudflare.
Мета-теги Готовность: 34%
Title
Deployment Guides - Self-Hosting & Platform Tutorials | RamNode
Заголовок страницы в браузере и поисковой выдаче
?
Title — главный SEO-заголовок страницы. Влияет на CTR в поиске и ранжирование. Оптимальная длина: 50–70 символов. Ключевые слова — ближе к началу.
Необходимо уменьшить число символов в title (текущее значение: 67, оптимально: от 40 до 45)
Дублей словоформ в title не найдено.
Description
Comprehensive deployment guides for Docker, Kubernetes, Coolify, CapRover, VPNs, databases, and more. Learn to deploy and manage your applications effectively.
Описание страницы в поисковой выдаче (сниппет)
?
Meta Description — текст под заголовком в выдаче. Напрямую на позиции не влияет, но влияет на CTR. Оптимальная длина: 120–160 символов.
Необходимо уменьшить число символов в description (текущее значение: 159, оптимально: от 120 до 130)
Keywords
deployment guides, docker tutorial, kubernetes guide, self-hosting, VPS deployment, container orchestration
Список ключевых слов страницы (устаревший тег)
?
Meta Keywords не учитывается Яндексом и Google для ранжирования с 2009–2012 годов. Заполнение не обязательно, но не вредит. Конкурент может использовать содержимое для анализа.
Keywords установлены.
Канонический Url
https://ramnode.com/deployment-guides
Указывает поисковику основную версию страницы
?
Canonical (rel=canonical) предотвращает проблему дублей страниц. Должен точно совпадать с URL проверяемой страницы. Неправильный canonical может передать ссылочный вес на другую страницу.
Канонический Url прописан корректно.
Robots
Ошибок нет
Директивы для поисковых роботов на уровне страницы
?
Meta Robots управляет индексацией конкретной страницы: index/noindex — индексировать ли, follow/nofollow — следовать ли по ссылкам. Noindex полностью исключает страницу из поиска.
Meta-тег robots не указан. Страница свободна для индексации.
Адаптивность
width=device-width, initial-scale=1.0
Настройка масштабирования на мобильных устройствах
?
Тег viewport (<meta name="viewport">) сообщает браузеру, как масштабировать страницу на мобильных. Стандарт: width=device-width, initial-scale=1. Отсутствие — признак отсутствия мобильной версии.
Meta-тег viewport со значением-константой width=device-width задаёт ширину страницы в соответствии с размером экрана.
Meta-тег viewport со значением initial-scale=1.0 определяет масштаб 1:1, т.е. «не масштабировать».
Разметка OpenGraph
Не найдено
Мета-теги для красивых превью в соцсетях
?
OpenGraph (og:title, og:description, og:image) управляет тем, как страница выглядит при репосте в социальных сетях и мессенджерах. Отсутствие OG-тегов — невзрачный превью при шеринге.
Разметка OpenGraph не задана. Страница не оптимизирована под социальные сети. Мета-теги с разметкой Og помогают социальным роботам лучше структурировать Ваш сайт.
Все мета-теги
Кол-во: 3
Полный список мета-тегов страницы
?
Таблица всех meta-тегов, включая нестандартные. Позволяет найти опечатки, дубли и лишние теги.
Найдены мета-теги 3шт. Мета-теги не видимы для человека и предназначены для обмена информацией между веб-страницей и поисковыми системами, браузерами и другими веб-службами. С ними роботы 🤖 и устройства ведут себя более ожидаемо.
Показать полный список мета-тегов
| Тип | Название | Значение |
|---|---|---|
| name | viewport | width=device-width, initial-scale=1.0 |
| name | description | Comprehensive deployment guides for Docker, Kubernetes, Coolify, CapRover, VPNs, databases, and more. Learn to deploy and manage your applications effectively. |
| name | keywords | deployment guides, docker tutorial, kubernetes guide, self-hosting, VPS deployment, container orchestration |
Оптимизация Готовность: 77%
Структура
Ошибок нет
Семантические HTML-элементы страницы
?
Проверяет наличие основных структурных элементов: nav, header, footer, main. Корректная семантическая структура помогает поисковику понять архитектуру страницы.
Структура документа корректна (теги <html> и <body> присутствуют в единственном экземпляре).
Контент
Есть ошибки
Объём и качество текстового содержимого
?
Анализирует объём полезного текста на странице. Слишком мало — страница может считаться малополезной. Слишком много — ухудшается читаемость и восприятие.
Среднее число слов в абзаце 9 слишком мало. Сделайте контент более читаемым!
Слова из title 6 встречаются в тексте достаточно.
Абзацев с текстом 426 достаточно.
Кол-во знаков контента 35215 на странице оптимально.
Кол-во слов 4677 на странице оптимально.
Заголовки
Ошибок нет
Иерархия заголовков H1–H6
?
H1 должен быть один и содержать ключевой запрос. H2–H6 описывают подразделы. Пропуск уровней (H1 → H3) и несколько H1 — типичные ошибки, снижающие понятность страницы для поисковика.
На странице присутствуют заголовки <h1> 1. Это прекрасно.
На странице присутствуют заголовки <h2> 17. Это хорошо.
На странице присутствуют заголовки <h3> 412.
Тошнота
8,37
Насколько одно слово доминирует в тексте
?
Классическая тошнота = √(частота самого повторяющегося слова). Норма до 7–8: текст воспринимается естественно. Выше — поисковик может счесть страницу переспамленной.
Тошнота превышает норму 5. Измените текст страницы!
Академич. тошнота
30,85%
Насколько текст перенасыщен ключевыми словами
?
Академическая тошнота = (частота слова / общее количество слов) × 100%. Показывает долю конкретного слова в тексте. Норма 5–15%.
Академическая тошнота превышает норму 5-15%. Измените текст страницы!
Семантическое ядро
20
Наиболее часто встречающиеся слова на странице
?
Топ слов по частоте использования. Показывает, какие слова доминируют в тексте с точки зрения поисковика.
Контент страницы содержит осмысленный текст и слова.
Показать список слов
| Слово | Кол-во | Частота |
|---|---|---|
| self-hosted | 70 | 1,50% |
| open-source | 54 | 1,15% |
| docker | 51 | 1,09% |
| server | 42 | 0,90% |
| platform | 41 | 0,88% |
| management | 35 | 0,75% |
| database | 27 | 0,58% |
| lightweight | 26 | 0,56% |
| monitoring | 23 | 0,49% |
| postgresql | 23 | 0,49% |
| series | 21 | 0,45% |
| kubernetes | 21 | 0,45% |
| compose | 21 | 0,45% |
| reverse | 20 | 0,43% |
| high-performance | 19 | 0,41% |
| automation | 17 | 0,36% |
| storage | 15 | 0,32% |
| container | 15 | 0,32% |
| deploy | 15 | 0,32% |
| modern | 15 | 0,32% |
Индексация Готовность: 0%
Индексирование
Есть ошибки
Разрешено ли индексирование страницы
?
Проверяет, не закрыта ли страница от индексации через robots.txt, meta robots или X-Robots-Tag. Страница, закрытая от индексации, не появится в поисковой выдаче.
Анкоров на странице 455 слишком много. Проведите ревизию и оптимизацию ссылок сайта.
Robots.txt
Найден корректный robots.txt
Файл управления сканированием сайта роботами
?
Robots.txt указывает поисковым роботам, какие страницы сканировать, а какие — нет. Ошибки в файле могут случайно закрыть важные разделы от индексации.
Robots.txt настроен корректно. Размер файла: 928 байт. Загружен за: 85мсек.
Проверяемая страница не запрещена в robots.txt.
Robots.txt доступен по постоянному адресу
Показать содержимое robots.txt
# RamNode Robots.txt
# https://www.ramnode.com
User-agent: *
Allow: /
# Disallow low-value and utility pages
Disallow: /api/
Disallow: /*?*utm_
Disallow: /*?*ref=
Disallow: /*?*source=
Disallow: /*?*campaign=
# Disallow duplicate content paths
Disallow: /*?*sort=
Disallow: /*?*filter=
Disallow: /*?*page=
# Block staging/preview URLs from indexing
Disallow: /*preview*
Disallow: /*staging*
# Googlebot specific rules
User-agent: Googlebot
Allow: /
Disallow: /api/
# Bingbot specific rules
User-agent: Bingbot
Allow: /
Disallow: /api/
# Social media crawlers - allow all for rich previews
User-agent: Twitterbot
Allow: /
User-agent: facebookexternalhit
Allow: /
User-agent: LinkedInBot
Allow: /
# Sitemap location
Sitemap: https://www.ramnode.com/sitemap.xml
# Crawl-delay for less aggressive crawlers
User-agent: AhrefsBot
Crawl-delay: 10
User-agent: SemrushBot
Crawl-delay: 10
User-agent: MJ12bot
Crawl-delay: 10
Sitemap
Кол-во: 1
XML-карта сайта для поисковиков
?
Sitemap.xml помогает поисковику быстрее находить и индексировать страницы. Особенно важен для крупных сайтов и новых страниц, на которые ещё нет входящих ссылок.
Robots.txt содержит критическую ошибку в карте сайта. Рекомендуем срочно исправить ссылку на карту сайта и проверить ее содержимое.
Robots.txt содержит карту сайта. Это прекрасно!
Показать карту сайта
| Url | Статус |
|---|---|
| https://www.ramnode.com/sitemap.xml |
Другой домен
|
Внутренние ссылки
Кол-во: 420
Ссылки на другие страницы своего сайта
?
Внутренние ссылки распределяют ссылочный вес между страницами и помогают поисковику обходить сайт. Пустые анкоры и ссылки на запрещённые robots.txt страницы — типичные ошибки.
Внутренних ссылок на странице 420 слишком много. Проведите оптимизацию сайта!
Внутренние ссылки не запрещены к индексации в robots.txt.
На странице присутствуют изображения 2.
Показать первые 100 внутренних ссылок
| Url | Анкор | Состояние |
|---|---|---|
| /pricing |
Pricing
|
|
| /support |
Contact Our Team
|
|
| /guides/series/claude-code |
<div class="rounded-lg border text-card-foreground shadow-sm relative h-full overflow-hidden border-l-4 border-l-[hsl(var(--brand-primary))] bg-[hsl(var(--brand-primary)/0.03)] hover:shadow-lg hover:bg-[hsl(var(--brand-primary)/0.08)] hover:border-[hsl(var(--brand-primary)/0.5)] transition-all cursor-pointer"><div class="absolute top-3 right-3 z-10"><div class="rounded-full border transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 border-transparent hover:bg-primary/80 bg-[hsl(var(--brand-primary))] text-white text-[10px] px-2 py-0.5 uppercase tracking-wider font-semibold flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-layers w-3 h-3"><path d="m12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83Z"></path><path d="m22 17.65-9.17 4.16a2 2 0 0 1-1.66 0L2 17.65"></path><path d="m22 12.65-9.17 4.16a2 2 0 0 1-1.66 0L2 12.65"></path></svg>Series</div></div><div class="flex flex-col space-y-1.5 p-6"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-terminal h-8 w-8 text-[hsl(var(--brand-primary))] mb-2"><polyline points="4 17 10 11 4 5"></polyline><line x1="12" x2="20" y1="19" y2="19"></line></svg><h3 class="font-semibold tracking-tight text-lg pr-16">Claude Code for Self-Hosters</h3><p class="text-sm text-muted-foreground">Bring AI-powered coding assistance to your terminal for infrastructure automation.</p><div class="flex items-center gap-3 text-xs text-muted-foreground pt-2"><div class="inline-flex items-center rounded-full border font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80 text-[10px] px-2 py-0">10<!-- --> Parts</div><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clock w-3 h-3"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg>~4 hours</span></div></div></div>
|
|
| /guides/series/docker-kubernetes |
<div class="rounded-lg border text-card-foreground shadow-sm relative h-full overflow-hidden border-l-4 border-l-[hsl(var(--brand-primary))] bg-[hsl(var(--brand-primary)/0.03)] hover:shadow-lg hover:bg-[hsl(var(--brand-primary)/0.08)] hover:border-[hsl(var(--brand-primary)/0.5)] transition-all cursor-pointer"><div class="absolute top-3 right-3 z-10"><div class="rounded-full border transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 border-transparent hover:bg-primary/80 bg-[hsl(var(--brand-primary))] text-white text-[10px] px-2 py-0.5 uppercase tracking-wider font-semibold flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-layers w-3 h-3"><path d="m12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83Z"></path><path d="m22 17.65-9.17 4.16a2 2 0 0 1-1.66 0L2 17.65"></path><path d="m22 12.65-9.17 4.16a2 2 0 0 1-1.66 0L2 12.65"></path></svg>Series</div></div><div class="flex flex-col space-y-1.5 p-6"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-container h-8 w-8 text-[hsl(var(--brand-primary))] mb-2"><path d="M22 7.7c0-.6-.4-1.2-.8-1.5l-6.3-3.9a1.72 1.72 0 0 0-1.7 0l-10.3 6c-.5.2-.9.8-.9 1.4v6.6c0 .5.4 1.2.8 1.5l6.3 3.9a1.72 1.72 0 0 0 1.7 0l10.3-6c.5-.3.9-1 .9-1.5Z"></path><path d="M10 21.9V14L2.1 9.1"></path><path d="m10 14 11.9-6.9"></path><path d="M14 19.8v-8.1"></path><path d="M18 17.5V9.4"></path></svg><h3 class="font-semibold tracking-tight text-lg pr-16">Docker & Kubernetes</h3><p class="text-sm text-muted-foreground">From container basics to production Kubernetes clusters.</p><div class="flex items-center gap-3 text-xs text-muted-foreground pt-2"><div class="inline-flex items-center rounded-full border font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80 text-[10px] px-2 py-0">7<!-- --> Parts</div><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clock w-3 h-3"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg>~4 hours</span></div></div></div>
|
|
| /guides/series/coolify |
<div class="rounded-lg border text-card-foreground shadow-sm relative h-full overflow-hidden border-l-4 border-l-[hsl(var(--brand-primary))] bg-[hsl(var(--brand-primary)/0.03)] hover:shadow-lg hover:bg-[hsl(var(--brand-primary)/0.08)] hover:border-[hsl(var(--brand-primary)/0.5)] transition-all cursor-pointer"><div class="absolute top-3 right-3 z-10"><div class="rounded-full border transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 border-transparent hover:bg-primary/80 bg-[hsl(var(--brand-primary))] text-white text-[10px] px-2 py-0.5 uppercase tracking-wider font-semibold flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-layers w-3 h-3"><path d="m12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83Z"></path><path d="m22 17.65-9.17 4.16a2 2 0 0 1-1.66 0L2 17.65"></path><path d="m22 12.65-9.17 4.16a2 2 0 0 1-1.66 0L2 12.65"></path></svg>Series</div></div><div class="flex flex-col space-y-1.5 p-6"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-cloud h-8 w-8 text-[hsl(var(--brand-primary))] mb-2"><path d="M17.5 19H9a7 7 0 1 1 6.71-9h1.79a4.5 4.5 0 1 1 0 9Z"></path></svg><h3 class="font-semibold tracking-tight text-lg pr-16">Coolify Self-Hosted PaaS</h3><p class="text-sm text-muted-foreground">Deploy your own Heroku alternative with Git deployments and automatic SSL.</p><div class="flex items-center gap-3 text-xs text-muted-foreground pt-2"><div class="inline-flex items-center rounded-full border font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80 text-[10px] px-2 py-0">6<!-- --> Parts</div><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clock w-3 h-3"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg>~2.5 hours</span></div></div></div>
|
|
| /guides/series/dokploy |
<div class="rounded-lg border text-card-foreground shadow-sm relative h-full overflow-hidden border-l-4 border-l-[hsl(var(--brand-primary))] bg-[hsl(var(--brand-primary)/0.03)] hover:shadow-lg hover:bg-[hsl(var(--brand-primary)/0.08)] hover:border-[hsl(var(--brand-primary)/0.5)] transition-all cursor-pointer"><div class="absolute top-3 right-3 z-10"><div class="rounded-full border transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 border-transparent hover:bg-primary/80 bg-[hsl(var(--brand-primary))] text-white text-[10px] px-2 py-0.5 uppercase tracking-wider font-semibold flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-layers w-3 h-3"><path d="m12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83Z"></path><path d="m22 17.65-9.17 4.16a2 2 0 0 1-1.66 0L2 17.65"></path><path d="m22 12.65-9.17 4.16a2 2 0 0 1-1.66 0L2 12.65"></path></svg>Series</div></div><div class="flex flex-col space-y-1.5 p-6"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-workflow h-8 w-8 text-[hsl(var(--brand-primary))] mb-2"><rect width="8" height="8" x="3" y="3" rx="2"></rect><path d="M7 11v4a2 2 0 0 0 2 2h4"></path><rect width="8" height="8" x="13" y="13" rx="2"></rect></svg><h3 class="font-semibold tracking-tight text-lg pr-16">Dokploy Mastery</h3><p class="text-sm text-muted-foreground">Deploy like Vercel or Netlify on your own infrastructure.</p><div class="flex items-center gap-3 text-xs text-muted-foreground pt-2"><div class="inline-flex items-center rounded-full border font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80 text-[10px] px-2 py-0">6<!-- --> Parts</div><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clock w-3 h-3"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg>~3 hours</span></div></div></div>
|
|
| /guides/series/concourse-ci |
<div class="rounded-lg border text-card-foreground shadow-sm relative h-full overflow-hidden border-l-4 border-l-[hsl(var(--brand-primary))] bg-[hsl(var(--brand-primary)/0.03)] hover:shadow-lg hover:bg-[hsl(var(--brand-primary)/0.08)] hover:border-[hsl(var(--brand-primary)/0.5)] transition-all cursor-pointer"><div class="absolute top-3 right-3 z-10"><div class="rounded-full border transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 border-transparent hover:bg-primary/80 bg-[hsl(var(--brand-primary))] text-white text-[10px] px-2 py-0.5 uppercase tracking-wider font-semibold flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-layers w-3 h-3"><path d="m12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83Z"></path><path d="m22 17.65-9.17 4.16a2 2 0 0 1-1.66 0L2 17.65"></path><path d="m22 12.65-9.17 4.16a2 2 0 0 1-1.66 0L2 12.65"></path></svg>Series</div></div><div class="flex flex-col space-y-1.5 p-6"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-git-branch h-8 w-8 text-[hsl(var(--brand-primary))] mb-2"><line x1="6" x2="6" y1="3" y2="15"></line><circle cx="18" cy="6" r="3"></circle><circle cx="6" cy="18" r="3"></circle><path d="M18 9a9 9 0 0 1-9 9"></path></svg><h3 class="font-semibold tracking-tight text-lg pr-16">Concourse CI Mastery</h3><p class="text-sm text-muted-foreground">Container-native CI/CD with declarative YAML pipelines.</p><div class="flex items-center gap-3 text-xs text-muted-foreground pt-2"><div class="inline-flex items-center rounded-full border font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80 text-[10px] px-2 py-0">6<!-- --> Parts</div><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clock w-3 h-3"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg>~4 hours</span></div></div></div>
|
|
| /guides/series/gitea-devops |
<div class="rounded-lg border text-card-foreground shadow-sm relative h-full overflow-hidden border-l-4 border-l-[hsl(var(--brand-primary))] bg-[hsl(var(--brand-primary)/0.03)] hover:shadow-lg hover:bg-[hsl(var(--brand-primary)/0.08)] hover:border-[hsl(var(--brand-primary)/0.5)] transition-all cursor-pointer"><div class="absolute top-3 right-3 z-10"><div class="rounded-full border transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 border-transparent hover:bg-primary/80 bg-[hsl(var(--brand-primary))] text-white text-[10px] px-2 py-0.5 uppercase tracking-wider font-semibold flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-layers w-3 h-3"><path d="m12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83Z"></path><path d="m22 17.65-9.17 4.16a2 2 0 0 1-1.66 0L2 17.65"></path><path d="m22 12.65-9.17 4.16a2 2 0 0 1-1.66 0L2 12.65"></path></svg>Series</div></div><div class="flex flex-col space-y-1.5 p-6"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-git-branch h-8 w-8 text-[hsl(var(--brand-primary))] mb-2"><line x1="6" x2="6" y1="3" y2="15"></line><circle cx="18" cy="6" r="3"></circle><circle cx="6" cy="18" r="3"></circle><path d="M18 9a9 9 0 0 1-9 9"></path></svg><h3 class="font-semibold tracking-tight text-lg pr-16">Gitea DevOps Pipeline</h3><p class="text-sm text-muted-foreground">Build a complete self-hosted GitHub + GitHub Actions replacement on a single VPS.</p><div class="flex items-center gap-3 text-xs text-muted-foreground pt-2"><div class="inline-flex items-center rounded-full border font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80 text-[10px] px-2 py-0">5<!-- --> Parts</div><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clock w-3 h-3"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg>~90 min</span></div></div></div>
|
|
| /guides/series/agent-zero |
<div class="rounded-lg border text-card-foreground shadow-sm relative h-full overflow-hidden border-l-4 border-l-[hsl(var(--brand-primary))] bg-[hsl(var(--brand-primary)/0.03)] hover:shadow-lg hover:bg-[hsl(var(--brand-primary)/0.08)] hover:border-[hsl(var(--brand-primary)/0.5)] transition-all cursor-pointer"><div class="absolute top-3 right-3 z-10"><div class="rounded-full border transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 border-transparent hover:bg-primary/80 bg-[hsl(var(--brand-primary))] text-white text-[10px] px-2 py-0.5 uppercase tracking-wider font-semibold flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-layers w-3 h-3"><path d="m12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83Z"></path><path d="m22 17.65-9.17 4.16a2 2 0 0 1-1.66 0L2 17.65"></path><path d="m22 12.65-9.17 4.16a2 2 0 0 1-1.66 0L2 12.65"></path></svg>Series</div></div><div class="flex flex-col space-y-1.5 p-6"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-bot h-8 w-8 text-[hsl(var(--brand-primary))] mb-2"><path d="M12 8V4H8"></path><rect width="16" height="12" x="4" y="8" rx="2"></rect><path d="M2 14h2"></path><path d="M20 14h2"></path><path d="M15 13v2"></path><path d="M9 13v2"></path></svg><h3 class="font-semibold tracking-tight text-lg pr-16">Agent Zero Mastery</h3><p class="text-sm text-muted-foreground">Deploy autonomous AI agents with local and cloud LLMs.</p><div class="flex items-center gap-3 text-xs text-muted-foreground pt-2"><div class="inline-flex items-center rounded-full border font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80 text-[10px] px-2 py-0">6<!-- --> Parts</div><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clock w-3 h-3"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg>~90 min</span></div></div></div>
|
|
| /guides/series/ai-stack |
<div class="rounded-lg border text-card-foreground shadow-sm relative h-full overflow-hidden border-l-4 border-l-[hsl(var(--brand-primary))] bg-[hsl(var(--brand-primary)/0.03)] hover:shadow-lg hover:bg-[hsl(var(--brand-primary)/0.08)] hover:border-[hsl(var(--brand-primary)/0.5)] transition-all cursor-pointer"><div class="absolute top-3 right-3 z-10"><div class="rounded-full border transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 border-transparent hover:bg-primary/80 bg-[hsl(var(--brand-primary))] text-white text-[10px] px-2 py-0.5 uppercase tracking-wider font-semibold flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-layers w-3 h-3"><path d="m12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83Z"></path><path d="m22 17.65-9.17 4.16a2 2 0 0 1-1.66 0L2 17.65"></path><path d="m22 12.65-9.17 4.16a2 2 0 0 1-1.66 0L2 12.65"></path></svg>Series</div></div><div class="flex flex-col space-y-1.5 p-6"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-bot h-8 w-8 text-[hsl(var(--brand-primary))] mb-2"><path d="M12 8V4H8"></path><rect width="16" height="12" x="4" y="8" rx="2"></rect><path d="M2 14h2"></path><path d="M20 14h2"></path><path d="M15 13v2"></path><path d="M9 13v2"></path></svg><h3 class="font-semibold tracking-tight text-lg pr-16">Self-Hosted AI Stack</h3><p class="text-sm text-muted-foreground">Replace $200+/month in AI API costs with a $40/month VPS.</p><div class="flex items-center gap-3 text-xs text-muted-foreground pt-2"><div class="inline-flex items-center rounded-full border font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80 text-[10px] px-2 py-0">8<!-- --> Parts</div><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clock w-3 h-3"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg>~5 hours</span></div></div></div>
|
|
| /guides/series/n8n |
<div class="rounded-lg border text-card-foreground shadow-sm relative h-full overflow-hidden border-l-4 border-l-[hsl(var(--brand-primary))] bg-[hsl(var(--brand-primary)/0.03)] hover:shadow-lg hover:bg-[hsl(var(--brand-primary)/0.08)] hover:border-[hsl(var(--brand-primary)/0.5)] transition-all cursor-pointer"><div class="absolute top-3 right-3 z-10"><div class="rounded-full border transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 border-transparent hover:bg-primary/80 bg-[hsl(var(--brand-primary))] text-white text-[10px] px-2 py-0.5 uppercase tracking-wider font-semibold flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-layers w-3 h-3"><path d="m12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83Z"></path><path d="m22 17.65-9.17 4.16a2 2 0 0 1-1.66 0L2 17.65"></path><path d="m22 12.65-9.17 4.16a2 2 0 0 1-1.66 0L2 12.65"></path></svg>Series</div></div><div class="flex flex-col space-y-1.5 p-6"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-workflow h-8 w-8 text-[hsl(var(--brand-primary))] mb-2"><rect width="8" height="8" x="3" y="3" rx="2"></rect><path d="M7 11v4a2 2 0 0 0 2 2h4"></path><rect width="8" height="8" x="13" y="13" rx="2"></rect></svg><h3 class="font-semibold tracking-tight text-lg pr-16">n8n Automation Mastery</h3><p class="text-sm text-muted-foreground">Replace Zapier and Make with self-hosted workflow automation.</p><div class="flex items-center gap-3 text-xs text-muted-foreground pt-2"><div class="inline-flex items-center rounded-full border font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80 text-[10px] px-2 py-0">6<!-- --> Parts</div><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clock w-3 h-3"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg>~4 hours</span></div></div></div>
|
|
| /guides/series/pangolin |
<div class="rounded-lg border text-card-foreground shadow-sm relative h-full overflow-hidden border-l-4 border-l-[hsl(var(--brand-primary))] bg-[hsl(var(--brand-primary)/0.03)] hover:shadow-lg hover:bg-[hsl(var(--brand-primary)/0.08)] hover:border-[hsl(var(--brand-primary)/0.5)] transition-all cursor-pointer"><div class="absolute top-3 right-3 z-10"><div class="rounded-full border transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 border-transparent hover:bg-primary/80 bg-[hsl(var(--brand-primary))] text-white text-[10px] px-2 py-0.5 uppercase tracking-wider font-semibold flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-layers w-3 h-3"><path d="m12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83Z"></path><path d="m22 17.65-9.17 4.16a2 2 0 0 1-1.66 0L2 17.65"></path><path d="m22 12.65-9.17 4.16a2 2 0 0 1-1.66 0L2 12.65"></path></svg>Series</div></div><div class="flex flex-col space-y-1.5 p-6"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-shield h-8 w-8 text-[hsl(var(--brand-primary))] mb-2"><path d="M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z"></path></svg><h3 class="font-semibold tracking-tight text-lg pr-16">Pangolin on Your VPS</h3><p class="text-sm text-muted-foreground">Self-hosted zero-trust reverse proxy with WireGuard tunnels and identity-aware access control.</p><div class="flex items-center gap-3 text-xs text-muted-foreground pt-2"><div class="inline-flex items-center rounded-full border font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80 text-[10px] px-2 py-0">6<!-- --> Parts</div><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clock w-3 h-3"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg>~3 hours</span></div></div></div>
|
|
| /guides/series/zero-trust-homelab |
<div class="rounded-lg border text-card-foreground shadow-sm relative h-full overflow-hidden border-l-4 border-l-[hsl(var(--brand-primary))] bg-[hsl(var(--brand-primary)/0.03)] hover:shadow-lg hover:bg-[hsl(var(--brand-primary)/0.08)] hover:border-[hsl(var(--brand-primary)/0.5)] transition-all cursor-pointer"><div class="absolute top-3 right-3 z-10"><div class="rounded-full border transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 border-transparent hover:bg-primary/80 bg-[hsl(var(--brand-primary))] text-white text-[10px] px-2 py-0.5 uppercase tracking-wider font-semibold flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-layers w-3 h-3"><path d="m12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83Z"></path><path d="m22 17.65-9.17 4.16a2 2 0 0 1-1.66 0L2 17.65"></path><path d="m22 12.65-9.17 4.16a2 2 0 0 1-1.66 0L2 12.65"></path></svg>Series</div></div><div class="flex flex-col space-y-1.5 p-6"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-shield h-8 w-8 text-[hsl(var(--brand-primary))] mb-2"><path d="M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z"></path></svg><h3 class="font-semibold tracking-tight text-lg pr-16">Zero-Trust Homelab Access</h3><p class="text-sm text-muted-foreground">Expose home services through a VPS with Pangolin tunnels and identity-aware access.</p><div class="flex items-center gap-3 text-xs text-muted-foreground pt-2"><div class="inline-flex items-center rounded-full border font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80 text-[10px] px-2 py-0">4<!-- --> Parts</div><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clock w-3 h-3"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg>~2.5 hours</span></div></div></div>
|
|
| /guides/series/game-servers |
<div class="rounded-lg border text-card-foreground shadow-sm relative h-full overflow-hidden border-l-4 border-l-[hsl(var(--brand-primary))] bg-[hsl(var(--brand-primary)/0.03)] hover:shadow-lg hover:bg-[hsl(var(--brand-primary)/0.08)] hover:border-[hsl(var(--brand-primary)/0.5)] transition-all cursor-pointer"><div class="absolute top-3 right-3 z-10"><div class="rounded-full border transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 border-transparent hover:bg-primary/80 bg-[hsl(var(--brand-primary))] text-white text-[10px] px-2 py-0.5 uppercase tracking-wider font-semibold flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-layers w-3 h-3"><path d="m12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83Z"></path><path d="m22 17.65-9.17 4.16a2 2 0 0 1-1.66 0L2 17.65"></path><path d="m22 12.65-9.17 4.16a2 2 0 0 1-1.66 0L2 12.65"></path></svg>Series</div></div><div class="flex flex-col space-y-1.5 p-6"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-gamepad2 h-8 w-8 text-[hsl(var(--brand-primary))] mb-2"><line x1="6" x2="10" y1="11" y2="11"></line><line x1="8" x2="8" y1="9" y2="13"></line><line x1="15" x2="15.01" y1="12" y2="12"></line><line x1="18" x2="18.01" y1="10" y2="10"></line><path d="M17.32 5H6.68a4 4 0 0 0-3.978 3.59c-.006.052-.01.101-.017.152C2.604 9.416 2 14.456 2 16a3 3 0 0 0 3 3c1 0 1.5-.5 2-1l1.414-1.414A2 2 0 0 1 9.828 16h4.344a2 2 0 0 1 1.414.586L17 18c.5.5 1 1 2 1a3 3 0 0 0 3-3c0-1.545-.604-6.584-.685-7.258-.007-.05-.011-.1-.017-.151A4 4 0 0 0 17.32 5z"></path></svg><h3 class="font-semibold tracking-tight text-lg pr-16">Game Server Hosting</h3><p class="text-sm text-muted-foreground">Pelican Panel to production multi-game infrastructure with DDoS protection.</p><div class="flex items-center gap-3 text-xs text-muted-foreground pt-2"><div class="inline-flex items-center rounded-full border font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80 text-[10px] px-2 py-0">5<!-- --> Parts</div><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clock w-3 h-3"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg>~70 min</span></div></div></div>
|
|
| /guides/series/saltstack |
<div class="rounded-lg border text-card-foreground shadow-sm relative h-full overflow-hidden border-l-4 border-l-[hsl(var(--brand-primary))] bg-[hsl(var(--brand-primary)/0.03)] hover:shadow-lg hover:bg-[hsl(var(--brand-primary)/0.08)] hover:border-[hsl(var(--brand-primary)/0.5)] transition-all cursor-pointer"><div class="absolute top-3 right-3 z-10"><div class="rounded-full border transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 border-transparent hover:bg-primary/80 bg-[hsl(var(--brand-primary))] text-white text-[10px] px-2 py-0.5 uppercase tracking-wider font-semibold flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-layers w-3 h-3"><path d="m12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83Z"></path><path d="m22 17.65-9.17 4.16a2 2 0 0 1-1.66 0L2 17.65"></path><path d="m22 12.65-9.17 4.16a2 2 0 0 1-1.66 0L2 12.65"></path></svg>Series</div></div><div class="flex flex-col space-y-1.5 p-6"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-settings h-8 w-8 text-[hsl(var(--brand-primary))] mb-2"><path d="M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z"></path><circle cx="12" cy="12" r="3"></circle></svg><h3 class="font-semibold tracking-tight text-lg pr-16">SaltStack on Your VPS</h3><p class="text-sm text-muted-foreground">Master configuration management from installation to production hardening across your fleet.</p><div class="flex items-center gap-3 text-xs text-muted-foreground pt-2"><div class="inline-flex items-center rounded-full border font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80 text-[10px] px-2 py-0">6<!-- --> Parts</div><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clock w-3 h-3"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg>~4 hours</span></div></div></div>
|
|
| /guides/series/openclaw |
<div class="rounded-lg border text-card-foreground shadow-sm relative h-full overflow-hidden border-l-4 border-l-[hsl(var(--brand-primary))] bg-[hsl(var(--brand-primary)/0.03)] hover:shadow-lg hover:bg-[hsl(var(--brand-primary)/0.08)] hover:border-[hsl(var(--brand-primary)/0.5)] transition-all cursor-pointer"><div class="absolute top-3 right-3 z-10"><div class="rounded-full border transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 border-transparent hover:bg-primary/80 bg-[hsl(var(--brand-primary))] text-white text-[10px] px-2 py-0.5 uppercase tracking-wider font-semibold flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-layers w-3 h-3"><path d="m12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83Z"></path><path d="m22 17.65-9.17 4.16a2 2 0 0 1-1.66 0L2 17.65"></path><path d="m22 12.65-9.17 4.16a2 2 0 0 1-1.66 0L2 12.65"></path></svg>Series</div></div><div class="flex flex-col space-y-1.5 p-6"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-bot h-8 w-8 text-[hsl(var(--brand-primary))] mb-2"><path d="M12 8V4H8"></path><rect width="16" height="12" x="4" y="8" rx="2"></rect><path d="M2 14h2"></path><path d="M20 14h2"></path><path d="M15 13v2"></path><path d="M9 13v2"></path></svg><h3 class="font-semibold tracking-tight text-lg pr-16">OpenClaw on Your VPS</h3><p class="text-sm text-muted-foreground">Deploy a self-hosted AI agent with messaging channels, skills, and automation workflows.</p><div class="flex items-center gap-3 text-xs text-muted-foreground pt-2"><div class="inline-flex items-center rounded-full border font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80 text-[10px] px-2 py-0">6<!-- --> Parts</div><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clock w-3 h-3"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg>~3 hours</span></div></div></div>
|
|
| /guides/series/monitoring |
<div class="rounded-lg border text-card-foreground shadow-sm relative h-full overflow-hidden border-l-4 border-l-[hsl(var(--brand-primary))] bg-[hsl(var(--brand-primary)/0.03)] hover:shadow-lg hover:bg-[hsl(var(--brand-primary)/0.08)] hover:border-[hsl(var(--brand-primary)/0.5)] transition-all cursor-pointer"><div class="absolute top-3 right-3 z-10"><div class="rounded-full border transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 border-transparent hover:bg-primary/80 bg-[hsl(var(--brand-primary))] text-white text-[10px] px-2 py-0.5 uppercase tracking-wider font-semibold flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-layers w-3 h-3"><path d="m12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83Z"></path><path d="m22 17.65-9.17 4.16a2 2 0 0 1-1.66 0L2 17.65"></path><path d="m22 12.65-9.17 4.16a2 2 0 0 1-1.66 0L2 12.65"></path></svg>Series</div></div><div class="flex flex-col space-y-1.5 p-6"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-activity h-8 w-8 text-[hsl(var(--brand-primary))] mb-2"><path d="M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2"></path></svg><h3 class="font-semibold tracking-tight text-lg pr-16">Monitoring Stack on Your VPS</h3><p class="text-sm text-muted-foreground">From lightweight agents to full Grafana dashboards — build the right monitoring stack.</p><div class="flex items-center gap-3 text-xs text-muted-foreground pt-2"><div class="inline-flex items-center rounded-full border font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80 text-[10px] px-2 py-0">5<!-- --> Parts</div><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clock w-3 h-3"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg>~3 hours</span></div></div></div>
|
|
| /guides/series/postgres-superstack |
<div class="rounded-lg border text-card-foreground shadow-sm relative h-full overflow-hidden border-l-4 border-l-[hsl(var(--brand-primary))] bg-[hsl(var(--brand-primary)/0.03)] hover:shadow-lg hover:bg-[hsl(var(--brand-primary)/0.08)] hover:border-[hsl(var(--brand-primary)/0.5)] transition-all cursor-pointer"><div class="absolute top-3 right-3 z-10"><div class="rounded-full border transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 border-transparent hover:bg-primary/80 bg-[hsl(var(--brand-primary))] text-white text-[10px] px-2 py-0.5 uppercase tracking-wider font-semibold flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-layers w-3 h-3"><path d="m12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83Z"></path><path d="m22 17.65-9.17 4.16a2 2 0 0 1-1.66 0L2 17.65"></path><path d="m22 12.65-9.17 4.16a2 2 0 0 1-1.66 0L2 12.65"></path></svg>Series</div></div><div class="flex flex-col space-y-1.5 p-6"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-database h-8 w-8 text-[hsl(var(--brand-primary))] mb-2"><ellipse cx="12" cy="5" rx="9" ry="3"></ellipse><path d="M3 5V19A9 3 0 0 0 21 19V5"></path><path d="M3 12A9 3 0 0 0 21 12"></path></svg><h3 class="font-semibold tracking-tight text-lg pr-16">PostgreSQL Superstack on Your VPS</h3><p class="text-sm text-muted-foreground">Build a production-grade PostgreSQL platform with pgvector, ParadeDB, pg_duckdb, Patroni HA, and pgBackRest.</p><div class="flex items-center gap-3 text-xs text-muted-foreground pt-2"><div class="inline-flex items-center rounded-full border font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80 text-[10px] px-2 py-0">7<!-- --> Parts</div><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clock w-3 h-3"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg>~5 hours</span></div></div></div>
|
|
| /guides/series/threat-intel-platform |
<div class="rounded-lg border text-card-foreground shadow-sm relative h-full overflow-hidden border-l-4 border-l-[hsl(var(--brand-primary))] bg-[hsl(var(--brand-primary)/0.03)] hover:shadow-lg hover:bg-[hsl(var(--brand-primary)/0.08)] hover:border-[hsl(var(--brand-primary)/0.5)] transition-all cursor-pointer"><div class="absolute top-3 right-3 z-10"><div class="rounded-full border transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 border-transparent hover:bg-primary/80 bg-[hsl(var(--brand-primary))] text-white text-[10px] px-2 py-0.5 uppercase tracking-wider font-semibold flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-layers w-3 h-3"><path d="m12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83Z"></path><path d="m22 17.65-9.17 4.16a2 2 0 0 1-1.66 0L2 17.65"></path><path d="m22 12.65-9.17 4.16a2 2 0 0 1-1.66 0L2 12.65"></path></svg>Series</div></div><div class="flex flex-col space-y-1.5 p-6"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-shield h-8 w-8 text-[hsl(var(--brand-primary))] mb-2"><path d="M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z"></path></svg><h3 class="font-semibold tracking-tight text-lg pr-16">Threat Intelligence Platform on Your VPS</h3><p class="text-sm text-muted-foreground">Build a multi-VPS threat intel platform with T-Pot, Beelzebub, Suricata, MISP, and Wazuh.</p><div class="flex items-center gap-3 text-xs text-muted-foreground pt-2"><div class="inline-flex items-center rounded-full border font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80 text-[10px] px-2 py-0">6<!-- --> Parts</div><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clock w-3 h-3"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg>~5 hours</span></div></div></div>
|
|
| /guides/series/wireguard-mesh |
<div class="rounded-lg border text-card-foreground shadow-sm relative h-full overflow-hidden border-l-4 border-l-[hsl(var(--brand-primary))] bg-[hsl(var(--brand-primary)/0.03)] hover:shadow-lg hover:bg-[hsl(var(--brand-primary)/0.08)] hover:border-[hsl(var(--brand-primary)/0.5)] transition-all cursor-pointer"><div class="absolute top-3 right-3 z-10"><div class="rounded-full border transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 border-transparent hover:bg-primary/80 bg-[hsl(var(--brand-primary))] text-white text-[10px] px-2 py-0.5 uppercase tracking-wider font-semibold flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-layers w-3 h-3"><path d="m12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83Z"></path><path d="m22 17.65-9.17 4.16a2 2 0 0 1-1.66 0L2 17.65"></path><path d="m22 12.65-9.17 4.16a2 2 0 0 1-1.66 0L2 12.65"></path></svg>Series</div></div><div class="flex flex-col space-y-1.5 p-6"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-network h-8 w-8 text-[hsl(var(--brand-primary))] mb-2"><rect x="16" y="16" width="6" height="6" rx="1"></rect><rect x="2" y="16" width="6" height="6" rx="1"></rect><rect x="9" y="2" width="6" height="6" rx="1"></rect><path d="M5 16v-3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3"></path><path d="M12 12V8"></path></svg><h3 class="font-semibold tracking-tight text-lg pr-16">WireGuard Mesh & Tunnel Architectures Mastery</h3><p class="text-sm text-muted-foreground">Build production WireGuard meshes with Netbird, Netmaker, Nebula, Pangolin, and Chisel.</p><div class="flex items-center gap-3 text-xs text-muted-foreground pt-2"><div class="inline-flex items-center rounded-full border font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80 text-[10px] px-2 py-0">6<!-- --> Parts</div><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clock w-3 h-3"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg>~6 hours</span></div></div></div>
|
|
| /guides/dockerbasics |
<div class="rounded-lg border bg-card text-card-foreground shadow-sm h-full hover:shadow-lg transition-shadow cursor-pointer"><div class="flex flex-col space-y-1.5 p-6"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-container h-8 w-8 text-primary mb-2"><path d="M22 7.7c0-.6-.4-1.2-.8-1.5l-6.3-3.9a1.72 1.72 0 0 0-1.7 0l-10.3 6c-.5.2-.9.8-.9 1.4v6.6c0 .5.4 1.2.8 1.5l6.3 3.9a1.72 1.72 0 0 0 1.7 0l10.3-6c.5-.3.9-1 .9-1.5Z"></path><path d="M10 21.9V14L2.1 9.1"></path><path d="m10 14 11.9-6.9"></path><path d="M14 19.8v-8.1"></path><path d="M18 17.5V9.4"></path></svg><h3 class="font-semibold tracking-tight text-lg">Docker Basics</h3><p class="text-sm text-muted-foreground">Master containerization fundamentals with Docker</p></div></div>
|
|
| /guides/coolify |
<div class="rounded-lg border bg-card text-card-foreground shadow-sm h-full hover:shadow-lg transition-shadow cursor-pointer"><div class="flex flex-col space-y-1.5 p-6"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-cloud h-8 w-8 text-primary mb-2"><path d="M17.5 19H9a7 7 0 1 1 6.71-9h1.79a4.5 4.5 0 1 1 0 9Z"></path></svg><h3 class="font-semibold tracking-tight text-lg">Coolify</h3><p class="text-sm text-muted-foreground">Self-hosted Heroku/Netlify/Vercel alternative</p></div></div>
|
|
| /guides/caprover |
<div class="rounded-lg border bg-card text-card-foreground shadow-sm h-full hover:shadow-lg transition-shadow cursor-pointer"><div class="flex flex-col space-y-1.5 p-6"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-server h-8 w-8 text-primary mb-2"><rect width="20" height="8" x="2" y="2" rx="2" ry="2"></rect><rect width="20" height="8" x="2" y="14" rx="2" ry="2"></rect><line x1="6" x2="6.01" y1="6" y2="6"></line><line x1="6" x2="6.01" y1="18" y2="18"></line></svg><h3 class="font-semibold tracking-tight text-lg">CapRover</h3><p class="text-sm text-muted-foreground">Free and open-source PaaS for deploying apps</p></div></div>
|
|
| /guides/kubernetes |
<div class="rounded-lg border bg-card text-card-foreground shadow-sm h-full hover:shadow-lg transition-shadow cursor-pointer"><div class="flex flex-col space-y-1.5 p-6"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-layers h-8 w-8 text-primary mb-2"><path d="m12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83Z"></path><path d="m22 17.65-9.17 4.16a2 2 0 0 1-1.66 0L2 17.65"></path><path d="m22 12.65-9.17 4.16a2 2 0 0 1-1.66 0L2 12.65"></path></svg><h3 class="font-semibold tracking-tight text-lg">Kubernetes</h3><p class="text-sm text-muted-foreground">Production-grade container orchestration</p></div></div>
|
|
| /guides/docker-compose-stack-engine |
<div class="rounded-lg border bg-card text-card-foreground shadow-sm h-full hover:shadow-lg transition-shadow cursor-pointer"><div class="flex flex-col space-y-1.5 p-6"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-container h-8 w-8 text-primary mb-2"><path d="M22 7.7c0-.6-.4-1.2-.8-1.5l-6.3-3.9a1.72 1.72 0 0 0-1.7 0l-10.3 6c-.5.2-.9.8-.9 1.4v6.6c0 .5.4 1.2.8 1.5l6.3 3.9a1.72 1.72 0 0 0 1.7 0l10.3-6c.5-.3.9-1 .9-1.5Z"></path><path d="M10 21.9V14L2.1 9.1"></path><path d="m10 14 11.9-6.9"></path><path d="M14 19.8v-8.1"></path><path d="M18 17.5V9.4"></path></svg><h3 class="font-semibold tracking-tight text-lg">Docker Compose</h3><p class="text-sm text-muted-foreground">Multi-container Docker applications made simple</p></div></div>
|
|
| /guides/portainer |
<div class="rounded-lg border bg-card text-card-foreground shadow-sm h-full hover:shadow-lg transition-shadow cursor-pointer"><div class="flex flex-col space-y-1.5 p-6"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-container h-8 w-8 text-primary mb-2"><path d="M22 7.7c0-.6-.4-1.2-.8-1.5l-6.3-3.9a1.72 1.72 0 0 0-1.7 0l-10.3 6c-.5.2-.9.8-.9 1.4v6.6c0 .5.4 1.2.8 1.5l6.3 3.9a1.72 1.72 0 0 0 1.7 0l10.3-6c.5-.3.9-1 .9-1.5Z"></path><path d="M10 21.9V14L2.1 9.1"></path><path d="m10 14 11.9-6.9"></path><path d="M14 19.8v-8.1"></path><path d="M18 17.5V9.4"></path></svg><h3 class="font-semibold tracking-tight text-lg">Portainer</h3><p class="text-sm text-muted-foreground">Docker management UI for easy container control</p></div></div>
|
|
| /guides/arcane |
<div class="rounded-lg border bg-card text-card-foreground shadow-sm h-full hover:shadow-lg transition-shadow cursor-pointer"><div class="flex flex-col space-y-1.5 p-6"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-container h-8 w-8 text-primary mb-2"><path d="M22 7.7c0-.6-.4-1.2-.8-1.5l-6.3-3.9a1.72 1.72 0 0 0-1.7 0l-10.3 6c-.5.2-.9.8-.9 1.4v6.6c0 .5.4 1.2.8 1.5l6.3 3.9a1.72 1.72 0 0 0 1.7 0l10.3-6c.5-.3.9-1 .9-1.5Z"></path><path d="M10 21.9V14L2.1 9.1"></path><path d="m10 14 11.9-6.9"></path><path d="M14 19.8v-8.1"></path><path d="M18 17.5V9.4"></path></svg><h3 class="font-semibold tracking-tight text-lg">Arcane</h3><p class="text-sm text-muted-foreground">Modern Docker management with intuitive web interface</p></div></div>
|
|
| /guides/dokku |
<div class="rounded-lg border bg-card text-card-foreground shadow-sm h-full hover:shadow-lg transition-shadow cursor-pointer"><div class="flex flex-col space-y-1.5 p-6"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-server h-8 w-8 text-primary mb-2"><rect width="20" height="8" x="2" y="2" rx="2" ry="2"></rect><rect width="20" height="8" x="2" y="14" rx="2" ry="2"></rect><line x1="6" x2="6.01" y1="6" y2="6"></line><line x1="6" x2="6.01" y1="18" y2="18"></line></svg><h3 class="font-semibold tracking-tight text-lg">Dokku</h3><p class="text-sm text-muted-foreground">Docker-powered mini-Heroku in ~200 lines of Bash</p></div></div>
|
|
| /guides/harbor |
<div class="rounded-lg border bg-card text-card-foreground shadow-sm h-full hover:shadow-lg transition-shadow cursor-pointer"><div class="flex flex-col space-y-1.5 p-6"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-container h-8 w-8 text-primary mb-2"><path d="M22 7.7c0-.6-.4-1.2-.8-1.5l-6.3-3.9a1.72 1.72 0 0 0-1.7 0l-10.3 6c-.5.2-.9.8-.9 1.4v6.6c0 .5.4 1.2.8 1.5l6.3 3.9a1.72 1.72 0 0 0 1.7 0l10.3-6c.5-.3.9-1 .9-1.5Z"></path><path d="M10 21.9V14L2.1 9.1"></path><path d="m10 14 11.9-6.9"></path><path d="M14 19.8v-8.1"></path><path d="M18 17.5V9.4"></path></svg><h3 class="font-semibold tracking-tight text-lg">Harbor</h3><p class="text-sm text-muted-foreground">Enterprise container registry with vulnerability scanning</p></div></div>
|
|
| /guides/dockge |
<div class="rounded-lg border bg-card text-card-foreground shadow-sm h-full hover:shadow-lg transition-shadow cursor-pointer"><div class="flex flex-col space-y-1.5 p-6"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-container h-8 w-8 text-primary mb-2"><path d="M22 7.7c0-.6-.4-1.2-.8-1.5l-6.3-3.9a1.72 1.72 0 0 0-1.7 0l-10.3 6c-.5.2-.9.8-.9 1.4v6.6c0 .5.4 1.2.8 1.5l6.3 3.9a1.72 1.72 0 0 0 1.7 0l10.3-6c.5-.3.9-1 .9-1.5Z"></path><path d="M10 21.9V14L2.1 9.1"></path><path d="m10 14 11.9-6.9"></path><path d="M14 19.8v-8.1"></path><path d="M18 17.5V9.4"></path></svg><h3 class="font-semibold tracking-tight text-lg">Dockge</h3><p class="text-sm text-muted-foreground">Docker Compose stack manager with web interface</p></div></div>
|
|
| /guides/homarr |
<div class="rounded-lg border bg-card text-card-foreground shadow-sm h-full hover:shadow-lg transition-shadow cursor-pointer"><div class="flex flex-col space-y-1.5 p-6"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-layout-dashboard h-8 w-8 text-primary mb-2"><rect width="7" height="9" x="3" y="3" rx="1"></rect><rect width="7" height="5" x="14" y="3" rx="1"></rect><rect width="7" height="9" x="14" y="12" rx="1"></rect><rect width="7" height="5" x="3" y="16" rx="1"></rect></svg><h3 class="font-semibold tracking-tight text-lg">Homarr</h3><p class="text-sm text-muted-foreground">Modern self-hosted dashboard for service monitoring and quick-launch tiles</p></div></div>
|
|
| /guides/nixpacks |
<div class="rounded-lg border bg-card text-card-foreground shadow-sm h-full hover:shadow-lg transition-shadow cursor-pointer"><div class="flex flex-col space-y-1.5 p-6"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-package h-8 w-8 text-primary mb-2"><path d="M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z"></path><path d="M12 22V12"></path><path d="m3.3 7 7.703 4.734a2 2 0 0 0 1.994 0L20.7 7"></path><path d="m7.5 4.27 9 5.15"></path></svg><h3 class="font-semibold tracking-tight text-lg">Nixpacks</h3><p class="text-sm text-muted-foreground">Auto-detect and build any app into Docker containers — no Dockerfile needed</p></div></div>
|
|
| /guides/kamal |
<div class="rounded-lg border bg-card text-card-foreground shadow-sm h-full hover:shadow-lg transition-shadow cursor-pointer"><div class="flex flex-col space-y-1.5 p-6"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-zap h-8 w-8 text-primary mb-2"><path d="M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z"></path></svg><h3 class="font-semibold tracking-tight text-lg">Kamal</h3><p class="text-sm text-muted-foreground">Zero-downtime Docker deploys with automatic SSL by 37signals</p></div></div>
|
|
| /guides/lens |
<div class="rounded-lg border bg-card text-card-foreground shadow-sm h-full hover:shadow-lg transition-shadow cursor-pointer"><div class="flex flex-col space-y-1.5 p-6"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-layers h-8 w-8 text-primary mb-2"><path d="m12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83Z"></path><path d="m22 17.65-9.17 4.16a2 2 0 0 1-1.66 0L2 17.65"></path><path d="m22 12.65-9.17 4.16a2 2 0 0 1-1.66 0L2 12.65"></path></svg><h3 class="font-semibold tracking-tight text-lg">Lens</h3><p class="text-sm text-muted-foreground">Visual Kubernetes IDE with K3s cluster management and Helm charts</p></div></div>
|
|
| /guides/kyverno |
<div class="rounded-lg border bg-card text-card-foreground shadow-sm h-full hover:shadow-lg transition-shadow cursor-pointer"><div class="flex flex-col space-y-1.5 p-6"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-shield h-8 w-8 text-primary mb-2"><path d="M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z"></path></svg><h3 class="font-semibold tracking-tight text-lg">Kyverno</h3><p class="text-sm text-muted-foreground">Kubernetes-native policy engine — Pod Security Standards, image enforcement, and mutation on k3s</p></div></div>
|
|
| /guides/django |
<div class="rounded-lg border bg-card text-card-foreground shadow-sm h-full hover:shadow-lg transition-shadow cursor-pointer"><div class="flex flex-col space-y-1.5 p-6"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-globe h-8 w-8 text-primary mb-2"><circle cx="12" cy="12" r="10"></circle><path d="M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20"></path><path d="M2 12h20"></path></svg><h3 class="font-semibold tracking-tight text-lg">Django + Gunicorn + Nginx</h3><p class="text-sm text-muted-foreground">Production-ready Python Django deployment with Gunicorn and Nginx</p></div></div>
|
|
| /guides/fastify |
<div class="rounded-lg border bg-card text-card-foreground shadow-sm h-full hover:shadow-lg transition-shadow cursor-pointer"><div class="flex flex-col space-y-1.5 p-6"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-zap h-8 w-8 text-primary mb-2"><path d="M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z"></path></svg><h3 class="font-semibold tracking-tight text-lg">Fastify</h3><p class="text-sm text-muted-foreground">High-performance Node.js web framework with PM2 and Nginx</p></div></div>
|
|
| /guides/laravel |
<div class="rounded-lg border bg-card text-card-foreground shadow-sm h-full hover:shadow-lg transition-shadow cursor-pointer"><div class="flex flex-col space-y-1.5 p-6"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-box h-8 w-8 text-primary mb-2"><path d="M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z"></path><path d="m3.3 7 8.7 5 8.7-5"></path><path d="M12 22V12"></path></svg><h3 class="font-semibold tracking-tight text-lg">Laravel</h3><p class="text-sm text-muted-foreground">Production-ready PHP Laravel with Nginx, PHP-FPM, and MySQL</p></div></div>
|
|
| /guides/adonisjs |
<div class="rounded-lg border bg-card text-card-foreground shadow-sm h-full hover:shadow-lg transition-shadow cursor-pointer"><div class="flex flex-col space-y-1.5 p-6"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-hexagon h-8 w-8 text-primary mb-2"><path d="M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"></path></svg><h3 class="font-semibold tracking-tight text-lg">AdonisJS</h3><p class="text-sm text-muted-foreground">TypeScript Node.js framework with PostgreSQL and PM2</p></div></div>
|
|
| /guides/spring-boot |
<div class="rounded-lg border bg-card text-card-foreground shadow-sm h-full hover:shadow-lg transition-shadow cursor-pointer"><div class="flex flex-col space-y-1.5 p-6"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-coffee h-8 w-8 text-primary mb-2"><path d="M10 2v2"></path><path d="M14 2v2"></path><path d="M16 8a1 1 0 0 1 1 1v8a4 4 0 0 1-4 4H7a4 4 0 0 1-4-4V9a1 1 0 0 1 1-1h14a4 4 0 1 1 0 8h-1"></path><path d="M6 2v2"></path></svg><h3 class="font-semibold tracking-tight text-lg">Spring Boot</h3><p class="text-sm text-muted-foreground">Production-ready Java Spring Boot with Nginx and systemd</p></div></div>
|
|
| /guides/nestjs |
<div class="rounded-lg border bg-card text-card-foreground shadow-sm h-full hover:shadow-lg transition-shadow cursor-pointer"><div class="flex flex-col space-y-1.5 p-6"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-workflow h-8 w-8 text-primary mb-2"><rect width="8" height="8" x="3" y="3" rx="2"></rect><path d="M7 11v4a2 2 0 0 0 2 2h4"></path><rect width="8" height="8" x="13" y="13" rx="2"></rect></svg><h3 class="font-semibold tracking-tight text-lg">NestJS Microservices</h3><p class="text-sm text-muted-foreground">Build scalable Node.js microservices with PM2 and monitoring</p></div></div>
|
|
| /guides/minio |
<div class="rounded-lg border bg-card text-card-foreground shadow-sm h-full hover:shadow-lg transition-shadow cursor-pointer"><div class="flex flex-col space-y-1.5 p-6"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-hard-drive h-8 w-8 text-primary mb-2"><line x1="22" x2="2" y1="12" y2="12"></line><path d="M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z"></path><line x1="6" x2="6.01" y1="16" y2="16"></line><line x1="10" x2="10.01" y1="16" y2="16"></line></svg><h3 class="font-semibold tracking-tight text-lg">MinIO</h3><p class="text-sm text-muted-foreground">High-performance S3-compatible object storage</p></div></div>
|
|
| /guides/remix |
<div class="rounded-lg border bg-card text-card-foreground shadow-sm h-full hover:shadow-lg transition-shadow cursor-pointer"><div class="flex flex-col space-y-1.5 p-6"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-globe h-8 w-8 text-primary mb-2"><circle cx="12" cy="12" r="10"></circle><path d="M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20"></path><path d="M2 12h20"></path></svg><h3 class="font-semibold tracking-tight text-lg">Remix</h3><p class="text-sm text-muted-foreground">Full-stack React framework with PM2 and Nginx reverse proxy</p></div></div>
|
|
| /guides/sveltekit |
<div class="rounded-lg border bg-card text-card-foreground shadow-sm h-full hover:shadow-lg transition-shadow cursor-pointer"><div class="flex flex-col space-y-1.5 p-6"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-zap h-8 w-8 text-primary mb-2"><path d="M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z"></path></svg><h3 class="font-semibold tracking-tight text-lg">SvelteKit</h3><p class="text-sm text-muted-foreground">Full-stack Svelte framework with SSR, PM2, and Nginx</p></div></div>
|
|
| /guides/astro |
<div class="rounded-lg border bg-card text-card-foreground shadow-sm h-full hover:shadow-lg transition-shadow cursor-pointer"><div class="flex flex-col space-y-1.5 p-6"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-globe h-8 w-8 text-primary mb-2"><circle cx="12" cy="12" r="10"></circle><path d="M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20"></path><path d="M2 12h20"></path></svg><h3 class="font-semibold tracking-tight text-lg">Astro</h3><p class="text-sm text-muted-foreground">Static & SSR web framework with islands architecture and Nginx</p></div></div>
|
|
| /guides/phoenix |
<div class="rounded-lg border bg-card text-card-foreground shadow-sm h-full hover:shadow-lg transition-shadow cursor-pointer"><div class="flex flex-col space-y-1.5 p-6"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-zap h-8 w-8 text-primary mb-2"><path d="M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z"></path></svg><h3 class="font-semibold tracking-tight text-lg">Phoenix</h3><p class="text-sm text-muted-foreground">Elixir framework with BEAM VM, PostgreSQL, and real-time Channels</p></div></div>
|
|
| /guides/shlink |
<div class="rounded-lg border bg-card text-card-foreground shadow-sm h-full hover:shadow-lg transition-shadow cursor-pointer"><div class="flex flex-col space-y-1.5 p-6"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-globe h-8 w-8 text-primary mb-2"><circle cx="12" cy="12" r="10"></circle><path d="M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20"></path><path d="M2 12h20"></path></svg><h3 class="font-semibold tracking-tight text-lg">Shlink</h3><p class="text-sm text-muted-foreground">Self-hosted URL shortener with branded links and click analytics</p></div></div>
|
|
| /guides/fastapi |
<div class="rounded-lg border bg-card text-card-foreground shadow-sm h-full hover:shadow-lg transition-shadow cursor-pointer"><div class="flex flex-col space-y-1.5 p-6"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-zap h-8 w-8 text-primary mb-2"><path d="M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z"></path></svg><h3 class="font-semibold tracking-tight text-lg">FastAPI</h3><p class="text-sm text-muted-foreground">Production-ready Python FastAPI with Uvicorn, Gunicorn, and Nginx</p></div></div>
|
|
| /guides/strapi |
<div class="rounded-lg border bg-card text-card-foreground shadow-sm h-full hover:shadow-lg transition-shadow cursor-pointer"><div class="flex flex-col space-y-1.5 p-6"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-globe h-8 w-8 text-primary mb-2"><circle cx="12" cy="12" r="10"></circle><path d="M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20"></path><path d="M2 12h20"></path></svg><h3 class="font-semibold tracking-tight text-lg">Strapi</h3><p class="text-sm text-muted-foreground">Open-source headless CMS with REST and GraphQL APIs</p></div></div>
|
|
| /guides/pocketbase |
<div class="rounded-lg border bg-card text-card-foreground shadow-sm h-full hover:shadow-lg transition-shadow cursor-pointer"><div class="flex flex-col space-y-1.5 p-6"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-database h-8 w-8 text-primary mb-2"><ellipse cx="12" cy="5" rx="9" ry="3"></ellipse><path d="M3 5V19A9 3 0 0 0 21 19V5"></path><path d="M3 12A9 3 0 0 0 21 12"></path></svg><h3 class="font-semibold tracking-tight text-lg">PocketBase</h3><p class="text-sm text-muted-foreground">Open-source BaaS with SQLite, real-time subscriptions, and admin dashboard</p></div></div>
|
|
| /guides/directus |
<div class="rounded-lg border bg-card text-card-foreground shadow-sm h-full hover:shadow-lg transition-shadow cursor-pointer"><div class="flex flex-col space-y-1.5 p-6"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-database h-8 w-8 text-primary mb-2"><ellipse cx="12" cy="5" rx="9" ry="3"></ellipse><path d="M3 5V19A9 3 0 0 0 21 19V5"></path><path d="M3 12A9 3 0 0 0 21 12"></path></svg><h3 class="font-semibold tracking-tight text-lg">Directus</h3><p class="text-sm text-muted-foreground">Open-source headless CMS with REST/GraphQL APIs and admin UI</p></div></div>
|
|
| /guides/deno |
<div class="rounded-lg border bg-card text-card-foreground shadow-sm h-full hover:shadow-lg transition-shadow cursor-pointer"><div class="flex flex-col space-y-1.5 p-6"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-zap h-8 w-8 text-primary mb-2"><path d="M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z"></path></svg><h3 class="font-semibold tracking-tight text-lg">Deno</h3><p class="text-sm text-muted-foreground">Secure TypeScript runtime with systemd, Nginx, and Let's Encrypt</p></div></div>
|
|
| /guides/hono-bun |
<div class="rounded-lg border bg-card text-card-foreground shadow-sm h-full hover:shadow-lg transition-shadow cursor-pointer"><div class="flex flex-col space-y-1.5 p-6"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-zap h-8 w-8 text-primary mb-2"><path d="M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z"></path></svg><h3 class="font-semibold tracking-tight text-lg">Hono + Bun</h3><p class="text-sm text-muted-foreground">Ultrafast web framework with Bun runtime, systemd, and Caddy HTTPS</p></div></div>
|
|
| /guides/zulip |
<div class="rounded-lg border bg-card text-card-foreground shadow-sm h-full hover:shadow-lg transition-shadow cursor-pointer"><div class="flex flex-col space-y-1.5 p-6"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-globe h-8 w-8 text-primary mb-2"><circle cx="12" cy="12" r="10"></circle><path d="M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20"></path><path d="M2 12h20"></path></svg><h3 class="font-semibold tracking-tight text-lg">Zulip</h3><p class="text-sm text-muted-foreground">Open-source threaded team chat with no per-seat pricing</p></div></div>
|
|
| /guides/hasura |
<div class="rounded-lg border bg-card text-card-foreground shadow-sm h-full hover:shadow-lg transition-shadow cursor-pointer"><div class="flex flex-col space-y-1.5 p-6"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-database h-8 w-8 text-primary mb-2"><ellipse cx="12" cy="5" rx="9" ry="3"></ellipse><path d="M3 5V19A9 3 0 0 0 21 19V5"></path><path d="M3 12A9 3 0 0 0 21 12"></path></svg><h3 class="font-semibold tracking-tight text-lg">Hasura</h3><p class="text-sm text-muted-foreground">Instant GraphQL and REST APIs over PostgreSQL with authorization and event triggers</p></div></div>
|
|
| /guides/nodejs |
<div class="rounded-lg border bg-card text-card-foreground shadow-sm h-full hover:shadow-lg transition-shadow cursor-pointer"><div class="flex flex-col space-y-1.5 p-6"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-zap h-8 w-8 text-primary mb-2"><path d="M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z"></path></svg><h3 class="font-semibold tracking-tight text-lg">Node.js</h3><p class="text-sm text-muted-foreground">Production-ready Node.js with PM2, Nginx reverse proxy, SSL, and git-based deployments</p></div></div>
|
|
| /guides/tinacms |
<div class="rounded-lg border bg-card text-card-foreground shadow-sm h-full hover:shadow-lg transition-shadow cursor-pointer"><div class="flex flex-col space-y-1.5 p-6"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-globe h-8 w-8 text-primary mb-2"><circle cx="12" cy="12" r="10"></circle><path d="M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20"></path><path d="M2 12h20"></path></svg><h3 class="font-semibold tracking-tight text-lg">TinaCMS</h3><p class="text-sm text-muted-foreground">Git-backed headless CMS with visual editing, MongoDB, and Next.js</p></div></div>
|
|
| /guides/ferretdb |
<div class="rounded-lg border bg-card text-card-foreground shadow-sm h-full hover:shadow-lg transition-shadow cursor-pointer"><div class="flex flex-col space-y-1.5 p-6"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-database h-8 w-8 text-primary mb-2"><ellipse cx="12" cy="5" rx="9" ry="3"></ellipse><path d="M3 5V19A9 3 0 0 0 21 19V5"></path><path d="M3 12A9 3 0 0 0 21 12"></path></svg><h3 class="font-semibold tracking-tight text-lg">FerretDB</h3><p class="text-sm text-muted-foreground">MongoDB-compatible database backed by PostgreSQL — no SSPL licensing</p></div></div>
|
|
| /guides/stalwart |
<div class="rounded-lg border bg-card text-card-foreground shadow-sm h-full hover:shadow-lg transition-shadow cursor-pointer"><div class="flex flex-col space-y-1.5 p-6"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-message-circle h-8 w-8 text-primary mb-2"><path d="M7.9 20A9 9 0 1 0 4 16.1L2 22Z"></path></svg><h3 class="font-semibold tracking-tight text-lg">Stalwart Mail Server</h3><p class="text-sm text-muted-foreground">All-in-one Rust mail server — SMTP, IMAP, JMAP, spam filtering, and ACME TLS in a single binary</p></div></div>
|
|
| /guides/frankenphp |
<div class="rounded-lg border bg-card text-card-foreground shadow-sm h-full hover:shadow-lg transition-shadow cursor-pointer"><div class="flex flex-col space-y-1.5 p-6"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-zap h-8 w-8 text-primary mb-2"><path d="M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z"></path></svg><h3 class="font-semibold tracking-tight text-lg">FrankenPHP</h3><p class="text-sm text-muted-foreground">Modern PHP app server built on Caddy — worker mode, HTTP/3, automatic Let's Encrypt, no separate Nginx</p></div></div>
|
|
| /guides/appsmith |
<div class="rounded-lg border bg-card text-card-foreground shadow-sm h-full hover:shadow-lg transition-shadow cursor-pointer"><div class="flex flex-col space-y-1.5 p-6"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-workflow h-8 w-8 text-primary mb-2"><rect width="8" height="8" x="3" y="3" rx="2"></rect><path d="M7 11v4a2 2 0 0 0 2 2h4"></path><rect width="8" height="8" x="13" y="13" rx="2"></rect></svg><h3 class="font-semibold tracking-tight text-lg">Appsmith</h3><p class="text-sm text-muted-foreground">Low-code platform for building internal tools</p></div></div>
|
|
| /guides/ploi |
<div class="rounded-lg border bg-card text-card-foreground shadow-sm h-full hover:shadow-lg transition-shadow cursor-pointer"><div class="flex flex-col space-y-1.5 p-6"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-workflow h-8 w-8 text-primary mb-2"><rect width="8" height="8" x="3" y="3" rx="2"></rect><path d="M7 11v4a2 2 0 0 0 2 2h4"></path><rect width="8" height="8" x="13" y="13" rx="2"></rect></svg><h3 class="font-semibold tracking-tight text-lg">Ploi</h3><p class="text-sm text-muted-foreground">Server management and deployment platform</p></div></div>
|
|
| /guides/runcloud |
<div class="rounded-lg border bg-card text-card-foreground shadow-sm h-full hover:shadow-lg transition-shadow cursor-pointer"><div class="flex flex-col space-y-1.5 p-6"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-cloud h-8 w-8 text-primary mb-2"><path d="M17.5 19H9a7 7 0 1 1 6.71-9h1.79a4.5 4.5 0 1 1 0 9Z"></path></svg><h3 class="font-semibold tracking-tight text-lg">RunCloud</h3><p class="text-sm text-muted-foreground">Cloud server management made easy</p></div></div>
|
|
| /guides/serveravatar |
<div class="rounded-lg border bg-card text-card-foreground shadow-sm h-full hover:shadow-lg transition-shadow cursor-pointer"><div class="flex flex-col space-y-1.5 p-6"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-server h-8 w-8 text-primary mb-2"><rect width="20" height="8" x="2" y="2" rx="2" ry="2"></rect><rect width="20" height="8" x="2" y="14" rx="2" ry="2"></rect><line x1="6" x2="6.01" y1="6" y2="6"></line><line x1="6" x2="6.01" y1="18" y2="18"></line></svg><h3 class="font-semibold tracking-tight text-lg">ServerAvatar</h3><p class="text-sm text-muted-foreground">Modern server management panel</p></div></div>
|
|
| /guides/cloudpanel |
<div class="rounded-lg border bg-card text-card-foreground shadow-sm h-full hover:shadow-lg transition-shadow cursor-pointer"><div class="flex flex-col space-y-1.5 p-6"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-server h-8 w-8 text-primary mb-2"><rect width="20" height="8" x="2" y="2" rx="2" ry="2"></rect><rect width="20" height="8" x="2" y="14" rx="2" ry="2"></rect><line x1="6" x2="6.01" y1="6" y2="6"></line><line x1="6" x2="6.01" y1="18" y2="18"></line></svg><h3 class="font-semibold tracking-tight text-lg">CloudPanel</h3><p class="text-sm text-muted-foreground">Free server control panel</p></div></div>
|
|
| /guides/virtualmin |
<div class="rounded-lg border bg-card text-card-foreground shadow-sm h-full hover:shadow-lg transition-shadow cursor-pointer"><div class="flex flex-col space-y-1.5 p-6"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-server h-8 w-8 text-primary mb-2"><rect width="20" height="8" x="2" y="2" rx="2" ry="2"></rect><rect width="20" height="8" x="2" y="14" rx="2" ry="2"></rect><line x1="6" x2="6.01" y1="6" y2="6"></line><line x1="6" x2="6.01" y1="18" y2="18"></line></svg><h3 class="font-semibold tracking-tight text-lg">Virtualmin</h3><p class="text-sm text-muted-foreground">Open-source web hosting control panel</p></div></div>
|
|
| /guides/webmin |
<div class="rounded-lg border bg-card text-card-foreground shadow-sm h-full hover:shadow-lg transition-shadow cursor-pointer"><div class="flex flex-col space-y-1.5 p-6"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-server h-8 w-8 text-primary mb-2"><rect width="20" height="8" x="2" y="2" rx="2" ry="2"></rect><rect width="20" height="8" x="2" y="14" rx="2" ry="2"></rect><line x1="6" x2="6.01" y1="6" y2="6"></line><line x1="6" x2="6.01" y1="18" y2="18"></line></svg><h3 class="font-semibold tracking-tight text-lg">Webmin</h3><p class="text-sm text-muted-foreground">Web-based system administration interface</p></div></div>
|
|
| /guides/cyberpanel |
<div class="rounded-lg border bg-card text-card-foreground shadow-sm h-full hover:shadow-lg transition-shadow cursor-pointer"><div class="flex flex-col space-y-1.5 p-6"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-server h-8 w-8 text-primary mb-2"><rect width="20" height="8" x="2" y="2" rx="2" ry="2"></rect><rect width="20" height="8" x="2" y="14" rx="2" ry="2"></rect><line x1="6" x2="6.01" y1="6" y2="6"></line><line x1="6" x2="6.01" y1="18" y2="18"></line></svg><h3 class="font-semibold tracking-tight text-lg">CyberPanel</h3><p class="text-sm text-muted-foreground">High-performance OpenLiteSpeed control panel</p></div></div>
|
|
| /guides/hestia |
<div class="rounded-lg border bg-card text-card-foreground shadow-sm h-full hover:shadow-lg transition-shadow cursor-pointer"><div class="flex flex-col space-y-1.5 p-6"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-server h-8 w-8 text-primary mb-2"><rect width="20" height="8" x="2" y="2" rx="2" ry="2"></rect><rect width="20" height="8" x="2" y="14" rx="2" ry="2"></rect><line x1="6" x2="6.01" y1="6" y2="6"></line><line x1="6" x2="6.01" y1="18" y2="18"></line></svg><h3 class="font-semibold tracking-tight text-lg">HestiaCP</h3><p class="text-sm text-muted-foreground">Lightweight open-source hosting panel</p></div></div>
|
|
| /guides/dokploy |
<div class="rounded-lg border bg-card text-card-foreground shadow-sm h-full hover:shadow-lg transition-shadow cursor-pointer"><div class="flex flex-col space-y-1.5 p-6"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-workflow h-8 w-8 text-primary mb-2"><rect width="8" height="8" x="3" y="3" rx="2"></rect><path d="M7 11v4a2 2 0 0 0 2 2h4"></path><rect width="8" height="8" x="13" y="13" rx="2"></rect></svg><h3 class="font-semibold tracking-tight text-lg">Dokploy</h3><p class="text-sm text-muted-foreground">Deploy applications with ease</p></div></div>
|
|
| /guides/coolify-pfsense |
<div class="rounded-lg border bg-card text-card-foreground shadow-sm h-full hover:shadow-lg transition-shadow cursor-pointer"><div class="flex flex-col space-y-1.5 p-6"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-shield h-8 w-8 text-primary mb-2"><path d="M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z"></path></svg><h3 class="font-semibold tracking-tight text-lg">Coolify + pfSense</h3><p class="text-sm text-muted-foreground">Multi-server Coolify with pfSense firewall</p></div></div>
|
|
| /guides/ansible |
<div class="rounded-lg border bg-card text-card-foreground shadow-sm h-full hover:shadow-lg transition-shadow cursor-pointer"><div class="flex flex-col space-y-1.5 p-6"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-workflow h-8 w-8 text-primary mb-2"><rect width="8" height="8" x="3" y="3" rx="2"></rect><path d="M7 11v4a2 2 0 0 0 2 2h4"></path><rect width="8" height="8" x="13" y="13" rx="2"></rect></svg><h3 class="font-semibold tracking-tight text-lg">Ansible</h3><p class="text-sm text-muted-foreground">Agentless automation for server configuration</p></div></div>
|
|
| /guides/dokploy-advanced |
<div class="rounded-lg border bg-card text-card-foreground shadow-sm h-full hover:shadow-lg transition-shadow cursor-pointer"><div class="flex flex-col space-y-1.5 p-6"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-layers h-8 w-8 text-primary mb-2"><path d="m12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83Z"></path><path d="m22 17.65-9.17 4.16a2 2 0 0 1-1.66 0L2 17.65"></path><path d="m22 12.65-9.17 4.16a2 2 0 0 1-1.66 0L2 12.65"></path></svg><h3 class="font-semibold tracking-tight text-lg">Dokploy Advanced</h3><p class="text-sm text-muted-foreground">Self-hosted PaaS with automatic SSL</p></div></div>
|
|
| /guides/froxlor |
<div class="rounded-lg border bg-card text-card-foreground shadow-sm h-full hover:shadow-lg transition-shadow cursor-pointer"><div class="flex flex-col space-y-1.5 p-6"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-server h-8 w-8 text-primary mb-2"><rect width="20" height="8" x="2" y="2" rx="2" ry="2"></rect><rect width="20" height="8" x="2" y="14" rx="2" ry="2"></rect><line x1="6" x2="6.01" y1="6" y2="6"></line><line x1="6" x2="6.01" y1="18" y2="18"></line></svg><h3 class="font-semibold tracking-tight text-lg">Froxlor</h3><p class="text-sm text-muted-foreground">Lightweight open-source hosting panel for domains, email, and FTP</p></div></div>
|
|
| /guides/keyhelp |
<div class="rounded-lg border bg-card text-card-foreground shadow-sm h-full hover:shadow-lg transition-shadow cursor-pointer"><div class="flex flex-col space-y-1.5 p-6"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-server h-8 w-8 text-primary mb-2"><rect width="20" height="8" x="2" y="2" rx="2" ry="2"></rect><rect width="20" height="8" x="2" y="14" rx="2" ry="2"></rect><line x1="6" x2="6.01" y1="6" y2="6"></line><line x1="6" x2="6.01" y1="18" y2="18"></line></svg><h3 class="font-semibold tracking-tight text-lg">KeyHelp</h3><p class="text-sm text-muted-foreground">Free hosting control panel with domains, email, databases, and SSL</p></div></div>
|
|
| /guides/railpack |
<div class="rounded-lg border bg-card text-card-foreground shadow-sm h-full hover:shadow-lg transition-shadow cursor-pointer"><div class="flex flex-col space-y-1.5 p-6"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-package h-8 w-8 text-primary mb-2"><path d="M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z"></path><path d="M12 22V12"></path><path d="m3.3 7 7.703 4.734a2 2 0 0 0 1.994 0L20.7 7"></path><path d="m7.5 4.27 9 5.15"></path></svg><h3 class="font-semibold tracking-tight text-lg">Railpack</h3><p class="text-sm text-muted-foreground">Modern build packs that auto-detect and containerize apps — Nixpacks successor with smaller images</p></div></div>
|
|
| /guides/spin |
<div class="rounded-lg border bg-card text-card-foreground shadow-sm h-full hover:shadow-lg transition-shadow cursor-pointer"><div class="flex flex-col space-y-1.5 p-6"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-zap h-8 w-8 text-primary mb-2"><path d="M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z"></path></svg><h3 class="font-semibold tracking-tight text-lg">Spin</h3><p class="text-sm text-muted-foreground">Fermyon's serverless WebAssembly runtime — millisecond cold starts and language-agnostic deploys</p></div></div>
|
|
| /guides/zot |
<div class="rounded-lg border bg-card text-card-foreground shadow-sm h-full hover:shadow-lg transition-shadow cursor-pointer"><div class="flex flex-col space-y-1.5 p-6"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-package h-8 w-8 text-primary mb-2"><path d="M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z"></path><path d="M12 22V12"></path><path d="m3.3 7 7.703 4.734a2 2 0 0 0 1.994 0L20.7 7"></path><path d="m7.5 4.27 9 5.15"></path></svg><h3 class="font-semibold tracking-tight text-lg">Zot OCI Registry</h3><p class="text-sm text-muted-foreground">Vendor-neutral OCI registry — single Go binary, CVE scanning, web UI, and Docker Hub pull-through cache</p></div></div>
|
|
| /guides/tailscale |
<div class="rounded-lg border bg-card text-card-foreground shadow-sm h-full hover:shadow-lg transition-shadow cursor-pointer"><div class="flex flex-col space-y-1.5 p-6"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-shield h-8 w-8 text-primary mb-2"><path d="M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z"></path></svg><h3 class="font-semibold tracking-tight text-lg">Tailscale</h3><p class="text-sm text-muted-foreground">Zero-config VPN built on WireGuard</p></div></div>
|
|
| /guides/wireguard |
<div class="rounded-lg border bg-card text-card-foreground shadow-sm h-full hover:shadow-lg transition-shadow cursor-pointer"><div class="flex flex-col space-y-1.5 p-6"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-shield h-8 w-8 text-primary mb-2"><path d="M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z"></path></svg><h3 class="font-semibold tracking-tight text-lg">WireGuard</h3><p class="text-sm text-muted-foreground">Next-generation VPN protocol</p></div></div>
|
|
| /guides/wg-easy |
<div class="rounded-lg border bg-card text-card-foreground shadow-sm h-full hover:shadow-lg transition-shadow cursor-pointer"><div class="flex flex-col space-y-1.5 p-6"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-shield h-8 w-8 text-primary mb-2"><path d="M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z"></path></svg><h3 class="font-semibold tracking-tight text-lg">WG-Easy</h3><p class="text-sm text-muted-foreground">WireGuard VPN with web-based admin UI via Docker</p></div></div>
|
|
| /guides/openvpn |
<div class="rounded-lg border bg-card text-card-foreground shadow-sm h-full hover:shadow-lg transition-shadow cursor-pointer"><div class="flex flex-col space-y-1.5 p-6"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-shield h-8 w-8 text-primary mb-2"><path d="M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z"></path></svg><h3 class="font-semibold tracking-tight text-lg">OpenVPN</h3><p class="text-sm text-muted-foreground">Popular open-source VPN solution</p></div></div>
|
|
| /guides/netbird |
<div class="rounded-lg border bg-card text-card-foreground shadow-sm h-full hover:shadow-lg transition-shadow cursor-pointer"><div class="flex flex-col space-y-1.5 p-6"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-shield h-8 w-8 text-primary mb-2"><path d="M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z"></path></svg><h3 class="font-semibold tracking-tight text-lg">Netbird</h3><p class="text-sm text-muted-foreground">WireGuard-based mesh network</p></div></div>
|
|
| /guides/zerotier |
<div class="rounded-lg border bg-card text-card-foreground shadow-sm h-full hover:shadow-lg transition-shadow cursor-pointer"><div class="flex flex-col space-y-1.5 p-6"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-shield h-8 w-8 text-primary mb-2"><path d="M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z"></path></svg><h3 class="font-semibold tracking-tight text-lg">ZeroTier</h3><p class="text-sm text-muted-foreground">Global area networking platform</p></div></div>
|
|
| /guides/netmaker |
<div class="rounded-lg border bg-card text-card-foreground shadow-sm h-full hover:shadow-lg transition-shadow cursor-pointer"><div class="flex flex-col space-y-1.5 p-6"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-shield h-8 w-8 text-primary mb-2"><path d="M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z"></path></svg><h3 class="font-semibold tracking-tight text-lg">Netmaker</h3><p class="text-sm text-muted-foreground">WireGuard automation platform</p></div></div>
|
|
| /guides/headscale |
<div class="rounded-lg border bg-card text-card-foreground shadow-sm h-full hover:shadow-lg transition-shadow cursor-pointer"><div class="flex flex-col space-y-1.5 p-6"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-shield h-8 w-8 text-primary mb-2"><path d="M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z"></path></svg><h3 class="font-semibold tracking-tight text-lg">Headscale</h3><p class="text-sm text-muted-foreground">Self-hosted Tailscale coordination server</p></div></div>
|
|
| /guides/series/pangolin |
<div class="rounded-lg border bg-card text-card-foreground shadow-sm h-full hover:shadow-lg transition-shadow cursor-pointer"><div class="flex flex-col space-y-1.5 p-6"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-shield h-8 w-8 text-primary mb-2"><path d="M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z"></path></svg><h3 class="font-semibold tracking-tight text-lg">Pangolin</h3><p class="text-sm text-muted-foreground">Self-hosted tunneled reverse proxy with identity-aware access</p></div></div>
|
|
| /guides/ipfire |
<div class="rounded-lg border bg-card text-card-foreground shadow-sm h-full hover:shadow-lg transition-shadow cursor-pointer"><div class="flex flex-col space-y-1.5 p-6"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-shield h-8 w-8 text-primary mb-2"><path d="M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z"></path></svg><h3 class="font-semibold tracking-tight text-lg">IPFire</h3><p class="text-sm text-muted-foreground">Hardened open-source firewall distribution</p></div></div>
|
|
| /guides/pfsense |
<div class="rounded-lg border bg-card text-card-foreground shadow-sm h-full hover:shadow-lg transition-shadow cursor-pointer"><div class="flex flex-col space-y-1.5 p-6"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-shield h-8 w-8 text-primary mb-2"><path d="M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z"></path></svg><h3 class="font-semibold tracking-tight text-lg">pfSense</h3><p class="text-sm text-muted-foreground">Open-source firewall and router</p></div></div>
|
|
| /guides/vaultwarden |
<div class="rounded-lg border bg-card text-card-foreground shadow-sm h-full hover:shadow-lg transition-shadow cursor-pointer"><div class="flex flex-col space-y-1.5 p-6"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-lock h-8 w-8 text-primary mb-2"><rect width="18" height="11" x="3" y="11" rx="2" ry="2"></rect><path d="M7 11V7a5 5 0 0 1 10 0v4"></path></svg><h3 class="font-semibold tracking-tight text-lg">Vaultwarden</h3><p class="text-sm text-muted-foreground">Self-hosted Bitwarden password manager</p></div></div>
|
|
| /guides/infisical |
<div class="rounded-lg border bg-card text-card-foreground shadow-sm h-full hover:shadow-lg transition-shadow cursor-pointer"><div class="flex flex-col space-y-1.5 p-6"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-lock h-8 w-8 text-primary mb-2"><rect width="18" height="11" x="3" y="11" rx="2" ry="2"></rect><path d="M7 11V7a5 5 0 0 1 10 0v4"></path></svg><h3 class="font-semibold tracking-tight text-lg">Infisical</h3><p class="text-sm text-muted-foreground">Open-source secrets management platform</p></div></div>
|
|
| /guides/openbao |
<div class="rounded-lg border bg-card text-card-foreground shadow-sm h-full hover:shadow-lg transition-shadow cursor-pointer"><div class="flex flex-col space-y-1.5 p-6"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-lock h-8 w-8 text-primary mb-2"><rect width="18" height="11" x="3" y="11" rx="2" ry="2"></rect><path d="M7 11V7a5 5 0 0 1 10 0v4"></path></svg><h3 class="font-semibold tracking-tight text-lg">OpenBao</h3><p class="text-sm text-muted-foreground">Open-source secrets management with identity-based encryption</p></div></div>
|
|
| /guides/authentik |
<div class="rounded-lg border bg-card text-card-foreground shadow-sm h-full hover:shadow-lg transition-shadow cursor-pointer"><div class="flex flex-col space-y-1.5 p-6"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-shield h-8 w-8 text-primary mb-2"><path d="M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z"></path></svg><h3 class="font-semibold tracking-tight text-lg">Authentik</h3><p class="text-sm text-muted-foreground">Open-source identity provider with SSO support</p></div></div>
|
|
| /guides/authelia |
<div class="rounded-lg border bg-card text-card-foreground shadow-sm h-full hover:shadow-lg transition-shadow cursor-pointer"><div class="flex flex-col space-y-1.5 p-6"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-shield h-8 w-8 text-primary mb-2"><path d="M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z"></path></svg><h3 class="font-semibold tracking-tight text-lg">Authelia</h3><p class="text-sm text-muted-foreground">SSO & two-factor authentication portal</p></div></div>
|
|
| /guides/zitadel |
<div class="rounded-lg border bg-card text-card-foreground shadow-sm h-full hover:shadow-lg transition-shadow cursor-pointer"><div class="flex flex-col space-y-1.5 p-6"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-shield h-8 w-8 text-primary mb-2"><path d="M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z"></path></svg><h3 class="font-semibold tracking-tight text-lg">Zitadel</h3><p class="text-sm text-muted-foreground">Open-source identity & access management</p></div></div>
|
|
| /guides/keycloak |
<div class="rounded-lg border bg-card text-card-foreground shadow-sm h-full hover:shadow-lg transition-shadow cursor-pointer"><div class="flex flex-col space-y-1.5 p-6"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-shield h-8 w-8 text-primary mb-2"><path d="M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z"></path></svg><h3 class="font-semibold tracking-tight text-lg">Keycloak</h3><p class="text-sm text-muted-foreground">Open-source IAM with SSO, OAuth 2.0, and SAML 2.0</p></div></div>
|
|
| /guides/pihole |
<div class="rounded-lg border bg-card text-card-foreground shadow-sm h-full hover:shadow-lg transition-shadow cursor-pointer"><div class="flex flex-col space-y-1.5 p-6"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-ban h-8 w-8 text-primary mb-2"><circle cx="12" cy="12" r="10"></circle><path d="m4.9 4.9 14.2 14.2"></path></svg><h3 class="font-semibold tracking-tight text-lg">Pi-hole</h3><p class="text-sm text-muted-foreground">Network-wide ad blocking via DNS sinkhole</p></div></div>
|
|
| /guides/blocky |
<div class="rounded-lg border bg-card text-card-foreground shadow-sm h-full hover:shadow-lg transition-shadow cursor-pointer"><div class="flex flex-col space-y-1.5 p-6"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-ban h-8 w-8 text-primary mb-2"><circle cx="12" cy="12" r="10"></circle><path d="m4.9 4.9 14.2 14.2"></path></svg><h3 class="font-semibold tracking-tight text-lg">Blocky</h3><p class="text-sm text-muted-foreground">DNS ad blocker with encrypted resolvers and per-client group policies</p></div></div>
|
|
| /guides/adguard-home |
<div class="rounded-lg border bg-card text-card-foreground shadow-sm h-full hover:shadow-lg transition-shadow cursor-pointer"><div class="flex flex-col space-y-1.5 p-6"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-ban h-8 w-8 text-primary mb-2"><circle cx="12" cy="12" r="10"></circle><path d="m4.9 4.9 14.2 14.2"></path></svg><h3 class="font-semibold tracking-tight text-lg">AdGuard Home</h3><p class="text-sm text-muted-foreground">Self-hosted DNS filtering with ad & tracker blocking</p></div></div>
|
|
| /guides/crowdsec |
<div class="rounded-lg border bg-card text-card-foreground shadow-sm h-full hover:shadow-lg transition-shadow cursor-pointer"><div class="flex flex-col space-y-1.5 p-6"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-shield h-8 w-8 text-primary mb-2"><path d="M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z"></path></svg><h3 class="font-semibold tracking-tight text-lg">CrowdSec</h3><p class="text-sm text-muted-foreground">Crowd-sourced security engine with threat intelligence</p></div></div>
|
|
Внешние ссылки
Кол-во: 7
Ссылки на сторонние сайты
?
Исходящие внешние ссылки передают часть ссылочного веса на чужие сайты. Ссылки на авторитетные ресурсы безопасны; ссылки на мусорные сайты могут навредить репутации страницы.
Внешних ссылок на странице 7 слишком много. Спрячьте лишние ссылки в тег noindex или атрибут rel='nofollow'!
На странице присутствуют ссылки на субдомены 10.
Показать внешние ссылки
| Url | Анкор |
|---|---|
| discord.com |
Join Our Discord
|
| inmotionhosting.com |
InMotion Hosting Dedicated Servers
|
| inmotionhosting.com |
InMotion Hosting Bare Metal
|
| inmotionhosting.com |
Privacy Policy
|
| inmotionhosting.com |
Cookie Policy
|
| inmotionhosting.com |
Data Processing Agreement
|
| inmotionhosting.com |
InMotion Hosting, Inc.
|
Конкуренты Готовность: 0%
Конкуренты в Яндексе
Кол-во: 0
Топ сайтов-конкурентов в Яндексе
?
Сайты, чаще всего появляющиеся в ТОПе Яндекса по запросам из семантического ядра этой страницы.
Мы не нашли у вас конкурентов в Яндексе. Сайт или очень молодой или плохо продвигается.
Конкурентов в ТОП-10 Яндекса не нашлось.
Конкуренты в Google
Кол-во: 0
Топ сайтов-конкурентов в Google
?
Сайты, чаще всего появляющиеся в ТОПе Google по запросам из семантического ядра этой страницы.
Конкуренты в Google тоже не найдены. Займитесь продвижением сайта!
Конкурентов в ТОП-10 Google не нашлось.
ЗоЗПП: права потребителей Готовность: 100%
Нарушения
Не выявлены
Признаков дистанционной продажи товаров (интернет-магазина) не обнаружено — требования ЗоЗПП о раскрытии информации продавца к сайту не применяются. Нарушений нет.
ФЗ-149: рекомендательные технологии Готовность: 100%
Нарушения
Не выявлены
Рекомендательные блоки («с этим покупают», «похожие товары» и т.п.) на сайте не обнаружены — требования ст. 10.7 ФЗ-149 к сайту не применяются. Нарушений нет.
ФЗ-38: реклама Готовность: 100%
Нарушения
Не выявлены
Рекламных тематик с обязательными оговорками (медицина, БАД, кредиты и займы, новостройки) на сайте не обнаружено. Нарушений нет.
ФЗ-436: защита детей Готовность: 100%
Нарушения
Не выявлены
Признаков информационной продукции (новости, видео, книги, игры, курсы) не обнаружено — обязательная возрастная маркировка по ФЗ-436 сайту не требуется. Нарушений нет.
Вердикт
Страница https://ramnode.com/deployment-guides готова к продвижению на 53%. Чтобы еще улучшить страницу и попасть на первые места поисковой выдачи необходимо:
Исправьте ошибки в мета-тегах.
Исправьте ошибки индексации.
Поделитесь с друзьями: