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

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

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

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

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

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

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

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

devops

Как добавить готовый проект в пустой GitLab-репозиторий

Два способа перенести существующий локальный проект в пустой репозиторий GitLab: клонирование и перенос файлов либо настройка Git прямо в каталоге проекта. Команды git init, git remote и git push, а также типичные ошибки при …

Фото: cottonbro studio / Pexels
workflow

Почему задачи в Slack теряются без таск-трекера

Личный опыт постановки задач через сообщения в Slack: как срочные поручения теряются среди переписки и почему контекст пропадает. Автор объясняет, зачем руководителю ставить задачи в Jira или другой таск-трекер.

Фото: Jakub Zerdzicki / Pexels
dev

Почему не стоит вылизывать код до идеала

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

Фото: Roxanne Minnish / Pexels
linux

Зачем ограничивать PATH в Linux

Минимальный глобальный PATH снижает риск запуска программ из неожиданных каталогов и делает автоматизацию предсказуемее. Разбираем настройку через Ansible, применение в CI/CD и проверку доступности curl в чистом окружении.

Фото: Dirk Schuneman / Pexels
devops

Как не выставить порты Docker наружу

Привязка опубликованных портов Docker Compose к 127.0.0.1 закрывает прямой доступ к контейнеру извне, но оставляет его доступным для локального Nginx. Разбираем безопасный ports binding на примере Gitea и альтернативу с Traefik.

Фото: Ann H / Pexels
devops

Как настроить алиасы Git для быстрых коммитов

Автоматизируем повторяющуюся цепочку git add, commit и push с помощью shell-алиаса и встроенных алиасов Git. В статье есть готовая команда с датой коммита и набор сокращений для повседневной работы.

Фото: ThisIsEngineering / Pexels
soft

Как перейти с VS Code на Vim

Личный взгляд на переход с VS Code на Vim без толстых книг и бесконечных тренажёров. Почему реальная работа, возникающие вопросы и постепенная настройка редактора дают больше, чем изучение Vim в отрыве от практики.

Фото: Tima Miroshnichenko / Pexels
bash

Как управлять переменными окружения через direnv

Настраиваем direnv для автоматической загрузки и выгрузки переменных окружения при переходе между каталогами проектов. Устанавливаем hook для Bash, разрешаем .envrc и проверяем изоляцию переменной FOO на практике.

Фото: Arina Krasnikova / Pexels
devops

Какие команды Git нужны DevOps-инженеру

Практический минимум Git для DevOps-инженера без погружения в редкие команды и сложную теорию. Разбираем clone, pull, commit, push, checkout, ветки и типичный рабочий процесс с GitLab или GitHub.

Фото: Daniil Komov / Pexels
devops

Почему proxy_pass в Nginx ломает путь к Flask

Разбираем, почему Flask возвращает Not Found при проксировании приложения через location /app в Nginx. На конкретной конфигурации показываем, как завершающий слэш в proxy_pass меняет путь запроса и устраняет ошибку маршрутизации.

Фото: Sérgio Souza / Pexels
linux

Timer path и socket три скрытых юнита systemd

Три практических механизма systemd для задач по расписанию, наблюдения за файлами и запуска сервисов по подключению. Примеры юнитов timer, path и socket помогают заменить cron, inotify-tools и постоянно работающие службы.

Фото: Annushka Ahuja / Pexels
devops

Как масштабировать GitLab Runner без вреда продакшену

Практическая схема размещения GitLab Runner на отдельных серверах без лишней нагрузки на продакшен. Разбираем общие теги, балансировку заданий, регистрацию нескольких раннеров и деплой по SSH.

Фото: Cristian Camilo Estrada / Pexels
workflow

Как разгрузить голову с помощью листа бумаги

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

Фото: Murad Khan / Pexels
bash

Конфиг-агент на Bash для восстановления Nginx

Собираем минимальный конфиг-агент на Bash, который синхронизирует эталонные настройки Nginx из Git. Скрипт с cron, rsync и systemctl автоматически восстанавливает конфиги и перезагружает сервис только при изменениях.

Фото: Omar Ashraf / Pexels
devops

Бас-фактор как инструмент влияния в DevOps

Авторский взгляд на бас-фактор, внедрение новых инфраструктурных процессов и передачу знаний внутри DevOps-команды. История показывает, как экспертиза даёт влияние и почему документация всё равно остаётся необходимой.

