bashninja | DevOps | SRE |CyberSecurity |Computer Science
234 subscribers
17 photos
2 videos
1 file
25 links
Канал про DevOps, SRE, CyberSecurity и Computer Science.
Download Telegram
https://xn--r1a.website/dev0pschat
Привет, родные 👋 тут можно обсуждать сам курс, если возникают какие либо вопросы в процессе.
👍2
Привет, родные 👋 Ну что? Продолжаем учиться!
S01E08 — Практика Linux: процессы, права, пакеты, сервисы и логи!
https://dzen.ru/a/aOjJVSeP2gQf4aEP
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1🤩1
Привет, родные 👋 Газу, газу, газу!
Едем дальше S01E09 — Базовая сеть: как понять, почему «не стучится до базы»
https://dzen.ru/a/aO1h8HRYgTIcamtJ
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1
Привет, родные 👋 не газуется?
⚡️⚡️⚡️ Страшно начинать новое — нормально. Разбираем, почему так и что с этим делать

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

‼️ Но хорошая новость: это чинится конкретными шагами. Ниже — разбор и понятный план.

1️⃣ Почему нас клинит перед стартом

• Мозг любит привычное. Новое = риск. Вот почему это важно: тревога — это не знак «не трогай», а сигнал «будет непривычно».
• Сравнение с профи. Смотришь на чужие 5 лет опыта и думаешь: «я ноль». Ноль — это нормально в начале.
• Страх выглядеть глупо. «Сейчас спрошу — подумают, что туплю». И молчим. Теряем время.
• Перфекционизм. «Сначала разберусь во всём, потом начну». В итоге не начинаем.

2️⃣ Мифы про «старый/плохая память»

• Возраст ≠ стоп. Учиться можно в 30, 40 и 50+. Меняется скорость и стратегия: меньше «зазубрить», больше «связать с опытом».
• Память тренируется задачами, а не «волей». Вот как это работает: делаешь маленькие циклы «прочитал → попробовал → объяснил».
• Усталость — не «глупость». Иногда тебе не учиться — тебе спать.

3️⃣ Что делать. Короткий план без героизма

0. Выбери крошечную цель на 7 дней.
Не «выучу DevOps», а «каждый день 25 минут: Linux-команды + конспект 5 строк».

1. Разбей первый шаг до смешного.
Открыть «лабу», запустить терминал, набрать 3 команды. Всё. Дальше можно продолжить, если есть силы.

2. Ритуал входа (2 минуты).
• режим «не думаем»: надел наушники → открыл план → старт таймера 25 мин.
• телефон — в другой комнате. Да, это важно.

3. Работай на «черновик».
Разреши себе 100 плохих попыток. Плохая попытка считается. Идут знания.

4. Учись вслух.
После блока скажи себе: «Сегодня понял/сделал: …». Это закрепляет лучше, чем ещё ютуб.

5. Спроси один раз в день.
Застрял >10 минут — задай вопрос в чат/поиску. Это может вам помочь не тратить вечер на ерунду.

6. Мини-отчёт (1–3 строки).
Что сделал, что было непонятно, что завтра. Конец.

4️⃣ Как не сдуться на 2-й неделе

• Ограничь сравнение. Подписки/лента — в режим «по выходным».
• Окружение. Найди 1–2 человека «учимся вместе». Можно в комментариях к посту.
• Шаблон дня. Один и тот же час. Мозг любит предсказуемость.
• Запланируй спад. Будет день, когда не хочется. Сделай микро-дозу: 10 минут. Считается.

5️⃣ Скрипты против «я слишком стар/глуп»

• «Я не медленный — я новичок. Новички делают медленно и вслух — это норма».
• «Мне не нужно понять всё. Мне нужно сделать следующий шаг».
• «Я учусь, а не сдаю экзамен. Ошибка — часть работы».

Сохрани, перечитывай перед началом.

6️⃣ Мини-план на 14 дней (пример для тех, кто идёт в DevOps)

Дни 1–3: терминал и базовые команды (cd, ls, cat, grep, tail).
Дни 4–5: процессы и сервисы (ps, top/htop, systemctl).
Дни 6–7: пакеты (apt install/remove/show), логи (journalctl).
Дни 8–9: сети (ip a, ip route, ping, curl).
Дни 10–11: git-минимум (clone, branch, commit, push).
Дни 12–14: маленький проект: «поднять nginx, страничку и чек-лист».
Каждый день: 25–40 минут, мини-отчёт 3 строки.

7️⃣ Если кажется, что память «не держит»

• Пиши короткие конспекты и чек-листы команд — своей фразой.
• Повтор на следующий день: 5 минут посмотреть вчерашнее и запустить 2–3 команды заново.
• Объясни другу/чату: «Вчера я делал X, вот как». Это цементирует знания.

И Т О Г

