Промышленная автоматическая линия с этапами инженерного пайплайна BUILD, TESTФото: Freek Wolsink / Pexels
← Все подборки Маршрут Bashdays

DevOps и рабочие процессы

CI/CD, инфраструктура, Ansible, пайплайны, рабочие практики и инженерная рутина.

devopscicdansiblepipelineпайплайнworkflowинфраструктура
125 материалов в подборке
О подборке

Подборка про рабочие процессы, инфраструктурные решения и инженерные привычки, которые помогают не утонуть в хаосе.

Сначала новые

Материалы маршрута

Материалов: 125

devops

JSON-логи Nginx в systemd journal

Настраиваем log_format Nginx для структурированных JSON-логов и отправляем access_log и error_log в systemd journal через syslog. Также разбираем параллельную запись в разные форматы для отладки.

soft

Quake Mode в Windows Terminal

Настраиваем выпадающий терминал Quake Mode в Windows Terminal через settings.json. Разбираемся с глобальной клавишей вызова, вкладками, переключением между ними и режимом фокуса.

devops

Зачем DevOps-инженеру изучать GitLab

Почему знание GitLab часто встречается в DevOps-вакансиях и насколько оно переносимо между CI/CD-платформами. Разбираем GitLab Community Edition, пайплайны и важность общей базы вместо привязки к одному инструменту.

workflow

Как кот устроил апгрейд MacBook

Рабочая история о коте, оставленном MacBook и неожиданно дорогих последствиях удалённой работы. Напоминание о том, почему технику и домашних животных лучше не оставлять без присмотра.

devops

Маршрутизация запросов Nginx по HTTP-заголовку

Настраиваем Nginx так, чтобы обычный трафик шёл в основной upstream, а тестировщики попадали на отдельную ноду по заголовку X-Backend. В конфигурации используются map, upstream, proxy_pass и диагностический X-Upstream.

devops

Как называть серверы в инфраструктуре

Авторская схема коротких и понятных имён серверов на примере инфраструктуры в Selectel. Разбираем префиксы проектов, роли инстансов, цифровые индексы и причины не усложнять hostname регионами без необходимости.

linux

Как предупредить и отключить пользователей Linux

Готовим публичный Linux-сервер к техническим работам: блокируем новые входы через /etc/nologin, рассылаем предупреждение командой wall и завершаем пользовательские сессии. Дополнительно рассматриваем write и прямую запись в …

linux

Логирование cron-задач и ротация логов

Показываем, как сохранить стандартный вывод cron-задачи в отдельный файл и настроить его ротацию через logrotate. Такой журнал помогает увидеть внутренние ошибки приложения, которые не попадают в системный лог cron.

workflow

IT-гороскоп на неделю

Ироничный гороскоп для разработчиков, DevOps-инженеров и всех, кто живёт среди коммитов, багов и продакшена. Двенадцать знаков зодиака получают советы о коде, Git, выгорании, автоматизации и пет-проектах.

bash

Как рендерить шаблоны в Bash через envsubst

Создаём шаблон конфигурации nginx и подставляем разные значения для production и stage через envsubst. Сравниваем функцию рендеринга с heredoc и разбираем передачу переменных окружения.

workflow

Как я похудел со 130 до 85 килограммов

Личный опыт постепенного снижения веса со 130 до 85 килограммов без краткосрочной диеты. Автор рассказывает об изменении питания, размере порций, периодах стабилизации веса и безопасном темпе похудения.

security

ED25519 против RSA для SSH

Разбираемся, почему короткий ключ ED25519 не слабее длинного RSA, какие типы SSH-ключей поддерживает OpenSSH и как конвертировать PPK из PuTTYgen. Практические команды для генерации и преобразования ключей.

workflow

Как поддерживать вес после похудения

Личный опыт снижения веса со 130 до 85 килограммов и его дальнейшего контроля. Ежедневное взвешивание, режим питания и сна, физическая нагрузка и наблюдения о колебаниях веса.

bash

Как считывать функциональные клавиши в Bash

Разбираем обработку стрелок, Home, End и F1–F12 в интерактивном Bash-скрипте. Функция GET_KEY переводит многобайтные управляющие последовательности терминала в hexadecimal-коды.

devops

Почему не стоит переделывать чужую инфраструктуру

История о смене DevOps-инженеров, усложнении рабочей инфраструктуры и внезапном переходе на Teleport. Почему новые практики нужно согласовывать, а систему — упрощать без потери доступа владельца.

