GitHub Ready | Git
6.16K subscribers
640 photos
74 videos
1 file
547 links
По всем вопросам: @AdilNow
Download Telegram
🛡 Distroless: Как сделать образ, который невозможно взломать?

Если тебе кажется, что Alpine (5 МБ) — это предел, то познакомься с Distroless от Google. Это образы, в которых нет вообще ничего: ни оболочки (sh/bash), ни пакетного менеджера, ни даже команды ls или cd. Только твое приложение и его зависимости.

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

Решение:

Используем Multi-stage билд, но в качестве финального образа берем gcr.io/distroless.



# Этап 1: Сборка проекта
FROM node:20 AS builder
WORKDIR /app
COPY . .
RUN npm install && npm run build

# Этап 2: Финальный защищенный образ
FROM gcr.io/distroless/nodejs20-debian12
COPY --from=builder /app /app
WORKDIR /app

CMD ["dist/main.js"]


Почему это киллер-фича?

Безопасность: В обычном образе хакер может скачать вредоносный скрипт через curl или wget. В Distroless этих утилит нет. Там нет даже rm, чтобы замести следы.
Вес: Образ становится еще легче, так как вырезаны все системные библиотеки, не нужные для работы Node.js, Python или Java.
Скорость: Чем меньше слоев и файлов, тем быстрее образ проверяется сканерами безопасности и разворачивается в кластере.

Результат:
Твое приложение работает в стерильной среде. Это золотой стандарт для крупных финтех-компаний и проектов с высокими требованиями к безопасности.

Совет: Если тебе всё же нужно «зайти» внутрь такого контейнера для отладки, используй временные контейнеры (Ephemeral Containers) в Kubernetes или специальные инструменты отладки, так как обычный docker exec -it ... sh выдаст ошибку.

🔥 — если безопасность на первом месте
🤝 — если важнее иметь возможность зайти в контейнер и «посмотреть, что там»

➡️ GitHub Ready | #урок
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3
К такому не подготовишься 😱
Please open Telegram to view this post
VIEW IN TELEGRAM
😁4
🔔 Uptime Kuma: Как узнать о падении сервиса раньше пользователей?

Нет ничего хуже, чем узнать о том, что твой проект "лежит", из гневных сообщений в личке. Чтобы не проверять сайт каждые пять минут вручную, разработчики ставят Uptime Kuma — это стильный и бесплатный self-hosted мониторинг, который сделает всё за тебя.

Задача:
— Круглосуточно следить за доступностью сайтов, контейнеров и баз данных.
— Получать мгновенные уведомления в Telegram, Discord или Slack, если что-то сломалось.
— Видеть красивую статистику аптайма и времени отклика (пинг).

Решение:

Разворачиваем одну из самых популярных опенсорс-панелей мониторинга за пару минут через Docker.

# Запуск Uptime Kuma в Docker
docker run -d --restart=always -p 3001:3001 -v uptime-kuma:/app/data --name uptime-kuma louislam/uptime-kuma:1


Что она умеет?

Разные типы проверок: HTTP(s), TCP, Ping, DNS, и даже проверка срока действия SSL-сертификата (она напомнит, когда пора его продлевать).
Уведомления: Поддерживает более 90 сервисов. Самый простой вариант — создать бота в Telegram и вставить его токен.
Status Page: Можно создать публичную страницу (как у больших сервисов), чтобы пользователи сами видели: сейчас идут технические работы или всё "зеленое".
Proxy-поддержка: Легко работает за Nginx или Traefik.

Почему это лучше внешних сервисов?

Бесплатно: Никаких лимитов на количество проверяемых сайтов или частоту запросов.
Приватность: Все данные о твоих серверах хранятся только у тебя.
Скорость: Ты можешь проверять локальные сервисы внутри своей сети, которые не видны из интернета.

Совет: Установи интервал проверки в 60 секунд. Этого достаточно, чтобы оперативно среагировать на проблему и при этом не создавать лишнюю нагрузку на сервер постоянными запросами.

🔥 — если следишь за каждым процентом аптайма
🤝 — если узнаешь о падении только от клиентов