Фото: Engin Altundağ / Pexels
workflow

Как интроверту научиться договариваться

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

Фото: Matheus Bertelli / Pexels
devops

Как не волноваться на собеседовании в DevOps

Авторский разбор собеседований в DevOps: финансовая подушка, подготовка по требованиям вакансии, честные ответы и вопросы работодателю. Отдельно обсуждаем роль HR и причины, по которым сильные кандидаты не доходят до технической …

Фото: Tima Miroshnichenko / Pexels
devops

Как проверить DevOps-инженера аварией на тестовом продакшене

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

Фото: Panumas Nikhomkhai / Pexels
devops

Почему DevOps-инженеру стоит настраивать серверы без панелей

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

Фото: Bulat843 / Pexels
workflow

Почему годовые премии демотивируют сотрудников

Личный опыт показывает, как непредсказуемые годовые премии влияют на мотивацию и атмосферу в команде. Разбираем, почему прозрачные правила вознаграждения важнее разовых выплат и неопределённых обещаний.

Фото: Jakub Zerdzicki / Pexels
security

SSH-сертификаты для доступа к сотням серверов

Настраиваем собственный центр сертификации SSH, чтобы управлять доступом к сотням серверов без ручного обновления authorized_keys. Разбираем доверие к CA, подпись пользовательских ключей, сроки действия сертификатов и их отзыв.

Фото: Markus Spiske / Pexels
soft

Taskwarrior для задач прямо в терминале

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

Фото: Jakub Zerdzicki / Pexels
devops

Как автоматически получать SSL-сертификаты в Angie

Настраиваем встроенный ACME-клиент Angie для автоматического получения и продления SSL-сертификатов Let’s Encrypt. Устанавливаем веб-сервер, добавляем домен, резервные сертификаты и проверяем конфигурацию без certbot и acme.sh.

Фото: Bulat843 / Pexels
security

Как восстановить доступ после потери приватного SSH-ключа

Семь практических сценариев восстановления доступа к серверу после потери приватного SSH-ключа. Рассматриваем парольный вход, KVM и IPMI, резервную рабочую машину, Rescue Mode и автоматизацию через Ansible или AWX.

Фото: Esra Erdem / Pexels
devops

Как не надо внедрять Kubernetes

История внедрения Kubernetes ради моды на примере корпоративного WordPress: быстрый старт, нестабильная база, инциденты и неизбежная переделка. Разбираем, почему оркестратор нужен не каждому проекту и как практический эксперимент …

Фото: Alex Levis / Pexels
devops

Как отлаживать Docker-контейнер, который не запускается

Собираем намеренно сломанный образ Nginx и последовательно отлаживаем Docker-контейнер, который сразу завершается. Используем docker ps, logs, inspect, exec, cp и dive, чтобы найти ошибку в конфигурации, проверить слои и …

Фото: Gustavo Fring / Pexels
workflow

Почему статус-кво мешает внедрять новые технологии

Разбираемся, почему пользователи и инженеры сопротивляются изменениям даже тогда, когда новое решение объективно эффективнее. На примерах технологий, продукта и A/B-тестов смотрим, когда статус-кво тормозит развитие, а когда …

Фото: James Wheeler / Pexels
soft

tig показывает историю Git в терминале

Консольный интерфейс tig помогает просматривать историю Git, состояние репозитория, изменения отдельных блоков и результаты поиска. Утилита устанавливается одной командой и дополняет нативные команды Git.

Фото: Aadi Photography / Pexels
devops

Как обойти Verify my account для GitLab Runner

GitLab может потребовать проверку учётной записи перед запуском пайплайнов на общих раннерах. Отключаем instance runners в настройках проекта, регистрируем локальный runner и продолжаем запускать CI/CD.

Фото: El gringo photo / Pexels
dev

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

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

Фото: Marian Cosnete / Pexels
linux

CLI Exercises — 77 задач по Linux-терминалу

CLI Exercises — интерактивный тренажёр с 77 заданиями по командной строке Linux, подсказками и несколькими вариантами решений. Показываю установку в отдельное Python-окружение через venv и запуск одной командой.

Фото: Mikhail Nilov / Pexels
devops

goManageDocker управляет Docker из терминала

goManageDocker добавляет текстовый интерфейс для управления образами, контейнерами и томами Docker без длинных команд. Инструмент устанавливается одной shell-командой и подходит для локальных пет-проектов.