Вы не сломаны. Вы живые. Страх — это просто сигнал «будет новое».
Делаем маленькие шаги, фиксируем прогресс, задаём вопросы, не стыдимся быть новичками.
p.s эта статья-пост посвящается моим товарищам, которые так и не начали =)
Please open Telegram to view this post
VIEW IN TELEGRAM
🤩4👾1
⚡️ S01E10 — Мини-сервис локально: веб + база. Ломаем и чиним «боевые» баги!
━━━━━━━━━━━━━━━━━━

👋 Привет, родные 👋 ну что, самое время газануть? )))

🧩 Знакомо? Сайт «жив», база «жива», а ответов нет.
💡 Обычно дело в простых штуках: порт не слушает, адрес не тот, прокси спорит с бэкендом.
🔬 Соберём стенд, где все связи видно как на ладони.

━━━━━━━━━━━
🛠 Что делаем в серии
━━━━━━━━━━━
• — nginx на 80-м порту;
• — тонкий бэкенд на Flask (localhost:5000);
• — PostgreSQL (localhost:5432).
➡️ Маршрут: браузер → nginx → /api → бэкенд → БД → ответ.

━━━━━━━━━━━
🎯 Зачем это тебе
━━━━━━━━━━━
• Видишь систему целиком, а не «ошибку в вакууме».
• Это может сработать у вас на работе и на собесе: типовые кейсы «502», «БД недоступна», «таймаут на порту».

━━━━━━━━━━━
📚 Что разбираем по факту
━━━━━━━━━━━
• Обратный прокси в nginx к локальному бэкенду.
• Как бэкенд ходит в PostgreSQL и где чаще рвётся.
• Где искать правду: journalctl, логи postgres, ss.

🔎 Шесть поломок и быстрый путь к причине:
— бэкенд умер → 502;
— слушает не тот адрес;
— неправильный логин/пароль к БД;
— БД не слушает TCP;
— UFW душит снаружи;
— nginx не перечитал конфиг.

━━━━━━━━━━━
🤝 Честно
━━━━━━━━━━━
Без Docker и оркестраторов. База — связки и диагностика: IP → порт → процесс → конфиг → логи.

━━━━━━━━━━━
🚀 Как работать с выпуском
━━━━━━━━━━━
• Открываешь лабу.
• Поднимаешь веб + бэкенд + БД.
• Специально ломаешь по пунктам и чинишь.
• Короткий отчёт: «что сломал → как нашёл → чем починил».

🔗 Лаба (README, команды, разбор):
https://github.com/b4shninja/b4shninja/blob/main/courses/from_zero_to_devops_hero/lab04/README.md
«Страх — это вывеска “здесь будет рост”.»
Зови всех-всех, подтягивайтесь и жмите «подписаться».🔥
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2👍1🐳1
⚡️ S02E01 — Docker с нуля: чем он отличается от виртуальной машины и как им пользоваться
━━━━━━━━━━━━━━━━━━

Привет, родные 👋

Виртуальная машина — это отдельная операционная система, запущенная внутри вашей основной. Свои процессы, свои настройки, изоляция как у «компа в компе».
Docker — это «контейнер с приложением»: берёт ядро у хоста, тащит только нужные зависимости и взлетает за секунды.
Итог простой: виртуальная машина — тяжёлая броня; контейнер — лёгкая куртка. Для локалки, стендов и CI — самое оно.

━━━━━━━━━━━
🎯 Зачем это тебе
━━━━━━━━━━━
— Запускаешь сервис одинаково на ноуте и на сервере.
— Меньше «у меня не работает» из-за разных окружений.
— Можно экспериментировать без страха: поднял → проверил → снёс → чисто.

━━━━━━━━━━━
📦 Что такое Docker по-человечески
━━━━━━━━━━━
— Образ (image) — слепок приложения и окружения (только чтение, версионируется).
— Слои (layers) — «бутерброд» образа; кэш ускоряет сборку и загрузку.
— Контейнер (container) — запущенный экземпляр образа: легко стартует/останавливается/удаляется.
— Почему его зовут «одноразовым»: файловая система контейнера временная — пересоздал и вернулся к чистому состоянию. Удобно для обновлений и отладки.
— А куда девать данные? Выносить снаружи:
• bind-mount: -v ~/data:/app/data — папка хоста в контейнере;
• volume: -v myvol:/app/data — том, которым управляет Docker.
Так настройки и база не пропадут при пересоздании.

━━━━━━━━━━━
🧰 Мини-шпаргалка команд
━━━━━━━━━━━
— docker run … — запустить контейнер из образа.
— docker ps / docker ps -a — кто бежит и кто недавно бежал.
— docker logs <name> — логи процесса внутри.
— docker exec -it <name> sh — зайти внутрь (если есть shell).
— docker stop <name> → docker rm <name> — остановить и убрать.
— docker image ls, docker pull/push — образы и реестр.