➡️ GitHub Ready | #урок
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1
📜 Dozzle: Как читать логи всех контейнеров в одном окне?

Когда у тебя запущено много сервисов, прыгать между ними через docker logs становится мучительно. Если Lazydocker хорош для терминала, то Dozzle — это идеальный веб-интерфейс для тех, кто хочет просто и быстро просматривать логи через браузер.

Задача:
— Видеть логи всех контейнеров в реальном времени в одном месте.
— Иметь возможность быстрого поиска по тексту во всех логах сразу.
— Не нагружать сервер тяжелыми системами вроде ELK (Elasticsearch, Logstash, Kibana).

Решение:

Dozzle — это крошечный сервис, который подключается к Docker-сокету и выводит всё в удобный UI.



# Запуск Dozzle за одну секунду
docker run -d --name dozzle -p 8888:8080 -v /var/run/docker.sock:/var/run/docker.sock amir20/dozzle:latest


Почему это удобно?

Интеллектуальный поиск: ты можешь мгновенно отфильтровать логи по ключевому слову (например, Error или Timeout) сразу по всем запущенным контейнерам.
Никакой базы данных: Dozzle не хранит логи на диске, он просто транслирует их. Это значит, что он практически не потребляет ресурсы сервера.
Живой поток: логи подгружаются мгновенно без перезагрузки страницы.
Простота: не нужно ничего настраивать в самих контейнерах — Dozzle сам подхватит всё, что запущено на хосте.

Кому это нужно?

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

Совет: Если ты выставляешь Dozzle в интернет, обязательно закрой его паролем через Reverse Proxy (например, Nginx или Traefik), так как в логах могут проскакивать конфиденциальные данные.


🔥 — если любишь чистоту и порядок в логах
🤝 — если по-прежнему грепаешь текстовые файлы в /var/lib/docker/containers

➡️ GitHub Ready | #урок
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2
200 тыс.₽ сейчас РЕАЛЬНО базовый минимум ⏺️

Который нужен для комфортной жизни в любом месте⤵️

Не знаешь, где словить такой куш?

Удаленка в долларах 💸 — канал для профи из СНГ с вакансиями в стабильной валюте.

IT, маркетинг, дизайн, крипта: ты точно в этом разбираешься

Осталось только начать нормально зарабатывать!

15+ актуальных вакансий за сегодня уже в канале:
https://t.me/+qoCsrhInumQyN2Ni 🔗
Please open Telegram to view this post
VIEW IN TELEGRAM
👎3
🤖 Watchtower: Как забыть об обновлении Docker-контейнеров?

Обновление контейнеров вручную — это рутина: нужно зайти на сервер, сделать docker pull, остановить старый контейнер и запустить новый. В 2026 году это делает Watchtower. Он следит за выходом новых версий твоих образов в Docker Hub или другом реестре и сам перезапускает сервисы.

Задача:
— Всегда иметь актуальные версии софта и патчи безопасности.
— Автоматизировать процесс обновления без участия человека.
— Избежать простоев из-за ручного переповтора команд.

Решение:

Запускаем один контейнер Watchtower, который будет мониторить все остальные.



# Запуск Watchtower для автоматического обновления всех контейнеров
docker run -d \
--name watchtower \
-v /var/run/docker.sock:/var/run/docker.sock \
containrrr/watchtower


Почему это удобно?

Полная автономия: он сам проверяет наличие обновлений, скачивает их и перезапускает контейнер с теми же параметрами (те же порты, вольюмы и сети).
Очистка мусора: с флагом --cleanup он удаляет старые образы после обновления, чтобы они не занимали место на диске.
Выборочность: если ты не хочешь обновлять какой-то конкретный сервис (например, базу данных, где важна стабильность), просто добавь ему лейбл com.centurylinklabs.watchtower.enable=false.
Уведомления: Watchtower может присылать отчеты об обновлениях прямо в Telegram.

Кому это нужно?

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

Совет: Будь осторожен с обновлением баз данных (PostgreSQL, MySQL) в автоматическом режиме. Мажорные версии (например, с 15 на 16) могут требовать миграции данных, поэтому для них автообновление лучше отключать.