Фото: Bulat843 🌙 / Pexels
games

Rick & Morty BASH Quest для практики командной строки

Rick & Morty BASH Quest превращает базовые команды Linux в браузерный текстовый квест. Чтобы найти Саммер и Рика, придётся перемещаться между порталами, читать подсказки и пользоваться ls, cd, cat, pwd и man.

Фото: Anastasia Shuraeva / Pexels
devops

Status Page для мониторинга Angie

Пакет angie-console-light добавляет веб-панель со статистикой HTTP, TCP, DNS и кешей Angie. Показываем установку пакета, конфигурацию location и обязательную защиту страницы через Basic Auth.

Фото: Sergey Sergeev / Pexels
devops

Полные логи Docker Build без перерисовки

Параметр --progress=plain отключает динамическую перерисовку вывода Docker BuildKit и сохраняет весь лог сборки на экране. То же поведение можно включить переменной окружения BUILDKIT_PROGRESS.

Фото: Samuel Wölfl / Pexels
bash

cdspell и autocd в Bash

Две встроенные опции Bash упрощают навигацию по каталогам: cdspell исправляет небольшие ошибки в путях, а autocd позволяет переходить в директорию без команды cd. Показываем работу обеих функций на коротких примерах.

Фото: fauxels / Pexels
bash

Автоматическая перезагрузка Linux после обновлений

Однострочник для автоматического обновления Debian или Ubuntu и перезагрузки только при появлении /var/run/reboot-required. Подход пригодится в самописных установочных скриптах без Ansible и Puppet.

Фото: energepic.com / Pexels
devops

Как нельзя чистить логи MySQL в продакшене

История аварии MySQL после ручного удаления файлов из var/mysql без остановки базы. Разбираемся, почему ibdata1 нельзя принимать за обычный лог и как подобные действия превращают пятничный вечер в восстановление продакшена.

Фото: Kaboompics.com / Pexels
devops

Как восстановить Dockerfile из образа с Dedockify

Dedockify анализирует историю Docker-образа и формирует приближённый Dockerfile, сокращая ручную работу при реверсе контейнеров. Показываем запуск через Docker и удобный alias для повторного использования.

Фото: Ivan S / Pexels
self-hosted

Dockge как лёгкая альтернатива Portainer

Dockge предлагает простой веб-интерфейс для управления Docker Compose без перегруженности Portainer. В материале — возможности проекта, готовый compose-файл, работа с логами, .env и встроенной консолью контейнеров.

Фото: Jonas F / Pexels
linux

Как найти, что заняло диск, с помощью ncdu

ncdu помогает быстро найти каталоги и файлы, занявшие дисковое пространство на Linux-сервере. Разбираем запуск утилиты, навигацию по дереву размеров, удаление ненужных данных и установку в популярных системах.

Фото: Marta Branco / Pexels
linux

Suicide Linux: одна ошибка — и система удалена

Suicide Linux запускается в Docker с корнем хоста и удаляет систему после первой ошибочной команды. Опасный эксперимент допустим только в одноразовой изолированной лаборатории.

Фото: Ann H / Pexels
devops

Как редирект с тестового сервера помог сломать прод

Тестовая админка после сохранения формы перенаправила авторизованного менеджера на основной домен. Разбираем, как незаметное переключение окружения привело к действиям на проде.

Фото: Benjamin Farren / Pexels
devops

Как сверить отпечаток SSH-ключа в GitLab

Команда ssh-keygen помогает понять, тот ли приватный SSH-ключ использует GitLab Runner. Получаем MD5-отпечаток, сравниваем его с GitLab или GitHub и исправляем ошибку доступа к приватному репозиторию.

Фото: Towfiqu barbhuiya / Pexels
devops

Kubernetes на минималках с K3s

Пошаговая установка однонодового Kubernetes-кластера K3s на одной виртуальной машине с 2 vCPU и 2–4 ГБ RAM. Настраиваем kubectl, запускаем Deployment и Service, разбираем ограничения K3s по сравнению с kubeadm и экономим ресурсы …

Фото: Craig Dennis / Pexels
devops

Bombardier и stress для нагрузочного тестирования

Практический набор команд для генерации HTTP-трафика и нагрузки на процессор, память и диск. Bombardier и stress помогают проверить графики Prometheus, алерты Alertmanager и поведение сервера при нехватке ресурсов.

