Linux, Docker и DevOps — статьи и кейсы | АйТи Фреш
Москва, Щёлковское шоссе, д. 92, корп. 7 · Пн–Пт 9:00–19:00 · +7 903 729-62-41
АйТи Фреш
Главная / Статьи / Linux, Docker и DevOps

Linux, Docker и DevOps

Linux, Docker и DevOps

Linux, контейнеры, Kubernetes, CI/CD и инфраструктура как код. Собрали 286 материалов — кейсы и практические гайды от инженеров ITfresh.

Общая папка mailcow, где у каждого сотрудника свои отметки «прочитано»: как это настроитьКоллеги видят детали моих встреч в SOGo: как оставить им только время занятостиПочему wildcard-сертификат не выпускался в mailcow 2026-03 и что именно исправили в 2026-03aКак искать письмо сразу во всех папках SOGo, включая архив по годамПочему THREADS=10 ломает бэкап mailcow и как правильно выбрать число потоковПосле mailcow 2025-03 ссылка /SOGo ведёт на другой вход: как сразу открывать пользователю веб-почтуАвтоответчик mailcow отвечает на основной адрес, но молчит на catch-all: почему и как исправитьRedis MISCONF в mailcow: почему stop-writes-on-bgsave-error=no не чинит сохранение данныхКарантин mailcow выдаёт Deadlock 1213 при обучении на спаме, хотя healthcheck зелёныйСобытия SOGo приходят в Outlook, а встречи из Outlook — не возвращаются: разбираем ActiveSync-синхронизациюПочему /var/lib/rspamd в mailcow растёт из-за файлов Hyperscan и что можно чистить без рискаSOGo пишет No child available, когда сотрудники подключают телефоны через ActiveSync: в чём причинаПочему служебный .git у mailcow разросся до 13 ГБ и как найти в нём крупные объектыНесколько календарей mailcow и календарь коллеги в Outlook: как подключить и не перепутатьБраузер видит новый сертификат mailcow, а Outlook по IMAP — просроченный: куда он на самом деле передаётсяbackup_and_restore.sh mailcow вернул код 0, хотя диск был полон, а архив — обрезанОдин домен mailcow отправляю через smarthost, остальные — напрямую: как не перепутать маршрутПосле обновления mailcow пропал mta-sts.txt: куда переехала публикация политики и как её вернутьmailcow пишет Sender address rejected: not owned by user — как правильно раздать права Send AsПосле обновления mailcow MariaDB сыплет ошибками: reset_password, column_stats и код 1442LDAP в mailcow подключён, а ящики сотрудников не создаются: Attribute Mapping и квоты доменаКак правильно отключить IPv6 в mailcow, чтобы не сломать Docker и не открыть SMTP-релейПочему mailcow за реверс-прокси не видит настоящий IP: бан не срабатывает и в логах не тот адресБольше 100 имён в одном сертификате mailcow: включаю SNI и не теряю клиентов без его поддержкиWatchdog перезапускает unbound-mailcow с DNSSEC failure, хотя docker ps пишет healthymailcow пишет, что карантин отключён, а Rspamd уже отклоняет письма: где на самом деле принимается решениеПосле обновления mailcow 2026-01 адрес user+tag перестал сортировать письма: где искать регрессКак в mailcow раскладывать письма user+проект по папкам без сотен алиасов: теги и SieveНа iPhone письма mailcow видны только после ручного обновления: ActiveSync или push-уведомленияЛимит mailcow 500 писем в час и 10 в минуту: на домен, на ящик и кто должен повторять отправкуПосле восстановления mailcow старые письма не открываются: No private key available, хотя ключи скопированыВосстановили mailcow — ящики пустые в SOGo и Thunderbird, хотя место на диске занятоПоиск по почте в mailcow не находит письма: ломаный индекс Flatcurve после обновленияКак сделать Custom Field в NetBox обязательным только для активных устройствКак дать сотрудникам доступ к info@ в SOGo под своими логинами и разрешить отвечать от общего ящикаКак зарезервировать юниты в NetBox под будущий сервер и не перепутать резерв с установленным оборудованиемSSO и 2FA пускают в веб-почту mailcow, а Thunderbird отвергает пароль: где взять пароль приложенияПочта mailcow работает в новом Outlook, а календари SOGo пропали: почему CalDav Synchronizer не помогаетNetBox 4.5 пишет API_TOKEN_PEPPERS is not defined: что настроить для новых API-токеновRoundcube вместо SOGo в mailcow: что теряется и как сохранить календари на телефонахПосле обновления netbox-docker база выглядит пустой: как пережить переход образа на PostgreSQL 18Почему API NetBox отдаёт порты только одного коммутатора, хотя в интерфейсе виден весь стек Virtual Chassisbackup_and_restore.sh mailcow падает с empty section between colons, хотя Docker-тома на местеПочему после переноса базы NetBox 3.6 сразу в 4.x возникает relation users_user does not existУдалил в mailcow ящики на десятки гигабайт — место не освободилось: сколько времени есть на отменуДобавил порты в Device Type NetBox: почему они не появились у уже созданных устройствRoundcube рядом с SOGo не пускает в mailcow и показывает Access denied для базы: что проверитьЧто проверить в PostgreSQL перед апгрейдом NetBox 4.7 и почему обновлению нужно длинное окно простояmailcow пишет REDISPASS is not set, хотя пароль есть в mailcow.conf: где на самом деле теряется переменнаяКод входа уже виден в Rspamd, а в ящике mailcow появляется через полчаса: как ускорить greylisting для важных писемКак в NetBox проследить конкретную ветку MPO-breakout через оптическую кассетуПосле переноса mailcow IMAP пускает по паролю, а SOGo — нет: разбираем MD5-хеши и SQL-вид пользователейКак обновлять netbox-docker с плагинами, чтобы они загрузились и в веб-приложении, и в workerupdate.sh mailcow спотыкается о новый Docker: IPv6-флаги, две установки Compose и старый клиент APIПочему NetBox неправильно показывает заполненность подсети: когда нужны Container, is_pool и mark_utilizedКак открыть общие календари и адресные книги SOGo между двумя доменами одного mailcowМожно ли привязать VM к одиночному гипервизору в NetBox 4.6 без кластера из одного сервераВосстановили базу NetBox, а фотографии оборудования не появились: что ещё должно быть в резервной копииПочему Config Template в NetBox не видит кастомное поле площадки и как вывести его в конфигурациюПоднял message_size_limit в mailcow, а большие вложения всё равно не проходят: пять мест, где ещё стоит лимитПочему REST API и GraphQL в NetBox отдают не все устройства: лимиты и правильная пагинацияВосстановление mailcow на новом VPS встаёт из-за пустого DOCKER_COMPOSE_VERSION: что проверитьНесколько корпусов в одном кампусе: что заводить в NetBox как Site, а что как LocationВключаю Flatcurve в mailcow и не кладу сервер: расчёт CPU и памяти под индексациюКак добавить несколько одинаковых сетевых модулей в NetBox, чтобы интерфейсы не конфликтовали по имениУстановка SuiteCRM на Ubuntu с Docker: рабочий сервер для отдела продаж за один вечерFrappe CRM в Docker: разворачиваем на своём сервере рядом с ERPNextУстановка ERPNext на свой сервер через Docker: схема для продакшена, а не для демоСервер под ERPNext: ресурсы для 10–50 пользователей и что делать, когда не хватаетERPNext тормозит и ловит Lock Wait Timeout: диагностика по шагам от отчётов до очереди пересчётаERPNext по REST API: как подключить n8n, сайт и внешние сервисы и не нарваться на дублиЧтобы прораб видел только свой объект: User Permissions в ERPNextПрава доступа в ERPNext: роли, уровни прав и доступ к полям без путаницыОбновление ERPNext с v15 на v16: bench migrate, риски кастомизаций и откатERPNext не отправляет письма: scheduler, воркеры, Redis и Email QueueБезопасность ERPNext: двухфакторная аутентификация, SSL, права системы и обновленияFrappe Bench для администратора: команды, которые нужны каждый деньСервер под self-hosted CRM: сколько памяти, процессоров и диска нужно на 10, 30 и 100 пользователейБэкапы ERPNext: bench backup, восстановление и проверка, что копия живаяПочему Rspamd в mailcow помнит только последние письма и как увеличить глубину историиХолодный резерв mailcow скопирован, а Compose не находит external volume: что проверить перед запускомПереношу письма в «Спам» в Outlook — Rspamd в mailcow правда на этом учится?Как перенести проверки качества данных из NetBox Reports в Custom Scripts и сохранить историю запусковВнешняя пересылка через alias в mailcow не идёт через мой SMTP relay, а пересылка из SOGo — идёт: почемуnetfilter-mailcow перезапускается каждые 10–20 секунд и роняет SMTP: разбираем цепочки FORWARD и isolationПосле обновления mailcow nginx не стартует на [::]:7080: какой переключатель IPv6 ему нуженThunderbird сам находит mailcow, а Outlook 365 просит серверы вручную: настраиваем AutodiscoverКак заставить Event Rule NetBox срабатывать только при смене статуса, а не при каждом сохраненииПочему в NetBox нельзя вручную поменять общий объём диска VM после добавления VirtualDiskИзменил пороги спама в actions.conf, а отдельные ящики mailcow фильтруют по-старому: разбираем приоритеты RspamdZabbix или Prometheus: что выбрать для мониторинга офиса и серверов малого бизнесаСайт отвечает 200, а войти в CRM нельзя: сценарий входа через Browser item в Zabbix 7.4 Свой раннер зелёный, а GitHub Actions не отдаёт ему job: как деплоить, когда лежит control plane Два Pod пишут в один RWO-том: почему так и как перевести PVC на ReadWriteOncePod Включил proxy_cache_lock, а бэкенд всё равно получает пачку одинаковых запросов: разбираю lock_age и lock_timeout Запрос /api/report.json отдаёт 404 из папки фронтенда: как nginx выбирает location и зачем API нужен ^~ После ротации в логах пропадают строки: разбираю, что на самом деле делает copytruncate Старая PHP-система тормозит и пугает: как я модернизирую legacy по кусочку, не останавливая компанию После sidecar HPA перестал масштабировать по CPU: где нужен ContainerResource Бэкап есть, а восстановится ли: как проверять копии 1С и файлов реальным восстановлением Мониторинг чёрных списков: как узнать, что письма компании попали в спам у всех клиентов Хранилище конфигурации 1С: как не потерять доработки программиста при его увольнении Тестовый контур перед обновлением сайта или CRM: как не положить продакшен SIEM без бюджета корпорации: как собрать логи с серверов и компьютеров в одном месте и увидеть атаку раньше Патч-менеджмент вместо ручных обновлений: как закрыть уязвимости на 30 компьютерах за ночь, а не за месяц Helpdesk-система для заявок сотрудников: как перестать принимать заявки в личку сисадмина Бэкап рабочих ноутбуков: как не потерять данные, если устройство украли или залили кофе Учёт компьютеров, лицензий и оргтехники: как навести порядок без Excel-простыни на 200 строк Почему мы подняли свой Gitea и перестали пушить скрипты в GitHub Бэкап есть, а восстановится ли он: зачем регулярно репетировать аварийное восстановление План аварийного восстановления на одну страницу: что делать, если сервер физически сгорел Тестовая база 1С перед обновлением: как накатывать релизы, не ломая прод Git для конфигураций 1С: версионирование и откат изменений вместо файла-каши на сервере RMM-система для аутсорсера: как обслуживать 50 компьютеров без выездов на каждый чих Zabbix и Grafana для малого офиса: как узнавать о падении сервера раньше, чем это сделает бухгалтер Замена Jira: разворачиваем OpenProject на русском за 2-4 дня Telegram-бот для бизнеса под ключ: уведомления и автоматизация — заказать внедрение Внедрение n8n на русском: автоматизация бизнес-процессов self-hosted без программиста Установка Portainer и Docker для бизнеса: порядок во внутренних сервисах Хелпдеск для малого IT-отдела: заявки вместо звонков и мессенджеров ERPNext на русском: ERP с открытым кодом для малого производства Git для внутренних скриптов и автоматизаций: как малому IT-отделу не терять наработки при смене сисадмина Программа выставления счетов на своём сервере: заменяем Word на InvoiceNinja EspoCRM на своём сервере: разумная замена Битрикс24 и amoCRM Ansible для небольшого IT-отдела: разворачиваем рабочие места без ручного обхода Docker для внутренних сервисов: поднимаем GitLab, Nextcloud или Wiki без выделенного DevOps Как один сисадмин обслуживает 40 компьютеров не вставая с кресла Grafana + Telegram-алерты для офиса: настройка мониторинга, который действительно будит FreeIPA для офиса с Linux-серверами: единая учётка вместо хаоса локальных паролей Talos Linux: минималистичная ОС, созданная только для Kubernetes Podman: контейнеры без демона и root-доступа Тюнинг ядра Linux для высоконагруженных серверов FluxCD: GitOps-доставка в Kubernetes без Jenkins K3s в офисе на 40 человек: когда маленький Kubernetes лучше Docker Compose Мониторинг IT-инфраструктуры офиса: Zabbix, бэкапы, алерты в Telegram Миграция с CentOS 7 на Rocky Linux в 2026: пошаговый план для офиса до 50 рабочих мест DHCP в офисной сети до 50 рабочих мест: типовые проблемы и как их чинить Ansible с нуля: от первого плейбука до управления парком серверов BorgBackup для Linux-серверов офиса: моя схема для клиентов в Москве Мониторинг Debian-сервера: Prometheus, node_exporter, Grafana за одно утро Docker для начинающих на Linux: от первой установки до работающего compose Docker Compose в продакшне: best practices для небольшого бизнеса Drone CI в Docker: лёгкий self-hosted пайплайн для небольшой команды eBPF Observability Stack для Kubernetes: Cilium + Hubble + Tetragon в production FreeIPA для Linux-парка: централизованная аутентификация без Microsoft на 45 сотрудников GitLab Runner с Kubernetes Executor: масштабируемая CI-ферма Grafana Loki: лёгкое централизованное логирование без Elasticsearch Grafana: дашборды мониторинга серверов и сервисов в корпоративной сети Grafana OnCall: управление инцидентами и дежурствами команды админов Site-to-site IPsec на Linux: как я соединил три офиса строительной компании за две недели Kubernetes для начинающих: что это, зачем и как развернуть первый кластер Kubernetes для малого бизнеса: когда внедрять, сколько стоит и как не переплатить Стандартизировали инструменты Linux-инженеров ITfresh: ящик 2026 Огромные архивы клиента: ratarmount экономит 3 часа администратору Btrfs-снапшоты и откат Linux-сервера: полноценный аналог System Restore eBPF для observability: диагностика ядра Linux без перекомпиляции и простоев Ядро Linux 7.0 в корпоративной инфраструктуре: что обновлять сейчас, а что лучше подождать Резервное копирование Linux-серверов: rsync vs BorgBackup на практике Стратегия резервного копирования Linux-серверов: как не остаться без данных Veeam Agent for Linux или rsync: что выбрать в 2026 году Как диагностировать тормоза Linux-сервера: чек-лист сисадмина Управление пользователями и правами в Linux: полный гайд для администратора офисного сервера LXC-контейнеры в Proxmox: лёгкая изоляция для офисных сервисов без лишних накладных расходов LXC/LXD-контейнеры в продакшене: кластеры, сети, снапшоты и миграция для серьёзных инсталляций OpenVPN-сервер на Linux с нуля: от PKI до клиентских профилей Российские Linux-дистрибутивы для бизнеса: Astra, Alt, РЕД ОС и РОСА в реальных проектах SSH безопасность: правильная настройка Linux-серверов Systemd timer вместо cron: как перевести бизнес-задачи без простоев Tekton Pipelines: cloud-native CI/CD для Kubernetes TIG-стек: Telegraf + InfluxDB + Grafana для современного мониторинга Terraform для малого и среднего бизнеса: практический гайд по IaC Traefik: reverse proxy для Docker и микросервисов WireGuard VPN на Linux-сервере: корпоративная настройка под ключ Алерты LibreNMS в Telegram и интеграции: как мы делаем так, чтобы о падении сети клиент узнавал от нас, а не наоборот Битрикс: CacheEngine/RedisCluster — как вернуть админку Forbid в CronJob не блокирует ручной запуск kubectl Docker Compose и Nginx: failover без залипания на IP Docker 29 и Testcontainers: что обновлять первым Docker: переход на nftables без DOCKER-USER LibreNMS в бою: обновления, бэкапы, безопасность и масштабирование — регламент эксплуатации, по которому мы живём Эксплуатация Monq CE в проде: обновления, бэкапы, безопасность и тюнинг — регламент, по которому мы обслуживаем мониторинг клиентов Эксплуатация Snipe-IT: обновления каждые три недели, бэкапы и безопасность — регламент нашей поддержки Эксплуатация Zabbix: борьба с шумом алертов, бэкап мониторинга, безопасность и обновления ext4: место есть, а файл не создаётся — кончились inode FastAPI за Nginx: неверный пароль, 200 и пропавшая cookie fastcgi_read_timeout: почему 504 ровно через 60 с Gateway API: 404 после ухода с Ingress-NGINX gitRepo в Helm: миграция до Kubernetes 1.36 CVE-2025-1974: проверяем утечку Secrets после патча ingress-nginx: 404 после обновления, заголовки без snippet Почему journalctl --vacuum-size не чистит журнал K8s 1.35: exec и port-forward требуют verb create K8s 1.35: kubelet не стартует на cgroup v1 K8s 1.36: hostUsers false ломает монтирование PVC ConfigMap через subPath не обновляется в K8s 1.37 Image volume в Kubernetes 1.36: том отдаёт старые файлы Kubernetes 1.35: resize Pod и неожиданный рестарт Как найти читателей Endpoints и перейти на EndpointSlice backoffLimit=0 и drain узла: как не терять Job Kubernetes fsGroupChangePolicy: OnRootMismatch и медленный старт Pod PreferSameNode в Kubernetes 1.35: трафик на своём узле Kubernetes 1.33: почему PV удаляется раньше времени Ошибка расширения PVC в Kubernetes 1.35: как откатить Langflow 1.8.2: почему RCE осталась и как проверить wheel limit_req в nginx: откуда задержки и 503 Linux cgroups v2: управление ресурсами процессов Снимок LVM стал invalid: почему откат уже не вернуть mailcow 2025-12: почему архивы .tar.zst пустые mailcow и Compose v5: почему update.sh просит 2.x Monq Community Edition 9.0: честный разбор бесплатного российского «зонтичного» мониторинга для компаний до 50 рабочих мест NetXMS в 2026 году: бесплатный мониторинг ИТ-инфраструктуры, который ставится за вечер — честный обзор от техдиректора Кейс: бесплатный мониторинг для бухгалтерской фирмы на 30 рабочих мест — как NetXMS ловит проблемы 1С до звонка клиента NetXMS в бою: NXSL-скрипты, Grafana, мониторинг 1С и миграция с Zabbix и PRTG — интеграции без бюджета NFS: root не может сделать chown — root_squash nginx: add_header затирает заголовки — inherit и always Address not available в Nginx и Docker: что исчерпано Как nginx обновляет IP бэкенда по DNS без reload SSE через nginx: почему события приходят пачкой Too many open files в nginx: лимиты без путаницы nginx режет заголовки с подчёркиванием: как включить Разворачиваем Odoo 19 Community на своём сервере: пошаговое руководство от установки до продакшена postgres:18 в Docker: пустая база при живом томе ON CONFLICT: cannot affect row a second time в PG 18 Prometheus + Grafana с нуля: дашборд для мониторинга сервера proxy_pass со слешем: почему nginx меняет путь API startupProbe в Kubernetes: медленный старт без CrashLoopBackOff StatefulSet: откат не идёт сам — forced rollback Environment=PATH=$PATH в systemd: почему не работает ExecCondition вернул 1: служба не failed, а skipped KillMode в systemd: почему воркеры переживают stop LoadCredential: пароль службе systemd без chmod 644 MemoryHigh и MemoryMax в systemd: лимиты памяти network-online.target есть, а базы нет PrivateTmp: почему служба не видит файл в /tmp ProtectHome: служба не видит собственный /home Домен .local: dig видит, приложения — нет systemd: не дать службе писать мимо тома systemd: start-limit-hit при Restart=on-failure systemd: таймер сработал, а служба ещё работает systemd timer: Persistent и пропущенные запуски systemd: Type=exec не ждёт порт, нужен Type=notify systemctl --user: служба живёт только после входа по SSH «Unable to determine enabled services from ldap»: пять причин Uptime Kuma: мониторинг сайта, 1С и почты за 10 минут Разворачиваем LibreNMS в Docker за вечер: пошаговое внедрение мониторинга офисной сети, как мы делаем это клиентам Внедряем NetXMS с нуля: сервер на Debian 12, агенты на Windows и автообнаружение сети — пошаговый регламент ITfresh Разворачиваем Snipe-IT в Docker за один день: пошаговый регламент, по которому мы внедряем его клиентам Разворачиваем Zammad 7.1 на своём VPS: Docker, Elasticsearch и грабли, которые мы собрали за десяток внедрений Vite за Nginx: точный allowedHosts вместо true Как вывести диск из LVM и восстановить pvmove WebSocket за nginx обрывается через 60 секунд Zabbix 7.4: зависимости триггеров и шторм аварий Zabbix 7.4: агент не уходит на резервный прокси Zabbix 7.0+ HA: NodeAddress и «server is not running» Zabbix + Telegram, 1С и всё остальное: интеграции, которые превращают мониторинг в систему реагирования Zabbix 7.4: почему не удаляются потерянные ресурсы LLD maxdelay в logrt Zabbix: куда пропали строки лога Zabbix 7.4: вложенный LLD без потери контекста Zabbix 7.4: счётчик DNS растёт, а скорость — ноль. Почему Zabbix 7.4: AllowKey для system.run nowait в action Zabbix: Only partial data received в SNMP walk Zabbix 7.4: SNMPv3 молчит после ребута роутера Zabbix 7.4: Create enabled не отключает старые Link down Zabbix: trendavg вместо avg при короткой истории Замена ingress-nginx после EOL: миграция без простоя ZFS не освобождает место: снимки, holds и клоны
📄
Скачайте подробный разбор в PDF Кейсы, статистика, типовые ошибки и чек-лист самопроверки — 12 страниц
Скачать PDF