━━━━━━━━━━━
🌐 Порты без боли
━━━━━━━━━━━
— -p 8080:80 = порт 8080 на хосте → 80 в контейнере.
— Не открывается страница? Проверь три вещи:

кто держит порт на хосте — ss -tulnp | grep 8080;

логи контейнера — docker logs <name>;

приложение внутри слушает не 127.0.0.1, а 0.0.0.0.

━━━━━━━━━━━
🛑 Типовые «а почему не работает?»
━━━━━━━━━━━
— Контейнер сразу умирает → смотри docker logs (переменные, пути, команда).
— Порт занят → найди процесс (ss -tulnp | grep :8080) или возьми другой (-p 8081:80).
— «Permission denied» к Docker → добавь себя в группу docker и перезайди в сессию.
— Снаружи тишина, локально ок → проверь UFW/маршруты, открой порт: sudo ufw allow 8080/tcp.

━━━━━━━━━━━
🚀 Что делаем в серии — по полочкам и с улыбкой 😎
━━━━━━━━━━━
— Ставим Docker и запускаем hello-world.
— Поднимаем nginx с пробросом 8080:80.
— Залезаем внутрь, работаем с ОС в контейнере.
— Ловим типовые фейлы и чиним их.
— Убираем за собой, чтобы система не пухла от мусора.

🔗 Домашка, команды и мини-челленджи:
https://github.com/b4shninja/b4shninja/blob/main/courses/from_zero_to_devops_hero/lab05/README.md
ИТОГ
━━━━━━━━━━━━━━━━━━
— Разберёшься, где уместна виртуальная машина, а где контейнер.
— Сможешь запустить сервис, посмотреть логи и быстро понять, что пошло не так.
— Готов к следующей серии — там напишем свой Dockerfile.

📩 Подписывайся, чтобы не пропустить выпуск про Dockerfile.
И зови всех-всех: друзья, коллеги, одногруппники — подписывайтесь, дальше будет ещё интереснее!
👍1🔥1🤩1
⚡️ S02E02 — Свой первый Dockerfile: образы, кэш и размер без боли
━━━━━━━━━━━━━━━━━━

Привет, родные 👋
━━━━━━━━━━━━━━━━━━
Сегодня собираем свой образ. По-честному: что такое Dockerfile, как работает кэш слоёв, почему образы «толстеют», и как сделать аккуратно и быстро.

━━━━━━━━━━━
🎯 Что разберём (ровно по заданию)
━━━━━━━━━━━
— Базовые инструкции Dockerfile: FROM, WORKDIR, COPY, RUN, ENV, EXPOSE.
— Кэш слоёв: почему порядок инструкций важен и как ускорять сборку.
— .dockerignore: убираем лишние файлы из контекста.
— Уменьшаем размер образа через multi-stage.
— Частые грабли: «не виден файл», «команда не находится», «локально ок — в контейнере нет», «порт занят».
— Мини-чек-лист качества: кэш, размер, не-root пользователь, логи и порты.

━━━━━━━━━━━
📦 Скелет Dockerfile (что должно быть всегда)
━━━━━━━━━━━
FROM <база>:<тег>
WORKDIR /app
Сначала манифесты зависимостей → RUN установка
Потом код → COPY . .
Не-root пользователь
EXPOSE нужного порта
Понятная команда запуска (CMD)

━━━━━━━━━━━
🚀 Пайплайн «быстро и чинно»
━━━━━━━━━━━
Сначала зависимости (кэшируем), потом код. При мелких правках кода сборка летит за счёт сохранённого кэша.

━━━━━━━━━━━
🧪 Multi-stage: «толстый билд, тонкий рантайм»
━━━━━━━━━━━
Builder со всем для сборки → Runtime только с тем, что нужно для запуска.
Размер меньше, старт быстрее, поверхность атаки скромнее.

━━━━━━━━━━━
🛑 Типовые «почему не работает»
━━━━━━━━━━━
— COPY не находит файл → путь считается от контекста сборки.
— Команда не находится → поставили её в builder, а запускаете в runtime.
— Сервис молчит → слушает 127.0.0.1 вместо 0.0.0.0, порт/EXPOSE не совпадают.
— Образ раздулся → нет .dockerignore, тянете лишнее; помогает multi-stage.
— «Permission denied» к Docker → добавь себя в группу docker и перезайди.
— Порт занят → проверь ss -tulnp | grep :8080 или возьми другой порт.