linux

Удалённый Linux-рабочий стол с GPU

Сравниваем X11 Forwarding и RDP в Docker для удалённой работы с графическими приложениями на Linux-сервере. Разбираем подключение GPU NVIDIA и AMD, необходимые устройства контейнера и безопасный SSH-туннель.

devops

Privileged и обычные контейнеры Docker

Сравниваем privileged и обычные Docker-контейнеры по capabilities, устройствам, сети и изоляции. Выбираем между --cap-add, --device и полным привилегированным режимом.

bash

Как временно сменить каталог в Bash

Три способа выполнить команду в другом каталоге и вернуться обратно: subshell, pushd/popd и cd -. На наглядных примерах сравниваем поведение рабочего каталога Bash.

bash

Как проверить доступ к Git-репозиторию в Bash

Проверяем существование удалённого Git-репозитория и доступ к нему через git ls-remote. Пишем Bash-скрипты для HTTPS и SSH, отключаем интерактивные запросы и возвращаем понятные коды ошибок.

bash

Перезапуск сервиса по длине очереди RabbitMQ

Пишем Bash-скрипт, который проверяет длину очереди RabbitMQ по SSH и перезапускает зависший микросервис при накоплении писем. Разбираем cron, rabbitmqctl, awk и запуск команд от отдельного пользователя.

bash

Подключение к бастиону по хоткею Alt+B

Привязываем SSH-подключение к bastion-серверу к комбинации Alt+B в Bash через функцию и bind -x. Также разбираем псевдотерминал, reset и вариант конфигурации для Zsh.

linux

Автоматический бэкап на USB через udev и systemd

Настраиваем автоматическое монтирование NTFS-диска и запуск резервного копирования на сервере без GUI. Связываем правило udev, mount-юнит и systemd-сервис с выводом статуса на tty1.

bash

Как редактировать команды через Ctrl+X+E

Используем встроенный хоткей Ctrl+X+E для редактирования многострочной команды в Vim, Nano или другом редакторе. Настраиваем переменную EDITOR и разбираем, как Bash выполняет сохранённый временный файл.

self-hosted

Проброс PCI-устройств в Proxmox

Настраиваем IOMMU и PCI passthrough в Proxmox для передачи физических устройств виртуальным машинам. Разбираем параметры GRUB, модули VFIO, изоляцию GPU и проброс диска по стабильному идентификатору.

bash

Терминальная шпаргалка по хоткею в Bash

Создаём всплывающую шпаргалку прямо в терминале без графической оболочки. Используем tput, read, trap и bind, чтобы показывать альтернативный экран по Ctrl+H и закрывать его после отпускания клавиши.

linux

Systemd-таймеры против cron

Сравниваем systemd timers и cron на практическом примере: создаём service и timer, запускаем задачу каждую минуту и включаем автозагрузку. Разбираемся, когда гибкость таймеров оправдана, а когда сотни unit-файлов только усложняют …

linux

Мониторинг RAID и дисков через email

Настраиваем автоматическую проверку SMART и RAID-массива с почтовыми уведомлениями. Используем smartmontools, smartd, mdadm и лёгкий SMTP-клиент msmtp для отправки сообщений о сбоях дисков.

devops

Надёжная схема резервного копирования

Практическая схема резервного копирования с защищённой СХД, внешними дисками и промежуточным сервером. Объясняем чередование носителей, локальные дневные копии и ротацию нумерованных архивов.

bash

Временные метки в истории Bash и Zsh

Добавляем дату и время к истории команд в Bash через HISTTIMEFORMAT и настраиваем цветные метки. Сравниваем history -E, history -i и fc в Zsh и сохраняем удобные настройки оболочки.

devops

Выпадающие переменные в GitLab CI

Настраиваем выпадающие списки Variables при ручном запуске GitLab Pipeline. Разбираем options, YAML anchors, rules для stage и production и подключение общего .gitlab-ci.yml из отдельного проекта.

devops

Как настроить Docker SNAT через Dummy-интерфейс

Разбираемся, почему Docker использует MASQUERADE вместо адреса Dummy-интерфейса, и находим скрытую настройку host_ipv4 в исходниках Moby. Создаём bridge-сеть, которая выполняет SNAT контейнеров через нужный публичный IP.

bash

Консольный справочник по тегам на Bash

