GitHub Ready | Git
5.74K subscribers
651 photos
78 videos
1 file
582 links
По всем вопросам: @AdilNow
Download Telegram
📁 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
🐳 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
🔥2
🛡️ Vaultwarden: Твой личный сейф для паролей под полным контролем

Хранить все пароли в браузере или сторонних сервисах — риск. Если их взломают, у злоумышленников будет доступ ко всей твоей жизни. Vaultwarden (ранее Bitwarden_RS) — это легкая реализация API Bitwarden на Rust, которую можно запустить на своем сервере.

Задача:
— Хранить пароли, данные карт и заметки в зашифрованном виде.
— Иметь доступ к базе с любого устройства (ПК, смартфон, расширение в браузере).
— Не платить за подписки и не доверять свои данные корпорациям.

Решение:

Устанавливаем один контейнер, который потребляет всего около 10–20 МБ оперативной памяти, но дает функционал топового менеджера паролей.

Почему это круче аналогов?

— Полная совместимость: ты используешь официальные приложения и расширения Bitwarden, но они подключаются к *твоему* серверу.
— Безопасность: всё шифруется на стороне клиента. Даже если кто-то украдет базу с твоего сервера, без мастер-пароля это просто набор случайных символов.
— Премиум-фичи бесплатно: двухфакторная аутентификация (2FA), генератор кодов (TOTP) и вложения к паролям доступны сразу из коробки.
— Автозаполнение: расширение в браузере само подставляет логины и пароли, а на смартфоне это работает через системные функции биометрии.

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

# docker-compose.yml
services:
vaultwarden:
image: vaultwarden/server:latest
container_name: vaultwarden
restart: always
environment:
- SIGNUPS_ALLOWED=true # Выключи после регистрации своего аккаунта
volumes:
- ./vw-data:/data
ports:
- 8080:80



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

— Всем, кто хочет навести порядок в безопасности своих аккаунтов.
— Командам, которым нужно безопасно делиться общими доступами к сервисам.
— Параноикам (в хорошем смысле), которые хотят знать, где именно лежат их ключи.

Совет: Vaultwarden обязательно должен работать через HTTPS (например, через Nginx Proxy Manager), иначе браузеры заблокируют функции криптографии и автозаполнения из соображений безопасности.

🔥 — если доверяешь только своему серверу
🤝 — если хранишь пароли в блокноте или голове

➡️ GitHub Ready | #урок
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6
🐳 Docker Compose: как запускать проекты одной командой?

Если ты до сих пор запускаешь базу данных, бэкенд и фронтенд отдельными командами docker run, ты тратишь время зря. Docker Compose — это инструмент, который позволяет описать всю архитектуру твоего проекта в одном файле и поднять её целиком.

Задача:
— Описать связи между контейнерами (например, чтобы бэкенд видел базу данных).
— Хранить настройки окружения (порты, пароли, вольюмы) в читаемом виде.
— Запускать и останавливать весь стек одной короткой командой.

Решение:

Создаем файл docker-compose.yml, где прописываем все нужные сервисы.

version: '3.8'
services:
db:
image: postgres:15-alpine
restart: always
environment:
POSTGRES_PASSWORD: mysecretpassword
volumes:
- db_data:/var/lib/postgresql/data

backend:
build: .
ports:
- "8080:8080"
depends_on:
- db
environment:
DATABASE_URL: postgres://postgres:mysecretpassword@db:5432/postgres

volumes:
db_data:



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