━━━━━━━━━━━
🏁 Что делаем в серии
━━━━━━━━━━━
— Пишем простой Dockerfile под веб-сервис.
— Меряем время сборки до/после перестановки инструкций.
— Сжимаем образ multi-stage подходом.
— Ловим типовые ошибки и чиним их.
━━━━━━━━━━━━━━━━━━
🔗 Домашка, команды и мини-челленджи (lab06):
https://github.com/b4shninja/b4shninja/blob/main/courses/from_zero_to_devops_hero/lab06/README.md
━━━━━━━━━━━━━━━━━━
ИТОГ
━━━━━━━━━━━━━━━━━━
— Понимаешь логику слоёв и кэша.
— Собираешь образ аккуратно и без лишних мегабайт.
— Готов к следующей серии — тома и персистентность.
👍2🤩1
🖼️😍😍😍😍😍😍😍😍😍🖼️

Привет, родные 👋
Запилил вам хорошим удобную навигацию по всем сериям. Теперь не надо листать ленту — один пост, два клика, и ты в нужной теме. Сохраняй в «Избранное» и кидай друзьям.
Буду дополнять по мере выхода серий
👉

🐧 Сезон 1 — "Профессия и база"

- S01E01 — Кто такой DevOps-инженер в России?
- S01E02 — Сколько зарабатывает DevOps-инженер в России?
- S01E03 — Как приходят в DevOps?
- S01E04 — Что должен уметь джун DevOps?
- S01E05 — Стек технологий в России
- S01E06 — Как пройти собеседование на DevOps в России?
- S01E07 — Домашняя лаборатория для будущего DevOps
- S01E08 — Практика Linux: процессы, права, пакеты, сервисы и логи
- S01E09 — Базовая сеть: как понять, почему «не стучится до базы»
- S01E10 — Мини-сервис локально: веб + база. Ломаем и чиним «боевые» баги!

🖼️ Сезон 2 — "Контейнеры и Docker"

- S02E01 — Docker с нуля: чем он отличается от виртуальной машины и как им пользоваться
- S02E02 — Свой первый Dockerfile: образы, кэш и размер без боли
- S02E03 — Docker Compose: запускаем микросервисы одной командой
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6
bashninja | DevOps | SRE |CyberSecurity |Computer Science pinned «🖼️😍😍😍😍😍😍😍😍😍🖼️ Привет, родные 👋 Запилил вам хорошим удобную навигацию по всем сериям. Теперь не надо листать ленту — один пост, два клика, и ты в нужной теме. Сохраняй в «Избранное» и кидай друзьям. Буду дополнять по мере выхода серий 👉 🐧 Сезон 1 — "Профессия…»
Привет, родные! 👋
Когда-то я был тем самым админом «на всё»: таскал принтеры, распутывал провода, ездил по два часа на работу и думал, что без техвышки в DevOps не берут.
😈Выгорел, устал и понял: или делаю шаг сейчас, или так и живу.
Перестал ждать идеального момента. Перестал копить ролики и статьи «на потом».
Начал делать маленькие домашние стенды 😵— своими руками.
━━━━━━━━━━━━━━━━━━
📝 Как я учился
Утро: 🚌🚇 дорога. В пути — заметки «что попробую вечером».
Вечер: один конкретный шаг.

Неважно, где ты научился поднимать LAMP или кластер БД — в офисе или дома на виртуалках.
Важно — понимание и навык.

❤️ Формула, которая вывезла
Один вечер — одна вещь:
что-то поднять;
что-то настроить;
что-то понять.

Через пару месяцев пазл сложился: логи уже не пугали, стало ясно, где искать причину, пришла уверенность.

😊 Результат
Через 3 месяца и обновлённое резюме на hh я попал в Сбер (3-я линия ТП).
Через полгода — руководитель 3-й линии.
Ещё через годDevOps-инженер на проекте в одном лице.

━━━━━━━━━━━━━━━━━━
📚 FROM ZERO TO DevOps Hero — это бесплатный курс

Короткие статьи, лабы на GitHub, разбор типовых ошибок — без воды.
Навигация по сериям — в закрепе канала.🍻

🤗Пиши вопросы. Делай. Расти. Я рядом.
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍1👻1
This media is not supported in your browser
VIEW IN TELEGRAM
Родные, привет 👋
👨‍🦲Как оно бывает:
ребят, у меня сегодня мозг как nginx после кривого апстрима: то 200, то 502.
поэтому без героизма — 30 минут и одна задача. таймер тикает, телефон в изгнании.

🔫что это значит на практике:
— сегодня: почему оно «не слушает порт» и где вообще этот ss -tulnp;
— завтра: допингуем до нужного сервиса и не умрём;
— послезавтра: нормальный docker run -p, чтобы браузер перестал делать вид, что нас не знает.

📝после блока — три строчки в заметки: что делал → где сломалось → чем починил.
вот серьёзно, это полезнее, чем десять мотивационных рилсов с человеком, который никогда не видел journalctl.

😵и да, сон — это не чит-код, это часть плана. если не спал — не ругайся на голову, она не БД, индексы сама не перестроит.