Разбираем Bash-скрипт spr.sh — консольный справочник для поиска записей и фрагментов кода по нескольким тегам. Конфигурация хранится в текстовом файле, а фильтрация реализована однострочником awk.

networks

Локальные домены без DNS с nip.io

Показываем, как nip.io преобразует IP-адрес внутри доменного имени и позволяет открывать локальные сервисы без правки /etc/hosts. Проверяем поддомены, порты и выпуск SSL-сертификата для публичного IP.

linux

Как отслеживать изменения в /etc с etckeeper

Etckeeper превращает каталог /etc в Git-репозиторий и помогает отслеживать, фиксировать и откатывать изменения конфигурации Linux. Разбираем установку, удалённый репозиторий, коммиты и автоматизацию через incron.

bash

Стеганография в правах доступа Linux

Прячем ASCII-сообщение в девяти битах прав доступа Linux-файлов. На Bash разбираем сдвиги битов, восьмеричные режимы chmod и кодирование текста последовательностью файлов.

self-hosted

Что я запустил на домашнем Proxmox

Домашний сервер на Proxmox с 11 LXC-контейнерами: Jellyfin, Sonarr, Radarr, Syncthing, Pi-hole и другие сервисы. Рассказываю, как устроена моя компактная self-hosted инфраструктура на мини-ПК.

bash

Как очистить конфиг от комментариев на Bash

Пишем небольшой Bash-парсер, который превращает большой php.ini в компактный шаблон без комментариев и пустых строк. Разбираем чтение файла построчно, continue и регулярные выражения в конструкции [[ =~ ]].

linux

Condition и Assert в systemd

Настраиваем условный запуск systemd-юнитов через ConditionPathExists и другие директивы Condition. Сравниваем пропуск юнита с ошибкой Assert и комбинируем проверки существования и монтирования ресурсов.

devops

Как Docker генерирует имена контейнеров

Разбираемся, откуда берутся случайные имена Docker-контейнеров и как устроен генератор Moby с пасхалкой для Стива Возняка. В конце собираем похожий генератор на Bash и рассматриваем готовые альтернативы.

linux

Как автоматически перемонтировать SSHFS через systemd

Монтируем удалённое хранилище через SSHFS и берём подключение под контроль systemd. Создаём mount-, timer- и service-юниты, которые ждут сеть, проверяют маркерный файл и автоматически перемонтируют шару после сбоя.

workflow

Как готовиться к встречам и не тратить время зря

Практический разбор подготовки к переговорам: повестка, чувства участников, желаемый результат и заранее подготовленные ответы. Заодно проверяем, нужна ли встреча вообще или вопрос быстрее решить текстом.

devops

Как настроить rate limit в Nginx

Настраиваем ограничение запросов в Nginx через limit_req_zone, geo и map. Разбираем размер зоны памяти, параметры rate, burst и nodelay, белый список IP-адресов и возврат HTTP 429 вместо стандартной ошибки 503.

linux

Куда пропало место на диске

Почему df показывает 100% занятого места, а du и ncdu не находят крупные файлы. Разбираю Hidden Space Explorer (hsed) — TUI-утилиту для поиска удалённых, но открытых файлов в Linux, освобождения дискового пространства и …

workflow

Почему HR отказывает после переноса собеседования

Почему рекрутер может снять кандидата с вакансии после просьбы перенести собеседование и как рынок труда влияет на процесс найма. Разбираю инсайд от HR-агентства о массовом отклике, жёстком отборе кандидатов и том, как не потерять …

devops

Безопасность Docker контейнеров. Важные настройки

Разбираем безопасность Docker контейнеров на практике. Security_opt, cap_drop, read_only, pids_limit, запуск не от root, ограничения CPU/RAM, seccomp, privileged и network_mode. Показываю, какие параметры Docker Compose реально …

workflow

Зарплатный даунгрейд с подвохом

Обычно сеньоры бегут на повышение, а я сделал наоборот. Ко мне пришёл парень с ипотекой, детьми и страхом перемен. Вместо того чтобы дрыгаться в поисках жирного оффера на ту же позицию, мы занизили грейд до мидла. И получили …

devops

Termix бесплатный менеджер серверов. Обзор

Я потыкал Termix, бесплатный аналог Termius. И Termix выигрывает в открытости, поддержке SSH туннелей и возможности управлять файлами из браузера. Минусы – нестабильный VNC, странные анимации панели и наверное необходимость ручных …

devops

Управление Docker контейнерами без Portainer и Dockge

