| Приложение | Основная функция | Категория | Статус в YunoHost (2026) | Краткое пояснение / альтернативы / зачем ставить |
|---|---|---|---|---|
| Vaultwarden | Лёгкая реализация Bitwarden-сервера (пароль-менеджер) | Password Manager | Официальный (очень популярен, 126+ установок) | Самый удобный self-hosted Bitwarden. E2E-шифрование, приложения на всех платформах. |
| Diagrams.net | Веб-редактор диаграмм (flowcharts, UML, network, org-charts) | Diagramming | Официальный | Бывший draw.io. Отличная интеграция с Nextcloud/BookStack. |
| Codi.md | Коллаборативный Markdown-редактор (реал-тайм) | Collaborative Notes | Официальный | Простой HedgeDoc-подобный инструмент для совместных заметок. |
| Etherpad | Реал-тайм совместное редактирование текста (как Google Docs для простого текста) | Collaborative Editing | Официальный | Классика для быстрых совместных черновиков, плагины. |
| My Mind | Личный knowledge base / заметки с тегами и поиском | Personal Notes | Нет / wishlist | Минималистичный, но мощный инструмент (не в каталоге сейчас). |
| CryptPad | Полноценный E2E-шифрованный офис (docs, sheets, kanban, whiteboard, forms) | Encrypted Collaboration | Официальный | Самый приватный collaborative suite. |
| OnlyOffice | Офисный пакет (docs, sheets, presentations) с совместным редактированием | Office Suite | Официальный | Интеграция с Nextcloud/File Browser, альтернатива Collabora. |
| Reveal.js | HTML-фреймворк для презентаций (Markdown, темы, экспорт PDF) | Presentations | Официальный | Для технарей: презентации в браузере без PowerPoint. |
| GLPI | IT-Asset Management / Helpdesk (инвентаризация, тикеты, контракты) | IT Service Management | Официальный / community | Для компаний/админов: учёт оборудования, заявки, SLA. |
| PeerTube Remote Runner | Удалённый runner для транскодирования видео в PeerTube | Media Processing | Нет / community | Помогает разгрузить основной PeerTube-сервер (транскодинг на другом железе). |
| Pixelfed | Федеративная фото-социальная сеть (как Instagram + ActivityPub) | Social / Fediverse | Официальный | Фотошеринг с подписками, фильтрами, приватностью. |
| Forgejo | Лёгкая альтернатива Gitea/GitHub (git-хостинг + CI) | Code Hosting | Официальный | Форк Gitea, более community-driven. |
| Gitea | Самостоятельный git-сервер (репозитории, issues, wiki, CI) | Code Hosting | Официальный | Лёгкий GitHub-клон, очень популярен. |
| GitLab | Полноценная DevOps-платформа (git + CI/CD + issues + wiki) | Code Hosting / DevOps | Официальный (но тяжёлый) | Самый мощный, но жрёт ресурсы. |
| GitLab Runner | Runner для GitLab CI/CD (выполняет пайплайны) | CI/CD | Нет / manual | Обычно ставят отдельно в Docker/контейнере. |
| Cockpit | Веб-панель управления сервером (мониторинг, systemd, storage, users) | Server Management | Официальный | Удобный "пульт" для Linux-сервера. |
| NodeRED | Визуальный редактор потоков / IoT-автоматизация | Automation / IoT | Официальный | Соединяет устройства, API, сервисы (IFTTT-like). |
| n8n | No-code/low-code workflow automation (Zapier self-hosted) | Automation | Официальный | 300+ интеграций, мощный, но требует ресурсов. |
| Documize | Современная корпоративная wiki / knowledge base | Documentation | Нет / wishlist | Красивый, с интеграциями, но не в каталоге. |
| Dokuwiki | Простая файловая wiki (без БД) | Wiki | Официальный | Лёгкая, надёжная, плагины. |
| BookStack | Красивая wiki / knowledge base с книгами, полками, страницами | Documentation | Официальный | Markdown + WYSIWYG, интеграция Diagrams.net. |
| Wiki.js | Современная Node.js wiki (Markdown, Git-backend, поиск) | Wiki | Официальный | Очень гибкая, темы, аутентификация. |
| Language Tool Server | Сервер проверки грамматики/орфографии (для LibreOffice, браузеров) | Writing Tools | Официальный / community | Альтернатива Grammarly self-hosted. |
| Dolibarr | ERP/CRM для малого бизнеса (учёт, счета, склад, контакты) | ERP / CRM | Официальный | Полноценная система для компаний. |
| FunkWhale | Федеративный музыкальный сервис (как SoundCloud + Subsonic) | Music Streaming | Официальный | Подкасты, альбомы, плейлисты, federation. |
| MediaWiki | Движок Википедии (самая мощная wiki) | Wiki | Официальный | Для больших знаний-баз, расширений. |
| Omeka S | Платформа для цифровых коллекций / музеев / архивов | Digital Collections | Нет / community | Метаданные, выставки, OAI-PMH. |
| XWiki | Очень мощная enterprise-wiki (структурированные данные, приложения) | Wiki / Knowledge Base | Официальный | Для сложных корпоративных баз знаний. |
| Jitsi Meet | Видеоконференции (WebRTC, комнаты, запись) | Video Conferencing | Официальный | Самый популярный open-source Zoom-заменитель. |
| MiroTalk | Простой WebRTC-видеочат (альтернатива Jitsi, легче) | Video Conferencing | Нет / manual | Минималистичный, без сервера медиа. |
| NodeBB | Современный форум (реал-тайм, мобильный, плагины) | Forum | Официальный | Красивый, быстрый, как Discourse. |
| PhpBB | Классический PHP-форум (темы, расширения) | Forum | Официальный | Стабильный, но старомодный дизайн. |
| RoundCube | Веб-почта (IMAP-клиент) | Webmail | Официальный | Классика, плагины, интеграция с YunoHost почтой. |
| SOGo | Groupware (почта + календарь + контакты + ActiveSync) | Groupware / Webmail | Официальный | Полноценный Outlook-подобный клиент. |
| Synapse Admin | Админ-панель для Matrix Synapse (управление пользователями, комнатами) | Matrix Admin | Официальный | Удобный GUI для модерации Matrix-сервера. |
| Element | Основной веб/мобильный клиент для Matrix | Matrix Client | Официальный | Чистый фронтенд, без БД, лёгкий. |
| Trilium Notes | Иерархический note-taking с скриптами и клонированием | Personal Knowledge Base | Официальный / community | Очень мощный для заметок + базы знаний. |
| TLDraw | Коллаборативный whiteboard / рисовалка (как Excalidraw) | Whiteboard | Нет / manual | Простой, реал-тайм, экспорт SVG. |
| Whitebophir | Ещё один whiteboard (fork Excalidraw) | Whiteboard | Нет / manual | Похож на TLDraw, иногда стабильнее. |
| SVG-edit | Веб-редактор SVG-графики | Graphics Editor | Нет / community | Простой векторный редактор в браузере. |
| OpenProject | Project management (Gantt, задачи, wiki, форум, time-tracking) | Project Management | Официальный | Полноценный Redmine/Asana-заменитель. |
| Snipe-IT | Управление IT-активами (hardware/software лицензии, чек-ин/аут) | Asset Management | Официальный | Для админов: учёт ноутбуков, серверов, ПО. |
| Redirect | Прокси/редирект + плитка в портале YunoHost | Proxy / Portal | Официальный (очень популярен) | Идеально для внешних контейнеров (твой случай!). |
| Stirling PDF | Веб-инструменты для PDF (merge, split, compress, OCR, sign) | PDF Tools | Официальный | Всё, что нужно с PDF без Adobe. |
| Linkwarden | Bookmark-менеджер с архивацией страниц и тегами | Bookmarks | Нет / wishlist | Как Raindrop.io self-hosted. |
| Readeck | Read-it-later + RSS (сохранение статей, чтение оффлайн) | Read Later / RSS | Нет / community | Wallabag-подобный. |
| Peertube | Федеративная видео-платформа (YouTube + P2P) | Video Platform | Официальный | Твой основной сервис, тяжёлый, но мощный. |
Admin
Сообщения
-
Некоторые служебные приложения в YunoHost -
Некоторые служебные приложения в YunoHostПриложение Основная функция Категория Краткое пояснение / для чего полезно Indico Система управления конференциями, семинарами и событиями Event Management Регистрация участников, абстракты, программы, таймслоты, оплата, интеграция с Zoom/Meet. Для университетов, конференций, митапов. IT Tools Коллекция полезных веб-инструментов (конвертеры, генераторы, валидаторы) Utilities / Dev Tools Base64, JSON prettify, UUID, цвета, regex tester, cron explainer и т.д. — всё в одном месте. JSON Crack Визуализатор JSON/JSON5/YAML/TOML → дерево, таблица, граф Development / Data Красиво показывает сложные JSON-структуры, позволяет редактировать, копировать пути. Альтернатива jsonformatter.org. Mantis Классическая система баг-трекинга / issue tracker Project Management Альтернатива Bugzilla/Redmine. Тикеты, приоритеты, вложения, уведомления, плагины. Matomo Самостоятельная веб-аналитика (полноценный аналог Google Analytics) Analytics Посещения, источники, цели, тепловые карты, A/B-тесты. Полная приватность, GDPR-friendly. MicroBin Лёгкий pastebin / файлообменник с самоуничтожением и шифрованием File Sharing Загружаешь текст/файл → получаешь ссылку. Поддержка end-to-end шифрования, синтаксис-хайлайтинг. MinIO S3-совместимое объектное хранилище (как Amazon S3, но self-hosted) Storage / Cloud Хранение файлов, бэкапы, интеграция с Nextcloud, Rclone, Kubernetes. Высокая производительность. Monica CRM для личных отношений (напоминания о днях рождения, подарках, встречах) Productivity / Personal Хранит контакты, заметки, напоминания, подарки, долги, как личный «менеджер отношений». Monitorix Лёгкий мониторинг системы (CPU, RAM, диск, сеть, Apache/Nginx, MySQL и т.д.) Monitoring Простые графики, RRD-based, веб-интерфейс. Легче Glances/Netdata для старых машин. Node Exporter Экспортёр метрик системы для Prometheus (CPU, память, диск, процессы и т.д.) Monitoring / Prometheus Основной компонент для сбора метрик в Prometheus + Grafana. Не имеет собственного UI. Peer-Calls P2P-видеоконференции (WebRTC без сервера для медиа) Video Conferencing Видеозвонки без центрального сервера (только сигнализация). Для небольших групп, приватность. Reveal.js Фреймворк для создания презентаций в HTML (как PowerPoint в браузере) Presentation / Slides Markdown-поддержка, темы, переходы, спикер-ноты, экспорт в PDF. Идеально для технарей. Screego TURN/STUN-сервер + сигнализация для WebRTC (видеозвонки) WebRTC Infrastructure Помогает пробрасывать видео через NAT. Часто используется с Jitsi, Peer-Calls, BigBlueButton. Scrutiny Мониторинг здоровья HDD/SSD (S.M.A.R.T., температура, ошибки) Storage Monitoring Графики SMART-атрибутов, уведомления о сбоях дисков. Лучше smartmontools с UI. SPFtoolbox Инструменты для проверки SPF, DKIM, DMARC, DNS-записей почты Email / DNS Проверяет, почему письма попадают в спам, валидирует записи. Полезно для админов почты. squid3 Кэширующий прокси-сервер (HTTP/HTTPS, фильтрация, логирование) Proxy / Networking Кэширует трафик, фильтрует сайты, прозрачный прокси для сети. Старый, но надёжный. statping-ng Мониторинг доступности сервисов + красивый статус-пейдж Monitoring / Status Page Проверяет HTTP, TCP, Ping, DNS. Красивый дашборд, уведомления, uptime-графики. Sshwifty Веб-SSH-клиент (терминал в браузере) Remote Access Подключаешься к серверу по SSH через браузер. Простой и безопасный (HTTPS + SSOwat). Technitium DNS Рекурсивный и авторитативный DNS-сервер + блокировщик рекламы Networking / DNS Альтернатива Pi-hole/AdGuard Home с поддержкой зон, DoH/DoT, кэшированием, фильтрами. Tableaunior Визуализация данных (альтернатива Tableau Public, но self-hosted) Data Visualization Загружаешь CSV/Excel → строишь дашборды, графики, карты. Для аналитики без облака. Tiki Полноценная CMS / Wiki / Groupware (как Confluence + MediaWiki + больше) CMS / Collaboration Вики, форумы, календари, трекер задач, галереи, блоги. Очень мощная, но сложная. Transfer.sh Простой файлообменник с таймером удаления (как wetransfer, но self-hosted) File Sharing curl --upload-file file.mp4 https://transfer.твойдомен.tld→ получаешь ссылку.WatchYourLAN Лёгкий мониторинг устройств в локальной сети (ARP-таблица + уведомления) Network Monitoring Показывает, кто в сети, уведомляет о новых/отключившихся устройствах. Альтернатива Fing. Webhook Простой приёмник webhook-запросов (логирует, перенаправляет, выполняет скрипты) Automation / DevOps Ловит события от GitHub, Stripe, Uptime Kuma и т.д., может запускать команды. -
Некоторые служебные приложения в YunoHostПриложение Основная функция Категория Краткое пояснение / для чего полезно Easy!Appointments Онлайн-запись на приёмы / планировщик встреч Productivity & Management Клиенты сами выбирают свободное время, синхронизация с Google Calendar, напоминания по email/SMS. Альтернатива Calendly/Doctolib. eLabFTW Электронный лабораторный журнал / ELN (Electronic Lab Notebook) Research / Science Хранение экспериментов, протоколов, данных, файлов, тегов, шаблонов. Для научных команд, химия/биология/физика. Emoncms Платформа для мониторинга энергопотребления и IoT-данных Monitoring / IoT / Energy Логирование, визуализация графиков (температура, электричество, вода и т.д.), дашборды. Часто с OpenEnergyMonitor. Epicyon Федеративная социальная сеть (ActivityPub) — личный сервер Social / Fediverse Мини-Mastodon / Pleroma для одного пользователя или маленькой группы. Микроблогинг без трекинга. ESPHome Фреймворк для создания кастомных устройств на ESP8266/ESP32 IoT / Home Automation Пишешь YAML → компилируется прошивка для датчиков, реле, ламп. Интеграция с Home Assistant. Fab-manager Система управления FabLab / makerspace (бронирование станков, оплата, инвентарь) Productivity & Management Для хакерспейсов: члены, машины, материалы, бронирование, статистика. Facilmap Коллаборативные карты (OpenStreetMap-based) с маршрутами и маркерами Maps / Collaboration Групповые карты для походов, событий, путешествий. Похоже на uMap, но с лучшим UI. Fail2Ban Webinterface Веб-интерфейс для Fail2Ban (просмотр банов, разбан, статистика) System Tools / Security Удобный дашборд вместо CLI. Показывает забаненные IP, jails, логи. FastAPI Шаблон для запуска собственного FastAPI-приложения (Python) Development / Publishing Для разработчиков: быстро поднять API с автодокументацией (Swagger), аутентификацией и т.д. Fathom Приватный лёгкий аналог Google Analytics / Matomo Analytics / Privacy Считает посещения, источники, устройства без куки и трекинга. Очень простой и быстрый. Find My Device Самостоятельный трекер устройств (альтернатива Google's Find My Device) Mobile / Tracking Отслеживание Android-устройств по GPS, звук, блокировка. Требует установки APK на телефон. Galette Система управления ассоциацией / членами (членские взносы, рассылки, документы) Productivity & Management Для НКО, клубов, спортивных секций: учёт членов, платежи, PDF-документы. Gemserv Лёгкий сервер для протокола Gemini (альтернатива HTTP для минималистичного веба) Publishing / Gemini Gemini — текстовая сеть без JS/трекинга. Gemserv раздаёт .gmi-файлы. Glance Дашборд с виджетами (погода, календарь, RSS, мониторинг) Dashboard / Home Красивый стартовый экран в браузере с кастомными карточками. Glances Мониторинг системы в реальном времени (CPU, RAM, диск, сеть, процессы) System Tools / Monitoring Расширенный htop с веб-интерфейсом, экспортом в InfluxDB/Grafana. Gokapi Самоуничтожающийся файлообменник / share (как Firefox Send) File Sharing Загружаешь файл → получаешь ссылку с таймером удаления. Шифрование, пароли. Grocy Менеджер домашнего хозяйства (продукты, рецепты, списки покупок, инвентарь) Productivity / Household Отслеживает сроки годности, рецепты, баркоды, напоминания. Homarr Красивый дашборд для self-hosted сервисов (иконки, виджеты, интеграции) Dashboard / Homelab Альтернатива Heimdall / Homepage. Плитки к приложениям, мониторинг Docker, календари. Home Assistant Полноценная платформа домашней автоматизации (IoT-хаб) Home Automation / IoT Управление умным домом: Zigbee/Z-Wave/MQTT, автоматизации, голос (Assist), интеграции с 2000+ устройств. httpsh on ttyd Веб-терминал (ttyd) с HTTPS и аутентификацией System Tools / Shell Доступ к shell через браузер по HTTPS (с SSOwat). Полезно для удалённого администрирования. Huginn Агент автоматизации (как IFTTT/Zapier, но self-hosted) Automation Создаёт "агентов": мониторит сайты, парсит RSS, отправляет уведомления, взаимодействует с API. -
Некоторые служебные приложения в YunoHostПриложение Основная функция Категория Краткое пояснение / для чего полезно 2FAuth Самостоятельный генератор одноразовых паролей (2FA / TOTP) Security / Authentication Веб-альтернатива Google Authenticator, Authy и т.д. Хранит твои 2FA-ключи, генерирует коды в браузере. Работает на мобильных и десктопах. AgeWasm Клиентский генератор/шифратор/дешифратор ключей Age (с использованием WASM) Security / Encryption Простой веб-инструмент для работы с Age (современный аналог age-keygen, шифрование файлов). Всё происходит в браузере, без передачи данных на сервер. AdGuard Home Сетевой блокировщик рекламы, трекеров и вредоносных доменов на уровне DNS Networking / Ad-blocking Устанавливаешь один раз — вся домашняя сеть (телефоны, ТВ, ПК) получает чистый интернет без рекламы. Поддерживает DoH/DoT/QUIC, фильтры, родительский контроль. AppFlowy Самостоятельная альтернатива Notion (заметки, канбан, базы знаний) Productivity / Notes Open-source Notion-клон с оффлайн-поддержкой, базами данных, шаблонами. Хранит всё локально или в твоём облаке. Cors Proxy Прокси-сервер для обхода CORS-ограничений в браузере Development / Proxy Полезен разработчикам: позволяет фронтенду делать запросы к API, которые не разрешают CORS (например, для тестов или виджетов). changedetection Мониторинг изменений на веб-страницах + уведомления Monitoring / Automation Следит за изменениями на сайтах (цены, наличие товара, новости, вакансии), отправляет алерты в Telegram/Discord/Email/Slack и т.д. Отличный restock-монитор. Dagu Лёгкий workflow-оркестратор / альтернатива Airflow / cron с веб-интерфейсом Automation / DevOps Запускает задачи по расписанию, цепочки команд, мониторит выполнение. Всё в YAML, с красивым дашбордом. Dato Минималистичный менеджер дат / напоминаний / календаря Productivity Простой инструмент для отслеживания дат (дни рождения, сроки, события). Часто используется как лёгкий личный календарь. Digiscreen Цифровая вывеска / экран для отображения информации (погода, новости, дашборды) Display / Signage Превращает старый монитор/ТВ в информационную панель (погода, акции, статусы серверов и т.д.). Digisteps Пошаговые инструкции / гайды / wizard для пользователей Documentation / Onboarding Создаёт интерактивные руководства (например, "как настроить VPN" шаг за шагом). Полезно для семьи/команды. Digitools Набор мелких веб-инструментов (конвертеры, генераторы, калькуляторы) Utilities Коллекция простых онлайн-инструментов (base64, QR, хэши, цвета и т.д.) в одном месте. Digitranscode Веб-интерфейс для транскодирования медиафайлов (видео/аудио) Media Processing Загружаешь файл → выбираешь формат/качество → получаешь конвертированный. Удобно без ffmpeg в терминале. Digiworlds Платформа для создания/хостинга виртуальных миров или интерактивных страниц Creative / Worlds Что-то вроде простого конструктора 3D/2D миров или интерактивных сайтов (точные детали зависят от версии пакета). Directory Lister Простой веб-браузер директорий (список файлов/папок с возможностью скачивания) File Sharing Открываешь любую папку на сервере через браузер — красиво отображает содержимое, поддерживает превью, сортировку, скачивание. Domoticz Лёгкая система домашней автоматизации (IoT) Home Automation / IoT Управление умным домом: датчики, лампы, розетки, камеры. Поддерживает Z-Wave, Zigbee, MQTT и т.д. DumbDo Очень простой To-Do список / задачи без лишних функций Productivity Минималистичный чек-лист задач. Никаких проектов, тегов — только список дел. DumpPad Временная заметка / pastebin / дамп текста (самоуничтожающийся) Sharing / Pastebin Быстро кидаешь текст/код/лог → получаешь ссылку. Можно с таймером удаления. DumpWhois Веб-интерфейс для whois-запросов (проверка доменов) Networking / Tools Вводишь домен → показывает whois-информацию (владелец, дата регистрации и т.д.). -
Incus - бэкап, и восстановление контейнера на другом сервереПредположим, контейнер называется cont-incus-yuno-1
Вот самый простой и надёжный способ перенести контейнер cont-incus-yuno-1 на другой компьютер с помощью Incus (работает для контейнеров, даже запущенных):
На исходном сервере (где контейнер сейчас работает)
-
Создайте экспорт (рекомендуется остановить контейнер для консистентности, но можно и на живую):
Вариант А — остановить (самый безопасный):
incus stop cont-incus-yuno-1 incus export cont-incus-yuno-1 cont-yuno-backup.tar.gz incus start cont-incus-yuno-1 # можно сразу запустить обратно, если нужноВариант Б — на живую (быстрее, но есть небольшой риск несогласованности файловой системы):
incus export cont-incus-yuno-1 cont-yuno-backup.tar.gzПолезные флаги (добавляйте по желанию):
--instance-only— очень рекомендуется, если не нужны снапшоты (файл будет намного меньше и быстрее создаваться)--optimized-storage— если хранилище позволяет (zfs/btrfs), делает ещё меньше размер
Пример с флагами (самый популярный вариант):
incus export cont-incus-yuno-1 cont-yuno-backup.tar.gz --instance-only --optimized-storageПолучится файл cont-yuno-backup.tar.gz (или как вы его назовёте) размером от нескольких сотен МБ до десятков ГБ — зависит от содержимого контейнера.
-
Перенесите файл на другой компьютер любым удобным способом:
- scp
- rsync
- флешка / внешний диск
- облако (если объём позволяет)
# пример через scp scp cont-yuno-backup.tar.gz user@новый-ip:/home/user/
На целевом сервере (куда переносите)
-
Убедитесь, что Incus установлен и работает той же или новее версии (экспорт с более новой версии на старую часто не работает).
-
Если контейнер использует нестандартные профили (кроме default), создайте их заранее на новом сервере:
incus profile list # посмотреть, какие профили есть # если нужно — скопируйте конфиг профиля и создайте: incus profile create myprofile incus profile edit myprofile -
Импортируйте:
incus import cont-yuno-backup.tar.gz cont-incus-yuno-1Или с другим именем, если хотите:
incus import cont-yuno-backup.tar.gz yuno-new -
Запустите:
incus start cont-incus-yuno-1 # или incus start yuno-new -
Проверьте, что всё работает:
incus list incus console cont-incus-yuno-1 # или incus exec ... -- bash
Полезные замечания
- Если после импорта контейнер не стартует из-за MAC-адреса → удалите/сгенерируйте новый:
# 1. Посмотреть, какой именно MAC "застрял" в базе Incus incus info incus-yuno-std | grep volatile.eth0.hwaddr # или полная картина incus config show incus-yuno-std --expanded | grep hwaddr # 2. Самый простой и безопасный способ — попросить Incus сгенерировать новый MAC incus config unset incus-yuno-std volatile.eth0.hwaddr # или явно задать новый (можно опустить — сам сгенерирует) # incus config set incus-yuno-std volatile.eth0.hwaddr 00:16:3e:xx:yy:zz # 3. Попробовать запустить incus start incus-yuno-std-
Если на новом сервере другое хранилище (например, был zfs, стал dir или btrfs) — импорт обычно проходит нормально, но иногда нужно указать пул:
incus import cont-yuno-backup.tar.gz cont-incus-yuno-1 --storage default -
Размер файла и время создания/переноса — главный ограничивающий фактор.
Если контейнер очень большой (>20–30 ГБ) — подумайте, не лучше ли воспользоваться
rsyncсодержимого илиincus copyпо сети (если есть хоть какая-то связь между серверами). -
-
Установка RustDesk на DebianRustDesk
Установка RustDesk на Debian 12 и 13
1.1. Обновление системы
Это обязательный шаг:sudo apt updateобновляет список доступных пакетов из репозиториев (без установки), аsudo apt upgrade -yустанавливает все доступные обновления (-y— автоматическое подтверждение "yes" для всех вопросов, чтобы скрипт не висел).sudo apt update sudo apt upgrade -y1.2. Установка зависимостей
RustDesk требует библиотек для GUI, сетевого стека и медиа.wgetскачивает файлы по HTTP/HTTPS,gdebi-core— это утилита для установки .deb-пакетов с автоматическим разрешением зависимостей (лучше, чемdpkg -i, потому что сама доустанавливает недостающее).sudo apt install -y wget libgtk-3-0 libayatana-appindicator3-1 libxdo3 gstreamer1.0-pipewirelibgtk-3-0— для графического интерфейса (GUI).libayatana-appindicator3-1— для системного трея (иконки в панели).libxdo3— для симуляции нажатий мыши/клавиатуры (удалённое управление).gstreamer1.0-pipewire— для аудио/видео в реальном времени (поддержка PipeWire вместо PulseAudio).
Если при установке RustDesk apt сам попросит доустановить что-то — просто подтвердить.
1.3. Скачивание и установка
Скачиваем .deb с официального GitHub (прямая ссылка на релиз).wgetпо умолчанию сохраняет файл с оригинальным именем.wget https://github.com/rustdesk/rustdesk/releases/download/1.4.4/rustdesk-1.4.4-x86_64.deb sudo dpkg -i rustdesk-1.4.4-x86_64.deb1.4. Запуск и начальная настройка
Запускаем RustDesk — откроется GUI с ID (уникальный идентификатор вашего устройства) и полем для пароля.rustdesk- В GUI: Settings → Security → Set Password → Permanent Password (задавайте сильный пароль).
- ID сохраните — им будете подключаться с других устройств.
RustDesk автоматически стартует при загрузке и использует публичные серверы (relay) для соединения.
2. Headless-режим (для серверов без GUI, через SSH)
Если Debian — сервер без X11/GNOME, RustDesk всё равно работает (виртуальный дисплей).
# 1. Установка (то же, что выше) + daemon-режим sudo systemctl enable --now rustdesk.service # автозапуск при загрузке # 2. Настройка ID/пароля через CLI rustdesk --get-id # покажет ID (например, 123456789) sudo rustdesk --password "ВашПостоянныйПароль" # 3. Запуск в фоне (если не автозапуск) sudo rustdesk --daemonПроверьте статус:
systemctl status rustdeskилиps aux | grep rustdesk. -
Установка Anydesk на Ubuntu 24.04Чтобы установить AnyDesk на Ubuntu 24.04 через терминал, рекомендуется использовать официальный репозиторий AnyDesk. Это обеспечит автоматические обновления и актуальную версию.
Шаги по установке через репозиторий (рекомендуемый способ)
-
Обновите систему и установите необходимые утилиты:
sudo apt update sudo apt install ca-certificates curl apt-transport-https -
Создайте директорию для ключей (если её нет):
sudo install -m 0755 -d /etc/apt/keyrings -
Скачайте и добавьте GPG-ключ AnyDesk:
sudo curl -fsSL https://keys.anydesk.com/repos/DEB-GPG-KEY -o /etc/apt/keyrings/keys.anydesk.com.asc sudo chmod a+r /etc/apt/keyrings/keys.anydesk.com.asc -
Добавьте репозиторий AnyDesk:
echo "deb [signed-by=/etc/apt/keyrings/keys.anydesk.com.asc] https://deb.anydesk.com all main" | sudo tee /etc/apt/sources.list.d/anydesk-stable.list > /dev/null -
Обновите список пакетов и установите AnyDesk:
sudo apt update sudo apt install anydesk
После установки запустите AnyDesk командой
anydeskили через меню приложений.Альтернативный способ: Установка из .deb-пакета
Если не хотите добавлять репозиторий:
-
Скачайте последнюю версию .deb-пакета (проверьте актуальную версию на сайте):
wget https://download.anydesk.com/linux/anydesk_7.1.2-1_amd64.deb -
Установите пакет:
sudo dpkg -i anydesk_*.deb sudo apt install -f # Установит недостающие зависимости, если нужно
Примечание: Ubuntu 24.04 использует Wayland по умолчанию, и AnyDesk может иметь ограничения (например, входящие подключения лучше работают на Xorg). Если возникнут проблемы, попробуйте переключиться на X11 при входе в систему.
Если нужны дополнительные настройки (например, автозапуск сервиса), выполните
sudo systemctl enable --now anydesk. -
-
Отличия дистрибутивов Linux между собойЧто касается серверных и десктопных дистрибутивов, то они между собой отличаются в основном тем, что десктопные дистрибутивы в основном рассчитаны на офисные, образовательные, и домашние компьютеры, а серверные - предназначены исключительно для работы на серверах, поэтому часто не имеют графического интерфейса, а используют для взаимодействия с пользователем командную строку - технологию, позволяющую общаться человеку с системой текстом с помощью задания специальных команд и их параметров. Также командная строка позволяет использовать так называемую псевдографику, где возможно работа с мышью, но возможности такого взаимодействия сильно урезаны. Разумеется, и командная строка, и псевдографика во всей своей полноте есть и на десктопных компьютерах, но на серверах - это в подавляющем большинстве случаев основной инструмент. Ещё - на серверные дистрибутивы установленные специальные серверные программы, необходимые для сложной работы с сетью, и для других специфических задач. В мире обычных персональных компьютеров, то есть, десктопов, Linux-системы распространены не так сильно, лишь несколько процентов пользователей работают с такими системами. Но среди серверов - Linux-системы являются лидером, удерживая более 90%.
-
Отличия дистрибутивов Linux между собойДистрибутивы Линукс отличаются между собой в основном пользовательскими, а также сервисными программами, называемыми утилитами, настройками этих программ, системой установки программ, настройками ядра, скоростью обновления программ и ядра, набором компонентов самого ядра, а также технической философией и целевой аудиторией. Проще говоря - каждый дистрибутив решает свой круг задач, поэтому нет "лучшего" дистрибутива в абсолюте, есть наиболее подходящий под конкретные нужды пользователя. Также большую роль играет популярность дистрибутива, удобство работы с ним, и надёжность его производителя.
-
Установка VirtualBox на DebianЧтобы установить Oracle VM VirtualBox на Debian 12 (Bookworm) через терминал, рекомендуется использовать официальный репозиторий Oracle — это даст самую свежую версию (на текущий момент 7.2.4).
Шаг 1: Установка необходимых зависимостей
Сначала установите пакеты для сборки модулей ядра:
sudo apt update sudo apt install linux-headers-$(uname -r) dkms gcc makeШаг 2: Добавление GPG-ключа Oracle
Скачайте и добавьте публичный ключ для проверки пакетов:
wget -q https://www.virtualbox.org/download/oracle_vbox_2016.asc -O- | sudo gpg --dearmor --yes --output /usr/share/keyrings/oracle-virtualbox-2016.gpgШаг 3: Добавление репозитория VirtualBox
Добавьте репозиторий в систему (для Debian 12 используйте codename bookworm, для Debian 13 - trixie) :
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/oracle-virtualbox-2016.gpg] https://download.virtualbox.org/virtualbox/debian bookworm contrib" | sudo tee /etc/apt/sources.list.d/virtualbox.listШаг 4: Установка VirtualBox
Обновите списки пакетов и установите VirtualBox (используйте virtualbox-7.2 для последней версии на момент 2026 года):
sudo apt update sudo apt install virtualbox-7.2Если пакет называется иначе (проверьте с
apt search virtualbox), используйте актуальное имя.Шаг 5: Добавление пользователя в группу vboxusers
Чтобы запускать виртуальные машины без root:
sudo adduser $USER vboxusersПерезайдите в сессию (или перезагрузите систему).
Шаг 6: (Рекомендуется) Установка Extension Pack
Для поддержки USB 2.0/3.0, RDP, шифрования дисков и других функций скачайте и установите Extension Pack:
wget https://download.virtualbox.org/virtualbox/7.2.4/Oracle_VM_VirtualBox_Extension_Pack-7.2.4.vbox-extpack sudo VBoxManage extpack install --replace Oracle_VM_VirtualBox_Extension_Pack-7.2.4.vbox-extpack(Согласитесь с лицензией.)
Шаг 7: Запуск и проверка
Запустите VirtualBox:
virtualboxИли из меню приложений.
Проверьте версию:
VBoxManage --versionАльтернатива: Установка из .deb-пакета (без репозитория)
Если не хотите добавлять репозиторий:
wget https://download.virtualbox.org/virtualbox/7.2.4/virtualbox-7.2_7.2.4-170995~Debian~bookworm_amd64.deb sudo apt install ./virtualbox-7.2_7.2.4-170995~Debian~bookworm_amd64.deb(Но тогда обновления придётся делать вручную.)
Возможные проблемы
- Если модуль ядра не загружается (
vboxdrv) :sudo modprobe vboxdrvили перезагрузите систему. - Secure Boot: Может потребоваться подписать модули (MOK).
- Если ошибка с зависимостями — проверьте
sudo apt install -f.
Теперь VirtualBox готов к созданию виртуальных машин! Если нужны Guest Additions для гостей — установите их внутри ВМ через меню Devices → Insert Guest Additions CD image.
- Если модуль ядра не загружается (
-
Полное удаление VirtualBox с системы DebianЧтобы полностью удалить Oracle VM VirtualBox в Debian 12 через терминал, выполните следующие шаги. Способ зависит от того, как вы устанавливали VirtualBox (из официальных репозиториев Debian, Oracle или через .deb/.run-файл).
1. Если установлен из репозиториев Debian (contrib/non-free) или Fast Track
Сначала проверьте установленные пакеты:
dpkg -l | grep virtualboxили
apt list --installed | grep virtualboxОсновной пакет обычно называется virtualbox или virtualbox-версия (например, virtualbox-7.0).
Удалите все связанные пакеты с конфигурационными файлами:
sudo apt purge virtualbox* virtualbox-dkms* virtualbox-qt* sudo apt autoremove sudo apt autocleanЭто удалит программу, модули ядра и ненужные зависимости.
2. Если установлен из официального .deb-пакета Oracle (virtualbox-*.deb)
Пакет обычно называется virtualbox-7.0 или подобно.
Удалите:
sudo apt purge virtualbox-7.0 # или точное имя из dpkg -l # Или универсально: sudo apt purge virtualbox* sudo apt autoremoveЕсли установлен через dpkg:
sudo dpkg --purge virtualbox-7.03. Если установлен через .run-скрипт Oracle (в /opt/VirtualBox)
Запустите uninstaller:
sudo /opt/VirtualBox/uninstall.shЗатем вручную удалите остатки:
sudo rm -rf /opt/VirtualBox4. Дополнительная очистка (для любого способа установки)
Удалите пользовательские настройки и виртуальные машины (если они не нужны — это удалит все ВМ!):
rm -rf ~/VirtualBox\ VMs rm -rf ~/.config/VirtualBox rm -rf ~/.VirtualBox # иногда такУдалите Extension Pack (если установлен и VirtualBox ещё запускается):
VBoxManage extpack uninstall "Oracle VM VirtualBox Extension Pack"Или вручную:
sudo rm -rf /usr/lib/virtualbox/ExtensionPacks/5. Проверка
После удаления проверьте:
dpkg -l | grep virtualbox which VBoxManageЕсли ничего не выводит — VirtualBox полностью удалён.
Предупреждение: Команды с
rm -rfнеобратимы. Если хотите сохранить виртуальные машины, не удаляйте папку~/VirtualBox VMs. Если возникнут ошибки с модулями ядра (vboxdrv), перезагрузите систему или выполнитеsudo apt autoremove. -
Синтез речи на AndroidИнструкция по установке, настройке и использованию связки @Voice Aloud Reader + RHVoice (на Android)
Эта связка — одна из лучших для чтения вслух текстов на русском языке: RHVoice даёт естественные оффлайн-голоса, а @Voice Aloud Reader отлично справляется с веб-страницами, PDF, книгами и текстами из других приложений.
1. Установка приложений
-
Установите @Voice Aloud Reader:
- Откройте Google Play Store.
- Найдите "@Voice Aloud Reader" (разработчик Hyperionics Technology LLC).
- Установите бесплатную версию (есть реклама, но можно купить Premium-лицензию для удаления рекламы и доп.функций).
-
Установите RHVoice:
- В Google Play Store найдите "RHVoice" (разработчик Olga Yakovleva или RHVoice.com).
- Установите приложение (бесплатное, открытый код).
- Откройте RHVoice.
- Выберите язык Русский (ru-RU).
- Скачайте один или несколько голосов (например, Anna, Aleksandr, Irina — они бесплатные.
2. Настройка RHVoice как основного TTS-движка
RHVoice работает как системный движок синтеза речи, и @Voice будет использовать его автоматически.
- Перейдите в Настройки Android → Специальные возможности (или Доступность) → Текст в речь (или Вывод текста в речь, TTS-вывод — зависит от версии Android и оболочки).
- В разделе Предпочитаемый движок выберите RHVoice.
- Если нужно, настройте скорость речи, тон и другие параметры (в настройках RHVoice или системных).
- Протестируйте: нажмите "Прослушать пример" — должен заговорить выбранный голос RHVoice.
Важно: Если вы используете TalkBack (экранный ридер), не делайте RHVoice основным системным TTS, чтобы избежать конфликтов. В @Voice можно выбрать RHVoice отдельно (см. ниже).
3. Настройка в @Voice Aloud Reader
- Откройте @Voice Aloud Reader.
- Нажмите на кнопку меню (три точки или стрелка вверх внизу экрана) → Изменить голос или язык (или "Change voice or language").
- В списке движков выберите RHVoice.
- Выберите русский язык и конкретный голос (Anna, Aleksandr и т.д.).
- Прослушайте образец — если всё ок, сохраните.
- Дополнительно: настройте скорость речи, высоту тона (pitch), громкость прямо в этом меню.
@Voice автоматически распознаёт язык текста и переключается на подходящий голос, если он доступен.
4. Использование
-
Чтение текста из других приложений:
- В браузере, новостях, Telegram и т.д. выделите текст или нажмите Поделиться → выберите @Voice Aloud Reader.
- Текст загрузится, и начнётся чтение вслух голосом RHVoice.
-
Открытие файлов:
- В @Voice нажмите меню → Открыть файл → выберите TXT, PDF, EPUB, DOC и т.д.
- Или поделитесь файлом из файлового менеджера.
-
Управление воспроизведением:
- Кнопки внизу: Play/Pause, предыдущее/следующее предложение.
- Таймер сна, списки чтения, запись в аудио — всё в меню.
- Работает в фоне, с наушниками/Bluetooth.
-
Полезные советы:
- Если голос звучит неидеально на некоторых словах — RHVoice поддерживает ударения (пишите + перед гласной, например: мóре).
- Для многоголосия (диалоги в книгах) в Premium-версии можно использовать аннотации для смены голосов.
- RHVoice полностью оффлайн после скачивания голосов — идеально для чтения без интернета.
Если возникнут проблемы (например, голос не выбирается), перезапустите приложения или проверьте обновления. Эта связка работает стабильно на Android 8+.
-
-
Обновление Debian 12 до Debian 13Инструкция по обновлению Debian 12 до Debian 13 (с Bookworm на Trixie)
ВНИМАНИЕ ПЕРЕД НАЧАЛОМ:
- Создайте полную резервную копию всех важных данных и конфигураций. Обновление до новой стабильной версии — это серьезная операция, которая может привести к неожиданным проблемам.
- Убедитесь, что обновление до Debian 13 официально объявлено. На момент написания этой инструкции Trixie является тестируемой версией. Не используйте это руководство для рабочих систем, пока не выйдет стабильный релиз Debian 13.
- Рекомендуется выполнять обновление напрямую с консоли сервера или через сеанс
screen/tmux, чтобы избежать разрыва соединения при сбоях в сети.
Шаги для обновления:
1. Подготовка текущей системы Debian 12
Перед переходом на новые репозитории убедитесь, что система полностью актуальна.
sudo apt update && sudo apt upgrade -y sudo apt full-upgrade -y sudo apt autoremove --purge2. Изменение файла
sources.listна репозитории Debian 13Замените все упоминания
bookwormнаtrixie.Откройте файл для редактирования:
sudo nano /etc/apt/sources.listЗа основу можно взять следующий шаблон (замените всё его содержимое указанным ниже текстом):
#deb cdrom:[Debian GNU/Linux 13.0.0 _Trixie_ - Official amd64 NETINST 202507XX-XX:XX]/ trixie main non-free-firmware deb http://deb.debian.org/debian/ trixie main non-free-firmware deb-src http://deb.debian.org/debian/ trixie main non-free-firmware deb http://security.debian.org/debian-security trixie-security main non-free-firmware deb-src http://security.debian.org/debian-security trixie-security main non-free-firmware # trixie-updates, to get updates before a point release is made; deb http://deb.debian.org/debian/ trixie-updates main non-free-firmware deb-src http://deb.debian.org/debian/ trixie-updates main non-free-firmware # Зеркало для non-free и contrib (если используете) # deb http://deb.debian.org/debian/ trixie main contrib non-free non-free-firmwareПримечание: Имена компонентов (
main,contrib,non-free,non-free-firmware) и зеркала могут быть скорректированы под ваши нужды.3. Обновление системы до Debian 13
Теперь можно начать процесс дистрибутивного обновления.
# Обновить списки пакетов из новых репозиториев sudo apt update # Выполнить минимальное обновление без установки новых пакетов (рекомендуемый первый шаг) sudo apt upgrade --without-new-pkgs -y # Выполнить полное обновление системы с разрешением зависимостей, включая удаление устаревших пакетов sudo apt full-upgrade -yВо время
full-upgradeбудут заданы вопросы о конфигурационных файлах (например,sshd_config,postfix/main.cfи др.). Внимательно читайте каждый вопрос. Если вы не вносили специфических изменений в файл, можно выбрать вариант «установить версию от пакета». Если же вы меняли файл и хотите сохранить свои правки, выберите «оставить текущую версию, установленную на данный момент» (но будьте готовы к возможной несовместимости).4. Завершение обновления и очистка
# Удалить пакеты, которые больше не нужны как зависимости (очистка) sudo apt autoremove --purge # Перезагрузить систему для применения всех изменений, особенно нового ядра sudo reboot5. Проверка успешности обновления
После перезагрузки войдите в систему и проверьте версию.
cat /etc/debian_version # или lsb_release -aВы должны увидеть:
Distributor ID: Debian Description: Debian GNU/Linux 13 (trixie) Release: 13 Codename: trixie
Для систем с графическим окружением GNOME (особенность)
Как и в предыдущих обновлениях, дисплейный менеджер GDM может сбросить настройки сессии.
Если вам необходимо использовать Xorg вместо Wayland (например, для совместимости с некоторыми средствами удаленного доступа вроде AnyDesk):
- Отредактируйте конфигурационный файл GDM:
sudo nano /etc/gdm3/daemon.conf - Найдите строку
#WaylandEnable=falseи раскомментируйте её (уберите символ#в начале). - Сохраните файл и перезапустите GDM:
Или, если изменения не применились, перезагрузите компьютер:sudo systemctl restart gdm3sudo reboot
Возможные проблемы и рекомендации
- Сломанные зависимости: Если процесс обновления прервался из-за конфликтов, попробуйте команду
sudo apt --fix-broken install. - Оставшиеся пакеты от Bookworm: После успешного обновления проверьте
apt list --installed | grep bookworm. Такие пакеты лучше переустановить или удалить. - Сторонние репозитории: Закомментируйте или удалите из
/etc/apt/sources.listи файлов в/etc/apt/sources.list.d/все сторонние репозитории (например, Docker, PostgreSQL и т.д.), не поддерживающие Trixie, чтобы избежать проблем с зависимостями. Добавьте их обратно только после подтверждения поддержки новой версии. - Прочтите вывод: Внимательно читайте информацию, которую выводит
aptво время обновления. Там могут быть важные предупреждения или инструкции.
-
Bash - работа с SSHОткрыть в своём браузере настройки удалённого роутера
sudo ssh -L 8080:192.168.0.1:80 user@<ip-сервера>-L - локальный адрес
8080 - порт в браузере пользователя
192.168.0.1:80 - пример адреса роутера
В своём браузере ввести адрес http://localhost:8080
-
Подключение телефона с Android к ПК с Debian 12Для того чтобы Debian 12 «увидел» любой современный Android-смартфон, необходимо установить поддержку протокола MTP (Media Transfer Protocol).
В современных графических оболочках (GNOME, KDE, XFCE) большая часть компонентов уже встроена, но иногда не хватает конкретных драйверов или утилит для корректного монтирования.
1. Установка необходимых пакетов
Откройте терминал и выполните следующую команду под пользователем
rootили черезsudo:sudo apt update sudo apt install jmtpfs mtp-tools gvfs-backends- gvfs-backends: Самый важный пакет для пользователей GNOME/XFCE/Cinnamon. Он позволяет файловому менеджеру автоматически распознавать MTP-устройства.
- kio-extras: (Установите вместо gvfs, если вы используете KDE Plasma).
- jmtpfs / mtp-tools: Полезны для ручного монтирования, если автоматика не сработает.
2. Настройка на самом телефоне
Это критический шаг, без которого компьютер увидит устройство, но папка будет пустой.
- Подключите телефон к ПК качественным USB-кабелем.
- Разблокируйте экран телефона.
- Опустите шторку уведомлений. Найдите уведомление «Зарядка через USB» (или «Настройки USB»).
- Нажмите на него и выберите режим «Передача файлов» (MTP).
3. Как открыть файлы
После выбора режима «Передача файлов» на телефоне:
- Откройте ваш стандартный файловый менеджер (Nautilus, Dolphin, Thunar).
- В боковой панели слева (в разделе «Устройства» или «Компьютер») появится пункт Mi A3.
- Кликните на него — вы увидите «Внутренний общий накопитель».
Что делать, если телефон всё равно не виден?
- Попробуйте другой порт/кабель: Android-устройства очень чувствительны к качеству кабеля. Используйте оригинальный кабель.
- Разблокировка экрана: Debian не сможет получить доступ к файлам, пока экран телефона заблокирован графическим ключом или паролем.
- Конфликт с ADB: Если у вас включена «Отладка по USB» в настройках разработчика, иногда это мешает режиму MTP. Попробуйте временно её выключить.
-
Wiki.js - установка и настройка на DebianВНИМАНИЕ ! Инструкция не проверена
Подробная инструкция по установке и настройке Wiki.js на Debian 12/13 с использованием Docker
Эта инструкция основана на анализе распространенных проблем и рекомендаций из обсуждений по установке Wiki.js в Docker. Мы сосредоточимся на стабильной версии Wiki.js 2.x (актуальной на декабрь 2025 года), использовании PostgreSQL как базы данных, настройке прав доступа для избежания ошибок типа EACCES, интеграции с Nginx для HTTPS и поддержке русского языка. Установка будет проводиться в защищенной среде с учетом лучших практик 2025 года.
Wiki.js — это современная вики-система на Node.js, идеальная для многоуровневой документации, включая поддержку кириллицы в путях и навигации. Мы используем Docker для изоляции и простоты управления.
Важные предупреждения:
- Убедитесь, что у вас есть домен (например, wiki.example.com), настроенный на IP вашего сервера.
- Все команды выполняйте от пользователя с sudo-доступом.
- Если вы на Debian 13 (Trixie), инструкции аналогичны Debian 12 (Bookworm), но проверьте обновления пакетов.
- Перед началом обновите систему:
sudo apt update && sudo apt upgrade -y.
1. Предварительные требования
- Сервер: Debian 12 или 13 с минимум 2 ГБ RAM и 20 ГБ SSD (рекомендуется VPS или dedicated server).
- Пакеты: Установите необходимые зависимости:
sudo apt install -y curl git ca-certificates gnupg lsb-release - Firewall: Разрешите порты 80 (HTTP), 443 (HTTPS) и 3000 (временно для Wiki.js):
sudo ufw allow 80/tcp sudo ufw allow 443/tcp sudo ufw allow 3000/tcp # Удалите после настройки Nginx sudo ufw reload - Домен и DNS: Настройте A-запись для вашего домена на IP сервера.
2. Установка Docker и Docker Compose
Docker — ключевой компонент для запуска Wiki.js в контейнере. Установите официальную версию:
-
Добавьте репозиторий Docker:
sudo mkdir -p /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt update -
Установите Docker:
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -
Запустите и добавьте в автозагрузку:
sudo systemctl start docker sudo systemctl enable docker -
Добавьте вашего пользователя в группу docker (чтобы избежать sudo для docker-команд):
sudo usermod -aG docker $USER newgrp docker # Или перелогиньтесь
Проверьте:
docker --versionиdocker compose version(должно быть v2+).3. Подготовка директорий и конфигурации
Создайте директорию для Wiki.js (рекомендуем /opt/wikijs для системности):
sudo mkdir -p /opt/wikijs/{data,backup,postgres,config} cd /opt/wikijs- /opt/wikijs/data: Для данных Wiki.js (страницы, uploads, content).
- /opt/wikijs/backup: Для бэкапов.
- /opt/wikijs/postgres: Для данных PostgreSQL.
- /opt/wikijs/config: Для config.yml (опционально, для ручной правки).
Настройте права (чтобы избежать EACCES ошибок). Wiki.js в контейнере работает от пользователя с UID 1000 (node), так что:
sudo chown -R 1000:1000 /opt/wikijs/data /opt/wikijs/backup /opt/wikijs/config sudo chmod -R 775 /opt/wikijs/data /opt/wikijs/backup /opt/wikijs/config4. Создание docker-compose.yml и .env
Создайте файл
docker-compose.ymlв /opt/wikijs:version: "3.9" services: postgres: image: postgres:17-alpine container_name: wikijs-postgres restart: unless-stopped environment: POSTGRES_DB: wikijs POSTGRES_USER: wikijs POSTGRES_PASSWORD: ${WIKIJS_DB_PASS} volumes: - /opt/wikijs/postgres:/var/lib/postgresql/data logging: driver: "none" wiki: image: ghcr.io/requarks/wiki:2 container_name: wikijs user: "1000:1000" # Фиксируем UID/GID для прав restart: unless-stopped depends_on: - postgres environment: DB_TYPE: postgres DB_HOST: postgres DB_PORT: 5432 DB_USER: wikijs DB_PASS: ${WIKIJS_DB_PASS} DB_NAME: wikijs HOME: /wiki/data # Альтернатива для избежания EACCES на /home/node ports: - "3000:3000" # Временно для установки volumes: - /opt/wikijs/data:/wiki/data - /opt/wikijs/backup:/wiki/backup - /opt/wikijs/config:/wiki/config # ОпциональноСоздайте файл
.envдля безопасного хранения пароля (замените на сильный пароль):WIKIJS_DB_PASS=Sup3rS3cr3tPass2025!Это предотвращает хранение пароля в compose-файле.
5. Запуск Wiki.js и начальная настройка
-
Запустите контейнеры:
cd /opt/wikijs docker compose up -d -
Проверьте логи (убедитесь, что нет ошибок):
docker compose logs wikiИщите "Database Connection Successful" и отсутствие EACCES.
-
Откройте в браузере: http://ваш-IP:3000
- Создайте аккаунт админа (email и пароль).
- Укажите Site URL: https://wiki.example.com (обязательно с https!).
- Отключите телеметрию.
- Нажмите Install.
-
Если возникнут ошибки EACCES при сохранении страниц:
- Проверьте права на хосте:
ls -ld /opt/wikijs/data(должно быть drwxrwxr-x 1000 1000). - Если проблема в /home/node, добавьте в environment:
HOME: /wiki/data(как в примере выше). - Перезапустите:
docker compose down && docker compose up -d.
- Проверьте права на хосте:
6. Настройка Nginx для reverse proxy и HTTPS
Nginx обеспечит доступ по HTTPS и скроет порт 3000.
-
Установите Nginx и Certbot:
sudo apt install -y nginx certbot python3-certbot-nginx -
Создайте конфиг для вашего домена (/etc/nginx/sites-available/wiki.example.com):
server { listen 80; server_name wiki.example.com; return 301 https://$server_name$request_uri; } server { listen 443 ssl http2; server_name wiki.example.com; ssl_certificate /etc/letsencrypt/live/wiki.example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/wiki.example.com/privkey.pem; include /etc/letsencrypt/options-ssl-nginx.conf; ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; location / { proxy_pass http://127.0.0.1:3000; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-Host $host; proxy_cache off; proxy_buffering off; proxy_read_timeout 100s; } client_max_body_size 100M; # Для загрузки больших файлов } -
Активируйте конфиг:
sudo ln -s /etc/nginx/sites-available/wiki.example.com /etc/nginx/sites-enabled/ sudo nginx -t # Проверьте синтаксис sudo systemctl restart nginx -
Получите сертификат Let’s Encrypt:
sudo certbot --nginx -d wiki.example.com- Укажите email, согласитесь с условиями.
- Certbot обновит конфиг автоматически.
-
Уберите порт 3000 из docker-compose.yml (закомментируйте или удалите строку
ports: - "3000:3000").docker compose down && docker compose up -d
Теперь Wiki.js доступен по https://wiki.example.com.
7. Установка русского языка и настройка навигации
- Зайдите под админом: Administration > Localization > Language Packs.
- Нажмите +, найдите "Russian", скачайте.
- Выберите Russian как основной язык, нажмите Apply.
- Перезагрузите страницу — интерфейс на русском.
Для многоуровневой документации:
- Создавайте страницы с путями вроде /руководство/подраздел/детали (кириллица поддерживается).
- В Administration > Navigation выберите Custom Navigation для вложенных меню (группы для уровней >2).
- Если ограничение на 2 уровня: Убедитесь в UTF-8 в базе (в контейнере postgres:
docker exec -it wikijs-postgres psql -U wikijs -c "SHOW server_encoding;"— должно быть UTF8).
8. Настройка бэкапов
- В интерфейсе: Administration > Backup > Storage > Local File System.
- Укажите путь: /wiki/backup.
- Включите ежедневные бэкапы.
Для автоматического бэкапа базы (cron-скрипт):
- Создайте скрипт /opt/wikijs/backup.sh:
#!/bin/bash docker exec wikijs-postgres pg_dump -U wikijs wikijs > /opt/wikijs/backup/wikijs-$(date +%Y%m%d).sql docker cp wikijs:/wiki/backup/* /opt/wikijs/backup/ # Бэкапы из интерфейса find /opt/wikijs/backup -type f -mtime +7 -delete # Удалять старше 7 дней - Сделайте исполняемым:
chmod +x /opt/wikijs/backup.sh. - Добавьте в cron (ежедневно в 02:00):
crontab -e0 2 * * * /opt/wikijs/backup.sh
9. Обновление и обслуживание
- Обновите:
cd /opt/wikijs && docker compose pull && docker compose up -d --force-recreate. - Логи:
docker compose logs -f wiki. - Очистка:
docker system prune -f(удаляет старые образы).
10. Устранение неисправностей
- EACCES permission denied: Проверьте права на volumes (chown 1000:1000, chmod 775). Если в логе mkdir '/home/user' — используйте
HOME: /wiki/dataв environment. - JSON.parse error: Очистите кэш:
docker exec -it wikijs bash -c "rm -rf /wiki/data/cache/*". - Конфликты сохранения: Вторично от EACCES — исправьте права и перезапустите.
- Бэкапы не сохраняются: Убедитесь в пути /wiki/backup и правах на /opt/wikijs/backup.
- SELinux/AppArmor (если включено):
sudo setenforce 0(временно), затем настройте правила. - Нет данных после перезапуска: Всегда копируйте перед down:
docker cp wikijs:/wiki/data /opt/wikijs/data.
Эта настройка обеспечит стабильную работу Wiki.js для многоуровневой документации на русском языке.
-
Wiki.js - установка и настройка на DebianСодержание
-
Самоподписанный сертификат для NginxПодробная инструкция по добавлению универсального самоподписанного сертификата в Nginx
Самоподписанный (self-signed) сертификат — это простой и эффективный способ обеспечить HTTPS-соединение для вашего сервера Nginx, особенно в случаях, когда вы работаете без доменного имени (например, по IP-адресу), для внутренних сетей, тестирования или личного использования. Он не требует внешних удостоверяющих центров (CA), но браузеры покажут предупреждение о небезопасности, поскольку сертификат не проверен доверенным CA. Шифрование при этом работает полноценно.
Эта инструкция основана на стандартных практиках и подходит для большинства дистрибутивов Linux (например, Ubuntu/Debian, CentOS). Предполагается, что Nginx уже установлен и работает. Все команды выполняются с правами root (используйте
sudo).Предварительные требования
- Nginx установлен и настроен (проверьте:
nginx -v). - Доступ к серверу по SSH или консоли.
- Если у вас несколько серверов или контейнеров (например, с Webmin), сертификат Nginx будет независим от их собственных сертификатов. Nginx будет обрабатывать SSL на внешнем уровне, а внутренний трафик может идти по HTTP.
- Для доступа по IP: укажите внешний IP в поле Common Name (CN) при генерации, чтобы минимизировать предупреждения в браузере.
- Если у вас домен, рассмотрите бесплатный сертификат от Let's Encrypt вместо self-signed (но это выходит за рамки инструкции).
Шаг 1: Создание директории для сертификатов
Создайте защищенную директорию для хранения сертификата и ключа. Это стандартное место для Nginx.
sudo mkdir -p /etc/nginx/ssl sudo chmod 700 /etc/nginx/sslmkdir -p: создает директорию, если она не существует.chmod 700: обеспечивает доступ только владельцу (root), для безопасности.
Шаг 2: Генерация самоподписанного сертификата
Используйте утилиту
openssl(обычно предустановлена; проверьте:openssl version). Это создаст ключ и сертификат в одном шаге.sudo openssl req -x509 -nodes -days 3650 -newkey rsa:2048 \ -keyout /etc/nginx/ssl/selfsigned.key \ -out /etc/nginx/ssl/selfsigned.crt- Параметры объяснения:
req -x509: создает самоподписанный сертификат.-nodes: не шифрует ключ паролем (упрощает использование в Nginx).-days 3650: срок действия 10 лет (можно изменить, например, на 365 для 1 года).-newkey rsa:2048: генерирует новый RSA-ключ длиной 2048 бит (рекомендуемая длина для безопасности).-keyout: путь к приватному ключу.-out: путь к сертификату.
Во время выполнения вас спросят интерактивные вопросы (Subject fields):
- Country Name (2 letter code): Например, RU (можно пропустить, нажав Enter).
- State or Province Name: Например, Moscow.
- Locality Name: Например, Moscow.
- Organization Name: Например, My Company.
- Organizational Unit Name: Например, IT.
- Common Name (CN): Важно! Укажите ваш внешний IP-адрес (например, 203.0.113.50) или домен, если есть. Это должно совпадать с адресом, по которому доступен сервер, чтобы браузер не выдавал дополнительное предупреждение о несоответствии.
- Email Address: Опционально.
Если нужно сгенерировать сертификат без вопросов (для автоматизации), добавьте
-subj "/CN=your.ip.address".Шаг 3: Установка прав доступа
Приватный ключ должен быть защищен, чтобы избежать утечек.
sudo chmod 600 /etc/nginx/ssl/selfsigned.keychmod 600: только владелец (root) может читать/писать.
Шаг 4: Настройка конфигурации Nginx
Добавьте ссылки на сертификат в конфигурационный файл Nginx. Это можно сделать глобально (для всех серверов) или в конкретном server-блоке.
-
Откройте или создайте конфиг-файл (например,
/etc/nginx/conf.d/ssl.confдля глобальной настройки или в/etc/nginx/sites-available/defaultдля конкретного сайта). -
Добавьте следующие строки вне server-блоков (для глобального использования) или внутри server-блока:
ssl_certificate /etc/nginx/ssl/selfsigned.crt; ssl_certificate_key /etc/nginx/ssl/selfsigned.key;- Если сертификат для нескольких портов или серверов: используйте один сертификат для всех (универсальный подход).
- В server-блоке добавьте
listenс SSL:
server { listen 443 ssl; # Или ваш порт, например 8443 ssl; server_name your.ip.address; # Или _ для wildcard # Другие настройки, например location / { ... } ssl_certificate /etc/nginx/ssl/selfsigned.crt; ssl_certificate_key /etc/nginx/ssl/selfsigned.key; }- Если вы проксируете трафик (например, на контейнеры с Webmin): используйте
proxy_pass http://internal-ip:port;внутри location. SSL терминируется на Nginx, внутренний трафик — HTTP (безопасно в локальной сети).
Важно: Создайте сертификат до добавления этих строк, иначе Nginx выдаст ошибку при проверке.
Шаг 5: Проверка и перезагрузка Nginx
Проверьте конфигурацию на ошибки:
sudo nginx -t- Если ошибка "cannot load certificate": проверьте пути к файлам или создайте сертификат заново.
Перезагрузите Nginx:
sudo systemctl reload nginx- Или
sudo nginx -s reload(если не используете systemd).
Шаг 6: Тестирование в браузере
- Откройте
https://your.ip.address:port(например, https://203.0.113.50:8443). - Браузер покажет предупреждение: "Соединение не защищено" (NET::ERR_CERT_AUTHORITY_INVALID).
- Нажмите "Дополнительно" > "Перейти на сайт" (или аналог в вашем браузере).
- Для постоянного доступа: добавьте исключение в настройках браузера (в Chrome: Settings > Privacy and security > Manage certificates > Import ваш .crt файл).
- Если доступ по домену: предупреждение будет слабее, если CN совпадает.
- Проверьте SSL: используйте
curl -v https://your.ip.address:portили онлайн-инструменты вроде SSL Labs (но для self-signed тест покажет A-рейтинг с предупреждением о доверии).
Возможные проблемы и решения
- Конфликт с другими сертификатами: Не возникает, если они в разных сервисах (например, Webmin использует свой miniserv.pem). Nginx обрабатывает свой сертификат независимо.
- Предупреждение в браузере не уходит: Нормально для self-signed. Для полного устранения — получите доверенный сертификат (Let's Encrypt для доменов; для IP — ограниченная поддержка с коротким сроком).
- Nginx не стартует: Проверьте логи (
sudo journalctl -u nginxили/var/log/nginx/error.log). Ошибки часто в путях или правах. - Доступ по нескольким портам: Один сертификат работает для всех listen с
ssl. - Обновление сертификата: Когда истечет срок, повторите Шаг 2–5.
- Безопасность: Self-signed подходит для внутренних/личных сценариев. Для публичного доступа используйте Let's Encrypt.
Эта инструкция делает настройку универсальной: один сертификат для всего Nginx.
- Nginx установлен и настроен (проверьте:
-
Снятие ограничений для Docker в LXC на Debian 13Снятие ограничений для Docker в LXC на Ubuntu 24.04
# Template used to create this container: /usr/share/lxc/templates/lxc-download # Parameters passed to the template: --dist debian --release bookworm --arch amd64 # For additional config options, please look at lxc.container.conf(5) # Включаем поддержку вложенных контейнеров (nesting) lxc.include = /usr/share/lxc/config/nesting.conf # Отключаем ограничения AppArmor для полной свободы действий lxc.apparmor.profile = unconfined # Разрешаем все устройства (для работы Docker) lxc.cgroup.devices.allow = a # Убираем ограничения на capabilities (полные права для контейнера) lxc.cap.drop = # Разрешаем монтирование системных директорий с правами чтения-записи lxc.mount.auto = proc:rw sys:rw # Distribution configuration lxc.include = /usr/share/lxc/config/common.conf lxc.arch = linux64 # Container specific configuration lxc.rootfs.path = dir:/var/lib/lxc/container_native/rootfs lxc.uts.name = container_native # Network configuration lxc.net.0.type = veth lxc.net.0.link = lxcbr0 lxc.net.0.flags = up lxc.net.0.hwaddr = 00:16:3e:7f:79:c0 lxc.net.0.ipv4.address = 10.0.3.170/24 lxc.net.0.ipv4.gateway = 10.0.3.1
Этот конфиг LXC работает на хосте Ubuntu 24.04 и позволяет нормально запускать Docker с Jitsi внутри контейнера
Конфиг создаёт привилегированный LXC-контейнер (без
lxc.idmap, от root) с Debian 12 внутри. Он включает ключевые настройки для nested контейнеризации (Docker внутри LXC):lxc.include = /usr/share/lxc/config/nesting.conf— включает nesting.lxc.apparmor.profile = unconfined— полностью отключает AppArmor.lxc.cgroup.devices.allow = a— разрешает все устройства.lxc.cap.drop =— сохраняет все capabilities.lxc.mount.auto = proc:rw sys:rw— монтирует /proc и /sys с правами записи.
На Ubuntu 24.04 этот конфиг работает стабильно, и Docker (включая сложный стек Jitsi с web, prosody, jicofo, jvb) запускается без ошибок. На Debian 13 (или старых версиях) часто возникают проблемы с overlay2, cgroups, сетью или capabilities. Вот подробное объяснение причин.
1. Более свежее ядро Linux
- Ubuntu 24.04 использует Linux kernel 6.8 (с возможными обновлениями до новее через HWE).
- Это обеспечивает отличную поддержку:
- cgroups v2 (единой иерархии, которую Docker предпочитает по умолчанию).
- overlayFS (storage driver overlay2 в Docker — самый эффективный).
- Вложенных namespaces и устройств для nested контейнеров.
- Docker и Jitsi (особенно JVB с UDP-портами и сетевыми привилегиями) требуют современных фич ядра. На старом ядре (например, 6.1 в базовом Debian) могут быть баги или отсутствовать оптимизации → ошибки при создании контейнеров.
2. Более лояльный и современный AppArmor
- Ubuntu активно развивает AppArmor (Canonical — основной контрибьютор). В Ubuntu 24.04 профили для nested контейнеров менее строгие: даже без
unconfinedмногие системные вызовы проходят. nesting.confв Ubuntu включает улучшения для вложенных контейнеров (лучшая поддержка overlay, cgroups, capabilities).- В Debian AppArmor строже и консервативнее → даже с nesting часто блокирует вызовы, нужные Docker (mount namespace, cap_sys_admin для JVB, сетевые операции). Поэтому требуется явное
unconfined. - На Ubuntu ваш конфиг с
unconfinedработает, но часто достаточно и без него — система "прощает" больше.
3. Автоматические улучшения для nested контейнеров в LXC
- Версия LXC в Ubuntu 24.04 — новее (5.x–6.x с патчами от Canonical).
nesting.confв Ubuntu авто-разрешает многие вещи:- Полный доступ к cgroups для Docker.
- Лучшую работу с устройствами и capabilities.
- Монтирование /proc и /sys без дополнительных настроек.
- В Debian nesting менее "щедрый" → нужны дополнительные строки (например, ручное монтирование cgroup2).
- Ubuntu ориентирована на облака/контейнеры (Canonical продвигает LXD/LXC), поэтому баги с Docker внутри LXC фиксятся быстрее.
4. Привилегированный режим "из коробки"
- Контейнер привилегированный (нет idmap) → root внутри имеет почти полные права на хостовом ядре.
- В комбинации с свежим ядром и AppArmor это даёт Docker всё необходимое:
- Управление cgroups.
- Создание overlayFS.
- NET_ADMIN/SYS_ADMIN для сетей Jitsi.
- На Debian даже в привилегированном режиме строгий AppArmor и старое ядро могут ограничивать.
5. Специфика Jitsi в Docker
- Jitsi требует:
- UDP-порты (10000/10001) с NET_ADMIN.
- Много устройств (timerfd, RTC).
- Полные capabilities для JVB (видеомост).
- На Ubuntu это проходит гладко благодаря ядру и nesting.
- На Debian часто падает JVB или web с ошибками "shim task", "mount namespace" или "overlay not supported".
Итог: Ubuntu 24.04 "заточена" под современную контейнеризацию — свежее ядро, лояльный AppArmor и оптимизированный LXC делают ваш конфиг достаточным. Debian более консервативен и стабилен, но требует дополнительных настроек (как в исправленном конфиге из обсуждения: без privileged-ключа, с ручным cgroup2). Поэтому на Ubuntu всё работает "из коробки", а Jitsi запускается без проблем. Если переходите на Debian-хост — используйте полный исправленный конфиг с монтированием cgroup2.
-
Снятие ограничений для Docker в LXC на Debian 13ВНИМАНИЕ ! Инструкция не проверена
Снятие ограничений для Docker в LXC на Debian 13
Полная инструкция по адаптации LXC для установки и запуска Docker внутри контейнера на хосте Debian 13
В отличие от Ubuntu 24.04, где Docker работает "из коробки" благодаря более свежим настройкам ядра, AppArmor и LXC, на Debian 13 требуется специальная конфигурация для поддержки вложенных контейнеров (nesting). Это включает отключение ограничений AppArmor, разрешение устройств и capabilities, а также правильное монтирование файловых систем для cgroups и overlayFS, которые необходимы Docker.
Инструкция охватывает создание привилегированного LXC-контейнера с Debian 12 (bookworm) внутри, настройку для полной совместимости с Docker и рекомендации по установке Docker. Контейнер будет настроен как привилегированный (автоматически, без явного ключа
lxc.privileged, который не поддерживается в LXC на Debian 13). Это позволит запускать Docker-контейнеры без ошибок, связанных с cgroups, overlay, сетью или capabilities.Важные предупреждения:
- Такие настройки снижают безопасность (включая nesting и unconfined AppArmor), поэтому используйте только для доверенных сред. Избегайте в продакшене без дополнительных мер (например, SELinux или ограниченных capabilities).
- Тестируйте на чистой системе. Если у вас уже есть контейнер, создайте новый для чистоты.
- Хост: Debian 13 (Trixie). Гость: Debian 12 (Bookworm, amd64).
- Docker внутри LXC требует ядра хоста ≥ 6.1 с поддержкой overlayFS и cgroups v2. Проверьте:
uname -r(должно быть ≥ 6.1) иgrep -i overlay /proc/filesystems(должно показать "nodev overlay").
Шаг 1: Подготовка хоста (Debian 13)
-
Установите LXC и необходимые пакеты:
sudo apt update sudo apt install lxc lxc-templates bridge-utils- Это установит LXC версии ~5.x–6.x, типичной для Debian 13.
- Если нужно, настройте мост lxcbr0 (обычно создается автоматически при установке LXC).
-
Проверьте поддержку ядра:
- Версия ядра:
uname -r(должна быть 6.1+). - Поддержка overlay:
grep -i overlay /proc/filesystems(если нет, обновите ядро:sudo apt install linux-image-amd64и перезагрузите). - cgroups v2:
ls /sys/fs/cgroup(должны быть файлы unified или cgroup2).
- Версия ядра:
-
Настройте сетевой мост (если не настроен):
- Редактируйте
/etc/network/interfacesили используйте systemd-networkd. - Пример для lxcbr0:
sudo apt install bridge-utils sudo brctl addbr lxcbr0 sudo ip addr add 10.0.3.1/24 dev lxcbr0 sudo ip link set lxcbr0 up - Для постоянства добавьте в
/etc/network/interfaces:auto lxcbr0 iface lxcbr0 inet static address 10.0.3.1/24 bridge_ports none bridge_fd 0 bridge_maxwait 0
- Редактируйте
Шаг 2: Создание LXC-контейнера
Команда для создания контейнера:
sudo lxc-create -t download -n container_jitsi -- --dist debian --release bookworm --arch amd64-
Достаточно ли этой команды? Да, полностью достаточно для создания базового контейнера. Она скачает шаблон Debian 12 (bookworm) для amd64, создаст rootfs в
/var/lib/lxc/container_jitsi/rootfsи сгенерирует базовый config в/var/lib/lxc/container_jitsi/config. После этого контейнер готов к редактированию и запуску. Нет нужды в дополнительных флагах — привилегированный режим достигается автоматически (безlxc.idmap), если контейнер создается от root. -
Если возникнут ошибки (например, нет интернета), проверьте прокси или зеркала в
/etc/lxc/default.conf.
Шаг 3: Редактирование конфигурации LXC для поддержки Docker
Откройте файл
/var/lib/lxc/container_jitsi/configв редакторе (например,sudo nano /var/lib/lxc/container_jitsi/config) и замените его содержимое на следующее. Это адаптированный конфиг из обсуждения, оптимизированный для Debian 13: включена nesting, отключены ограничения, добавлено монтирование cgroup2 для Docker.# --- Автозагрузка контейнера --- lxc.start.auto = 1 lxc.start.order = 100 # --- Включаем базовые конфиги и поддержку nested контейнеров --- lxc.include = /usr/share/lxc/config/common.conf lxc.include = /usr/share/lxc/config/nesting.conf lxc.arch = linux64 # --- Полное отключение AppArmor (критично для Debian, чтобы избежать ошибок с Docker и Jitsi) --- lxc.apparmor.profile = unconfined # --- Разрешить все устройства (для Docker и Jitsi) --- lxc.cgroup.devices.allow = a # --- Не отбрасывать capabilities (полные права для Docker) --- lxc.cap.drop = # --- Корневая файловая система и имя контейнера --- lxc.rootfs.path = dir:/var/lib/lxc/container_jitsi/rootfs lxc.uts.name = container_jitsi # --- Автомонтирование системных директорий с правами rw --- lxc.mount.auto = proc:rw sys:rw # --- Монтирование cgroup2 (обязательно для cgroups v2 в Docker на Debian) --- lxc.mount.entry = /sys/fs/cgroup sys/fs/cgroup none bind,create=dir 0 0 # --- Сетевые настройки --- lxc.net.0.type = veth lxc.net.0.link = lxcbr0 lxc.net.0.flags = up lxc.net.0.hwaddr = 00:16:3a:12:34:50 # Замените на уникальный MAC, если нужно lxc.net.0.ipv4.address = 10.0.3.140/24 # Статический IP, измените по необходимости lxc.net.0.ipv4.gateway = 10.0.3.1Объяснение ключевых настроек (почему они нужны на Debian 13):
lxc.include = /usr/share/lxc/config/nesting.conf: Включает поддержку вложенных контейнеров (namespaces, overlayFS, cgroups). Без этого Docker не запустится.lxc.apparmor.profile = unconfined: Отключает AppArmor, который на Debian строже, чем на Ubuntu, и блокирует системные вызовы для Docker (например, для Jitsi Video Bridge). Альтернативаgeneratedне работает стабильно.lxc.cgroup.devices.allow = a: Разрешает все устройства — Docker и Jitsi используют random устройства (timerfd, netlink).lxc.cap.drop =: Убирает ограничения на capabilities (SYS_ADMIN, NET_ADMIN и т.д.), иначе Docker не сможет создавать сети или mount.lxc.mount.auto = proc:rw sys:rw: Монтирует /proc и /sys с правами записи — нужно для Docker.lxc.mount.entry = /sys/fs/cgroup ...: Исправляет монтирование cgroup2, без чего Docker падает на Debian.- Нет
lxc.privileged = 1: Этот ключ не поддерживается в LXC на Debian (выдаст ошибку). Привилегированный режим автоматический, если нет idmap. - Сеть: veth с мостом lxcbr0 — стандартно для изоляции, но Docker внутри сможет создавать свои сети.
Сохраните файл и проверьте синтаксис:
sudo lxc-info -n container_jitsi(должен показать stopped).Шаг 4: Запуск и проверка LXC-контейнера
-
Запустите контейнер:
sudo lxc-start -n container_jitsi- Если ошибки, проверьте логи:
sudo lxc-info -n container_jitsi --statsили/var/log/lxc/container_jitsi.log.
- Если ошибки, проверьте логи:
-
Войдите в контейнер:
sudo lxc-attach -n container_jitsi- Вы окажетесь в root-шелле Debian 12 внутри.
-
Проверьте внутри:
uname -r: Должно показать ядро хоста (Debian 13).ls /sys/fs/cgroup: Должно быть смонтировано правильно.
Шаг 5: Установка Docker внутри LXC-контейнера
Внутри контейнера (после
lxc-attach
-
Обновите систему:
apt update && apt upgrade -y -
Установите Docker:
apt install -y ca-certificates curl install -m 0755 -d /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc chmod a+r /etc/apt/keyrings/docker.asc echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian bookworm stable" > /etc/apt/sources.list.d/docker.list apt update apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -
Запустите Docker:
systemctl start docker systemctl enable docker -
Проверьте Docker:
docker run hello-world- Если работает — nesting настроено правильно.
- Проверьте storage driver:
docker info | grep Storage(должен быть overlay2). - Если ошибки (overlay not supported), проверьте ядро хоста.
Шаг 6: Установка Jitsi в Docker (опционально, на основе обсуждения)
Если цель — Jitsi, используйте docker-compose.yml из обсуждения. Внутри контейнера:
- Установите docker-compose:
apt install docker-compose. - Создайте .env и docker-compose.yml (скопируйте из #11–#12 в обсуждении).
- Для порта 10001 UDP вместо 10000:
- В .env:
JVB_PORT=10001иJVB_PORT_UDP=10001. - В docker-compose.yml: ports: - '${JVB_PORT:-10001}:${JVB_PORT:-10001}/udp'.
- Запустите:
docker compose up -d. - Откройте порт:
ufw allow 10001/udp(на хосте и в NAT).
- В .env:
Шаг 7: Диагностика и отладка
- Логи LXC:
sudo lxc-console -n container_jitsiили journalctl на хосте. - Логи Docker внутри:
journalctl -u dockerилиdocker logs <container>. - Если ошибки:
- Overlay: Проверьте ядро.
- cgroups: Добавьте
lxc.cgroup2.devices.allow = a(если не помогает). - AppArmor: Убедитесь в unconfined.
- Для безопасности: После теста ограничьте capabilities (например,
lxc.cap.drop = mac_admin mac_override).
Эта конфигурация гарантирует работу Docker как на Ubuntu 24.04.