😳маленькие победы считаются:
- поднял nginx на 8080 и увидел страницу — галочку поставь;
- словил 502 и довёл до 200 — вообще праздник;
- уменьшил образ на 20 МБ — гордись, это минус одна картошка в рюкзаке.

😊Как идея: запустить общий чат, разбить его по тредам по технологиям и накидать туда полезности? Если «за» — черканите в комменты.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1🔥1
🚀 XARGS: ТВОЯ СУПЕРСИЛА В КОМАНДНОЙ СТРОКЕ!
Привет, родные ! 👋 Сегодня разберем xargs — утилиту, которая превратит тебя из новичка в гуру bash! 🍔
ЧТО ЭТО ВООБЩЕ ТАКОЕ?
xargs — это преобразователь stdin в аргументы командной строки.
Проще говоря:
Без xargs: echo "file1 file2" | rm (не работает!)
С xargs: echo "file1 file2" | xargs rm (работает!)

xargs берет то, что приходит из stdin и превращает в аргументы для следующей команды!
🔥 ОСНОВНЫЕ ФИШКИ ЗА 30 СЕКУНД 🙃
# Массовое удаление
find . -name "*.tmp" | xargs rm

# Параллельная загрузка
xargs -P5 -n1 wget < urls.txt

# Безопасно для файлов с пробелами
find . -type f -name '*.mp3' -print0 | xargs -0 -I{} mv -- '{}' /music/

💡 ПОПУЛЯРНЫЕ СЦЕНАРИИ
📁 РАБОТА С ФАЙЛАМИ 😮
# Поиск в куче файлов
find /project -name '*.py' -print0 | xargs -0 grep -nH 'import pandas'

# Архивирование найденного
find . -type f -name '*.js' -print0 | tar --null -czf backup.tar.gz -T -

# Массовое переименование
find . -type f -name '*.jpg' -print0 | xargs -0 -I{} mv -- '{}' '{}'.backup

⚡️ ПАРАЛЛЕЛЬНАЯ МОЩЬ 😏
# Конвертация изображений (4 потока!)
find . -type f -name '*.png' -print0 | xargs -0 -P4 -n1 -I{} convert '{}' '{}'.jpg

# Параллельные HTTP-запросы
xargs -P10 -n1 curl -O < urls.txt

# Бэкап нескольких БД одновременно
printf '%s\n' db1 db2 db3 | xargs -n1 -P3 -I{} pg_dump -Fc -d "{}" -f "{}.dump"

🔧 АВТОМАТИЗАЦИЯ 😍
# Выполнение команд из файла
xargs -L1 -I{} sh -c '{}' < commands.txt

# Обработка с логированием
find /var/log -type f -name '*.log' -print0 \
| tee >(tr '\0' '\n' > files.list) \
| xargs -0 grep -H 'ERROR'

🛡 БЕЗОПАСНОСТЬ ПРЕВЫШЕ ВСЕГО
ЧЕГО ИЗБЕГАТЬ
🚽:
#  ОПАСНО - нет подтверждения
find / -name "*" | xargs rm -rf

#  Чувствительно к пробелам
find . -name "My File.txt" | xargs r


КАК ДЕЛАТЬ ПРАВИЛЬНО 👍:
#  Всегда тестируй с -p сначала!
find . -name "*.log" | xargs -p rm

#  Для файлов с пробелами используй -print0/-0
find . -name "*.txt" -print0 | xargs -0 rm

#  Проверяй лимиты системы
xargs --show-limit


🎪 ЭКСТРЕМАЛЬНЫЕ СЦЕНАРИИ
МАССОВАЯ ОБРАБОТКА
🤯:
# Ресайз фотографий в 8 потоков
find . -name "*.RAW" -print0 | xargs -0 -P 8 -I {} convert {} -resize 50% {}.jpg

# Параллельный анализ логов
find /logs -name "*.gz" -print0 | xargs -0 -P 4 zcat | grep "500 ERROR"


ДИНАМИЧЕСКИЕ КОМАНДЫ 😠:
# Каждая строка из файла - как отдельная команда
cat deployments.txt | xargs -L 1 -I {} sh -c "{}"


📚 шпаргалОч
ка ✍️
# Базовый синтаксис
cmd | xargs target_cmd

# Параллельно + замена
cmd | xargs -P N -I {} command {}

# Безопасно для пробелов
find ... -print0 | xargs -0 command

# По одному аргументу
cmd | xargs -n1 command

# Подтверждение выполнения  
cmd | xargs -p command


# Строка за раз
cmd | xargs -L 1 command

💡 ЗОЛОТЫЕ ПРАВИЛА
😠
Всегда тестируй с -p перед опасными операциями
Используй -print0 + -0 для работы с файлами
-P N ускоряет обработку в N раз
-I {} дает полный контроль над подстановкой
Комбинируй с find для максимальной эффективности


🎯 ВЫВОД: xargs + find =
💪 СУПЕРСИЛА командной строки! 🏋️‍♂️