У меня на малинке висит целый зоопарк Jellyfin, qBittorrent, Grafana, Prometheus, Uptime Kuma и куча другого. Portainer для таких целей избыточен как космический корабль для поездки в магазин. Да и интерфейс там сделан через жопу …

bash

Почему лишние условия убивают читаемость в Bash

Мне за 30, я видел много скриптов с дьявольскими отрицаниями, и каждый раз хотелось задушить автора. Поэтому я решил написать пост, в котором покажу как превратить кошмарную конструкцию в простой if-else без единого лишнего знака. …

workflow

Кризис в айти 2026 — увольняться или сидеть в болоте

Я расскажу тебе всю правду про нынешний рынок вакансий без соплей и розовых очков. На моих глазах QA ищут по 2000 резюме за неделю, а сеньоры внезапно становятся джунами в глазах рекрутеров. Разберем, стоит ли прыгать в новую …

dev

Как я скрестил WinSCP, Puttygen и CMD на старой винде

Часто слышу, что автоматизировать sftp на Windows XP‑10 невозможно без кучи сторонних утилит. На деле всё проще. Я разобрался, как затащить sftp с ключами на такие системы. Самое смешное — WinSCP пришлось настроить так, чтобы он …

devops

Как перейти с Docker на Podman

Вместе с Романом Шубиным, СТО и автором канала Bash Days, собрали отдельный мини-курс по Podman. Внутри — восемь материалов, которые помогут освоить инструмент с открытым исходным кодом для работы с контейнерами.

devops

Ansible best practice. Жизнь без loop

Признавайся, ты тоже копируешь примеры из документации с loop подряд? Я тоже так делал, пока не обжёгся на продакшене. Один таск с установкой пакетов через loop обновлял репозитории 7 раз подряд. Многие считают, что без loop не …

devops

Секрет ускорения Docker сборки

Дружище, если твой Dockerfile начинается с COPY и только потом npm install, то соболезную. Каждая твоя сборка переустанавливает зависимости заново, хотя они сто лет не менялись. Я сам так делал, пока не понял, что кеш Docker …

security

Массовый SSH‑скан в своей Wi‑Fi сети

Как я поймал скрытый SSH трафик с Android и iPhone через opnSense. Люди до сих пор думают, что угрозы это когда хакер в худи ломает Пентагон. На деле твой смартфон сам бодро шатает чужие SSH порты пока ты листаешь мемы. Я проверил …

dev

Hugo за 30 секунд. Мой пайплайн на Gitea Actions

Мне надоело кормить корпоративных монстров своими данными и ждать пока их джава-скрипты прогрузятся. Gitea встала на мой дохлый сервер как родная и начала летать даже с кривым конфигом. Ты получишь тот же функционал но без слежки …

devops

S3 кластер на Garage, как прикрутить HAProxy

В прошлый раз я тебе показал как собрать S3 кластер из трех серверов на Garage. Теперь самое время накрутить ему балансировщик и SSL сертификат чтобы всё работало как часы даже если одна из нод ляжет спать. В этой части мы ставим …

devops

Свой S3 или пошаговая настройка Garage

Три рандомных сервака, композник и голый opensource — вот мой рецепт собственного S3 облачного хранилища. Garage не просит денег, реплицирует данные на все ноды и переживает падение любого сервера. Инструкция для тех, кто не …

security

Твой сайт — решето! Или как не обосраться

Показываю на реальном примере, как проверить безопасность своего сайта через Mozilla Observatory и почему у тебя, скорее всего, там позорный рейтинг. Разбираем, что означают эти буквы A–F, какие заголовки реально важны и как с …

security

Как превратить DNS-сервер в пушку для DDoS-атаки

Разбираем механику DNS Amplification атак и выясняем, почему использование ANY-запросов превращает твой сервер в инструмент для DDoS. Узнай, как работают векторы усиления трафика и как правильно настроить защиту на BIND и Unbound.

debug

Диагностика проблем 1С через контрольные суммы

Если 1С начинает работать с ошибками и стандартные методы не помогают, причина может быть в повреждённых файлах. В посте показан способ сравнения каталогов с помощью rsync и md5sum. Разбираем, как найти расхождения и подтвердить …

devops

Как добавить переменные в контейнер Podman

Учимся работать с переменными окружения в Podman удобно, гибко и безопасно. Когда мы запускаем контейнер, в большинстве случаев предварительно нужно указать настройки - порт, пароль, режим работы, адрес базы и т. д. Зачастую такие …