Фото: AlphaTradeZone / Pexels
bash

Как хранить crontab в Git

Простой способ хранить задания crontab в Git и автоматически раскатывать их на серверы без Ansible или Puppet. Скрипт забирает файл supercron из репозитория и целиком импортирует его в пользовательский crontab.

Фото: Alicia Christin Gerald / Pexels
workflow

Три дня со сплит-клавиатурой Phenom

Личный опыт перехода на сплит-клавиатуру Phenom после трёх дней работы без запасной мыши и привычной раскладки. Рассказываю про мышечную память, слои RuEn, кейкапы, трекбол и связку с оконным менеджером niri.

Фото: FOX ^.ᆽ.^= ∫ / Pexels
workflow

Тюленинг вместо Pomodoro

Антипродуктивная практика «Тюленинг» переворачивает метод Pomodoro: пять минут работы и тридцать минут отдыха. Личный эксперимент показывает, как скука иногда запускает короткий и очень интенсивный рабочий рывок.

Фото: Vlada Karpovich / Pexels
workflow

Как жить с грыжей спины айтишнику

Личный опыт айтишника после МРТ, обнаружившего грыжу и протрузию поясничного отдела. Вопросы о ремиссии, ЛФК, укреплении мышц и поиске проверенной практики у людей с похожим опытом.

Фото: Kampus Production / Pexels
linux

local0–local7 для разделения логов

Разбираем syslog facility local0–local7 и отделяем логи приложений от системных сообщений auth, daemon, mail и kern. Показываем пример на Python, настройку rsyslog и практическую схему категорий.

Фото: Maria Orlova / Pexels
linux

Как ускорить APT с eatmydata

Ускоряем установку пакетов APT с помощью eatmydata и сравниваем время переустановки Midnight Commander. Объясняем отключение fsync, fdatasync, flock и msync, а также риски для целостности данных.

Фото: Binoy Y S / Pexels
devops

Очистка старых бэкапов в S3 через rclone

Настраиваем автоматическое удаление старых резервных копий из S3-совместимого хранилища по протоколу Swift. Показываем команду rclone delete, конфигурацию Selectel, параметр --min-age и очистку пустых каталогов.

Фото: Jakub Zerdzicki / Pexels
devops

Чем ЦОД похож на дачу

Сравниваем охлаждение дата-центра и обычного дачного участка через чиллеры, кондиционеры и деревья. История о наборе дачника Selectel, природном free cooling и акции по высадке леса.

Фото: Andrey Matveev / Pexels
linux

Исполняемый Perl-код в ASCII-арте

Модуль Acme::EyeDrops превращает Perl-программу в ASCII-арт, который остаётся исполняемым кодом. Показываем запуск такого файла и обратное преобразование через B::Deparse.

Фото: Daniil Komov / Pexels
devops

Как SRE-инженеры справляются со страхом аварий

Авторский рассказ о стрессе SRE-инженера во время серьёзной аварии и о том, как опыт меняет реакцию на хаос. Почему пауза, спокойное принятие ситуации и обдуманное решение полезнее суеты.

Фото: Inkverse Store / Pexels
workflow

Почему отпуск не спасает от выгорания

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

Фото: Cup of Couple / Pexels
devops

Как выбрать сильного DevOps-инженера

Авторская рекомендация DevOps-инженера с акцентом на самостоятельность, глубокий troubleshooting, документацию и умение быстро осваивать технологии. В стеке кандидата — Ansible, GitLab, Docker, HashiCorp, YAML и CI/CD pipeline.

Фото: Resume Genius / Pexels
devops

Одна SSH-сессия для deploy pipeline

Объединяем несколько команд деплоя в одну SSH-сессию внутри GitLab CI pipeline. Многострочный YAML-блок с heredoc снижает риск упереться в MaxSessions или Fail2ban и делает сценарий развёртывания читаемее.

Фото: cottonbro studio / Pexels
devops

Очистка GitLab Container Registry

Настраиваем Cleanup Policies в GitLab Container Registry: расписание очистки, защищённые теги, регулярные выражения и возраст образов. Дополнительно рассматриваем удаление через UI, API, regclient, docker-gc и …

Фото: Anete Lusina / Pexels
devops

Почему обновления GitLab превращаются в боль

