Пишем первый Dockerfile для FastAPI-приложения notes: FROM, WORKDIR, COPY, RUN, EXPOSE, CMD — строка за строкой. Разбираем кэш слоёв (почему requirements копируем до кода) и главную граблину новичков — --host 0.0.0.0 вместо 127.0.0.1. Собираем docker build -t notes:0.1, запускаем docker run. Это ролик 18 курса по DevOps на devtrends.ru
#docker #dockerfile #fastapi #python #devops #контейнеры #докер #бэкенд #deploy #кэшслоёв #kubernetes #k8s
Shorts
- Открываем модуль про контейнеризацию. Что такое Docker и почему контейнер — это не виртуалка, а обычный процесс. Разбираем образ, контейнер и реестр, ставим docker.io, добавляем юзера в группу docker и проверяем через docker run hello-world. Дальше — Dockerfile для проекта notes. Подробнее на devtrends.ru #docker #контейнеризация #контейнеры #dockerhub #devops #helloworld #образ #linux #бэкенд #обучение #сервер #kubernetes
- Что такое pull request (и merge request в GitLab) и как проходит кодревью push, CI, комментарии, merge. Две ошибки новичков: пустое описание PR и пропущенный self-review (git diff main). Плюс этикет ревью с обеих сторон и почему гигантские PR протаскивают баги в прод. Дальше — Docker.
- Полный разбор .gitignore: четыре категории запретного — секреты (.env, ключи), артефакты (venv, node_modules), мусор IDE и логи. Синтаксис * / #, как убрать случайно закоммиченный файл через git rm --cached и готовые шаблоны с gitignore.io. Часть DevOps-курса на devtrends.ru. #gitignore #git #гит #devops #девопс #версионирование #секреты #env #githubsecurity #контрольверсий #обучениеit #kubernetes
- Второй ролик модуля Git: зачем нужны ветки, как создать (git switch -c), переключаться, слить в main (git merge) и спокойно разрулить конфликт по маркерам ﹤﹤﹤﹤﹤﹤﹤ ======= ﹥﹥﹥﹥﹥﹥﹥, а потом убрать ветку (git branch -d). Ровный учебный разбор на сквозном проекте notes. Продолжение на devtrends.ru. #git #gitbranch #gitmerge #devops #контрольверсий #обучениеit #githubдляновичков #программирование #версионирование #вебразработка #kubernetes #docker
- Открываем модуль 2 DevOps-курса: git с нуля. Настройка (apt install git, git config), два пути к репозиторию (git init / git clone) и базовый рабочий цикл — git status, git add, git commit, git push, git pull, git log. Продолжение модуля по настройке сервера. Полная программа — на devtrends.ru #git #devops #версионирование #github #gitlab #обучение #курс #junior #разработка #контрольверсий #kubernetes #docker
- Сервис в active (running) — это ещё не значит, что внутри всё хорошо. Разбираем journalctl (-u, -f, --since, -p err) для systemd-сервисов и tail -f для логов nginx на проекте notes. Это финал ступени 0 — базовая настройка сервера руками. Дальше — про то, почему так жить больно. devtrends.ru #journalctl #systemd #nginx #логи #logs #linux #сервер #devops #sysadmin #fastapi #мониторинг #selfhosted
- Оборачиваем FastAPI-приложение в systemd-юнит: отдельный системный юзер, notes.service с Restart=always, enable --now. Жёсткий тест — kill процесса, и systemd сам его поднимает. Финал прод-фундамента ступени 0.
- Закрываем замок в браузере: бесплатный TLS-сертификат Let's Encrypt через certbot с плагином для nginx. certbot сам правит конфиг — listen 443 ssl и редирект 80→443 — и заводит systemd-таймер автопродления. Нужен домен с A-записью на IP сервера. Пятый ролик про сервер для проекта notes на devtrends.ru. #certbot #letsencrypt #https #tls #ssl #nginx #сервер #devops #вебсервер #systemd #kubernetes #docker
- Поднимаем nginx как reverse proxy перед FastAPI-приложением notes: пишем server-блок с proxy_pass на 127.0.0.1:8000, пробрасываем заголовки, включаем сайт симлинком в sites-enabled и применяем через reload без разрыва соединений. Это ролик 4 сквозного цикла про сервер — впереди HTTPS и автозапуск. Разбираем как инженеры на devtrends.ru #nginx #reverseproxy #proxypass #fastapi #uvicorn #deploy #вебсервер #бэкенд #devops #sysadmin #питон #сервер
- Деплой FastAPI на сервер руками: venv, .env, uvicorn по шагам Поднимаем FastAPI-приложение notes на сервере вручную: git clone, venv, pip install -r requirements.txt, секреты в .env (и обязательно в .gitignore), запуск через uvicorn и проверка через curl. Ручной деплой — намеренная ступень: дальше в цикле будет Docker. Разбираем по шагам на devtrends.ru #fastapi #python #uvicorn #venv #dotenv #gitignore #deploy #devops #backend #postgres #сервер #бэкенд
- Ставим Postgres на свежий сервер и готовим базу для приложения: apt install postgresql, заходим через sudo -u postgres psql, создаём отдельного пользователя notes_user и базу командой CREATE DATABASE notes OWNER notes_user, проверяем подключение. Часть сквозного цикла по настройке сервера — от безопасности до DevOps. Разбираем на devtrends.ru.
- Язык — это только верхушка. Что под ним? Личное мнение: настоящий сеньор знает систему — компилятор, интерпретатор, shell, файловую систему, процессы, память. Не язык. Никакой ИИ эту целостную картину тебе в голову не загрузит — её строят только сами. Заходи на devtrends.ru — копаем самый низ по-взрослому. #программирование #разработка #сеньор #junior #middle #операционнаясистема #компилятор #интерпретатор #shell #файловаясистема #процессы #память
- Зачем учить Linux, если есть ИИ? Отвечаю один раз Нейросеть — это молоток. Она заменит того, кто не умеет ей пользоваться. Инженерное мышление — это контекст, архитектура, история решений. Этого ChatGPT за тебя не сделает. Учим основам на devtrends.ru. #инженер #инженерноемышление #нейросети #ии #ai #chatgpt #чатгпт #linux #devops #сети #программирование #разработка
- Защитили сервер — а он молчит. Поднимаем nginx, открываем порт в ufw и видим Welcome to nginx в браузере. Первый ролик блока «сервер работает». Учим держать свой сервер на devtrends.ru. #nginx #вебсервер #linuxдляновичков #ufw #selfhosted #vps #девопс #сисадмин #сервер #деплой #linuxсервер #linuxадмин
- Автообновления безопасности: сервер латает себя сам Часть 5 — финал серии «первые шаги на новом сервере». Ставим unattended-upgrades: критичные заплатки приезжают сами, крупные версии контролируешь руками. Базовая гигиена, которая отличает любителя от инженера. Подробнее → devtrends.ru #linux #unattendedupgrades #автообновления #обновления #sysadmin #хардеринг #сервер #безопасность #devops #vps #linuxдляначинающих #apt
- Часть 4 серии «первые шаги на новом сервере». Ставим fail2ban поверх ufw: безопасный конфиг через jail.local, секция [sshd] под нестандартный порт 2222 и banaction=ufw, строгость maxretry/findtime/bantime, рестарт, fail2ban-client status — и сервер сам банит атакующих. Подробнее → devtrends.ru #linux #fail2ban #ufw #ssh #sysadmin #хардеринг #сервер #безопасность #devops #vps #linuxдляначинающих #автобан
- Часть 3 серии «первые шаги на новом сервере». Ставим ufw, разрешаем свой SSH-порт ДО включения (иначе блокировка), задаём политику default deny incoming / allow outgoing, открываем http и https, проверяем ufw status. Спокойный хардеринг своего сервера. Подробнее → devtrends.ru #linux #ufw #файрвол #фаервол #firewall #ssh #sysadmin #хардеринг #сервер #безопасность #devops #vps
- Перестаём ходить рутом: пользователь + sudo за минуту Часть 2 серии «первые шаги на новом сервере». Заводим обычного пользователя через adduser, даём ему sudo через usermod, переносим SSH-ключ, проверяем — и закрываем PermitRootLogin no. Спокойный сисадминский хардеринг своего сервера. Подробнее → devtrends.ru #linux #ssh #sudo #sysadmin #хардеринг #сервер #сетевой #безопасность #devops #vps #linuxдляначинающих #rootless
- Хардеринг своего сервера за 100 секунд: ssh-keygen → ssh-copy-id → sshd_config (PasswordAuthentication no, PubkeyAuthentication yes) → смена порта с 22 на 2222 → ufw + страховка от блокировки самого себя. Каждая команда работает — повторяй у себя. Больше такого — на devtrends.ru #ssh #sshkeys #linuxsecurity #хардеринг #ssh2022 #linuxадмин #junior #vps #сервер #openssh #sysadmin #bash