Подпишитесь на рассылку ITfresh

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

Письмо придёт в течение минутыНе нашли его во «Входящих» — загляните в папку «Спам» или «Промоакции» и нажмите «Не спам». Так все следующие выпуски будут приходить прямо в основную почту.
Реквизиты оператора персональных данных

ООО «АЙТИ-ФРЕШ», ИНН 7719418495, КПП 771901001. Юридический адрес: 105523, г. Москва, Щёлковское шоссе, д. 92, корп. 7. Контакт: info@itfresh.ru, +7 903 729-62-41. Оператор обрабатывает e-mail подписчика в целях рассылки информационных и рекламных материалов до момента отзыва согласия.

Нужно сделать, а не читать? Услуга ITfresh: Внедрение open-source систем для бизнеса · IT-аутсорсинг для малого бизнеса
← Все статьи  ·  IT-аутсорсинг ITfresh, Москва

Столкнулись с похожей задачей? Обращайтесь — решим

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

Возьмёмся и за разовую задачу, и за постоянное обслуживание. Первичная консультация — бесплатно и без обязательств.

📞 +7 903 729-62-41 ✈ Telegram @ITfresh_Boss

С уважением, Семёнов Евгений Сергеевич, директор «АйТи Фреш» — IT-аутсорсинг для компаний до 50 рабочих мест, 15+ лет практики

АйТи-Фреш (ООО «АЙТИ-ФРЕШ») · г. Москва, Щёлковское шоссе, д. 92, корп. 7 · +7 903 729-62-41 · info@itfresh.ru · Пн–Пт 9:00–19:00