— Инфраструктура как код: настройки твоего сервера теперь лежат в Git вместе с кодом. Любой разработчик может развернуть проект у себя за пару минут.
— Изоляция сетей: Compose автоматически создает сеть, внутри которой контейнеры общаются по именам (например, http://db:5432), а наружу пробрасываются только нужные порты.
— Управление состоянием: команда docker-compose up -d создаст только то, чего не хватает, или обновит изменившиеся сервисы.
— Масштабируемость: можно легко запустить несколько экземпляров одного сервиса для тестов.

Основные команды:

— docker-compose up -d — запустить всё в фоновом режиме.
— docker-compose stop — остановить сервисы, не удаляя их.
— docker-compose down — полностью остановить и удалить контейнеры и сети проекта.

Совет: Используй .env файлы для хранения секретов и переменных окружения. Docker Compose автоматически подтянет их, и тебе не придется «светить» пароли в основном конфиге.


🔥 — если всё хранишь в docker-compose.yml
🤝 — если до сих пор пишешь огромные bash-скрипты с docker run

➡️ GitHub Ready | #урок
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6
🐳 Docker Slim (DockerSlim): Как похудеть вашему образу в 30 раз?

Если даже после Multi-stage билда твой образ весит сотни мегабайт, пора выпускать тяжелую артиллерию. Docker Slim — это инструмент, который анализирует работу твоего контейнера и безжалостно вырезает из него всё, что не используется при выполнении программы.

Задача:
— Уменьшить размер образа (иногда с 1 ГБ до 30 МБ).
— Повысить безопасность, удалив лишние бинарники и шеллы.
— Ускорить деплой и экономить место в Docker Registry.

Решение:

Docker Slim запускает твой контейнер, смотрит, какие файлы и библиотеки реально задействованы, а затем собирает новый "микро-образ".

Почему это магия?

— Автоматизация: Тебе не нужно вручную искать зависимости. Инструмент сам поймет, что приложению нужен только один конфиг и пара библиотек, а остальной мусор из Debian/Ubuntu можно выкинуть.
— Безопасность: Чем меньше в образе файлов, тем меньше поверхность атаки. Хакеру не за что зацепиться, если в системе нет даже стандартных утилит.
— Совместимость: На выходе получается обычный Docker-образ, который работает везде, где и оригинал.

Как пользоваться?

Достаточно запустить одну команду из терминала:

docker-slim build my-app-image:latest



На выходе ты получишь my-app-image.slim, который будет весить в разы меньше.

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

— Разработчикам на Python, Node.js и Java, где образы часто раздуваются из-за огромного количества зависимостей.
— Тем, кто деплоит в облака с оплатой за трафик и хранение.
— Проектам с жесткими требованиями к безопасности (SecOps).

Совет: Чтобы оптимизация прошла успешно, во время работы docker-slim build желательно прогнать тесты или потыкать приложение вручную. Это нужно, чтобы инструмент увидел, какие части кода и библиотек активируются в процессе работы.

🔥 — если каждый мегабайт на счету
🤝 — если дисковое пространство стоит копейки

➡️ GitHub Ready | #урок
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8
📊 Glances: Всё железо под контролем в одном окне

Если тебе нужно быстро понять, почему сервер начал тормозить, а открывать десять разных утилит лень, ставь Glances. Это продвинутый мониторинг системы на Python, который показывает вообще всё: от температуры процессора до сетевой активности и состояния Docker-контейнеров.

Задача:
— Получить полный срез состояния системы (CPU, RAM, Disk, Network) на одном экране.
— Мониторить запущенные процессы и их влияние на ресурсы.
— Иметь возможность смотреть статистику как в терминале, так и через браузер.

Решение:

Glances работает по принципу «всё включено». Он автоматически подстраивается под размер окна и подсвечивает проблемные зоны (например, если память заканчивается, цифры станут красными).

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

— Информативность: В отличие от классического top, здесь сразу видны дисковые операции (I/O), сенсоры температуры, IP-адреса и даже список Docker-контейнеров с их нагрузкой.
— Веб-интерфейс: Запустив его с флагом -w, ты получишь полноценную веб-страницу с графиками, которую можно открыть с любого устройства.
— API и экспорт: Glances умеет отправлять данные в InfluxDB, Prometheus или просто в CSV-файл для дальнейшего анализа.
— Режим клиент-сервер: Можно запустить агент на удаленном сервере и подключаться к нему со своего ПК, чтобы видеть статистику в реальном времени.

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

# docker-compose.yml
services:
glances:
image: nicolargo/glances:latest
container_name: glances
restart: always
pid: host # Чтобы видеть процессы хоста
network_mode: host # Для мониторинга сетевых интерфейсов
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
environment:
- GLANCES_OPT=-w # Запуск в режиме веб-сервера



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

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

Совет: В терминале используй горячие клавиши: c — сортировка по CPU, m — по памяти, d — показать/скрыть дисковую статистику. Это позволяет мгновенно найти процесс-виновник тормозов.

➡️ GitHub Ready | #урок
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
🕵️ Lazygit: Как перестать бояться Git в терминале?

Если работа с ветками, коммитами и мерджами через консоль кажется тебе пыткой, а тяжелые GUI-клиенты тормозят систему, Lazygit — это то, что изменит твой рабочий процесс. Это интерактивный TUI (Terminal UI) клиент, который делает работу с Git быстрой, наглядной и почти магической.

Задача:
— Видеть состояние репозитория, изменения в файлах и дерево веток одновременно.
— Делать сложные операции (интерактивный rebase, cherry-pick) без заучивания флагов команд.
— Стейджить отдельные строки кода, а не целые файлы, парой нажатий.

Решение:

Ты просто запускаешь команду lazygit в папке проекта и получаешь полноценный пульт управления.

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

— Скорость: Большинство действий делается одной клавишей. c — коммит, P — пуш, p — пулл, space — стейдж файла.
— Визуальный Diff: Ты видишь изменения в коде справа и можешь выбрать конкретные строки для коммита стрелками и пробелом.
— Удобный Rebase: Интерактивное перебазирование, которое в консоли пугает новичков, здесь превращается в простую сортировку коммитов.
— Работа с ветками: Переключение, создание и удаление веток происходит мгновенно, а дерево коммитов всегда перед глазами.

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

— Разработчикам, которые проводят в терминале 90% времени.
— Тем, кто хочет «прозрачности» в истории коммитов.
— Всем, кому надоело писать git add . и git status каждые две минуты.

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

🔥 — если терминал — твой дом родной
🤝 — если предпочитаешь кнопки в VS Code или WebStorm

➡️ GitHub Ready | #урок
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8❤1👍1
🧠 LocalAI: Как запустить свои нейросети на сервере без цензуры и подписок

Если тебе надоело платить за API OpenAI, зависеть от их серверов или ты боишься утечки конфиденциального кода, пора развернуть LocalAI. Это полноценная замена API ChatGPT, Whisper и Midjourney, которая работает локально на твоем железе внутри Docker-контейнера.

Задача:
— Запустить LLM (Large Language Models) на собственном сервере.
— Получить полный аналог OpenAI API, чтобы существующие приложения (например, плагины в VS Code) могли работать с локальной моделью без переписывания кода.
— Обеспечить 100% приватность данных и независимость от интернета.

Решение:

LocalAI собирает популярные опенсорсные движки (llama.cpp, diffusers и др.) в один удобный Docker-образ с REST API.

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

— Полная совместимость с OpenAI: Он имитирует эндпоинты /v1/chat/completions, /v1/embeddings и /v1/audio/transcriptions. Ты можешь просто поменять api_base_url в своем Python/Node.js скрипте, и всё заработает на твоем сервере.
— Работает без GPU: Инструмент оптимизирован для работы на обычных CPU. Конечно, на видеокарте всё летает, но для простых задач или тестов хватит и обычного процессора.
— Мультимодальность: В один интерфейс можно завернуть языковые модели (Llama 3, Mistral), генераторы картинок (Stable Diffusion) и распознавание речи (Whisper).
— Никакой цензуры: Модели выполняют именно те инструкции, которые ты им даешь, без корпоративных ограничений и политкорректных отказов.

Как запустить (пример для CPU)?

# docker-compose.yml
services:
local-ai:
image: localai/localai:latest-cpu
container_name: local-ai
restart: always
ports:
- 8080:8080
environment:
- MODELS_PATH=/models
- THREADS=4 # Количество ядер процессора
volumes:
- ./models:/models



После запуска достаточно закинуть нужную модель в формате .gguf в папку /models, и она сразу станет доступна по API.

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

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

Совет: Для старта выбирай небольшие, но эффективные модели (например, Llama-3-8B-Instruct в квантовании Q4_K_M). Они требуют около 5-6 ГБ оперативной памяти, быстро отвечают на CPU и отлично справляются с базовым написанием кода и анализом текста.
🔥 — если за приватность и локальные нейросети
🤝 — если облачные API пока удобнее

➡️ GitHub Ready | #урок
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8
🐳 Kubevious: Как увидеть свой Kubernetes-кластер на ладони?

Если ты переходишь с Docker Compose на Kubernetes, то количество ямлов (YAML), подов, сервисов, ингрессов и конфигмапов начинает пугать. Главная проблема K8s — сложно увидеть всю картину целиком и понять, почему один под не может достучаться до другого. Kubevious — это визуальный дашборд, который превращает хаос из манифестов в понятную и интерактивную карту.

Задача:
— Понять реальную архитектуру и связи внутри кластера.
— Быстро находить ошибки в конфигурациях (например, неверный селектор у сервиса).
— Мониторить распределение ресурсов и "осиротевшие" сущности.

Решение:

Устанавливаем Kubevious в кластер. Он анализирует все манифесты, строит граф зависимостей и подсвечивает проблемы до того, как они сломают прод.

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

— Ориентирован на приложения: В отличие от стандартного Kubernetes Dashboard, Kubevious группирует сущности логически. Ты видишь не просто список подов, а цепочку: *Ingress -> Service -> Deployment -> Pods -> Volumes*.
— Автоматический аудит: Инструмент содержит встроенные правила валидации. Если ты опечатался в названии лейбла или забыл ограничить CPU/RAM (Limits), Kubevious сразу повесит на этот узел красный ярлык с описанием ошибки.
— Машина времени (Time Travel): Ты можешь "отмотать" состояние кластера назад и посмотреть, какие изменения в манифестах привели к падению сервиса пару часов назад.
— Поиск скрытых связей: Кликнув на любой под, ты сразу увидишь, какие сетевые политики (NetworkPolicies) на него влияют и какие секреты он монтирует.

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

— Разработчикам, которые начинают деплоить свои Python/Node.js приложения в Kubernetes и хотят контролировать процесс.
— DevOps-инженерам для быстрой визуальной диагностики и онбординга новых сотрудников в проект.
— Тем, кто хочет спать спокойно, зная, что в конфигурациях кластера нет явных дыр.

Совет: Используй Kubevious в связке с CLI-утилитой kubevious-cli в своем CI/CD пайплайне. Это позволит валидировать ямлы на этапе коммита, запрещая деплоить в кластер конфигурации с ошибками.


🔥 — если визуализация помогает в дебаге
🤝 — если хватает kubectl get all -n my-namespace

➡️ GitHub Ready | #урок
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3
🚀 FastStream: Python-фреймворк для работы с брокерами сообщений, который заменит тебе Celery

Если ты пишешь бэкенд на Python и тебе нужно работать с очередями (Kafka, RabbitMQ, NATS), то стандартный выбор — это связка Celery или написание голых коннекторов вручную. Но в 2026 году асинхронные микросервисы пишут на FastStream — фреймворке от создателей Hydra, который делает работу с брокерами такой же удобной, как FastAPI для HTTP.

Задача:
— Быстро запустить асинхронную обработку сообщений (Publisher/Subscriber).
— Избавиться от тонн шаблонного кода (boilerplate) при настройке подключений к Kafka или RabbitMQ.
— Получить автодокументацию очередей и валидацию данных из коробки.

Решение:

FastStream использует концепты FastAPI: ты просто вешаешь декораторы на асинхронные функции, а валидацию типов доверяешь Pydantic.

from faststream import FastStream
from faststream.rabbit import RabbitBroker
from pydantic import BaseModel

# Инициализируем брокер (работает так же для Kafka, NATS)
broker = RabbitBroker("amqp://guest:guest@localhost:5672/")
app = FastStream(broker)

class Order(BaseModel):
id: int
item: str
price: float

# Подписываемся на очередь и валидируем входящие данные
@broker.subscriber("new-orders")
async def handle_order(order: Order):
print(f"Обработка заказа #{order.id}: {order.item}")
# Логика обработки...



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

— Полная асинхронность: Фреймворк изначально спроектирован под asyncio, что дает огромную скорость обработки сообщений под высокой нагрузкой.
— AsyncAPI Документация: Как FastAPI генерирует Swagger для HTTP-ручек, так FastStream автоматически собирает схему твоих очередей и сообщений в формате AsyncAPI. Ты всегда видишь архитектуру потоков данных.
— Мощное тестирование: В комплекте идут удобные фикстуры и тест-клиенты. Можно тестировать логику воркеров без реального запуска RabbitMQ или Kafka в Docker.
— Интеграция с FastAPI: Его можно использовать как отдельный сервис (воркер) или легко встроить прямо внутрь существующего FastAPI-приложения.

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

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

Совет: Используй FastStream в связке с библиотекой Loguru для логирования. Логи воркеров будут выглядеть структурировано, и ты сможешь легко отслеживать путь каждого сообщения через трейс-id.

🔥 — если пишешь асинхронный бэк и любишь FastAPI-стайл
🤝 — если старый добрый Celery + Redis полностью устраивает

➡️ GitHub Ready | #урок
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3
🛡️ Traefik: Современный обратный прокси, который настраивается сам

Если тебе надоело каждый раз вручную прописывать новые контейнеры в конфигах Nginx или даже кликать их в админке Nginx Proxy Manager, пора переходить на Traefik. Это Edge Router, созданный специально для эпохи Docker и микросервисов. Он сам следит за твоей инфраструктурой и мгновенно подхватывает новые сервисы на лету.

Задача:
— Полностью автоматизировать маршрутизацию трафика к контейнерам.
— Перестать перезапускать прокси-сервер при добавлении новых сайтов.
— Автоматически получать и обновлять SSL-сертификаты от Let's Encrypt.

Решение:

Мы запускаем Traefik один раз, даем ему доступ к сокету Docker, а управление маршрутами переносим прямо в docker-compose.yml конкретных приложений с помощью меток (labels).

Почему это маст-хэв для автоматизации?

— Автоматическое обнаружение (Service Discovery): Traefik слушает события Docker. Как только ты пишешь docker compose up -d для нового проекта, Traefik видит его метки, создает маршрут и генерирует SSL. Ты вообще не заходишь в настройки самого прокси.
— Метрики и мониторинг: Из коробки доступна интеграция с Prometheus и Grafana, а также встроенный чистый веб-дашборд, где виден статус всех маршрутов.
— Мощные Middleware: Прямо в конфиге контейнера можно настроить редиректы, ограничение частоты запросов (Rate Limiting), базовую авторизацию или сжатие трафика.
— Поддержка современных протоколов: HTTP/3, gRPC и Websockets работают идеально без костылей в настройках.

Как это выглядит в коде?

Сначала мы поднимаем сам Traefik, а затем любой наш сервис (например, бэкенд на Python) запускается с такими метками:

# Пример меток в docker-compose.yml твоего приложения
services:
my-api:
image: python-backend:latest
networks:
- traefik-public
labels:
- "traefik.enable=true"
# Указываем домен для этого контейнера
- "traefik.http.routers.myapi.rule=Host(`api.myproject.com`)"
# Включаем автоматический HTTPS
- "traefik.http.routers.myapi.entrypoints=websecure"
- "traefik.http.routers.myapi.tls.certresolver=myresolver"



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

— Разработчикам, которые часто поднимают и тушат тестовые окружения (staging) и хотят, чтобы они сразу были доступны по красивым HTTPS-адресам.
— Тем, кто строит CI/CD пайплайны и хочет полной автоматизации деплоя без ручной правки инфраструктурных конфигов.

Совет: Никогда не выставляй сокет Docker (/var/run/docker.sock) наружу в интернет через Traefik. Для максимальной безопасности используй легковесный контейнер-прослойку вроде Tecnativa Docker Socket Proxy, который разрешит Traefik только читать события Docker (доступ на Security Read-Only) и заблокирует любые попытки изменить состояние хоста.


🔥 — если за полную автоматизацию и labels-стиль
🤝 — если привычнее править конфиги или кликать в UI админке

➡️ GitHub Ready | #урок
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1🔥1
🐳 Watchtower: Автоматическое обновление Docker-контейнеров на лету

Когда у тебя на сервере крутится десяток сервисов, проверять обновления для каждого образа вручную — это адски скучно. Ты либо забываешь про апдейты, либо тратишь время на цепочку команд pull, stop, rm и up. Watchtower полностью автоматизирует этот процесс: он сам проверяет Docker Hub или любой другой реджистри и бесшовно обновляет контейнеры до свежих версий.

Задача:
— Держать все приложения на сервере в актуальном состоянии.
— Автоматически скачивать новые образы и перезапускать контейнеры с сохранением всех настроек (портов, вольюмов, сетей).
— Избавиться от рутины ручного обслуживания инфраструктуры.

Решение:

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

Почему это маст-хэв для автоматизации?

— Автономность: Настроил один раз, и твои приложения всегда защищены последними патчами безопасности.
— Умный перезапуск: Watchtower корректно останавливает старый контейнер и запускает новый с абсолютно теми же параметрами окружения (env, volumes, ports), что были изначально.
— Очистка мусора: С флагом --cleanup он автоматически удаляет старые образы после обновления, чтобы они не забивали диск сервера.
— Уведомления: Можно настроить отправку логов в Telegram, Discord или Slack, чтобы всегда знать, какие сервисы обновились за ночь.

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

# docker-compose.yml
services:
watchtower:
image: containrrr/watchtower:latest
container_name: watchtower
restart: unless-stopped
volumes:
- /var/run/docker.sock:/var/run/docker.sock # Доступ к управлению Docker
environment:
- WATCHTOWER_CLEANUP=true # Удалять старые образы после апдейта
- WATCHTOWER_POLL_INTERVAL=86400 # Проверка раз в сутки (в секундах)



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

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

Совет: Если ты не хочешь, чтобы Watchtower обновлял абсолютно всё подряд (например, критически важную базу данных, где мажорный апдейт может всё сломать), добавь к этой базе метку com.centurylinklabs.watchtower.enable=false. Watchtower увидит её и будет обходить этот контейнер стороной.

🔥 — если за автоматические апдейты и свежий софт
🤝 — если обновляешь всё руками и только по праздникам
🔥1
🧪 Uptime Kuma: Твой личный и красивый мониторинг доступности сервисов

Запустил проект, ушел спать, а ночью база данных упала, и пользователи видят ошибку 500. Узнавать об этом из гневных сообщений в поддержке — худший сценарий. Uptime Kuma — это стильный, легкий и мощный инструмент мониторинга, который проверяет твои сайты и контейнеры каждые несколько секунд и сразу бьет тревогу, если что-то пошло не так.

Задача:
— Контролировать доступность сайтов, API, баз данных и пинговать серверы.
— Мгновенно узнавать о падении сервисов в Telegram, Discord или по почте.
— Видеть красивую статистику аптайма (времени работы) и задержки ответа (ping) на графиках.

Решение:

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

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

— Универсальность: Утилита умеет проверять не только обычные HTTP(S) сайты. Она поддерживает мониторинг портов (TCP), запросы к базам данных, DNS-записи, Docker-контейнеры и даже Push-уведомления от твоих скриптов (если скрипт не прислал сигнал вовремя — значит, он завис).
— Уведомления везде: Из коробки доступно более 90 способов отправки алертов. Настройка интеграции с Telegram-ботом занимает ровно 20 секунд.
— Статус-страницы: Можно создать публичную или приватную страницу со списком твоих сервисов. Её можно показать клиентам или команде, чтобы все видели текущий статус платформы без доступа к админке.
— Никаких облаков: Все данные хранятся локально в компактной базе SQLite, проект абсолютно бесплатен и не имеет ограничений на количество проверяемых URL.

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

# docker-compose.yml
services:
uptime-kuma:
image: louislam/uptime-kuma:1
container_name: uptime-kuma
volumes:
- ./uptime-kuma-data:/app/data
ports:
- 3001:3001
restart: always



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

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

Совет: Настраивай проверку критически важных сервисов с интервалом в 30–60 секунд и выставляй параметр "Retries" (количество попыток) на 2–3. Это убережет тебя от ложных ночных уведомлений, если на сервере просто на пару мгновений моргнул сетевой маршрут.


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

➡️ GitHub Ready | #урок
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1
📝 Stirling-PDF: Твой личный и приватный веб-редактор PDF без подписок

Каждый раз, когда нужно объединить два PDF-файла, сжать документ для госуслуг или распознать текст со скана (OCR), приходится либо идти на сомнительные онлайн-сервисы и сливать туда свои документы, либо покупать тяжелый софт. Stirling-PDF — это полноценный швейцарский нож для работы с PDF, который работает прямо в браузере и крутится локально на твоем сервере.

Задача:
— Редактировать, объединять, разрезать и конвертировать PDF-документы.
— Распознавать текст со сканов и картинок (OCR) на десятках языков.
— Сжимать файлы, снимать пароли и ставить водяные знаки без отправки данных в сторонние облака.

Решение:

Разворачиваем один контейнер Stirling-PDF. Проект написан на Java, работает быстро и предоставляет чистый, современный интерфейс со всеми возможными утилитами на главном экране.

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

— 100% приватность: Все операции с файлами происходят внутри твоего контейнера. Никакие данные не улетают на чужие серверы, что критично для договоров, сканов паспортов и финансовых отчетов.
— Огромный функционал: Умеет конвертировать PDF в Word/Excel/PowerPoint и обратно, добавлять подписи, генерировать изображения из страниц, чистить метаданные и даже выравнивать перекошенные сканы.
— Полноценный OCR: Благодаря интеграции с Tesseract, инструмент намертво вшивает текстовый слой в отсканированные документы, делая их доступными для поиска.
— Легковесность и кастомизация: Можно настроить авторизацию для нескольких пользователей, изменить внешний вид панели и убрать ненужные инструменты из меню.

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

# docker-compose.yml
services:
stirling-pdf:
image: frooodle/s-pdf:latest
container_name: stirling-pdf
ports:
- '8080:8080'
volumes:
- ./trainingData:/usr/share/tessdata # Для языковых пакетов OCR
- ./extraConfigs:/configs
environment:
- DOCKER_ENABLE_SECURITY=false # Включи true, если нужна авторизация
- LANGS=ru_RU,en_US # Языки интерфейса и OCR
restart: unless-stopped



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

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

Совет: Если тебе часто приходится распознавать русскоязычный текст, обязательно скачай файл rus.traineddata с гитхаба Tesseract и закинь его в примонтированную папку tessdata. Это поднимет точность распознавания сканов практически до идеала.


🔥 — если за приватность и локальные инструменты
🤝 — если продолжаешь гуглить «объединить pdf онлайн»

➡️ GitHub Ready | #урок
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4❤1
🐳 Dozzle: Простой и реактивный просмотр логов Docker в реальном времени

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

Задача:
— Читать логи Docker-контейнеров в реальном времени без SSH и терминала.
— Мгновенно искать нужные ошибки и варнинги по ключевым словам.
— Иметь под рукой легкую админку, которая не грузит процессор и память сервера.

Решение:

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

Почему это круче тяжелых систем логирования?

— Легче некуда: Написан на Go. Потребляет всего пару мегабайт оперативной памяти и запускается за доли секунды.
— Живой поиск и фильтрация: Можно искать по регулярным выражениям, фильтровать логи конкретного контейнера или искать текст сразу по всем запущенным сервисам.
— Удобство UI: Поддерживает умный скроллинг, темную тему, автопрокрутку и позволяет скачать полный лог-файл в один клик.
— Никаких сложных настроек: Инструмент сам находит все запущенные на хосте контейнеры. Тебе не нужно регистрировать их в конфигах.

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

# docker-compose.yml
services:
dozzle:
image: amir20/dozzle:latest
container_name: dozzle
ports:
- 8888:8080
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro # Доступ к логам в режиме Read-Only
restart: unless-stopped



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

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

Совет: По умолчанию Dozzle открывает доступ к логам всем, кто знает порт. Если ты выводишь его в интернет (например, через Nginx Proxy Manager), обязательно закрой его паролем с помощью встроенной в Dozzle авторизации (через переменные окружения DOZZLE_USERNAME и DOZZLE_PASSWORD) или средствами самого прокси-сервера.


🔥 — если за быстрый дебаг через браузер
🤝 — если docker logs --tail 100 — твой лучший друг

➡️ GitHub Ready | #Уроки
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3
⚡ Nginx Proxy Manager: Идеальный веб-менеджер для твоих доменов и SSL

Если ты поднял на сервере несколько контейнеров (например, FastAPI-бэкенд, базу данных и пару утилит из прошлых постов), перед тобой встает вопрос: как сделать так, чтобы они открывались не по портам вроде :8080 или :3001, а по красивым субдоменам с HTTPS? Nginx Proxy Manager (NPM) — это спасение для тех, кто не хочет вручную ковыряться в громоздких конфигурационных файлах Nginx.

Задача:
— Привязать домены и субдомены (например, api.myproject.com) к конкретным Docker-контейнерам.
— Автоматически выпустить бесплатные SSL-сертификаты Let's Encrypt и настроить их автопродление.
— Защитить админки сервисов с помощью базовой авторизации или ограничить доступ по IP.

Решение:

Разворачиваем стек из NPM. Мы получаем чистый и понятный веб-интерфейс, где добавление нового прокси-маршрута занимает ровно три клика.

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

— Все гениальное — просто: Тебе больше не нужно писать proxy_pass http://localhost:8000; в терминале. Ты просто вводишь имя домена, выбираешь контейнер и жмешь «Сохранить».
— SSL в один клик: NPM сам связывается с Let's Encrypt, проходит проверку, выпускает сертификат и настраивает автоматический редирект с HTTP на безопасный HTTPS.
— Удобное управление: В одном окне видны все твои хосты, кастомные редиректы, 404-страницы и статус активных SSL-сертификатов.
— Безопасность (Access Lists): Можно прямо в панели создать список «Логин-Пароль» и повесить его, например, на админку Portainer или Dozzle, создав дополнительный рубеж обороны.

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

# docker-compose.yml
services:
npm:
image: 'jc21/nginx-proxy-manager:latest'
container_name: nginx-proxy-manager
restart: unless-stopped
ports:
- '80:80' # HTTP трафик
- '443:443' # HTTPS трафик
- '81:81' # Порт для входа в админку NPM
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt



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

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

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


🔥 — если за удобный веб-интерфейс для проксирования
🤝 — если пишешь конфиги Nginx вручную через nano/vim

➡️ GitHub Ready | #Уроки
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3❤1
⚡️Группа хакеров взломала сервера Skillbox, Geekbrains, Skillfactory и ещё 12 онлайн-школ, чтобы выгрузить их курсы в Telegram

Юристы пытаются удалить каналы за Авторские Права🤡 – потому вот актуальные ссылки на архивы:

По школам: 

├ Skillbox (1.12 ТБ)
├ Нетология (846 ГБ)
├ SkillFactory (720 ГБ) 
├ GeekBrains (934 ГБ)
└ Другие (3.21 ТБ)

По ЯП:

├ Python (1.48 ТБ)
├ SQL (982 ГБ)
├ C++ (590 ГБ)
├ С (318 ГБ)
├ GoLang (290 ГБ)
└ Другие (3.17 ТБ)

Ссылка на общий архив: @schools_hack_arc
😁10👎4
📊 Polars: Сверхбыстрая альтернатива Pandas на Rust для работы с данными

Если твой скрипт на Python начинает мучительно долго задумываться при обработке CSV-файлов или логов размером в пару гигабайт, пора менять инструмент. Polars — это современная библиотека для анализа данных, написанная на Rust, которая создана специально для эпохи многоядерных процессоров и больших объемов информации. Она работает в разы (а иногда и в сотни раз) быстрее классического Pandas.

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

Решение:

Polars уходит от старой архитектуры Pandas и использует под капотом Apache Arrow, ленивые (lazy) вычисления и глубокую оптимизацию запросов.

Почему это меняет правила игры?

— Многопоточность из коробки: Pandas по умолчанию работает в один поток. Polars написан на Rust и параллелит любые операции на все доступные ядра процессора без твоего участия.
— Ленивые вычисления (Lazy Evaluation): Вместо мгновенного выполнения каждой строчки кода, Polars может сначала построить граф запроса, оптимизировать его (например, выкинуть ненужные столбцы и отфильтровать строки *до* того, как загрузить весь файл в память) и только потом выдать результат.
— Экономия памяти: Благодаря эффективному внутреннему представлению данных, Polars потребляет гораздо меньше RAM и реже падает с ошибкой Out of Memory.
— Привычный синтаксис: Переучиваться заново не придется — структура выражений очень логична и напоминает смесь SQL и чистого Python.

Как это выглядит в коде?

import polars as pl

# Используем ленивое чтение для экономии памяти
df = (
pl.scan_csv("huge_logs.csv")
.filter(pl.col("status_code") == 500)
.group_by("endpoint")
.agg(
pl.len().alias("errors_count"),
pl.col("response_time").mean().alias("avg_time")
)
.sort("errors_count", descending=True)
.limit(10)
.collect() # Вот только здесь запускаются вычисления
)

print(df)



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

— Разработчикам и дата-инженерам, которые пишут парсеры, аналитические скрипты или бэкенд-сервисы, работающие с тяжелыми отчетами.
— Всем, кто устал ждать по 5 минут, пока Pandas сожрет очередной массив данных.

Совет: Всегда начинай цепочку методов с pl.scan_csv() или pl.scan_parquet() вместо read_csv(). Именно префикс scan_ активирует ленивый режим (LazyFrame), который позволяет Polars применить всю магию оптимизации под капотом.


🔥 — если за скорость Rust в Python-скриптах
🤝 — если Pandas до сих пор хватает для мелких таблиц

➡️ GitHub Ready | #Уроки
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4👍1
Не крипта, не мемкоины, не казино ❌

🥇 Твой пассивный доход должен строиться на понятных активах
А не на СКАМерских проектах-однодневках.

Notal 📈 — канал о том, как зарабатывать на автоматической торговле золотом и серебром без вечной жизни на графиках.

Начните с простого: получите БЕСПЛАТНУЮ версию робота с доходностью до 25% годовых. Без подписок. Без настроек.
🤖 SilentGain

Как возможны 25% годовых? Узнай⤵️
https://t.me/+SZaP3SGi1uZjNzYy
👎2👍1
🐳 Dive: Как заглянуть внутрь Docker-образа и выкинуть лишний мусор?

Когда ты собираешь Docker-образ для своего Python-приложения, он часто весит гораздо больше, чем ожидалось. Обычный docker images показывает только итоговый размер, но не дает понять, какой именно слой сожрал всю память. Dive — это крутейший TUI-инструмент для терминала, который позволяет буквально "разобрать" любой образ по слоям.

Задача:
— Увидеть структуру Docker-образа изнутри.
— Понять, какие файлы добавились, изменились или удалились на каждом шаге сборки (каждой строчке Dockerfile).
— Найти неэффективно используемое пространство и уменьшить размер финального билда.

Решение:

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

Почему это маст-хэв для оптимизации?

— Пошаговый анализ: Перемещаясь стрелочками по слоям слева, ты видишь, как менялся состав файлов справа. Добавленные файлы подсвечиваются зеленым, измененные — желтым, удаленные — красным.
— Коэффициент эффективности (Image Efficiency): Dive автоматически сканирует образ и выдает оценку в процентах. Он сразу подсвечивает "мусор" (wasted space) — например, файлы, которые были созданы в одном слое, а затем удалены в следующем (в Docker они все равно занимают место!).
— Быстрый поиск: Можно мгновенно отфильтровать только измененные файлы, чтобы понять, какая именно команда RUN закинула в контейнер кэш пипа (.cache/pip) или временные apt-пакеты.
— Интеграция в CI: Инструмент можно запускать в режиме проверки (CI=true). Если эффективность образа падает ниже заданного порога (например, 90%), сборка в CI/CD просто упадет.

Как пользоваться?

Установка не нужна, можно запустить утилиту прямо через сам Docker:

docker run --rm -it -v /var/run/docker.sock:/var/run/docker.sock wagoodman/dive:latest my-app-image:latest



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

— Разработчикам, которые хотят довести свои Dockerfile до идеала.
— DevOps-инженерам, сражающимся за скорость деплоя и свободное место в Docker Registry.

Совет: Если ты видишь много "красных" (удаленных) файлов, которые все равно занимают место в кэше слоев, объединяй команды в Dockerfile через оператор &&. Например, установку зависимостей и очистку кэша нужно делать в рамках одной инструкции RUN apt-get install ... && rm -rf /var/lib/apt/lists/*.


🔥 — если вычищаешь образы до минимального размера
🤝 — если гигабайтные образы на сервере тебя не пугают

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