Теперь ты можешь обрабатывать тысячи файлов БЕЗ циклов for! Попробуй и расскажи о результатах в комментах! 👇

🔥 Лайк если полезно! Репост если не гей! 😏
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5👍1
This media is not supported in your browser
VIEW IN TELEGRAM
🤣5
⚡️ S02E03 — Docker Compose: запускаем микросервисы одной командой
━━━━━━━━━━━━━━━━━━

👋 Привет, родные!
━━━━━━━━━━━━━━━━━━

После Dockerfile логично научиться поднимать стек из нескольких контейнеров. Сегодня разбираем Docker Compose: как одной командой стартовать веб + база + Redis, настроить сети и персистентность.

━━━━━━━━━━━
🎯 Что разберём
━━━━━━━━━━━

— Зачем нужен Compose (проблема: docker run × 5 контейнеров)
— Структура docker-compose.yml
— Services, networks, volumes
— Переменные окружения (.env файл)
— Зависимости между сервисами (depends_on, healthcheck)
— Полезные команды (up, down, logs, exec)
— Типичные грабли и как их избежать

━━━━━━━━━━━
📦 Было vs Стало
━━━━━━━━━━━

Без Compose:
docker run -d postgres
docker run -d redis
docker run -d --link postgres web
docker run -d nginx


Куча команд, сложно воспроизвести, порты и env в разных местах.

С Compose:
docker compose up -d


Всё описано в одном файле, версионируется, воспроизводимо.

━━━━━━━━━━━
🚀 Базовый пример
━━━━━━━━━━━

version: '3.8'

services:
web:
build: .
ports:
- "8080:8080"
depends_on:
- postgres
- redis

postgres:
image: postgres:15-alpine
volumes:
- pgdata:/var/lib/postgresql/data

redis:
image: redis:7-alpine

volumes:
pgdata:


Три контейнера, персистентность, зависимости — всё в 20 строках.

━━━━━━━━━━━
🔗 Networks: как общаются
━━━━━━━━━━━

Compose автоматически создаёт bridge-сеть:
— Контейнеры видят друг друга по имени сервиса
web подключается к postgres:5432, redis:6379
— Изоляция: разные проекты не видят друг друга

━━━━━━━━━━━
💾 Volumes: данные не теряются
━━━━━━━━━━━

Named volumes (рекомендуется для БД):
volumes:
- pgdata:/var/lib/postgresql/data


Bind mounts (для разработки):
volumes:
- ./app:/app # Изменения кода сразу видны


━━━━━━━━━━━
⏱️ Healthcheck: реальная готовность
━━━━━━━━━━━

depends_on запускает по порядку, но НЕ ждёт готовности!

Решение:
postgres:
healthcheck:
test: ["CMD", "pg_isready", "-U", "postgres"]
interval: 5s

web:
depends_on:
postgres:
condition: service_healthy


Теперь web стартует только когда postgres реально готов.

━━━━━━━━━━━
🛑 Типовые грабли
━━━━━━━━━━━

"Connection refused" к базе
→ База не готова, добавь healthcheck

Volumes не сохраняются
→ Используй named volumes

Порты конфликтуют
ss -tulnp | grep :8080

Переменные не работают
→ Проверь .env файл

Контейнеры не видят друг друга
→ Убедись в одной сети

━━━━━━━━━━━
🏁 Что делаем в лабе
━━━━━━━━━━━

Задание 1: Flask + PostgreSQL
— Простой стек
— Настройка healthcheck
— Проверка персистентности

Задание 2: Nginx + Flask + PostgreSQL + Redis
— Полный production-like стек
— Frontend/backend сети
— Переменные через .env
— Балансировка и масштабирование

Задание 3: Дебаг проблем
— База не готова
— Volumes не сохраняются
— Порты заняты

━━━━━━━━━━━━━━━━━━
🔗 Лабораторная работа (lab07):
https://github.com/b4shninja/b4shninja/blob/main/courses/from_zero_to_devops_hero/lab07/README.md
━━━━━━━━━━━━━━━━━━

В лабе:
Полная теория с примерами
Готовые проекты для запуска
Мини-челленджи
Troubleshooting guide
Quick Start за 5 минут

━━━━━━━━━━━━━━━━━━
ИТОГ
━━━━━━━━━━━━━━━━━━

— Запускаешь целый стек одной командой
— Понимаешь как работают сети и volumes
— Умеешь дебажить проблемы с зависимостями
— Готов к оркестрации в production (Kubernetes впереди!)

━━━━━━━━━━━━━━━━━━