Эмоциональный разбор эксплуатации self-hosted GitLab: частые обновления, ручные миграции, переход через промежуточные версии и риск поломки pipeline. Почему перед апдейтом приходится поднимать клон сервера и выбирать ночное окно …

Фото: Nataliya Vaitkevich / Pexels
bash

Условный параметр platform для ARM64 в pipeline

Разбираем, как условно добавлять параметр --platform linux/arm64 в Docker-команду внутри pipeline. Сравниваем Bash-конструкцию [[ ]] и POSIX-совместимый вариант с [ ], чтобы один сценарий работал на разных архитектурах.

Фото: Jonathan Borba / Pexels
devops

Автоматические бэкапы PostgreSQL с уведомлениями

Bash-скрипт для автоматического создания дампов PostgreSQL через pg_dump, логирования результата и отправки уведомлений в Telegram. Дополнительно настраиваем очистку старых файлов через find и cron.

Фото: Jakub Zerdzicki / Pexels
workflow

Ты сам себе Дед Мороз

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

Фото: AI25.Studio Studio / Pexels
bash

Как Bash-скрипту определить запуск в контейнере

Проверяем из Bash, работает скрипт на хосте или внутри Docker-контейнера. Рассматриваем файл /.dockerenv, проверку процесса kthreadd через /proc/2/status и сохранение изменённого контейнера командой docker commit.

Фото: Joni Tuohimaa / Pexels
devops

Как устроено обучение в Linux Factory

Разбираем формат обучения в Linux Factory для будущих DevOps-инженеров: более 40 уроков и домашних заданий, Docker, Git, пайплайны, мониторинг и Infrastructure as Code. Внутри — личное наставничество, код-ревью, свободный темп и …

Фото: Yan Krukau / Pexels
workflow

Технический конкурс с баланс-бордом

Условия авторского конкурса технических статей: самостоятельный материал, публикация в формате канала и выбор победителей по реакции аудитории. Главный приз — баланс-борд, дополнительные места получают денежные награды.

Фото: Kseniia Lopyreva / Pexels
linux

Три буфера обмена в Linux

Разбираемся, чем в Linux отличаются Clipboard, Primary Selection и внутренний буфер приложения. На практическом примере проверяем копирование и вставку через Ctrl+Shift+C, среднюю кнопку мыши, Ctrl+W и Ctrl+Y.

Фото: Markus Winkler / Pexels
devops

Как восстановить Dockerfile из готового образа

Восстанавливаем логику сборки Docker-образа, когда исходный Dockerfile потерян или недоступен. Используем docker history и ключ --no-trunc, изучаем слои через Dive, извлекаем файлы командой docker cp и проверяем образ с помощью …

Фото: SpaceX / Pexels
self-hosted

Как поднять свой аналог Heroku с Dokploy и Coolify

Разбираемся, как работают self-hosted PaaS-платформы и чем Dokploy и Coolify могут заменить Heroku на собственном сервере. Рассматриваем сборку приложений из Git, запуск контейнеров, маршрутизацию трафика и место таких решений …

Фото: Coral Grandbois / Pexels
workflow

Ответы на вопросы о наставничестве Linux Factory

Краткий FAQ о формате наставничества Linux Factory: разбор резюме, помощь с поиском работы, текстовое общение вместо созвонов и возраст при смене профессии. Объясняем, когда начинается работа над резюме и как устроена рекомендация …

Фото: Leeloo The First / Pexels
bash

Как форматировать Bash-скрипты с shfmt

Знакомимся с shfmt — форматтером и синтаксическим анализатором shell-скриптов для POSIX, Bash и mksh. Показываем базовый запуск, перезапись файла ключом -w и применение инструмента перед публикацией кода в открытых репозиториях.

Фото: Marian Florinel Condruz / Pexels
devops

Зачем в Nginx используют server_name _

Разбираемся, зачем в конфигурации Nginx указывают server_name _ и как обрабатываются запросы с неизвестным Host. Сравниваем соглашение с подчёркиванием и параметр default_server, а также показываем заглушку с кодом 444.

Фото: David McElwee / Pexels
bash

Как менять регистр ASCII одним битом

Разбираем двоичное представление букв ASCII и отличие верхнего регистра от нижнего в шестом бите. Меняем регистр через XOR и сравниваем подход со встроенными конструкциями Bash.

Фото: Markus Spiske / Pexels
networks

Как преобразовать диапазон IP в CIDR через ipcalc

