Skip to content
  • Категории
  • Последние
  • Метки
  • Популярные
  • World
  • Пользователи
  • Группы
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • По умолчанию (Darkly)
  • Нет скина
Collapse

База знаний (кластер NBICS)

A

Admin

@Admin
administrators
Сводка
Сообщения
151
Темы
19
Поделиться
0
Группы
1
Подписчики
0
Подписки
0

Сообщения

Последние Лучшие сообщения Спорные

  • Общая инструкция по Element
    A Admin
    1. Появилось окно регистрации.

    Тут внимание! Прежде, чем регистрироваться, выберите сервер, на которым вы хотите создать свою учётную запись. Для этого нажмите кнопку "Изменить", и введите в появившемся поле адрес нужного вам сервера.

    Далее придумайте псевдоним (никнейм). Он должен быть написан строчными (маленькими) латинскими буквами. Можно добавлять цифры, но первой должна идти буква. Затем впишите какой-нибудь пароль (сложный), и повторите его.

    Что касается адреса электронной почты, то на некоторых серверах её нужно вводить, на некоторых - нет. Иногда ввод почты требуется, но проверяться не будет, поэтому в таких случаях можно ввести любой, даже несуществующий, адрес. Подробности таких нюансов уточняйте у администратора сервера, на котором желаете зарегистрироваться.

    После ввода данных, нажмите внизу кнопку "Зарегистрироваться".

    08O11.jpg

    Element

  • Общая инструкция по Element
    A Admin
    1. Теперь интерфейс на русском языке.

    Нужно зарегистрироваться. Нажимаем зелёную кнопку "Создать учётную запись".

    hMY10.jpg

    Element

  • Общая инструкция по Element
    A Admin
    1. Раскройте список выбора, и выберите русский язык.

    7AU9.jpg

    Element

  • Общая инструкция по Element
    A Admin
    1. Если по какой-то причине интерфейс программы Element у вас не на русском языке, внизу окна приглашения ко входу, есть возможность выбрать язык.

    vgd8.jpg

    Element

  • Общая инструкция по Element
    A Admin
    1. Так выглядит Element, открытый в браузере. Его интерфейс практически одинаков с отдельными приложениями Element, устанавливаемыми на компьютере.

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

    bDO7.jpg

    Element

  • Общая инструкция по Element
    A Admin
    1. Можно установить на устройство пользователя приложение Element, но при необходимости также пользоваться и веб-вариантом.

    Скачать отдельное приложение Element можно по этой ссылке https://element.io/download

    Обратите внимание, что скачать нужно не Element X (это ещё недоработанная программа, предназначенная в данный момент только для тестирования), а обычный классический Element. Выберите нужную платформу - Windows, Linux, Android (Google Play), и так далее.

    Также, обратите внимание - по умолчанию Element в варианте мобильного приложения, может сильно зависать при входе. Обходной путь:
    Нужно перейти по этой ссылке на телефоне (через обычный интернет-браузер, например, Chrome)

    https://mobile.element.io/?hs_url=https://conferencia.nbics.net
    Откроется приложение Element, и сразу подключится к серверу conferencia.nbics.net без зависаний. Синим цветом отмечен адрес сервера, который нужно вставлять в указанную выше ссылку.
    Обратите внимание, что адрес conferencia.nbics.net вымышленный, и вводить надо адрес одного из действующих серверов.

    Kio6.jpg

    Element

  • Общая инструкция по Element
    A Admin
    1. Таким образом, на устройствах пользователя достаточно открыть интернет-браузер, ввести туда адрес серверного веб-варианта Element, установленного на сервере (например, https://element.nbics.net/element ) , и пользоваться как обычной программой Element.

    aFt5.jpg

    Element

  • Общая инструкция по Element
    A Admin
    1. Element может работать в двух вариантах - как отдельное приложение скачиваемое и устанавливаемое на устройство пользователя, так и в виде пользовательского интерфейса, открываемого прямо в интернет-браузере. Второй вариант называется веб-вариантом. Работает он так - Element работает прямо на сервере, а пользователю в браузер отправляется его графический интерфейс.

    NDf4.jpg

    Element

  • Общая инструкция по Element
    A Admin
    1. Сам по себе Matrix - это лишь формализованный набор правил, протокол. То есть, описание что и как надо делать, на понятном человеку языке. Чтобы всё это заработало на серверах и клиентских устройствах, нужна программная реализация этого протокола, которая понятна компьютерам. Программная реализация серверной части протокола Matrix называется Matrix Synapse. Есть и другие реализации, но эта наиболее популярная и отлаженная. Реализация клиентской части, как я говорил ранее - это программа Element. Есть и другие клиентские программы, но они менее популярные.

    MrS3.jpg

    Element

  • Общая инструкция по Element
    A Admin

    Инструкция по мессенджеру Element.

    1. Мессенджер состоит из двух основных частей - серверной и клиентской. Серверная часть работает на серверах, клиентская - на устройствах пользователя (компьютер, телефон, планшет и прочее). Сервер - это компьютер, предоставляющий услуги для других компьютеров (называемых клиентскими устройствами).
      Взаимосвязь между серверами, а также между сервером и пользователями осуществляется с помощью специального набора правил, называемого протоколом. В данном случае используется протокол, называющийся Matrix.

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

    В качестве сервера можно использовать даже обычный домашний компьютер.

    Официально распространяемая разработчиками протокола Matrix, и наиболее популярная клиентская часть мессенджера, называется Element.

    2T21.jpg

    Element

  • Список децентрализованных сервисов
    A Admin

    Список децентрализованных сервисов

    **Пользовательские сервисы **

    Стандартный пользователь для большинства сервисов:
    Логин - nbics.net
    Пароль - nbics.net

    **▶ - Уникальный логин или пароль

    **

    Краткие руководства пользователя - здесь

    № **Название-ссылка ** Назначение **Способ входа **
    01 NBICS.NET Цифровая мастер-платформа ✔✔✔ Стандартный пользователь
    02 Element Федеративный мессенджер ✔✔✔ Стандартный пользователь
    03 Jitsi Видеоконференции с шифрованием ✔✔✔ Стандартный пользователь
    **04 ** PeerTube Федеративный видеохостинг ✔✔✔ Стандартный пользователь
    **05 ** NextCloud Облачное хранилище файлов ✔✔✔ Стандартный пользователь
    **06 ** HumHub Социальная сеть для команд ✔✔✔ Стандартный пользователь
    **07 ** RoundCube Веб-интерфейс для почты ✔✔✔ Стандартный пользователь
    **08 ** BookStack Система документации и вики ✔✔✔ Стандартный пользователь
    **09 ** Mastodon Федеративный аналог Twitter ✔✔✔ Стандартный пользователь
    **10 ** PixelFed Федеративный фотохостинг ▶ Логин - nbics.net@wekan.nbics.net ▶ (пароль - nbics.net)
    **11 ** NodeBB Федеративный форум ▶ (логин - nbics.net) ▶ пароль - Nbics.net
    **12 ** Diagrams.net Создание диаграмм и схем ▶▶▶ Свободный доступ
    **13 ** OnlyOffice Офисный пакет ▶ Логин - nbics.net@nbics.net ▶ (пароль - nbics.net)
    **14 ** WordPress CMS для сайтов и блогов ▶ Логин - nbics ▶ Пароль - nbics.net_nbics.net
    **15 ** XWiki Федеративная вики-платформа ✔✔✔ Стандартный пользователь
    **16 ** Friendica Федеративная социальная сеть ▶ Логин - nbics ▶ (пароль - nbics.net)
    **17 ** Dolibarr ERP/CRM для бизнеса ✔✔✔ Стандартный пользователь
    **18 ** Redmine Управление проектами ✔✔✔ Стандартный пользователь
    19 Wekan Канбан-доска ▶ В качестве способа авторизации выбрать - LDAP ▶ Логин - nbics.net@wekan.nbics.net ▶ (пароль - nbics.net)
    **20 ** **Mattermost ** Совместная работа в команде ✔✔✔ Стандартный пользователь
    **21 ** **Paperless-ngx ** Управление документацией ✔✔✔ Стандартный пользователь
    ===========================
    **Служебные сервисы (для разработчиков и администраторов) **

    Стандартный пользователь для большинства сервисов:
    Логин - nbics.net
    Пароль - nbics.net

    **⛔ - Запрос на почту diskokniga@yandex.ru

    **

    ▶ - Уникальный логин или пароль

    **№ ** Название-ссылка Назначение **Способ входа **
    **2 ** GitLab Репозитории и CI/CD ✔✔✔ Стандартный пользователь
    **3 ** Gitea Лёгкая альтернатива GitLab ✔✔✔ Стандартный пользователь
    **4 ** Webmin Веб-интерфейс для администрирования сервера ⛔ Служебный вход
    **5 ** Quant-UX Прототипирование и UX-тестирование ▶ Логин - nbics.net@wekan.nbics.net ▶ (пароль - nbics.net)
    **6 ** Node-RED Графический редактор для автоматизации ▶▶▶ Свободный доступ
    **7 ** Code-server VS Code в браузере ✔✔✔ Стандартный пользователь
    **8 ** Portainer Управление контейнерами Docker ⛔ Служебный вход
    **9 ** Matrix Synapse Сервер для мессенджера Element ⛔ Серверная часть, вход служебный
    Разная информация

  • Характеристики серверов
    A Admin

    Характеристики серверов

    Тип 1 - Тестовый (5 - 10 пользователей)
    Характеристика Значение
    ОЗУ 8 - 16 ГБ
    CPU 2 ядра (Intel Core i3-10100 / AMD Ryzen 3 3200G)
    Хранилище HDD 100 - 250 ГБ
    Интернет 25-50 Мбит/с (download/upload)
    Статический адрес У провайдера интернета
    Доменное имя Reg.ru и т.д.

    ================================

    Тип 2 - Минимальный (10 - 50 пользователей)
    Характеристика Значение
    ОЗУ 16 ГБ
    CPU 2- 4 ядра (Intel Core i5-10400 / AMD Ryzen 5 3400G)
    Хранилище HDD 250-500 ГБ
    Интернет 50-100 Мбит/с (download/upload)
    Статический адрес У провайдера интернета
    Доменное имя Reg.ru и т.д.

    ================================

    Тип 3 - Средний (50 - 100 пользователей)
    Характеристика Значение
    ОЗУ 32 ГБ
    CPU 6-8 ядер (Intel Core i7-11700 / AMD Ryzen 7 5800X)
    Хранилище HDD 500 ГБ -1 ТБ
    Интернет 100 - 250 Мбит/с (download/upload)
    Статический адрес У провайдера интернета
    Доменное имя Reg.ru и т.д.

    ================================

    Тип 4 - VIP (100+ пользователей)
    Характеристика Значение
    ОЗУ 64 ГБ
    CPU 12-16 ядер (Intel Core i9-12900K / AMD Ryzen 9 5950X)
    Хранилище HDD 1-4 ТБ + SSD 250 - 500 ГБ - 1 ТБ
    Интернет 500 Мбит/с (download/upload)
    Статический адрес У провайдера интернета
    Доменное имя Reg.ru и т.д.

    ================================

    Тип 5 - SuperVIP (1000+ пользователей)
    Характеристика Значение
    ОЗУ 128 ГБ DDR5
    CPU Intel Xeon W-3375 (38 ядер) / AMD EPYC 7313P (16 ядер)
    Хранилище SSD 2 ТБ NVMe + HDD 8 ТБ (RAID опционально)
    Интернет 1 Гбит/с (1000 Мбит/с, download/upload)
    Статический адрес У провайдера интернета
    Доменное имя Reg.ru и т.д.

    =================================================================

    Дополнительно для сервера SuperVIP - видеокарты, ускоряющие работу локального искусственного интеллекта:

    --------------------------------------------------------------------------------------------------------------------------------------------------------

    🏆 Топовые видеокарты (80 ГБ VRAM) – максимальная производительность
    Видеокарта Максимальная LLM, которую потянет
    NVIDIA H100 80GB (4,3 млн ₽) DeepSeek 67B, LLaMA 2 65B, GPT-3.5 (с отличной скоростью)
    NVIDIA A100 80GB (1,97 млн ₽) DeepSeek 67B, LLaMA 2 65B (чуть медленнее H100)

    🔹 Эти видеокарты – серверные (требуют PCIe 4.0 x16 и мощное охлаждение).
    🔹 Используются в дата-центрах, оптимальны для обучения и работы крупных LLM.


    🔥 Полупрофессиональные видеокарты (48 ГБ VRAM) – для мощных серверов
    Видеокарта Максимальная LLM, которую потянет
    NVIDIA RTX 6000 Ada (920 тыс. ₽) DeepSeek 33B, LLaMA 2 30B (с комфортной скоростью)

    🔹 Промежуточный вариант между A100 и RTX 4090.
    🔹 Хорош для средних моделей (но DeepSeek 67B уже не потянет).


    💪 Оптимальные игровые видеокарты (24 ГБ VRAM) – лучший баланс
    Видеокарта Максимальная LLM, которую потянет
    RTX 4090 24GB (170–200 тыс. ₽) DeepSeek 13B, LLaMA 2 13B (нормальная скорость)

    🔹 Лучший вариант для мощного ИИ на личном сервере.
    🔹 LLaMA 2 30B потянет с Offload (RAM), но медленно.


    🎯 Бюджетные видеокарты (16 ГБ VRAM) – для небольших моделей
    Видеокарта Максимальная LLM, которую потянет
    RTX 4080 16GB (130 тыс. ₽) DeepSeek 7B, LLaMA 2 7B (комфортно)
    RTX 4070 Ti 16GB (95 тыс. ₽) DeepSeek 7B, LLaMA 2 7B (чуть медленнее 4080)

    🔹 Для полноценных LLM мало VRAM – для больших моделей нужен Offload (RAM), что сильно замедляет работу.


    📌 Итог: какую выбрать?

    ​

    ✅ Если важна скорость и мощность → RTX 4090 (24 ГБ) (оптимум для LLM 13B, 30B с Offload).
    ✅ Если бюджет ограничен → RTX 4080 (16 ГБ) (но модели 13B+ работать будут медленно).
    ✅ Если нужен серверный уровень → NVIDIA A100 80GB (но цена 1,97 млн ₽).

    Разная информация

  • Списки виджетов (все увиденные)
    A Admin

    Списки виджетов (все увиденные)

    1. Базовый виджет для регистрации
    2. Бюджетный словарь
    3. Вебинары
    4. Видео контрол
    5. ВКС
    6. Внешняя ссылка
    7. График по документам
    8. Интерактивное обучение
    9. Карта для работы с документами
    10. Каталог конфигураций
    11. Книга
    12. Компании
    13. Контакты
    14. Контролл чата
    15. Круговая диаграмма
    16. Круговая диаграмма для работы с документами
    17. Медиа файлы
    18. Новости
    19. ОЛАП по документам
    20. Оператор
    21. Панель графиков
    22. Панель информации 1.2
    23. Плагин перезапуска медиа сервера
    24. Планирование
    25. Просмотр файлов
    26. Профиль пользователя
    27. Редактор разметки
    28. Сводная панель
    29. Система координат
    30. Сотар панель
    31. СОТАР-панель v2.0
    32. Управление образовательной
    33. Фильтр документов
    34. GIS Карта
    35. HTML-редактор
    36. OLAP-браузер (сводная таблица)
    37. Page Constructor
    38. ProductCatalog
    39. ProductCatalogManager
    40. ProductCatalogSeller
    41. ProjectsCompetition
    42. ShoppingCart
    43. 3D конструктор
    44. Интеграция с ардуином
    45. Мои данные
    46. Панель информации
    47. Панель информации 1.1
    48. Управление сайтами
      =============================================
    Цифровая платформа NBICS

  • Схемы виджетов
    A Admin

    Схемы виджетов

    sxema-vidzetov4.jpg Схема виджетов4.jpg

    Цифровая платформа NBICS

  • Конфигурации сервера для NBICS
    A Admin

    Конфигурации сервера для NBICS

    roc4.jpg

    dFe2.jpg

    1.jpg

    jQQ3.jpg

    Цифровая платформа NBICS

  • Установка Jitsi в Docker
    A Admin

    Установка Nginx Proxy Manager

    Первым делом устанавливаем сервис Nginx Proxy Manager. Ссылка на инструкцию по установке NPM:

    Установка NPM

    =======================================================

    Начальные настройки

    С помощью следующей команды скачиваем последний релиз набора конфигураций для установки Jifsi в Docker:

    wget $(curl -s https://api.github.com/repos/jitsi/docker-jitsi-meet/releases/latest | grep 'zip' | cut -d\" -f4)
    

    В выводе будет показан процесс скачивания репозитория с GitHub. В конце появится примерно такая строка:

    2024-11-15 17:32:48 (125 KB/s) - «stable-9823» сохранён [381175]

    Нам важно то, что в кавычках, в данном случае это stable-9823 (цифры - это номер сборки, с течением времени этот номер увеличивается, поэтому следующий скачаннй релиз может быть с другим номером)

    stable-9823 - это название архива с репозиторием, и его нужно распаковать.

    Распаковываем так:

    unzip stable-9823
    

    После распаковки нужно зайти в текущий каталог и посмотреть название распакованного каталога. Введём команду:

    ls
    

    Среди других каталогов и файлов обратим внимание на следующий каталог:

    jitsi-docker-jitsi-meet-19078a9

    Это название состоит из неизменяемой части (jitsi-docker-jitsi-meet-), и части с 16-ричным кодом (в данном случае это 19078a9)

    Правая часть (с кодом) будет другой после каждого обновления репозитория разработчиками, поэтому ориентируемся на неизменную часть названия.

    Далее копируем полное название каталога и переходим в него:

    cd jitsi-docker-jitsi-meet-19078a9
    

    Посмотрим, что есть в этом каталоге, с помощью команды:

    ls -a
    

    Вывод будет таким:

    jitsi.jpg

    Среди каталогов и файлов выделен файл env.evample

    Это файл с параметрами, в данном случае он не предназначен для работы, так как Docker его не распознает. Распознаваемый Докером файл должен называться .env
    Поэтому копируем содержимое данного файла в новый файл с именем .env

    Оставшийся файл нужен для восстановления, в случае неправильных настроек. Команда копирования:

    cp env.example .env
    

    Снова вводим команду:

    ls -a
    

    И видим, что появился файл .env

    jitsi2.jpg

    В этом файле {.env} есть строки, задающие пароли для некоторых компонентов Jitsi, а точнее для функций этих компонентов. Сейчас переменные присуствуют в файле .env, но значения (пароли в данном случае) у них пустые.

    Посмотрим содержимое файла командой:

    nano .env
    

    И прокрутим текст вниз до отображения этих параметров:

    jitsi3.jpg

    Как видим, значения действительно пустые. Самостоятельно пароли туда не будем вводить, а используем специальный скрипт. Файл со скриптом называется gen-passwords.sh

    Он находится в том же каталоге с репозиторием, где мы сейчас находимся. Код скрипта можно посмотреть, но сейчас важно его просто запустить. Выйдем из программы nano и запустим скрипт следующей командой:

    bash gen-passwords.sh
    

    Снова откроем файл:

    nano .env
    

    Прокрутим текст до тех же параметров, и видим вот что:

    jitsi4.jpg

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

    Выходим из программы nano (клавиши Ctrl-X)

    Выходим из каталога с репозиторием на уровень выше:

    cd ..
    

    Теперь нужно создать каталоги на хостовой системе для конфигурационных файлов и других данных, которые будут наполняться во время работы Jitsi. Эта команда создаёт каталог .jitsi-meet-cfg (его название имеет вначале точку, а значит этот каталог скрытый), а также несколько подкаталогов внутри него.

    mkdir -p ~/.jitsi-meet-cfg/{web,transcripts,prosody/config,prosody/prosody-plugins-custom,jicofo,jvb,jigasi,jibri}
    

    Команда создаёт каталог .jitsi-meet-cfg в том же каталоге, куда в данный момент указывает терминал. За это отвечают символы ~/

    Но иногда советуют создавать этот каталог не в произвольном каталоге, а в каталоге /opt

    В этом случае вся команда будет такой:

    sudo mkdir -p /opt/.jitsi-meet-cfg/{web,transcripts,prosody/config,prosody/prosody-plugins-custom,jicofo,jvb,jigasi,jibri}
    

    Я запущу прежнюю команду, создающую новый каталог в текущем каталоге. В итоге появится каталог .jitsi-meet-cfg с большим числом подкаталогов.

    jitsi5.jpg

    Заходим снова в каталог с репозиторием - jitsi-docker-jitsi-meet-19078a9

    Сейчас нужно будет внести правки в файл .env

    Откроем файл для ознакомления с некоторыми параметрами и редактирования:

    nano .env
    

    Файл .env представляет собой набор переменных с приравненных к ним значениям. То есть, схема файла - это набор пар "ключ=значение". Сами переменные определяются в файлах типа docker-compose.yml

    В файле .env просто задаются значения для этих переменных. Эти значения уже подхватываются Докер Композером (Docker Compose) и применяются в качестве параметров для тех или иных конфигов внутри контейнеров.

    Смотрим на строки, находящиеся почти вначале файла .env

    jitsi6.jpg

    Нам сейчас важны несколько параметров:

    CONFIG: Директория, где будут храниться все конфигурационные файлы. По умолчанию используется ~/.jitsi-meet-cfg. (Вспоминаем, что можно создать и другой каталог, например, /opt но при этом его нужно обязательно указать и тут ). Я оставлю каталог по умолчанию, единственное - укажу тут не относительный, а абсолютный путь до каталога. Например, в моём тестовом варианте это будет CONFIG=/home/astra/.jitsi-meet-cfg
    
    HTTP_PORT: Порт, через который будет доступен HTTP. По умолчанию — 8000, который будет перенаправлен на HTTPS. Если этот порт у вас ничем не занят, оставляем его тут как есть.
    
    HTTPS_PORT: Порт, через который будет доступен HTTPS. По умолчанию — 8443. В данном случае этот параметр закомментируем.
    
    TZ: Часовой пояс системы. По умолчанию установлен на UTC. Можно указать другой пояс, например, для московского времени (TZ=Europe/Moscow)
    
    PUBLIC_URL: Публичный URL для веб-сервиса. Если используется нестандартный HTTPS порт, он должен быть указан в URL (например, https://meet.example.com:8443). В нашем случае порт указывать не нужно (!), так как будет подключён сервис Nginx Proxy Manager, использующий 443 порт. Поэтому указываем только сам адрес (обязательно с https, так как через Nginx proxy manager будет создан сертификат). Например, https://jitsi.nbics.net
    
    JVB_ADVERTISE_IPS: IP-адреса, которые будут публиковаться JVB (Jitsi Video Bridge). То есть, JVB делает доступной информацию о своих IP-адресах для клиентов, чтобы они могли подключиться. В данном параметре можно указать несколько IP через запятую. В данном случае указываем внешний IP (белый статический). 
    

    Параметры PUBLIC_URL и JVB_ADVERTISE_IPS необходимо раскомментировать (!)

    Вот пример:

    jitsi27.jpg

    Чуть ниже есть ещё параметры. Они связаны с созданием сертификатов Letsencrypt. В данной конфигурации они не используются, так как сертификат будет создан через Nginx Proxy manager. Поэтому не будем раскомментировать их, и оставим как есть.

    jitsi8.jpg

    Тем не менее ознакомимся с их назначением:

    ENABLE_LETSENCRYPT: Включает генерацию сертификатов Let's Encrypt.
    
    LETSENCRYPT_DOMAIN: Домен, для которого будет сгенерирован сертификат.
    
    LETSENCRYPT_EMAIL: Электронная почта для получения важных уведомлений о аккаунте (обязательно).
    
    LETSENCRYPT_USE_STAGING: Использует тестовый сервер Let's Encrypt, чтобы избежать ограничений по количеству запросов во время тестирования.
    

    Следующая (интересующая нас) группа параметров связана с аутентификацией пользователей.

    jitsi9.jpg

    ENABLE_AUTH: Включает аутентификацию (требует логин и пароль для присоединения к конференции).
    
    ENABLE_GUESTS: Включает доступ гостей, если аутентификация включена, позволяет пользователям ждать в лобби.
    
    AUTH_TYPE: Тип аутентификации: internal (встроенная), jwt, ldap или matrix.
    

    Раскомментируем эти параметры, чтобы включить аутентификацию. При этом обратите внимание, что в данной конфигурации используется встроенная аутентификация. Это значит, что после установки Jitsi нужно будет зайти внутрь контейнера и с помощью специальной команды создавать пользователей (вместе с паролями).

    Должно получиться так:

    jitsi10.jpg

    ==================================================
    Настройка записи и трансляции

    Далее, в тот же файл .env добавим строки для настройки записи и трансляции. Саму запись и трансляции будет обеспечивать контейнер, в котором находится компонент Jitsi под названием Jibri.

    Суть работы Jibri в том, что он прикидывается пользователем, который заходит в комнату, где ведётся конференция, и записывает на видео всё, что происходит в браузере. Браузер у Jibri отдельный, это Chrome, который находится в контейнере вместе с Jibri. Для Jibri не нужен реальный монитор, на котором отображается содержимое браузера, всё происходит виртуально (с помощью виртуального дисплея). Jibri может либо сохранять записанный видеофайл на сервер (для этого есть кнопка "Запись" в интерфейсе Jitsi), либо передавать видео в онлайн режиме на какой-либо видеохостинг, например в PeerTube или другой сервис, поддерживающий протокол RTMP (для этого в интерфейсе Jitsi есть кнопка "Трансляция").


    Чтобы обеспечить правильную работу Jibri, в файл .env нужно добавить следующие строки:

    #-----------------------------------------------------------------
    # JIBRI 
    #-----------------------------------------------------------------
    
    ENABLE_RECORDING=1
    XMPP_RECORDER_DOMAIN=recorder.jitsi.nbics.net
    ENABLE_HTTP_REDIRECT=0
    XMPP_HIDDEN_DOMAIN=recorder.jitsi.nbics.net
    JIBRI_RECORDER_USER=recorder
    JIBRI_RECORDING_DIR=/config/recordings
    JIBRI_FINALIZE_RECORDING_SCRIPT_PATH=/config/finalize.sh
    JIBRI_XMPP_USER=jibri
    JIBRI_STRIP_DOMAIN_JID=muc
    JIBRI_BREWERY_MUC=jibribrewery
    JIBRI_PENDING_TIMEOUT=90
    JIBRI_LOGS_DIR=/config/logs
    

    В строке XMPP_RECORDER_DOMAIN=recorder.jitsi.nbics.net адрес ставим свой, по такому принципу:

    recorder.свой.домен

    То есть, сначала идёт recorder, точка, и после точки домен, привязанный к вашему экземпляру Jitsi.

    Главное, чтобы в настройках файла .env для Jitsi значение переменной XMPP_RECORDER_DOMAIN соответствовало реальному домену плюс поддомен recorder.

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


    Все эти строки можно вставить в любое место в файле, я их вставлю перед параметрами аутентификации. Получится так:

    jitsi12.jpg

    Краткое описание используемых параметров для настройки Jibri:

    Параметр ENABLE_RECORDING отвечает за включение функции записи: значение 1 включает запись, а 0 отключает её.
    Параметр XMPP_RECORDER_DOMAIN определяет домен XMPP-сервера для учётной записи, которая сохраняет записи, в данном случае это recorder.jitsi.nbics.net.
    JIBRI_RECORDER_USER задаёт имя пользователя XMPP, используемое для записи, в данном случае — recorder.
    Директория, куда Jibri сохраняет записи, задаётся параметром JIBRI_RECORDING_DIR (по умолчанию /config/recordings).
    Путь к скрипту, выполняемому после завершения записи, указывается в параметре JIBRI_FINALIZE_RECORDING_SCRIPT_PATH, в данном случае это /config/finalize.sh. Этот скрипт может использоваться для обработки записанного файла, например, его перемещения или загрузки.
    JIBRI_XMPP_USER задаёт имя пользователя Jibri на XMPP-сервере, с помощью которого осуществляется взаимодействие с Jitsi Meet, в данном случае используется учётная запись jibri.
    Параметр JIBRI_STRIP_DOMAIN_JID указывает домен, используемый для участников конференции, и обычно имеет значение muc для multi-user chat.
    Комната на XMPP-сервере, в которой Jibri ожидает задания, задаётся параметром JIBRI_BREWERY_MUC, в данном случае это jibribrewery. Параметр JIBRI_PENDING_TIMEOUT определяет время ожидания (в секундах) перед тем, как задание признаётся недействительным, если не удалось подключиться к комнате, в данном случае это 90 секунд.
    Наконец, параметр JIBRI_LOGS_DIR указывает директорию для сохранения логов Jibri, обычно это /config/logs.
    

    Эти параметры вместе определяют, как Jibri взаимодействует с сервером Jitsi Meet, обрабатывает записи, управляет учётными записями XMPP и сохраняет логи.

    ===================================================
    Дополнительные настройки

    В самом конце файла .env нужно раскомментировать параметр RESTART_POLICY=unless-stopped

    Это позволит автоматически перезапускать контейнеры при перезагрузке сервера или после какого-либо сбоя. При этом остановить контейнеры вручную можно, в этом случае перезапуска не будет.

    jitsi13.jpg

    Результат раскомментирования будет таким:

    jitsi14.jpg

    ===================================================
    Запуск контейнеров

    После всех настроек пришло время запустить контейнеры с компонентами Jitsi.

    Это можно сделать так (просто пример, выполнять не следует):

    sudo docker compose up -d
    

    В этом запустится Jitsi в стандартной конфигурации, без контейнера с Jibri. Так как Jibri имеет отдельный файл для Docker Compose, то запускать будем оба файла - стандартный и с конфигурацией Jibri:

    sudo docker compose -f docker-compose.yml -f jibri.yml up -d
    

    Не забываем, что для Docker Compose, установленного как отдельный компонент (например, в Astra Linux), команда вместо пробела должна иметь тире (docker-compose)

    После запуска начнут скачиваться образы для контейнеров (если образов ещё нет на компьютере):

    jitsi15.jpg

    В итоге всё должно выглядеть вот так (16-ричные идентификаторы только могут быть другими):

    jitsi16.jpg

    Образы скачаны.

    Создана внутренняя сеть для общения контейнеров между собой. Сеть получила название jitsi-docker-jitsi-meet-19078a9_meet.jitsi

    На основе образов созданы их рабочие экземпляры (контейнеры) со следующими названиями:

    jitsi-docker-jitsi-meet-19078a9-prosody-1
    jitsi-docker-jitsi-meet-19078a9-jvb-1
    jitsi-docker-jitsi-meet-19078a9-jicofo-1
    jitsi-docker-jitsi-meet-19078a9-jibri-1
    jitsi-docker-jitsi-meet-19078a9-web-1

    ===================================================
    Настройка Nginx Proxy Manager

    Теперь Jitsi доступен в браузере по адресу http://<ip-сервера>:8000

    Но в таком варианте он нормально работать не будет. Интерфейс увидим, но общаться в конференциях не получится.

    Нужен https, а для этого придётся получить сертификат.

    Зарегистрируем домен в Nginx Proxy Manager и через этот же сервис получим сертификат.

    Заходим в NPM по адресу http://<ip-сервера>:81 , используя заранее созданную учётку:

    jitsi17.jpg

    Во вкладке Hosts выбираем пункт Proxy Hosts:

    jitsi18.jpg

    Жмём кнопку Add Proxy Host. Появится такое окно:

    jitsi18.jpg

    Заполняем.

    Domain Names - имя домена, по которому будет октрываться Jitsi (это то имя, которое вписано в несколько параметров настроек в файле .env)

    http - так и оставляем

    Forward Hostname/IP - сюда вписываем внешний адрес нашего сервера

    ВНИМАНИЕ!! Внешний Ip-адрес можно вписать, если в роутере проброшен порт 8000, а также фаервола либо нет, либо там также открыт порт 8000.
    Если порт 8000 не проброшен на роутере, или доступ к серверу осуществляется только из внутренней сети, в поле Forward Hostname/IP укажите внутренний IP-адрес сервера или его шлюза Docker.

    Чтобы узнать ip шлюза Docker, нужно ввести следующую команду

    docker network inspect bridge | grep Gateway
    

    Обычно это 172.17.0.1

    Forward Port - порт будет 8000, так как Jitsi по протоколу http открывается именно на этом порту.

    Нижем включаем все галочки. Контролируем, чтобы Websockets Support (поддержка веб-сокетов) была включена, иначе вход в конференцию может блокироваться для участников.

    jitsi20.jpg

    В том же окне переходим на вкладку SSL. В поле SSL Certificate (нажимаем на само поле) выбираем пункт Request a new SSL Certificate. Включаем галочки, которые показаны на скрине, и нажимаем Save.

    jitsi21.jpg
    Через короткое время создастся сертификат, и можно заходить в Jitsi по имени домена.

    =======================================

    Создание пользователей

    Среди контейнеров с компонентами Jitsi, есть контейнер с названием jitsi-docker-jitsi-meet-19078a9-prosody-1

    Именно в этот контейнер надо зайти, и с помощью специальной команды создать там нового пользователя. Так как каждый контейнер - это отдельная операционная система (только без ядра), то вход в контейнер представляет собой вход в операционную систему.

    Сейчас на компьютере с Jitsi установлен сервис Portainer, представляющий собой графический веб-интерфейс для удобного мониторинга и управления Докер-инфраструктурой. Поэтому в контейнер можно зайти не только путём использования команд терминала, но и через Portainer.

    Опишу оба способа.

    Первый способ. Вход через терминал. Для этого вводим следующую команду:

    sudo docker exec -it jitsi-docker-jitsi-meet-19078a9-prosody-1 /bin/bash
    

    Эта команда запускает режим терминала внутри контейнера jitsi-docker-jitsi-meet-19078a9-prosody-1

    Поэтому все наши дальнейшие действия будут касаться непосредственно операционной системы внутри контейнера. Хостовая система затрагиваться не будет.

    Второй способ. Вход в контейнер через Portainer. Если Portainer ещё не установлен, смотрим как это сделать по этой ссылке

    Установка Portainer в Docker

    Открываем Portainer по адресу http://<ip-сервера>:порт

    Переходим на вкладку Stacks (слева):

    jitsi22.jpg

    В правой части интерфейса теперь выбираем стек с Jitsi, в моём случае он называется jitsi-docker-jitsi-meet-19078a9

    Видим список контейнеров. Нужен предпоследний контейнер, с компонентом Prosody.

    jitsi23.jpg

    Заходим в параметры этого контейнера (нажав на его имя). Внизу видим вкладке. Нам нужна вкладка "Console".

    jitsi24.jpg

    Жмём на эту вкладку. Внизу видим кнопку Connect.

    jitsi25.jpg

    Нажимаем кнопку Connect. В итоге оказываемся внутри контейнера.

    jitsi26.jpg


    Итак, одним из двух упомянутых способов вошли в контейнер. Теперь нужно в терминале вписать команду для создания нового пользователя.

    Например, я хочу создать пользователя с именем admin и паролем 123456789

    Для этого запускаю в терминале контейнера следующую команду:

    prosodyctl --config /config/prosody.cfg.lua register admin meet.jitsi 123456789
    
    prosodyctl - Утилита для управления XMPP-сервером Prosody, используемая для выполнения задач, таких как регистрация пользователей, управление модулями и конфигурацией.
    --config /config/prosody.cfg.lua - Указывает конкретный файл конфигурации Prosody, который будет использоваться. Это важно, если сервер работает с нестандартным расположением файла конфигурации.
    register - Команда для регистрации нового XMPP-пользователя в указанном домене.
    admin - это придуманное нами имя для нового пользователя (локальная часть JID — Jabber ID). Является уникальным идентификатором внутри домена.
    meet.jitsi - Домен, к которому будет привязан пользователь. В случае Jitsi Meet, это стандартное имя домена, используемое внутри контейнера.
    123456789 - придуманный пароль для пользователя
    

    Обратите внимание, что команда не выводит в терминал никаких данных.

    Команда для удаления пользователя:

    prosodyctl --config /config/prosody.cfg.lua unregister admin meet.jitsi
    

    Команда для вывода списка пользователей:

    find /config/data/meet%2ejitsi/accounts -type f -exec basename {} .dat \;
    

    После применения этих команд перезагружать контейнер не требуется.

    Чтобы выйти из контейнера при первом способе (вход в контейнер через терминал) нужно ввести команду

    exit
    

    Чтобы в Portainer выйти из контейнера, надо нажать кнопку Disconnect (см. предыдущий скриншот)

    ===================================
    Отображение кнопки запуска-останова трансляции

    Jibri позволяет делать не только запись видео на сервер, но и транслировать это видео в реальном времени на какой-либо сторонний хостинг. Но несмотря на все проделанные настройки и запуск Jibri, трансляция по умолчанию недоступна в интерфейсе Jitsi, так как там нет соответствующей кнопки. Чтобы кнопка появилась, её надо указать в настройках непосредственно интерфейса.

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

    Среди всех подкаталогов для этого основного каталога есть подкаталог web. Зайдём туда.

    В моём случае это /home/user/.jitsi-meet-cfg/web. В данном каталоге нам нужен файл config.js

    Если сейчас внести изменения в этот файл, пользы никакой не будет, так как при перезапуске контейнеров восстанавливается его исходное содержимое. А перезапуск контейнеров нужен применения изменений. Такой замкнутый круг. Но есть выход - нужно создать пользовательскую копию этого файла (custom-config.js), со всем их содержимым, и редактировать уже эту копию. Тогда результаты правки файла сохранятся.

    Копию создадим следующим образом (находясь в каталоге .jitsi-meet-cfg/web):

    cp config.js custom-config.js
    

    В файле custom-config.js в блоке config.liveStreaming в параметре enabled вместо false поставим значение true. В итоге блок должен выглядеть так:

    config.liveStreaming = {
        enabled: true,
        dataPrivacyLink: 'https://policies.google.com/privacy',
        helpLink: 'https://jitsi.org/live',
        termsLink: 'https://www.youtube.com/t/terms',
        validatorRegExpString: '^[a-zA-Z0-9]{3,}$' 
    };
    

    Выходим из каталога с конфигурациями и снова заходим в каталог с репозиторием:

    cd jitsi-docker-jitsi-meet-19078a9
    

    После этих манипуляций надо перезагрузить контейнеры. Я перезагружаю всё следующими командами (down - останавливает контейнеры, up -d запускает их в фоновом режиме):

    docker compose -f docker-compose.yml -f jibri.yml down
    docker compose -f docker-compose.yml -f jibri.yml up -d
    

    jitsi31.jpg

    В итоге, в интерфейсе Jitsi появится кнопка "Начать трансляцию".

    Для того, чтобы начать трансляцию на PeerTube нужно взять ссылку для трансляции (адрес+ключ) и вставить в окно запроса при нажатии кнопки в Jitsi.

    Общая схема ссылки такая: rtmp://<ваш_сервер>/live/<ключ_трансляции>

    Пример:

    rtmp://peertube.nbics.net:1935/live/c63fc311-6b2e-4d1e-a5e8-2aea969da857

    ==============================================
    JWT-аутентификация

    Применять только для особых случаев (например, для работы Jitsi совместно с Jitsi Admin)

    В jitsi есть четыре режима аутентификации:

    internal, jwt, ldap, matrix

    Режим internal (встроенный) был описан выше. Режимы ldap и matrix в этой инструкции применяться не будут. А вот режим jwt в данном случае будет задействован для подключения сервера с Jitsi к админке (Jitsi Admin).

    Теория JWT-аутентификации для Jitsi - здесь https://pixelfed.nbics.net/books/u-1-jitsi-meet-jitsi-admin/page/teoriia-jwt-autentifikacii


    Смена режима аутентификации с internal на jwt достаточно проста.

    В файле .env нужно поменять значение параметра AUTH_TYPE с internal на jwt.

    Кроме того, ниже по тексту в блоке # JWT authentication раскомментируем параметры JWT_APP_ID и JWT_APP_SECRET.

    JWT_APP_ID - это уникальный идентификатор приложения, которое генерирует токены.

    JWT_APP_SECRET - это секретный ключ

    А значения для них меняем на произвольные.

    JWT_APP_ID=<любое, желательно осмысленное имя>

    JWT_APP_SECRET=<любой достаточно сложный ключ>

    Для JWT_APP_SECRET ключ можно, например, сгенерировать с помощью следующей команды:

    openssl rand -base64 32
    

    Пример результата:
    dYhH7LZ7_R7pQwZbx73sFzWfBFGKrA2T8D8LuHt6xl8

    В файле .env все настройки для jwt-аутентификации будут выглядеть примерно так:

    jitsi32.jpg

    После этих манипуляций надо перезагрузить контейнеры:

    docker compose -f docker-compose.yml -f jibri.yml down
    docker compose -f docker-compose.yml -f jibri.yml up -d
    

    Jitsi

  • Установка Portainer в Docker
    A Admin

    Установка Portainer в Docker (Вариант 2)


    Portainer в Docker — самый правильный и современный вариант 2025 года

    (одним файлом docker-compose.yml + HTTPS + Nginx Proxy Manager / Caddy)

    «Золотой стандарт» 2025 года — именно так ставят 99 % людей:

    mkdir -p ~/portainer && cd ~/portainer
    
    # docker-compose.yml — вечная классика 2025
    cat > docker-compose.yml << 'EOF'
    version: "3.9"
    
    services:
      portainer:
        image: portainer/portainer-ce:latest
        container_name: portainer
        restart: unless-stopped
        security_opt:
          - no-new-privileges:true
        volumes:
          - /var/run/docker.sock:/var/run/docker.sock:ro
          - data:/data
        ports:
          - "9000:9000"          # веб-интерфейс
          - "9443:9443"          # HTTPS (встроенный в Portainer)
          - "8000:8000"          # для Edge Agent (если будешь подключать удалённые хосты)
        environment:
          - TZ=Europe/Moscow
    
      # (Опционально) Caddy — сразу HTTPS на 443 → Portainer
      caddy:
        image: caddy:2-alpine
        restart: unless-stopped
        ports:
          - "80:80"
          - "443:443"
          - "443:443/udp"
        volumes:
          - ./Caddyfile:/etc/caddy/Caddyfile
          - caddy_data:/data
          - caddy_config:/config
    
    volumes:
      data:
      caddy_data:
      caddy_config:
    EOF
    
    # Caddyfile — автоматический Let’s Encrypt
    cat > Caddyfile << 'EOF'
    portainer.твой-домен.рф {
        reverse_proxy localhost:9443
        tls admin@твой-домен.рф
    }
    EOF
    
    docker compose up -d
    

    Готово!
    Через 30–60 секунд будет доступно сразу два адреса:

    • https://portainer.твой-домен.рф — с нормальным сертификатом
    • https://IP-сервера:9443 — встроенный HTTPS Portainer
    • http://IP-сервера:9000 — старый порт (можно закрыть)

    Первый вход (2025)

    • Логин: admin
    • Пароль: минимум 12 символов
    • Сразу снимай галочку «Send anonymous usage statistics»

    Полезные команды 2025

    # Обновить Portainer до последней версии
    docker compose pull && docker compose up -d
    
    # Полные логи
    docker compose logs -f portainer
    
    # Полный бэкап (одна команда)
    docker run --rm -v portainer_data:/data -v $(pwd):/backup alpine tar -czf /backup/portainer-backup-$(date +%F).tar.gz -C /data .
    
    # Восстановление
    docker compose down
    docker run --rm -v portainer_data:/data -v ./portainer-backup-2025-12-01.tar.gz:/backup.tar.gz alpine sh -c "tar -xzf /backup.tar.gz -C /data --strip-components=1"
    docker compose up -d
    

    Полное удаление (если вдруг надо)

    cd ~/portainer
    docker compose down -v --remove-orphans
    docker volume rm portainer_data portainer_caddy_data portainer_caddy_config
    docker rmi portainer/portainer-ce caddy:2-alpine
    
    Portainer

  • Установка Portainer в Docker
    A Admin

    Установка Portainer в Docker (Вариант 1)


    Сначала создаём том portainer-data. Это специальный каталог на хостовой системе, который будет взаимодействовать с контейнером сервиса Portainer. Туда работающий контейнер будет отправлять логи, конфиги, и другие данные.

    Все тома для всех приложений, запущенных в Docker, по умолчанию сохраняются тут: /var/lib/docker/volumes/

    После применения следующей команды, каталог станет доступен по следующему пути: /var/lib/docker/volumes/portainer-data

    sudo docker volume create portainer_data
    

    Следующая команда запускает контейнер с Portainer (перед тем как запускать команду, просмотрите её описание ниже).

    sudo docker run -d -p 9000:9000 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce
    

    Эта команда запускает контейнер с Portainer — системой управления Docker через веб-интерфейс. Разберём каждый элемент:

        docker run — команда для запуска нового контейнера.
        -d — запускает контейнер в фоновом режиме (detached), что позволяет работать с командной строкой дальше, не блокируя терминал.
        -p 9000:9000 — пробрасывает порт 9000 контейнера на порт 9000 хоста. Это позволяет обращаться к веб-интерфейсу Portainer по адресу http://localhost:9000.
        --name portainer — задает контейнеру имя portainer, что упрощает его управление (например, при остановке или удалении контейнера можно будет обращаться по имени).
        --restart=always — настройка автозапуска контейнера. Контейнер будет перезапущен автоматически после перезагрузки системы или при его остановке.
        -v /var/run/docker.sock:/var/run/docker.sock — подключает сокет Docker, позволяя Portainer взаимодействовать с Docker-демоном напрямую. Это нужно для управления контейнерами, образами и прочими ресурсами Docker.
        -v portainer_data:/data — создаёт (если не создан) и подключает том portainer_data к /data внутри контейнера для хранения данных Portainer, включая настройки и информацию о подключенных Docker-окружениях.
        portainer/portainer-ce — указывает образ, из которого создаётся контейнер. В данном случае это Portainer CE (Community Edition), open-source версия Portainer. Если этого образа нет на компьютере, он автоматически скачается с Docker-репозитория (официальный репозиторий - DockerHub).
    

    После этого интерфейс Portainer будет доступен по адресу http://<ваш_сервер>:9000

    Если порт 9000 на хостовой системе занят (например, используется для PeerTube), порт с контейнера можно пробросить на другой порт хоста, свободный. Например, на 7041. В итоге будет -p 7041:9000

    Параметр --restart=always говорит о том, что контейнер будет восстанавливать своё рабочее состояние даже, если его остановить вручную. Иногда это неприемлемо, так как бывает необходимо остановить контейнер и не запускать его какое то время. Для этого значение always нужно поменять на unless-stopped. Контейнер по прежнему будет автоматически запускаться при перезагрузке системы или каком-то сбое, но вручную его остановить можно будет. Поэтому, пишем --restart=unless-stopped

    В итоге команда запуска Portainer может быть такой:

    sudo docker run -d -p 7041:9000 --name portainer --restart=unless-stopped -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce
    

    После этого интерфейс Portainer будет доступен по адресу http://<ip-сервера>:7041 (или http://localhost:7041)

    Первым делом при вызове Portainer в браузере, нужно задать логин и пароль. По умолчанию логин предлагается как admin, можно так оставить.

    portainer.jpg

    После задания пароля (он должен быть не меньше 12 символов), нажимаем кнопку Create User. И снимаем галочку внизу, чтобы не отправлять статистику.

    Если не сразу задать пароль, и оставить окно в таком состоянии на некоторое время, то после создания пользователя Portainer оповестит об истечении времени жизни экземпляра по соображениям безопасности, и попросит перезапустить Portainer.

    portainer2.jpg

    Перезапускаем командой

    sudo docker restart portainer
    

    Обновляем страницу, и снова задаём нужный логин и пароль. После нажатия кнопки Create User появится интерфейс Portainer

    portainer3.jpg

    Слева выбираем вкладку Home, появится такое окно:

    portainer4.jpg

    В правой части видим компьютер, на котором установлен Docker и Portainer. Компьютер называется Local, и ниже представлены краткие характеристики компьютера и сколько компонентов Докер там установлено - количество контейнеров, образов, томов и прочего.

    Жмём на область с информацией о компьютере Local. Окно станет таким:

    portainer5.jpg

    Жмём слева на вкладку Stacks. Стеки - это своеобразные проекты, отображающие многоконтейнерные приложения. Контейнер в таком приложении может быть и один, но если он создан с помощью Docker Compose, то Portainer будет считать его стеком. Например, на данном скрине отображён установленный Adminer в списке стеков.

    portainer6.jpg

    Удаление Portainer

    Чтобы полностью удалить все, что было установлено этими командами, вам нужно выполнить следующие шаги:

    Остановите и удалите контейнер Portainer:

    sudo docker stop portainer
    sudo docker rm portainer
    

    Удалите Docker volume, который был создан для хранения данных Portainer:

    sudo docker volume rm portainer_data
    

    Проверьте и удалите ненужные Docker образы (если они больше не нужны):

    sudo docker rmi portainer/portainer-ce
    

    Portainer

  • Nginx Proxy Manager
    A Admin

    Установка NPM в Docker


    Nginx Proxy Manager - это веб-сервер с графическим интерфейсом, доступным через браузер. После установки интерфейс (админка) доступен на 81 порту.

    =======================================

    Создаём каталог nginx_prm

    sudo mkdir nginx_prm
    

    Переходим в этот каталог

    cd nginx_prm
    

    Создаём файл docker-compose.yml

    sudo touch docker-compose.yml
    

    Открываем созданный файл:

    sudo nano docker-compose.yml
    

    Вставляем туда следующее содержимое:

    services:
      app:
        image: jc21/nginx-proxy-manager:latest
        restart: unless-stopped
        ports:
          - "80:80"
          - "443:443"
          - "81:81" 
          - "10000:10000"
        volumes:
          - ./data:/data
          - ./letsencrypt:/etc/letsencrypt
    

    Среди пробрасываемых портов есть порт 10000, тут он для примера, как дополнительный порт, не входящий в список основных портов. Но если Nginx Proxy Manager будет использоваться, допустим, для Jitsi Meet, то этот порт следует оставить.

    Не забываем открыть эти порты в фаерволе и роутере (если есть).

    Запускаем командой:

    sudo docker compose up -d
    

    Данная команда применяется в случае, если Docker Compose установлен как плагин для Docker. Либо запускаем такой командой (в случае, если Docker Compose установлен как отдельный компонент, что актуально, например, для Astra Linux SE):

    sudo docker-compose up -d
    

    =========================

    Переходим по адресу http://<ip-адрес>:81 (или http://localhost:81)

    npm.jpg

    По умолчанию в Nginx Proxy Manager логин (e-mail) и пароль следующие:

    Логин: admin@example.com
    Пароль: changeme    
    

    После входа сразу будет предложено сменить имя, ник, и адрес почты. Имя и ник позволяется оставить таким как есть, а адрес почты менять обязательно. Адрес не проверяется на существование, поэтом можно вписывать любой. После замены входных данных, нажимаем Save.

    npm2.jpg

    В следующем окне предлагается сменить пароль. В верхнем поле вводим текущий пароль (changeme), в полях ниже - новый пароль , с подтверждением. Жмём кнопку Save.

    npm3.jpg

    После этого появится интерфейс Nginx Proxy Manager. вверху есть вкладки.

    В основном наиболее востребована вкладка Hosts. Нажав на неё появится меню. Первый пункт меню (Proxy Hosts) открывает окно для привязки доменов к приложениям а также для создания сертификатов.

    npm4.jpg

    В терминале выходим из каталога:

    cd ..
    
    Другие сервисы

  • Установка PeerTube на Debian 12
    A Admin

    3. Конфигурационный файл для Nginx

    Создаём файл, не забываем сделать симлинк.
    Вот сам конфиг:

    ## ВНИМАНИЕ !! Для LXC контейнера лучше из этого конфига убрать комментарии с кириллицей, иначе certbot будет ругаться на кодировку
    
    server {
        listen 80;
        listen [::]:80;
        server_name peertubevideo.nbics.net; # Замените на ваш домен
    
        access_log /var/log/nginx/peertube.access.log;
        error_log  /var/log/nginx/peertube.error.log;
    
        # Проксирование всех запросов к PeerTube
        location / {
            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;
    
            client_max_body_size 24G; # Увеличиваем лимит до 24 ГБ для всех запросов
            proxy_pass http://10.0.3.171:3025;
            proxy_connect_timeout 10m;
            proxy_send_timeout 10m;
            proxy_read_timeout 10m;
            send_timeout 10m;
        }
    
        # WebSocket для PeerTube (socket.io и tracker)
        location /socket.io {
            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 Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
            proxy_http_version 1.1;
    
            proxy_pass http://10.0.3.171:3025;
        }
    
        location /tracker/socket {
            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 Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
            proxy_http_version 1.1;
            proxy_read_timeout 15m; # Для долгоживущих WebSocket-соединений
    
            proxy_pass http://10.0.3.171:3025;
        }
    } 
    
    

    Меняем 10.0.3.171:3025 на нужные ip и порт.
    Меняем peertubevideo.nbics.net на свой домен


    Создаём сертификат

    PeerTube
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 7 / 8
  • Войти

  • Login or register to search.
Powered by NodeBB Contributors
  • Первое сообщение
    Последнее сообщение
0
  • Категории
  • Последние
  • Метки
  • Популярные
  • World
  • Пользователи
  • Группы