Давай, газуй! 🚀
🔥5👌3👍2
🐬 Flipper Zero: карманный мультитул для радиохакинга
━━━━━━━━━━━━━━━━━━
👋 Привет, родные!
━━━━━━━━━━━━━━━━━━
Сегодня разбираем Flipper Zero — портативное устройство для работы с радиочастотами, RFID, NFC и GPIO. Это швейцарский нож для пентестеров, IoT-исследователей и всех, кто хочет понять, как работают беспроводные протоколы.
━━━━━━━━━━━
🎯 Что умеет
━━━━━━━━━━━
— RFID (125 kHz): чтение/эмуляция карт доступа, домофонных ключей
— NFC (13.56 MHz): работа с бесконтактными картами Mifare/NTAG
— Sub-GHz (315/433/868/915 MHz): анализ сигналов пультов, датчиков
— Infrared: универсальный пульт для ТВ, кондиционеров
— BadUSB: эмуляция клавиатуры для выполнения скриптов
— GPIO/UART/I2C/SPI: отладка электроники и прошивка железа
━━━━━━━━━━━
⚙️ Железо
━━━━━━━━━━━
CPU: STM32WB55 (Cortex-M4 @ 64MHz + M0+)
Display: 128×64 монохром (как тамагочи!)
Battery: 2000 mAh (~неделя работы)
Вес: 102г
Размер: с банковскую карту
━━━━━━━━━━━
🚀 Практика
━━━━━━━━━━━
Sub-GHz радио:
— Клонирование пультов от ворот/шлагбаумов
— Реверс-инжиниринг протоколов IoT-датчиков
— Анализ сигналов беспроводных устройств
RFID/NFC:
— Тестирование СКУД на объектах
— Эмуляция домофонных ключей
— Чтение ID карт (банковские читает, но платить не даст)
BadUSB:
— Автоматизация deployment скриптов
— Демонстрация векторов атак
— Эмуляция HID-устройств
GPIO:
— Прошивка микроконтроллеров
— Подключение внешних модулей (WiFi Devboard)
— UART-дебаг железа
━━━━━━━━━━━
🔧 Прошивки
━━━━━━━━━━━
Stock (официальная):
Стабильная
Ограничения Sub-GHz для некоторых регионов
Unleashed:
Без региональных ограничений
Больше протоколов
→ Для исследователей
RogueMaster:
Максимум плагинов
Активное комьюнити
Может быть нестабильна
Xtreme:
Баланс стабильности и функционала
→ Золотая середина
Обновление: qFlipper (GUI) или WebUpdater
━━━━━━━━━━━
💡 Применение в DevOps/Security
━━━━━━━━━━━
Физическая безопасность:
— Аудит СКУД
— Тестирование карт доступа
— Проверка беспроводных систем
IoT Security:
— Анализ протоколов умных устройств
— Поиск уязвимостей в беспроводных датчиках
— Реверс неизвестных протоколов
Автоматизация:
— BadUSB для быстрого деплоя скриптов
— GPIO для прошивки устройств в лаборатории
Обучение:
— Наглядная демонстрация уязвимостей
— Практика с радиопротоколами
━━━━━━━━━━━
⚠️ Легальность
━━━━━━━━━━━
Разрешено:
Тестирование своих систем
Исследовательские цели
Работа с разрешения владельца
Запрещено:
Взлом чужих систем
Клонирование карт для мошенничества
Глушение частот экстренных служб
В России: легален для личного использования
⚠️ Ст. 272 УК РФ (неправомерный доступ) актуальна!
━━━━━━━━━━━
💰 Где взять
━━━━━━━━━━━
Официально: flipperzero.one (~$199 + доставка)
В РФ: маркетплейсы 25-35k ₽
Must-have аксессуары:
— WiFi Devboard (для атак WiFi/BLE)
— Protective case (экран царапается)
— SD карта (базы данных и логи)
━━━━━━━━━━━━━━━━━━
📚 Полезные ресурсы
━━━━━━━━━━━━━━━━━━
Документация: docs.flipper.net
GitHub: github.com/flipperdevices
Форум: forum.flipperzero.one
Awesome Flipper: github.com/djsime1/awesome-flipperzero
━━━━━━━━━━━━━━━━━━
ИТОГ
━━━━━━━━━━━━━━━━━━
— Понимаешь как работают беспроводные протоколы
— Умеешь тестировать физическую безопасность
— Получаешь hands-on опыт с радио и RFID
— Готов к реальным security аудитам
⚠️ С большой мощностью приходит большая ответственность. Используй только для легального тестирования!
━━━━━━━━━━━━━━━━━━
#hardware #security #pentest #flipper
🎬 Мини-сериалы и документалки по хакингу
━━━━━━━━━━━━━━━━━━
👋 Привет, родные!
━━━━━━━━━━━━━━━━━━
Подборка документалок и мини-сериалов для тех, кто хочет понять как работает хакинг изнутри. Реальные истории, интервью с легендами индустрии и разборы громких кейсов.
━━━━━━━━━━━━━━━━━━
🏆 Must Watch
━━━━━━━━━━━━━━━━━━
The Internet's Own Boy (2014)
История Аарона Шварца — создателя RSS, Reddit, активиста открытого доступа. Трагический финал борьбы с системой.
We Are Legion: The Story of the Hacktivists (2012)
Документалка про Anonymous — от истоков до Operation Payback. Интервью с участниками, анализ идеологии.
Zero Days (2016)
Stuxnet — кибероружие США и Израиля против иранской ядерной программы. Первая документированная кибервойна.
The Great Hack (2019)
Cambridge Analytica, Facebook и манипуляции выборами. Как данные стали оружием массового поражения.
━━━━━━━━━━━━━━━━━━
🎯 Хакеры и их истории
━━━━━━━━━━━━━━━━━━
Darknet Diaries (подкаст → документалка)
Джек Райзайдер рассказывает реальные истории про хаки, пентесты и киберпреступления. Лучшие эпизоды:
— Kevin Mitnick и его побег от ФБР
— Взлом казино через аквариум
— История Silk Road
Silk Road: Drugs, Death and the Dark Web (2017)
Ross Ulbricht (Dread Pirate Roberts) и создание первого даркнет-маркетплейса. От идеи до пожизненного срока.
The Hacker Wars (2014)
Anonymous, LulzSec, Jeremy Hammond. Реальные кадры арестов, интервью с хакерами из тюрьмы.
━━━━━━━━━━━━━━━━━━
💰 Киберпреступность
━━━━━━━━━━━━━━━━━━
Crime + Investigation: The Billion Dollar Code (2021)
История стартапа ART+COM vs Google Earth. Кража технологий и судебные баталии.
Hunting the KGB Killers (2017)
Кибершпионаж, APT28 (Fancy Bear) и атаки на западные институты. Расследование связей с ГРУ.
The Perfect Weapon (2020)
Документалка про кибервойны между государствами. От Stuxnet до вмешательства в выборы.
━━━━━━━━━━━━━━━━━━
🔐 Security & Privacy
━━━━━━━━━━━━━━━━━━
Citizenfour (2014)
Эдвард Сноуден и разоблачение массовой слежки АНБ. Оскар за лучший документальный фильм.
Terms and Conditions May Apply (2013)
Что на самом деле написано в пользовательских соглашениях. Кто владеет твоими данными?
The Social Dilemma (2020)
Бывшие сотрудники Google, Facebook, Twitter о том, как соцсети манипулируют поведением. Алгоритмы как оружие.
━━━━━━━━━━━━━━━━━━
🎓 Технические разборы
━━━━━━━━━━━━━━━━━━
Hacking Google (YouTube серия, 2022)
Официальная серия от Google про Project Zero, баг-баунти и защиту инфраструктуры. Реальные кейсы от инсайдеров.
Hackerville (2018, мини-сериал)
Художественный, но основан на реальных событиях. Киберпреступность в Румынии, взломы банков.
Code 2600 (2011)
Документалка про хакерскую культуру и журнал "2600: The Hacker Quarterly". Интервью с легендами сцены.
━━━━━━━━━━━━━━━━━━
⚡️ Бонус: YouTube каналы
━━━━━━━━━━━━━━━━━━
Computerphile
Академический подход: как работают алгоритмы шифрования, SQL injection, buffer overflow.
LiveOverflow
CTF разборы, реверс-инжиниринг, эксплуатация уязвимостей. Для тех, кто хочет практики.
IppSec
Прохождения машин с HackTheBox. Полные разборы с объяснениями.
━━━━━━━━━━━━━━━━━━
На выходных есть чем заняться! 🍿
#hacking #infosec #documentary #mustwatch
🔥1🤩1
💻 Windows, Linux, macOS - на чём реально работают инженеры в 2026?

Холиварная тема. Но давайте честно: выбор рабочей ОС в IT это не религия, это компромисс между болью и удобством.

🍎 macOS - Unix из коробки, нормальный экран, батарея. ssh, grep, curl без танцев. Минус: цена железа и закрытая экосистема. Сломался тулчейн Apple Silicon - идёшь гуглить почему brew опять что-то не то слинковал.

🐧 Linux - окружение совпадает с продакшеном один в один. Никаких сюрпризов с line endings, полный контроль над всем. Цена: раз в полгода после обновления ядра что-нибудь отвалится. Garuda, Ubuntu, Arch - у каждого дистра своя секта.

🪟 Windows - WSL2 реально вытащил ситуацию: полноценное Linux-ядро, Docker Engine без прослойки. Но стоит шагнуть за пределы WSL: пути с обратными слешами, права доступа ни с чем не совместимы, и PowerShell который притворяется bash.

Занятная закономерность: джуны стартуют на Windows, мидлы переезжают на macOS, сеньоры уходят на Linux и не возвращаются.

На чём работаете и почему именно на этом? 👇
1🔥1👌1