Я убеждён, что пароль в закреплённом сообщении Telegram или в общем экселе рано или поздно утечёт — дело не в везении, а в том, сколько людей его уже увидели и скопировали себе «на всякий случай». Полгода назад у нас в компании было ровно так: доступы к Bitrix, SSH‑ключи, лицензии на модули — россыпью по личным чатам, гуглдокам и голове того, кто это заводил. Уходит сотрудник — доступы за ним никто не забирает, потому что толком не знает, какие у него вообще были. Разбираться с этим я сел после того, как в очередной раз не смог сходу сказать, какой из трёх паролей к хостингу актуальный — это и стало последней каплей.
Рубрика «docker» - 3
Как я поднял self‑hosted менеджер паролей и заставил компанию им пользоваться
2026-09-23 в 14:12, admin, рубрики: Bitwarden, docker, self-hosted, Vaultwarden, VPN-доступ, бэкап и восстановление, инфраструктура, менеджер паролейКриптомайнер на Gitea: 70% нагрузки CPU, RCE в self-hosted Gitea вместо GitLab и как я закрыл уязвимость
2026-08-19 в 10:39, admin, рубрики: CVE-2026-60004, docker, Git-репозитории, gitea, gitlab, incident response, rce, self-hosted Gitea, информационная безопасность, крипто-майнерПривет!
Я CTO и full‑stack в веб‑студии. Работаем командой, отдельного SRE нет, поэтому, инфраструктура на мне. Проектов за время работы накопилось довольно много и есть некая сборная солянка, с которыми приходиться взаимодействовать наиболее активно. Часть из них на PHP, часть на React, часть старых сайтов которые живут на shared-хостингах. Ничего космического. Обычная рабочая инфраструктура, где Git должен просто работать.
Но в какой-то момент GitLab стал периодически отваливаться: сетевые ограничения, фильтры, то непонятные блокировки.
Было принято решение сделать небольшой самохостинг (self-hosted) сервер для студии.
Как я запустил свою онлайн‑радиостанцию GrindFM на AzuraCast и Яндекс.Облаке
2026-08-18 в 12:44, admin, рубрики: AzuraCast, docker, icecast, liquidsoap, STALCRAFT, Ubuntu, vps, интернет-радио, радиостанция, яндекс.облакоЯ играю в STALCRAFT, ныне STALZONE. Там есть радио Grind FM — играет фоном, создаёт атмосферу. Проблема в том, что это радио находится в безопасной зоне и играет даже не на всю эту зону. И мне захотелось сделать так, чтобы во время вылазки можно было включить это радио и мочить мутантов.
Немного поизучав, как это можно сделать без опыта в этом деле, я понял, что нужен просто сервер в облаке и программа с веб‑интерфейсом.
Что нужно
-
Сервер (VPS) в Яндекс.Облаке — 1 ядро, 2 ГБ памяти, 20 ГБ SSD.
-
Домен (по желанию, можно и по IP слушать).
-
Музыка в MP3.
-
Пара часов свободного времени.
Читать полностью »
Я думал, что 16 воркеров ускорят обработку задач в 16 раз. Но что‑то пошло не так
2026-08-13 в 14:29, admin, рубрики: backend, celery, docker, optimisation, python, worker, асинхронность, многопоточность, распределенные системы, тестированиеНедавно я написал свою систему распределённой обработки задач. Сначала это был учебный проект. Мне хотелось лучше разобраться в очередях задач, координации воркеров, блокировках строк в PostgreSQL, retry‑механизмах и планировании фоновых задач. Когда основная функциональность была готова, я понял, что не знаю, как система ведёт себя под нагрузкой.
Поэтому вместо того, чтобы добавлять очередную фичу, я решил провести простой эксперимент. Взять одинаковый набор задач и постепенно увеличивать количество воркеров. Первые результаты выглядели именно так, как я ожидал, а потом масштабирование внезапно остановилось.Читать полностью »
Как я написал PID 1 для контейнеров на чистом ассемблере: x86-64 и ARM64
2026-08-12 в 16:43, admin, рубрики: arm64, assembly, containers, Debian, docker, epoll, linux, pid 1, x86-64У меня была довольно странная идея: написать минимальный PID 1 для контейнеров целиком на ассемблере.
Не потому, что контейнерному миру срочно нужен ещё один init. Есть Tini, есть docker run --init, и для большинства production-сценариев я бы по-прежнему начал именно с них.
Мне скорее хотелось разобрать задачу до самого нижнего уровня: без libc, без runtime, напрямую через Linux syscalls. Заодно проверить, насколько сильно будет отличаться одна и та же реализация на x86-64 и ARM64.
В итоге из небольшого эксперимента получился mini-init-asmЧитать полностью »
Формула «идеального enterprise» для open-source
2026-08-12 в 9:01, admin, рубрики: docker, enterprise, enterprise architecture, enterprise software development, opensourse, ruvds_статьи, разработкаOpenClaw и Hermes на одном VPS: чего стоит связать двух агентов безопасно
2026-08-10 в 11:40, admin, рубрики: ACP, docker, Hermes, OpenClaw, openrouter, ssh, ufw, vps, безопасность сервера, ии-агенты
Недавно на Хабре вышел перевод статьи «Hermes против OpenClaw — когда и какой агент использовать»Читать полностью »
Как я сделал старый монолит на Laravel 8 — модульным, чтобы не плодить форки под каждого клиента
2026-08-03 в 15:35, admin, рубрики: docker, laravel, php, self-hosted, модульная архитектура, монолит, плагины, рефакторингНебольшая предыстория — без рассказа про сам продукт, только про боль и как я её разгребал
Изначально это был монолитный портал на Laravel 8, где user‑фронт и admin‑фронт лежали рядом с беком в одной папке.
Проект ставился каждому клиенту на его собственный хостинг, и единого портала «для всех» не существовало, между клиентами отличался и бек, и фронт.
Статичный сайт с Vite + Caddy + Docker: пошаговое руководство
2026-08-03 в 9:36, admin, рубрики: Caddy, docker, javascript, viteВ данной статье будет подробно рассмотрен полный цикл деплоя сайта, используюшего Vite в качестве инструмента сборки. Мы напишем многоступенчатый Dockerfile, чтобы собрать образ с готовой статикой, и поднимем контейнер с сервером Caddy, который автоматически выдаст и будет обновлять сертификаты Let's Encrypt.
Нам понадобится
-
Арендованный или домашний сервер на Ubuntu с публичным IP
-
Домен, привязанный к IP
-
Docker
-
Готовый проект с vite
-
Терминал
Структура проекта
Старому Jetson Nano — домашнее облако: Nextcloud, Immich, CGNAT и три USB‑сбоя
2026-07-25 в 10:46, admin, рубрики: autossh, CGNAT, claude code, docker, immich, Jetson Nano, nextcloud, reverse SSH tunnel, USB SSD, домашнее облакоПосле переезда я нашёл в коробке NVIDIA Jetson Nano, который несколько лет лежал без дела. Покупать готовый NAS не хотелось, поэтому решил собрать домашнее облако из того, что уже было: Jetson, старого SSD и VPS.
В результате на четырёх гигабайтах памяти заработали Nextcloud, Immich, семейный чат, мониторинг и собственный REST API. Самой сложной частью оказались не Docker и не CGNAT, а USB‑хранилище: три разных сбоя заставили переделать подключение диска, загрузочные параметры и правила работы с репозиторием.