Используем whois и ipcalc для определения сетей владельца IP-адреса и преобразования диапазонов NetRange или inetnum в CIDR. Готовим подсети для правил iptables и проверяем результат на практических примерах.

Фото: Lara Jameson / Pexels
networks

Как сократить SPF-запись с помощью CIDR

Разбираемся с ограничениями длины SPF-записи и количеством DNS-запросов при её проверке. Заменяем длинный перечень IP-адресов сетями CIDR, проверяем запись валидатором и наблюдаем результат через DMARC.

Фото: Miguel Á. Padriñán / Pexels
bash

Как проверять код через pre-commit

Настраиваем Git-хук pre-commit для автоматической проверки Bash-скриптов через ShellCheck. В качестве бонуса адаптируем тот же подход для Ansible-плейбуков и ansible-lint.

Фото: Jakub Zerdzicki / Pexels
services

Как создать учётную запись GitLab из России

Пошаговый способ зарегистрировать новую учётную запись GitLab из России через постоянный ящик Putsbox и Tor Browser. Разбираем подтверждение почты, повторную верификацию и альтернативу в виде локального GitLab.

Фото: Ron Lach / Pexels
workflow

Как не сломаться на абсурдном собеседовании

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

Фото: Tima Miroshnichenko / Pexels
workflow

Как управлять dotfiles через chezmoi

Знакомимся с chezmoi для управления `.bashrc`, `.vimrc`, `.gitconfig` и другими dotfiles на нескольких устройствах. Добавляем и редактируем конфиги, смотрим diff, восстанавливаем файлы и синхронизируем репозиторий через Git.

Фото: Mikhail Nilov / Pexels
bash

Как синхронизировать историю Bash между терминалами

Настраиваем общую историю команд Bash для нескольких одновременно открытых терминалов. Разбираем `history -a/-c/-r`, `histappend`, `HISTCONTROL` и `PROMPT_COMMAND`, чтобы новые команды сразу появлялись во всех сессиях.

Фото: Kindel Media / Pexels
workflow

Почему кубик Рубика не проверяет навыки бэкендера

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

Фото: Tima Miroshnichenko / Pexels
bash

Горячие клавиши Bash для работы в терминале

Подборка полезных горячих клавиш Bash для навигации, редактирования команд, поиска по history и управления терминалом. Разбираем сочетания Ctrl и Alt, которые помогают быстрее работать в командной строке.

Фото: Soumil Kumar / Pexels
workflow

Как Selectel подарил мне баланс-борд

История неожиданной посылки от Selectel с баланс-бордом, приглашением на Day-Off и отсылками к облачной инфраструктуре. Распаковка подарка, фотографии комплекта и впечатления DevOps-инженера.

Фото: Tima Miroshnichenko / Pexels
devops

Как включить Container Registry в self-hosted GitLab

Включаем Container Registry в self-hosted GitLab через gitlab.rb и разбираемся, почему одного переключателя registry_enabled недостаточно. Настраиваем интеграцию Let’s Encrypt, выполняем reconfigure и проверяем запуск реестра …

Фото: panumas nikhomkhai / Pexels
workflow

Как учитывать эмоции на переговорах

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

Фото: MART PRODUCTION / Pexels
devops

Почему серверные диски надёжнее обычных

Сравниваем вероятность неисправимых ошибок чтения у WD Blue, WD Gold, SAS Toshiba и SSD Micron. Объясняем, почему RAID не всегда защищает от повреждённых данных и как контрольные суммы ZFS помогают обнаруживать ошибки.

Фото: Josh Moodley / Pexels
devops

Как безопасно перенести Docker-образы к себе

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

Фото: Wolfgang Weiser / Pexels
linux

Как перенести временные файлы на отдельный диск

Переносим каталог /tmp с корневого раздела или tmpfs на отдельный диск через systemd mount unit. Правильно именуем tmp.mount, указываем UUID файловой системы, сохраняем sticky bit 1777 и проверяем новое монтирование.

Фото: Anete Lusina / Pexels
linux

Как узнать число процессорных ядер в Linux

Сравниваем три способа узнать число доступных процессорных ядер в Linux: /proc/cpuinfo, getconf и nproc. Используем результат в Bash-скрипте для обновления worker_processes и безопасной перезагрузки Nginx.

Фото: ed br / Pexels
devops

Как хранить большие файлы в Git LFS