🔥 — если за полную автоматизацию
🤝 — если предпочитаешь обновлять всё под своим контролем

➡️ GitHub Ready | #урок
Please open Telegram to view this post
VIEW IN TELEGRAM
3🔥2
NtWARden

NtWARden — набор инструментов для анализа и исследования Windows

Инструмент инспекции системы Windows на базе ImGui + DirectX 11, поддерживает работу как в пользовательском режиме, так и в режиме ядра.

Позволяет перечислять внутренние структуры системы: процессы, сервисы, сетевые соединения, обратные вызовы ядра, SSDT, пулы ядра и т.д., а также включает встроенные функции анализа безопасности процессов (обнаружение шеллкода, выявление подмены модулей, детектирование перехватов системных вызовов и др.).

Cсылка на GitHub

➡️ GitHub Ready | #урок
Please open Telegram to view this post
VIEW IN TELEGRAM
4
🌐 Nginx Proxy Manager: как управлять доменами и SSL без боли?

Если у тебя на сервере крутится пять разных контейнеров (сайт, облако, мониторинг), тебе нужно как-то обращаться к ним по красивым адресам вроде api.myapp.com вместо 123.123.123.123:8080. Nginx Proxy Manager (NPM) — это удобная админка, которая позволяет разрулить трафик и выпустить SSL-сертификаты за пару кликов.

