Рубрика «docker» - 3

Я убеждён, что пароль в закреплённом сообщении Telegram или в общем экселе рано или поздно утечёт — дело не в везении, а в том, сколько людей его уже увидели и скопировали себе «на всякий случай». Полгода назад у нас в компании было ровно так: доступы к Bitrix, SSH‑ключи, лицензии на модули — россыпью по личным чатам, гуглдокам и голове того, кто это заводил. Уходит сотрудник — доступы за ним никто не забирает, потому что толком не знает, какие у него вообще были. Разбираться с этим я сел после того, как в очередной раз не смог сходу сказать, какой из трёх паролей к хостингу актуальный — это и стало последней каплей.

Читать полностью »

Привет!

Я CTO и full‑stack в веб‑студии. Работаем командой, отдельного SRE нет, поэтому, инфраструктура на мне. Проектов за время работы накопилось довольно много и есть некая сборная солянка, с которыми приходиться взаимодействовать наиболее активно. Часть из них на PHP, часть на React, часть старых сайтов которые живут на shared-хостингах. Ничего космического. Обычная рабочая инфраструктура, где Git должен просто работать.

Но в какой-то момент GitLab стал периодически отваливаться: сетевые ограничения, фильтры, то непонятные блокировки.

Было принято решение сделать небольшой самохостинг (self-hosted) сервер для студии.

Читать полностью »

Я играю в STALCRAFT, ныне STALZONE. Там есть радио Grind FM — играет фоном, создаёт атмосферу. Проблема в том, что это радио находится в безопасной зоне и играет даже не на всю эту зону. И мне захотелось сделать так, чтобы во время вылазки можно было включить это радио и мочить мутантов.

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

Что нужно

  1. Сервер (VPS) в Яндекс.Облаке — 1 ядро, 2 ГБ памяти, 20 ГБ SSD.

  2. Домен (по желанию, можно и по IP слушать).

  3. Музыка в MP3.

  4. Пара часов свободного времени.

Читать полностью »

Недавно я написал свою систему распределённой обработки задач. Сначала это был учебный проект. Мне хотелось лучше разобраться в очередях задач, координации воркеров, блокировках строк в PostgreSQL, retry‑механизмах и планировании фоновых задач. Когда основная функциональность была готова, я понял, что не знаю, как система ведёт себя под нагрузкой.
Поэтому вместо того, чтобы добавлять очередную фичу, я решил провести простой эксперимент. Взять одинаковый набор задач и постепенно увеличивать количество воркеров. Первые результаты выглядели именно так, как я ожидал, а потом масштабирование внезапно остановилось.Читать полностью »

У меня была довольно странная идея: написать минимальный PID 1 для контейнеров целиком на ассемблере.

Не потому, что контейнерному миру срочно нужен ещё один init. Есть Tini, есть docker run --init, и для большинства production-сценариев я бы по-прежнему начал именно с них.

Мне скорее хотелось разобрать задачу до самого нижнего уровня: без libc, без runtime, напрямую через Linux syscalls. Заодно проверить, насколько сильно будет отличаться одна и та же реализация на x86-64 и ARM64.

В итоге из небольшого эксперимента получился mini-init-asmЧитать полностью »

OpenClaw и Hermes на одном VPS, соединённые SSH-каналом с forced command

OpenClaw и Hermes на одном VPS, соединённые SSH-каналом с forced command

Недавно на Хабре вышел перевод статьи «Hermes против OpenClaw — когда и какой агент использовать»Читать полностью »

Небольшая предыстория — без рассказа про сам продукт, только про боль и как я её разгребал

Изначально это был монолитный портал на Laravel 8, где user‑фронт и admin‑фронт лежали рядом с беком в одной папке.

Проект ставился каждому клиенту на его собственный хостинг, и единого портала «для всех» не существовало, между клиентами отличался и бек, и фронт. 

Читать полностью »

В данной статье будет подробно рассмотрен полный цикл деплоя сайта, используюшего Vite в качестве инструмента сборки. Мы напишем многоступенчатый Dockerfile, чтобы собрать образ с готовой статикой, и поднимем контейнер с сервером Caddy, который автоматически выдаст и будет обновлять сертификаты Let's Encrypt.

Нам понадобится

  1. Арендованный или домашний сервер на Ubuntu с публичным IP

  2. Домен, привязанный к IP

  3. Docker

  4. Готовый проект с vite

  5. Терминал

Структура проекта

Читать полностью »

После переезда я нашёл в коробке NVIDIA Jetson Nano, который несколько лет лежал без дела. Покупать готовый NAS не хотелось, поэтому решил собрать домашнее облако из того, что уже было: Jetson, старого SSD и VPS.

В результате на четырёх гигабайтах памяти заработали Nextcloud, Immich, семейный чат, мониторинг и собственный REST API. Самой сложной частью оказались не Docker и не CGNAT, а USB‑хранилище: три разных сбоя заставили переделать подключение диска, загрузочные параметры и правила работы с репозиторием.

Читать полностью »

https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js