Разбираемся, почему тяжёлые бинарники не стоит хранить прямо в Git-репозитории и как вынести их в Git LFS. Настраиваем LFS в Gitea, подключаем git-lfs и отслеживаем отдельные файлы или целые группы по маске.

Фото: Nicolas Foster / Pexels
bash

Почему самоучитель по Bash не получился в Markdown

Практический опыт подготовки большого самоучителя по Bash сначала в Markdown и Pandoc, а затем в LibreOffice. Разбираем ограничения таблиц, кириллицы, UTF-символов и PDF-вёрстки, которые стали заметны после девятнадцати глав.

Фото: Ron Lach / Pexels
bash

Автозакрытие скобок и кавычек в Bash

Настраиваем Bash Readline так, чтобы кавычки, круглые, квадратные и фигурные скобки автоматически закрывались прямо в терминале. Разбираем bind, inputrc, режим emacs и возможные конфликты горячих клавиш.

Фото: Matheus Bertelli / Pexels
self-hosted

Как я собрал Proxmox-лабораторию из старого ПК

Личный опыт сборки домашней Proxmox-лаборатории из старого мини-ПК на GA-B75N. Апгрейд до i7-3770, 16 ГБ памяти, запасной блок питания и практические выводы после отказа китайского мини-сервера.

Фото: Tima Miroshnichenko / Pexels
devops

Crane для работы с контейнерными образами

Практическое знакомство с Crane для работы с контейнерными образами без Docker-клиента. Копируем образы между реестрами, экспортируем файлы, сравниваем конфигурации, считаем размер и меняем метки без повторной сборки.

Фото: Wolfgang Weiser / Pexels
bash

Как автоматизировать ответы командой yes

Разбираем Linux-команду yes для автоматической передачи подтверждений в интерактивные программы. Показываем работу через пайп, произвольные ответы и отправку пустой строки для имитации Enter в скриптах и пайплайнах.

Фото: Tara Winstead / Pexels
devops

Как сократить расходы на тестовую инфраструктуру

Практический кейс сокращения расходов на десятки серверов тестовой инфраструктуры. Переносим стенды в Yandex Cloud, автоматически выключаем их ночью и в выходные, а бот учитывает активность тестировщиков и метрики Prometheus.

Фото: Alesia Kozik / Pexels
workflow

Как я полностью отказался от алкоголя

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

Фото: Mikhail Nilov / Pexels
devops

Прерываемые серверы Selectel для тестовых стендов

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

Фото: Brett Sayles / Pexels
bash

ASCII и UTF-8 в Bash через printf

Используем printf для получения кодов символов в шестнадцатеричной, восьмеричной и десятичной системах. Проверяем влияние LC_ALL на UTF-8 и сохраняем форматированный результат в переменную.

Фото: Markus Spiske / Pexels
workflow

Как проводить собеседование без подсказок ИИ

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

Фото: Sora Shimazaki / Pexels
soft

Как совместить Obsidian и Vim

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

Фото: cottonbro studio / Pexels
devops

JSON-логи Nginx в systemd journal

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

Фото: Adventure Studio / Pexels
soft

Quake Mode в Windows Terminal

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

Фото: Srattha Nualsate / Pexels
devops

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

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

Фото: EqualStock IN / Pexels
workflow

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

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

Фото: DUONG QUÁCH / Pexels
devops

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

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

Фото: Brett Sayles / Pexels
devops

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

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

Фото: SHVETS production / Pexels
linux

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

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

Фото: Pressmaster / Pexels
linux

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

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

Фото: Mikhail Nilov / Pexels
workflow

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

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

Фото: Jason Pittman / Pexels
bash

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

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

Фото: Marina Zvada / Pexels
workflow

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

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

Фото: Julia Larson / Pexels
security

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

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

Фото: Артем Зелюткин / Pexels
devops

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

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

Фото: Brett Sayles / Pexels
linux

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

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

Фото: Andrey Matveev / Pexels
bash

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

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

Фото: Pavel Danilyuk / Pexels
bash

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

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

Фото: Kürşad Ç. / Pexels
self-hosted

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

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

Фото: Jonathan Borba / Pexels
bash

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

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

Фото: John Petalcurin / Pexels
linux

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

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

Фото: Kofi Nartey / Unsplash
linux

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

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

Фото: panumas nikhomkhai / Pexels
devops

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

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