devops

Как дебажить Kubernetes и Docker с помощью «тулбоксов»

Любишь Kubernetes и Docker, но дебаг — головная боль? Покажу, как тулбоксы с набором утилит помогают быстро диагностировать проблемы и даже внедрять debug-контейнеры прямо в pod. Работает и на обычном докере!

devops

Получаем SSL сертификат на IP адрес

Если не хочется связываться с доменами, но нужен SSL на IP — вот мой опыт и инструкция, как это сделать с помощью Let's Encrypt и acme.sh. Всё просто и понятно!

linux

Как быстро скачать файл с сервера

Часто нужно быстро скачать файл с сервера, а настроить что-то сложное лень? Я расскажу, как с помощью одной команды Python поднять простой веб-сервер и скачать любой файл за пару секунд.

self-hosted

Домашний почтовый сервер на домене

Недавно решил перенести почтовый сервер к себе домой, чтобы сэкономить пару тысяч в месяц. В статье — как настроить прокси с angie и обойти отсутствие белого IP.

linux

Bind vs Volume в Docker

Если ты тоже путаешься, что лучше — bind или volume, этот пост для тебя. Покажу основные правила и примеры из жизни, чтобы ты не писал дичь и не ломал себе окружение.

self-hosted

Stop Using Pi-Hole – Technitium DNS Is Better

Если ты устал от сложных настроек DNS и хочешь кластер «из коробки», расскажу, как я быстро развернул Technitium DNS с минимальными усилиями.

self-hosted

Хакнем Proxmox. Кластер из 2 нод без кворума

Обходим проблемы кворума в Proxmox. Забудьте о сбоях при потере одной ноды, кластер остаётся живым, а бэкапы проходят без ошибок. Простой способ сделать домашнюю лабораторию надёжной.

workflow

ТЗ — не бюрократия, а страховка от боли

Почему без чёткого технического задания толку от работы мало. Делюсь простыми советами, как составлять ТЗ, чтобы не заблудиться в проекте.

self-hosted

Прощай Helper scripts. Запускаем OCI в Proxmox 9.1

В этом разборе показываю, как в Proxmox 9.1 работает новая нативная поддержка OCI-образов. На примере nginx:latest скачиваем образ из Docker Hub, превращаем его в LXC-контейнер и запускаем без единой команды Docker. Разбираем, как …

self-hosted

Обновляем Proxmox 8 до Proxmox 9 (OCI)

Подробная инструкция по переходу на новую ветку Debian Trixie в Proxmox. Фиксим репы, обновляем ключи, прогоняем pve8to9 и устанавливаем всё, что предлагает система. Даю комментарии по каждому этапу, чтобы апдейт не превратился в …

self-hosted

Управляем Proxmox из терминала

Я нашёл классный TUI-клиент для Proxmox и забыл про браузер. Теперь всё администрирование — пара тычек в терминале.

linux

Load Average на пальцах

Пошаговый разбор Load Average с примерами и советами, чтобы ты всегда знал, когда пора бежать к серверу, а когда можно спокойно пить пиво.

devops

Туалетная бумага по cron’у

Каждый месяц я забывал заказать туалетную бумагу, пока не написал Bash-скрипт, который делает это за меня. В этом посте расскажу, как с реверсом API и cron’ом автоматизировал рутину.

devops

Как работать с Terraform на выделенных серверах

После того, как я выполнял terraform apply, где-то в дата-центре, специально обученный мальчик шёл ножками, читал мой yaml манифест, плакал, собирал руками железный сервер и передавал мне в работу. Сейчас этот процесс полностью …

workflow

Гандоны в огороде

Уроки экономии на технических сервисах. Немного циничный, но честный взгляд на бюджетирование в IT, как не попасть в ловушку «сэкономить и потерять».

security

Шифруем заметки в Obsidian

Выбираем и включаем плагин шифрования в Obsidian, чтоб критичные данные нигде не светились.

workflow

Как на ровном месте попасть в жопу

Неожиданный звонок и разоблачение сотрудника, который решил обмануть систему. Или как айтишная скука переростает в детектив.

workflow

Прокачиваем Избранное в Telegram и делаем CRM

Хочешь навести порядок в своих заметках и полезных ссылках? Я покажу, как с помощью топиков в приватной группе Telegram собрать всё важное и поделиться этим с коллегами.

workflow

Telegram каналы, РКН и метка A+