Задача:
— Привязать домен к конкретному порту контейнера.
— Включить бесплатный HTTPS (Let's Encrypt), чтобы браузер не ругался на соединение.
— Сделать всё это через понятный веб-интерфейс, не копаясь в конфигах Nginx.

Решение:

Разворачиваем NPM как основной входной узел (Reverse Proxy) для всех остальных сервисов.



# Пример docker-compose.yml для NPM
services:
app:
image: 'jc21/nginx-proxy-manager:latest'
restart: unless-stopped
ports:
- '80:80' # HTTP
- '81:81' # Админка
- '443:443' # HTTPS
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt


Почему это маст-хэв?

Простота: Добавление нового поддомена занимает 30 секунд. Ты просто вводишь имя хоста и IP-адрес контейнера.
Автоматический SSL: Нажал галочку «Force SSL», и NPM сам свяжется с Let's Encrypt, получит сертификат и будет его обновлять.
Безопасность: Можно закрыть любой сервис паролем (Access Lists) прямо через админку, даже если само приложение этого не умеет.
Логирование: Ты видишь, кто и когда заходил на твои сайты, прямо в интерфейсе.

Кому это нужно?

— Тем, кто держит несколько проектов на одном VPS.
— Разработчикам, которым нужно быстро выкатить фронтенд и бэкенд на разные поддомены.
— Владельцам домашних серверов для доступа к своим инструментам извне.

Совет: Чтобы NPM мог обращаться к другим контейнерам по их именам (например, http://backend:5000), объедини их в одну Docker-сеть. Это избавит тебя от необходимости прописывать локальные IP-адреса.

🔥 — если за красивые домены и зеленый замочек HTTPS
🤝 — если по старинке открываешь порты в фаерволе и заходишь по IP

➡️ GitHub Ready | #урок
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4
🛡 CrowdSec: Современный щит от ботов и брутфорса

Если твой сервер торчит в интернете, его сканируют боты каждую секунду. Стандартный Fail2Ban хорош, но он работает в одиночку. CrowdSec — это «иммунная система» для твоих контейнеров, которая использует коллективный разум: если IP-адрес атаковал кого-то в сети CrowdSec, он будет забанен и у тебя еще до первой атаки.

Задача:
— Автоматически банить хакеров, сканеров портов и ботов.
— Защитить Nginx Proxy Manager, SSH и другие сервисы без сложных конфигов.
— Использовать постоянно обновляемую базу «плохих» IP со всего мира.

Решение:

Устанавливаем CrowdSec вместе с твоим Reverse Proxy. Он читает логи, находит подозрительную активность и дает команду фаерволу «сбросить» соединение.

Почему это круче старых методов?

Коллективная безопасность: Как только бот спалился на одном сервере в мире, его данные улетают в общую базу. Твой сервер скачивает этот список и превентивно закрывает дверь.
Понимает контекст: CrowdSec анализирует не просто факт неудачного входа, а целые сценарии — например, слишком частый перебор URL-адресов или попытки SQL-инъекций.
Легкая интеграция с Docker: Есть готовые коллекции правил для Docker, Nginx, Traefik и WordPress.
Удобный дашборд: Ты можешь видеть карту атак на свой сервер и статистику забаненных IP в красивом веб-интерфейсе.

Как это работает?

1. Агент (Agent): Читает логи и обнаруживает угрозу.
2. Баунсер (Bouncer): Исполнитель, который физически блокирует доступ (на уровне фаервола или конфига Nginx).

Совет: В связке с Nginx Proxy Manager используй специальный баунсер (OpenResty), который будет проверять каждый входящий запрос по базе CrowdSec. Это превратит твой входной узел в настоящую цифровую крепость.

🔥 — если веришь в коллективную безопасность
🤝 — если достаточно старого доброго Fail2Ban

➡️ GitHub Ready | #урок
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3
☁️ Cloudflare Tunnels: Как открыть сервер миру без белого IP?

Если у тебя нет выделенного (белого) IP-адреса от провайдера или ты не хочешь возиться с пробросом портов (Port Forwarding), Cloudflare Tunnels — это лучший способ вывести локальные сервисы в интернет. Ты просто запускаешь небольшой агент на сервере, и он сам «прокидывает» мостик до облака Cloudflare.

Задача:
— Опубликовать сайт или сервис из домашней сети/локалки.
— Скрыть реальный IP-адрес своего сервера от атак.
— Забыть о настройке DDNS и дырах в фаерволе роутера.

Как это работает?

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

Преимущества в 2026 году:

Безопасность: Тебе не нужно открывать порты на роутере. Весь входящий трафик идет через фильтры Cloudflare, которые отсекают ботов и DDoS-атаки.
Zero Trust: Ты можешь добавить панель авторизации (через Google, GitHub или почту) поверх своего сервиса всего за пару кликов. Даже если в твоем приложении нет пароля, Cloudflare его добавит.
Простота: Всё настраивается через удобный веб-интерфейс (Cloudflare Dashboard). Тебе просто нужно скопировать одну команду и запустить её в Docker.
Бесплатно: Основной функционал туннелей доступен на бесплатном тарифе.

Как запустить через Docker?

При создании туннеля в панели Cloudflare тебе дадут токен. Запуск выглядит так:

docker run -d \
--name cloudflared \
--restart unless-stopped \
cloudflare/cloudflared:latest tunnel --no-autoupdate run --token <ТВОЙ_ТОКЕН>


Кому это нужно?

— Разработчикам, чтобы показать заказчику проект, запущенный прямо на рабочем ноутбуке.
— Владельцам «умных домов» (Home Assistant) для доступа из любой точки мира.
— Тем, чей провайдер выдает только серые IP-адреса (за NAT).

Совет: Используй туннели вместе с Nginx Proxy Manager. Ты можешь направить весь трафик из туннеля на NPM, а он уже сам распределит его по внутренним контейнерам по поддоменам.

🔥 — если за приватность и отсутствие открытых портов
🤝 — если предпочитаешь классический Port Forwarding

➡️ GitHub Ready | #урок
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4
🏠 Homepage: Твоя личная приборная панель для всех сервисов

Когда количество контейнеров переваливает за десяток, помнить все порты и адреса становится невозможно. Вместо закладок в браузере лучше использовать Homepage — современный, быстрый и чертовски красивый дашборд, который собирает все твои ссылки и метрики на одном экране.

Задача:
— Создать единую точку входа для всех локальных и облачных ресурсов.
— Видеть статус сервисов (онлайн/оффлайн) и нагрузку на сервер без перехода в другие вкладки.
— Организовать удобный поиск и группировку инструментов по категориям.

Решение:

Разворачиваем Homepage в Docker. Он настраивается через простые YAML-файлы и выглядит гораздо современнее старых аналогов.



Почему это круто?

Виджеты с данными: Homepage умеет подключаться к API твоих сервисов. Ты можешь видеть остаток места на диске, скорость загрузки в Transmission, количество активных клиентов в AdGuard Home или текущую погоду прямо на иконках.
Статистика сервера: Сверху всегда отображается загрузка CPU, оперативной памяти и состояние сети.
Полная кастомизация: Можно менять фоны, иконки, цвета и структуру групп. Всё работает мгновенно благодаря статической генерации.
Docker-интеграция: Он может сам «подтягивать» информацию о запущенных контейнерах через сокет, показывая их статус в реальном времени.

Как запустить?

# docker-compose.yml
services:
homepage:
image: ghcr.io/gethomepage/homepage:latest
ports:
- 3000:3000
volumes:
- ./config:/app/config # Здесь лежат твои YAML настройки
- /var/run/docker.sock:/var/run/docker.sock # Для получения статуса контейнеров


Кому это нужно?

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

Совет: Используй встроенный поиск по странице (клавиша /), чтобы мгновенно находить нужный сервис среди десятков ссылок. Это экономит уйму времени, когда проект разрастается.

🔥 — если любишь, когда всё красиво и под рукой
🤝 — если достаточно стандартной страницы «Новая вкладка»

➡️ GitHub Ready | #урок
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3
🛠 AdGuard Home: Чистый интернет без рекламы и трекеров

Если тебе надоело вырезать баннеры в каждом браузере отдельно, пора переходить на сетевой уровень. AdGuard Home — это мощный DNS-сервер, который блокирует рекламу и слежку на всех устройствах сразу: от твоего рабочего ноутбука до умного телевизора и смартфонов.

Задача:
— Убрать рекламу во всех приложениях и браузерах.
— Запретить устройствам «стучать» своим производителям (телеметрия).
— Ускорить загрузку страниц за счет того, что мусорный контент даже не начинает скачиваться.

Решение:

Устанавливаем AdGuard Home в Docker и направляем трафик роутера через него.



Почему это маст-хэв?

Блокировка на уровне DNS: Реклама фильтруется до того, как попадет на устройство. Это экономит трафик и заряд батареи на мобилках.
Родительский контроль: Можно в один клик запретить доступ к сайтам для взрослых или ограничить использование YouTube и соцсетей по расписанию.
Шифрование трафика: Поддержка DNS-over-HTTPS (DoH) и DNS-over-TLS (DoT) защищает твои запросы от провайдера и злоумышленников.
Статистика: Ты увидишь реальную картину того, какие устройства и куда пытаются ломиться в сети.

Как запустить?

# docker-compose.yml
services:
adguardhome:
image: adguard/adguardhome
container_name: adguardhome
restart: unless-stopped
volumes:
- ./workdir:/opt/adguardhome/work
- ./confdir:/opt/adguardhome/conf
ports:
- "53:53/tcp"
- "53:53/udp"
- "80:80/tcp"
- "3000:3000/tcp" # Первичная настройка
- "443:443/tcp"


Кому это нужно?

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

Совет: После запуска пропиши IP-адрес своего сервера в настройках DNS на роутере. Теперь все устройства, подключающиеся к твоему Wi-Fi, автоматически получат «чистый» интернет без единой дополнительной настройки.


🔥 — если за интернет без баннеров и слежки
🤝 — если привык к рекламе и просто её не замечаешь

➡️ GitHub Ready | #урок
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5
📁 FileBrowser: Твой личный Google Drive на собственном сервере

Если тебе нужно быстро скинуть файл на сервер или скачать логи без использования терминала и SCP, ставь FileBrowser. Это легковесный и быстрый веб-менеджер файлов, который превращает любую папку на твоем диске в удобный интерфейс, доступный через браузер.

Задача:
— Управлять файлами на сервере через графический интерфейс.
— Иметь возможность создавать публичные ссылки на файлы для друзей или коллег.
— Редактировать конфиги или просматривать картинки/видео прямо в браузере.

Решение:

Запускаем контейнер, пробрасываем в него нужную директорию и получаем полноценный проводник.



Почему это удобно?

Легкость: Весь сервис — это один бинарный файл. Он потребляет копейки оперативной памяти и работает мгновенно.
Управление пользователями: Можно создать аккаунты для разных людей, ограничив их только определенными папками (например, только папкой /uploads).
Встроенный редактор: Ты можешь править .env файлы, YAML-конфиги или скрипты прямо в браузере с подсветкой синтаксиса.
Shell-команды: Прямо из интерфейса можно запускать команды (например, распаковать архив или создать папку), если у пользователя есть права.

Как запустить?

# docker-compose.yml
services:
filebrowser:
image: filebrowser/filebrowser:latest
ports:
- 8080:80
volumes:
- /path/to/your/files:/srv # Твои файлы здесь
- ./database.db:/database.db
- ./settings.json:/config/settings.json
restart: unless-stopped


Кому это нужно?

— Разработчикам для удобного доступа к артефактам сборки или логам.
— Тем, кто хочет поднять свое «облако» для хранения личных документов и фото без подписок.
— Владельцам серверов, которым лень каждый раз вводить ssh и ls -la для простых операций.

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

🔥 — если за удобный UI в управлении сервером
🤝 — если терминал — твой единственный файловый менеджер

➡️ GitHub Ready | #урок
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6
📂 Простой обменник файлов между устройствами

MicroBin — безопасное, опенсорсное и настраиваемое веб-приложение для обмена файлами и сокращения URL-адресов, написанное на Rust.

👉 Особенности: шифрование на стороне сервера и клиента, поддержка QR-кодов, поддержка SQLite и JSON, автоудаление контента и многое другое.


Клик!

➡️ GitHub Ready | #урок
Please open Telegram to view this post
VIEW IN TELEGRAM
4
❗️❗️Кто-то ещё обучается айтишке в вузах или на курсах?

Эти 70 летние бабки учат программировать в 1с?
Или тебе обещают золотые горы и трудоустройство после их курса?

Считай ты просто выбросил деньги

Прикинь?! — Самый адекватный выбор.

🟢Собраны все знания от сеньоров зарубежных бигтехов

🟢Все главные новости айтишки, без которых никак

🟢Лайфхаки и фишечки, которые помогут в обучении

Подпишись - @prikin_news
Please open Telegram to view this post
VIEW IN TELEGRAM
👎7😁1
🐳 Portainer: Графический центр управления Docker

Если ты устал держать в голове десятки ID контейнеров и путаться в их сетях, пора ставить Portainer. Это самый мощный и популярный веб-интерфейс, который превращает управление Docker-хостом в наглядный и понятный процесс.

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

Решение:

Portainer подключается к сокету Docker и дает тебе полный контроль над всеми ресурсами через удобную админку.

Почему это маст-хэв?

Управление стэками (Stacks): ты можешь писать и запускать docker-compose файлы прямо внутри Portainer. Это удобнее, чем хранить их в разных папках на сервере.
Консоль в браузере: нужно зайти внутрь контейнера? Просто нажми на иконку терминала в строке контейнера. Больше не нужно писать docker exec.
Мониторинг ресурсов: наглядные графики потребления CPU и RAM для каждого сервиса в реальном времени.
App Templates: огромная библиотека готовых шаблонов. Хочешь поднять WordPress или базу данных? Выбираешь из списка, жмешь «Deploy» — и готово.

Как запустить?

# docker-compose.yml
services:
portainer:
image: portainer/portainer-ce:latest
container_name: portainer
restart: always
ports:
- "9443:9443"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- portainer_data:/data
volumes:
portainer_data:



Кому это нужно?

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

Совет: Используй Portainer для удаления неиспользуемых образов и слоев (Prune). В интерфейсе сразу видно, какие ресурсы помечены как «Unused» — очистка диска теперь делается одной кнопкой.

🔥 — если за визуальный контроль и порядок
🤝 — если терминал — это и есть твоя админка

➡️ GitHub Ready | #урок
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1