Фото: Aleksander Dumała / Pexels
bash

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

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

Фото: Mikhail Nilov / Pexels
devops

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

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

Фото: Nemuel Sereti / Pexels
devops

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

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

Фото: Brett Sayles / Pexels
bash

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

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

Фото: Tima Miroshnichenko / Pexels
networks

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

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

Фото: Adem Percem / Pexels
linux

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

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

Фото: João Jesus / Pexels
bash

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

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

Фото: Magda Ehlers / Pexels
bash

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

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

Фото: RDNE Stock project / Pexels
linux

Condition и Assert в systemd

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

Фото: MART PRODUCTION / Pexels
devops

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

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

Фото: Tima Miroshnichenko / Pexels
linux

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

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

Фото: Nothing Ahead / Pexels
workflow

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

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

Фото: MART PRODUCTION / Pexels
linux

Как запускать команды на нескольких серверах через PSSH

Используем пакет PSSH для параллельного запуска команд и копирования файлов на группу Linux-серверов. Настраиваем SSH-ключи и файл инвентаря, работаем с parallel-ssh, parallel-scp, prsync, pnuke и pslurp.

Фото: RDNE Stock project / Pexels
devops

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

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

Фото: Abdulaziz hasan / Pexels
linux

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

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

Фото: Usman AbdulrasheedGambo / Pexels
workflow

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

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

Фото: QUI NGUYEN / Pexels
devops

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

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

Фото: Bùi Hoàng Long / Pexels
workflow

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

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

Фото: Kaue Barbier / Pexels
devops

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

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

Фото: panumas nikhomkhai / Pexels
devops

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

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

Фото: Simon R. Minshall / Pexels
bash

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

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

Фото: Emrah Tolu / Pexels
workflow

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

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

Фото: Kris Møklebust / Pexels
dev

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

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

Фото: Nicolas Foster / Pexels
devops

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

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

Фото: Alex Levis / Pexels
devops

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

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

Фото: Maksim Goncharenok / Pexels
devops

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

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

Фото: Willians Huerta / Pexels
security

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

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

Фото: Ricky Esquivel / Pexels
dev

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

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

Фото: Frans van Heerden / Pexels
devops

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

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

Фото: LUNA LUNA / Pexels
devops

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

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

Фото: K / Pexels
security

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

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

Фото: Stephen Andrews / Pexels
security

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

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

Фото: RDNE Stock project / Pexels
debug

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

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

Фото: cottonbro studio / Pexels
devops

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

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

Фото: Erik Mclean / Pexels
devops

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

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

Фото: Daniel Andraski / Pexels
dev

Как разделить личные и рабочие git-конфиги без костылей

Забудь про постоянные правки git-конфига или скрипты перед пушем! Рассказываю, как настроить git, чтобы он автоматически подставлял разные user.email и user.name для личных и рабочих проектов.

Фото: Hana Brannigan / Pexels
linux

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

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

Фото: Elizabeth Celestino / Pexels
devops

Как современный Docker упростил работу с compose файлами

Почему теперь можно использовать просто compose.yaml, а не привычный docker-compose.yaml. Всё стало проще, но если у тебя старая ОС — есть нюансы. Заодно обсудим, зачем вообще был нужен version в файле.

Фото: Ann H / Pexels
linux

Bind vs Volume в Docker

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

Фото: Juan Manuel Montejano Lopez / Pexels
self-hosted

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

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

Фото: Alex Levis / Pexels
self-hosted

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

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

Фото: Suki Lee / Pexels
linux

Load Average на пальцах

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

Фото: Mateus Ildefonso / Pexels
devops

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

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

Фото: Vie Studio / Pexels
devops

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

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

Фото: Mikael Blomkvist / Pexels
workflow

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

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

Фото: YI REN / Pexels
workflow

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

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

Фото: Jakub Zerdzicki / Pexels
devops

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

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

Фото: panumas nikhomkhai / Pexels
linux

SelectOS в деле

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

Фото: Christina Morillo / Pexels
workflow

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

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

Фото: Christina Morillo / Pexels
linux

Пробуем SelectOS

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

Фото: I'm Zion / Pexels
devops

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

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

Фото: Ann H / Pexels
bash

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

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

Фото: Sergei Starostin / Pexels
workflow

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

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

Фото: Alexey Demidov / Pexels
workflow

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

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

Фото: Mitchel Onwuchuruba / Pexels