О том, что реально значит метка A+ и почему не стоит бояться новых правил для блогеров. Всё по-честному и без паники.

workflow

Магнитные бури в айти или den blbec

Den blbec — так чехи могут называть день, когда всё идёт по п***е: ничего не получается, всё валится из рук, кругом факапы и неприятности.

workflow

Интроверты и формула успеха

Если ты интроверт, но хочешь расти — тебе придется учиться разговаривать. Даже если это не твое. Делюсь своим опытом и мотивацией.

workflow

Когда «лайк» уместен или...

Разбираемся с ситуацией, когда в корпоративной переписке можно ставить лайк на входящие сообщения, а когда лучше этого не делать.

workflow

Сервер синхронизации для Taskwarrior

Настраиваем единый сервер синхронизации для TaskWarrior, смотрим решения, которые предлагает официальная документация, крутим гайки, добиваемся желаемого.

workflow

Собираем в кучу Write freely + Picsur + ShareX

Устанавливаем на свой сервер аналог Телеграф/Телетайп, разворачиваем свой Imgur, скрещиваем всё это дело со скриншотилкой ShareX.

workflow

Настройка и работа с Taskwarrior

Готовим taskwarrior к продуктивной работе, избавляемся от лишнего мусора, запиливаем под себя шаблон и алиасы, затачиваем инструмент чисто под себя и свои задачи.

devops

Как я организовал бэкапы баз 1С

Как настроить автоматический бэкап баз 1С Dump на Windows с PostgreSQL и выгрузку на удалённое FTP-хранилище с использованием rsync без стороннего софта.

workflow

Вайб-кодинг

Проверяю «вайб-кодинг», экономлю 150к рублей и 2 месяца разработки.

devops

Ставим SelectOS в облако

В этой статье я шаг за шагом показываю, как установить SelectOS «с нуля» — прямо из ISO-образа — в облаке Selectel. Рассказываю, с какими трудностями столкнулся (от нехватки памяти до проблем с сетью), и как их обошёл. Подойдёт …

linux

SelectOS в деле

Я решил попробовать поднять GitLab CE на SelectOS без всяких Docker’ов — в лоб, как есть. Завёл раннеры, погонял CI и нагрузку, SelectOS тащит!

workflow

Тренажёр для технических собеседований

Довольно часто сталкиваюсь с вопросом от ребят — вот бы с кем-нибудь пройти интервью/собес... Раньше бы я ответил так — ну дак пройди, накидай откликов, согласуй интервью да и сходи. Делов то.

linux

Пробуем SelectOS

Проникаемся новой операционной системой SelectOS на базе Debian, тыкаем в реальных условиях, смотрим фишки и фичи. Пробуем установить базовый софт и провести нагрузочное тестирование.

devops

Управления версиями Terraform, Terragrunt, OpenTofu, Atmos.

Привет, один из наших подписчиков попросил анонсировать его пепяку. Она уже пролетала в gitgate, но ничего страшного, пусть и тут полежит. Тем более штука маст-хэвная. Если кратко, TENV это консольный менеджер для управления …

bash

Подводные камни в Bash №7

Он считает, сколько строк в файле bar.txt содержат слово foo. Здесь главная проблема — переменная count не изменится вне цикла while, потому что в Bash каждая команда в пайплайне (|) запускается в отдельной оболочке (subshell). То …

bash

Подводные камни в Bash №4

Это ошибочный вариант, бэд мать его практика. Команда cd $(dirname "$f") должна вернуть путь к папке, где лежит файл.

workflow

Сломал? Почини сам!

Представь: ты работаешь в компании единственным специалистом в своей роли. Ты что-то закоммитил, прод у***лся — с кого спросят и кто должен исправлять последствия?

workflow

На каком движке работает этот блог

Вчера после статьи про CrowdSec много ребят обратились с вопросом — мужик, а чё за движок такой у твоего блога? Отвечу сразу всем. Это не движок, это статика. И сделана она при помощи фреймворка MKDocs + Material.

devops

Пайплайн для деплоя mkdocs средствами gitea

Такс, как и обещал притаранил тебе рабочий пайплайн для авто деплоя mkdocs через gitea. Чтобы всё это заработало, в проекте тебе нужно создать структуру:

bash

И на старуху бывает проруха

Сегодня решил поделиться отрицательным опытом. Код, приведенный в статье лучше не использовать. У меня возникла необходимость распарсить файл типа: