Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Регистрируясь, я даю согласие на обработку данных и условия почтовых рассылок.
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр Отправляйся в Скайдом — волшебную страну, парящую высоко в небе среди пушистых облаков! Всё вокруг сияет яркими красками, а в самом сердце этого чудесного мира тебя ждет увлекательная арена, где можно с удовольствием и пользой провести время, собирая ряды из одинаковых элементов.

Скайдом: три в ряд

Три в ряд, Головоломки, Казуальные

Играть

Топ прошлой недели

  • solenakrivetka solenakrivetka 7 постов
  • Animalrescueed Animalrescueed 53 поста
  • ia.panorama ia.panorama 12 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

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

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Маркет Промокоды Пятерочка Промокоды Aroma Butik Промокоды Яндекс Путешествия Промокоды Яндекс Еда Постила Футбол сегодня
0 просмотренных постов скрыто
11
Witcher80
Witcher80
Серия Unraid - свой медиа-сервер вместо подписок

Часть 2. Unraid. Собираем свой сервис аудиокниг вместо Литреса, Яндекс Книг и Строк⁠⁠

4 дня назад

Часть 1. Unraid для чайников, как альтернатива платным потоковым сервисам

В этой части мы установим и настроим докер-контейнер с Audiobookshelf для потокового воспроизведения аудиокниг практически на любых устройствах (iOS вроде пока в бете).

В проводнике Windows, на смонтированном ранее сетевом диске, создаем папку "audiobooks".
В папку закидываем наши аудиокниги.

Важно!
Чтобы потом было меньше мороки, сразу делаем правильную структуру папок.
Audiobookshelf автоматически распознаёт порядок томов, если в начале папки стоит числовой префикс.

Рекомендованный формат:
01. Название книги
02. Название книги
03. Название книги

То есть важно:

  • две цифры (01, 02, 03…) — чтобы порядок был стабильным до 99 книг.

1/2

Структура папок (только картинкой, потому как текстом - ломает структуру :(

Как правило, обложки уже находятся внутри папки с книгами и Audiobookshelf сам их подтянет при добавлении.
Эти простые правила, по итогу, сэкономят вам кучу времени, когда будете собирать библиотеку.

Установка и настройка контейнера

Ничего сложного в этом процессе нет.

  1. Заходим в админку Unraid и открываем вкладку Apps.

  2. В поиске вводим audiobookshelf и нажимаем Install.

  3. В настройках контейнера указываем путь к папке с вашими аудиокнигами, например:
    /mnt/user/nas/audiobooks/

  4. Сохраняем и запускаем контейнер.

На этом базовая установка завершена.

1/3

Установка и настройка контейнера

Первичный доступ и настройка Audiobookshelf

Теперь в админке Unraid открываем вкладку Docker — там будет отображаться наш новоиспечённый контейнер audiobookshelf.
Чтобы попасть в веб-интерфейс приложения, нажимаем левой кнопкой мыши по контейнеру и выбираем WebUI. Откроется новая вкладка с панелью управления Audiobookshelf.

Первый запуск

При первом входе система предложит задать пароль для пользователя root — создаём новый пароль и попадаем в админку.

Настройка интерфейса

Первым делом открываем Настройки — нажимаем на иконку шестерёнки в правом верхнем углу.
В настройках выбираем русский язык и активируем нужные галочки (как на скриншоте).

1/2

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

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

Каждый пользователь, по итогу, получает:

  • свой логин и пароль,

  • свою историю прослушивания,

  • собственный прогресс по каждой книге.

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

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

1/4

Создание библиотеки

Настало время создать нашу первую библиотеку.

В данном примере я создам её в единственном варианте — по пути, который мы заранее подготовили на NAS, в папке audiobooks.

На моём основном Unraid у меня внутри audiobooks лежит несколько подпапок: detective, fantasy, romance и т.д. Для каждой из них создана своя отдельная библиотека по жанрам. Это удобно, если сервисом пользуются не только вы, но и семья/друзья — у всех свои литературные предпочтения, да и мешанины из разных жанров будет куда как меньше.

  1. Вкладка Подробности
    Указываем название библиотеки и путь к папке с аудиокнигами.

  2. Вкладка Настройки
    Выставляем галочки так, как на скриншоте.

  3. Вкладка Сканер
    Настраиваем параметры сканирования — тоже по образцу на скрине.
    От корректных настроек сканера зависит правильный парсинг ваших книг.
    Высочайший приоритет отдаём варианту “Folder structure”.

  4. Планировщик
    Этот раздел не трогаем.

Ура! Библиотека создана

Жмём кнопку Сканировать и ждём окончания процесса.

1/7

Создание библиотеки

Готово — библиотекой уже можно пользоваться.

Но… скорее всего, не для всех книг автоматически подтянулось описание (метаданные). Исправим это.

Правка метаданных

Наводим курсор на книгу без описания и нажимаем иконку редактирования в правом верхнем углу.
Откроется меню настроек конкретной книги.

Вкладка Match

Начнём отсюда — здесь находится "волшебная" кнопка поиска метаданных.

  1. Выбираем источник метаданных. Для русскоязычных книг вариантов обычно два: Google Books или FantLab.

  2. Правильно указываем название книги и автора.

  3. Жмакаем Поиск.

Если для книги есть описание, оно появится в результатах: обложка, аннотация, автор, жанр и многое другое.
Выбираем подходящий вариант — все данные подтянутся автоматически.

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

Вкладка Cover

Если описание есть, а обложки нет — переходим во вкладку Cover.
Здесь можно выполнить поиск по названию и автору или загрузить свою картинку вручную.

Вкладка Details

Переходим во вкладку Details и любуемся результатом — появилось описание, обложка и корректные метаданные.

Жмём Сохранить, и книга готова!

1/4

Пройдёмся по меню Audiobookshelf

Слева находится основная навигация по разделам:

  • Домой — Стартовая страница: краткое меню, последние добавления, "продолжить прослушивание" и т.п.

  • Библиотека — Все ваши книги в одном списке.

  • Серии — Книги, сгруппированные по сериям. Очень удобно, если у вас много циклов.

  • Коллекции — Здесь вы можете создавать собственные коллекции. Они общедоступны внутри вашей библиотеки — все пользователи, имеющие доступ, смогут их просматривать.

  • Авторы — Каталог авторов. Если вы заполните метаданные, здесь появятся фото, биографические данные и прочая полезная информация.

  • Чтецы — Поиск и сортировка по чтецам (озвучкам). Особенно удобно, если вы предпочитаете конкретных дикторов.

  • Статистика — В этом разделе можно посмотреть общую статистику библиотеки, а также свой личный прогресс прослушивания за последний год.

1/4

Меню Audiobookshelf

Как этим пользоваться?

С этим разобрались, теперь посмотрим, как пользоваться Audiobookshelf.
Сервис доступен практически откуда угодно:

  • с любого устройства через браузер,

  • через мобильные приложения.

iOS
Точной информации нет — я сам не пользуюсь, но официальное приложение находится в стадии разработки и вроде как уже доступно в бете.

Android

  1. Открываем Google Play.

  2. Ищем приложение Audiobookshelf.

  3. Устанавливаем и запускаем.

Audiobookshelf

Audiobookshelf

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

Подключение к вашему серверу

  1. Указываем адрес сервера:
    http://tower.local:13378
    (Если у вас другой адрес или порт — вводим свой).

  2. Далее вводим логин и пароль пользователя, которого вы создали ранее.

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

1/4

Подключение к вашему серверу

Рекомендация: офлайн-прослушивание

Если вы открыли книгу, которую хотите слушать, нажмите кнопку скачивания (стрелочка вниз).
Файл загрузится на устройство — и вы сможете слушать книгу вне локальной сети, даже без интернета.

Это также работает при удалённом доступе к серверу, если вы его настроите.

Но имейте в виду: для внешнего доступа нужен белый (выделенный) IP-адрес, проброс порта на роутере или настройка через Nginx Proxy Manager.
Эти вещи уже выходят за рамки данного поста.

Показать полностью 34
[моё] Nas Файловый сервер Docker Аудиокниги Облака Литрес Linux Android Длиннопост
2
1565
meowzone
meowzone

Как я поднял свой личный Matrix-мессенджер⁠⁠

8 дней назад

Я давно хотел иметь свой собственный семейный мессенджер, без зависимостей от Telegram/WhatsApp на случай, если один из них станет не доступен.
Мне нужен был простой вариант: сообщения, фото, файлы. Звонки и видео для меня были избыточными, поэтому всю усложняющую историю с coturn я сразу отбросил.

В итоге я развернул Matrix Synapse в Docker. Всё работает стабильно, шифрование есть, и самое главное - всё хранится у меня на домашнем сервере, в роли которого выступает старенький неттоп на Intel Core i3 7100T, на нем же крутится система умного дома Home Assistant, а так же медиасерверы Jellyfin и Navidrome.

Так как получил предложение написать об этом пост, рассказываю как это реализовывал.

1. Для начала давайте сперва поговорим, что такое Matrix и зачем он нужен

Matrix - это защищённый протокол обмена сообщениями.
Он похож на Telegram, но:

  • полностью открытый

  • работает на вашем железе, либо на вашем облачном сервере

  • переписка шифруется на устройстве

Мы будем поднимать сервер Synapse (основная реализация Matrix) на Docker

2. Docker Сompose

Matrix может работать на SQLite, но лучше взять PostgreSQL - он надёжнее.
Вот минимальный рабочий docker-compose.yml:

services:

synapse:

image: matrixdotorg/synapse:latest

container_name: matrix-synapse

restart: unless-stopped

environment:

SYNAPSE_SERVER_NAME: chat.example.net

SYNAPSE_REPORT_STATS: "no"

volumes:

- ./synapse:/data

depends_on:

- postgres

logging:

driver: "json-file"

options:

max-size: "50m"

max-file: "3"

networks:

- internal

postgres:

image: postgres:14

container_name: matrix-postgres

restart: unless-stopped

environment:

POSTGRES_DB: synapse_db_r72m

POSTGRES_USER: synuser_k84t

POSTGRES_PASSWORD: dN8vQ3pL7wS1zFgB9rT2

POSTGRES_INITDB_ARGS: "--encoding=UTF8 --lc-collate=C --lc-ctype=C"

volumes:

- ./postgres:/var/lib/postgresql/data

logging:

driver: "json-file"

options:

max-size: "50m"

max-file: "3"

networks:

- internal

networks:

internal:

driver: bridge

Всё, что вам нужно - создать папку с проектом и положить этот файл туда. Там же в дальнейшем появятся папки с конфигурациями самого сервера и сервера баз данных. Логин, пароль и имя базы созданы рандомно, вы их можете поменять на свои. Так же замените chat.example.net на ваш домен.

3. Генерация начального конфига

Synapse в самом начале нужно инициализировать:

docker compose run --rm synapse generate

Появится папка synapse/ с файлом homeserver.yaml.

Там находим блок базы данных и меняем его на PostgreSQL, блок с SQLite можно закомментировать:

database:

name: psycopg2

args:

user: synuser_k84t

password: dN8vQ3pL7wS1zFgB9rT2

database: synapse_db_r72m

host: matrix-postgres

port: 5432

Это всё.

4. Запуск сервера

docker compose up -d

5. HTTPS + домен (основной вариант)

Самый нормальный способ пробросить сервер наружу - через домен и HTTPS.
Я использую Nginx Proxy Manager (NPM), но подойдёт любой прокси.

Важно: Nginx Proxy Manager должен быть в одной Docker-сети с Matrix-сервером.
Synapse по умолчанию создаёт свою сеть - она называется так же, как папка с проектом, с суффиксом _internal (если не меняли compose файл). Если NPM не подключён к этой сети, он просто не увидит контейнер matrix-synapse и проксирование работать не будет.

Чтобы подключить NPM к нужной сети:

docker network connect <имя_сети_internal> <контейнер_NPM>

  1. Создаём Proxy Host на matrix-synapse:8008

  2. Получаем SSL-сертификат

  3. Добавляем два обязательных пути .well-known:

location /.well-known/matrix/server {

add_header Content-Type application/json;

return 200 '{"m.server": "chat.example.net:443"}';

}

location /.well-known/matrix/client {

add_header Content-Type application/json;

return 200 '{"m.homeserver": {"base_url": "https://chat.example.net"}}';

}

Не забудьте заменить chat.example.net на ваш домен.

Проверяем прямо на сервере, или в консоли вашего компа:

curl -L https://chat.example.net/.well-known/matrix/client

Ответ должен быть таким:

{"m.homeserver":{"base_url":"https://chat.example.net"}}

6. Если домен не нужен, то можно работать по HTTP и IP

Просто пробрасываете порт наружу и подключаетесь к серверу вот так:

http://server-ip:8008/

Matrix всё равно шифрует переписку, поэтому содержимое сообщений никто не увидит.

Минусы:

  • Element может ругнуться

  • федерации (общения с другими серверами) не будет

Для семейного чата идеальный упрощённый вариант.

После можно зайти через браузер. Если сервер успешно поднялся, вы увидите такую страницу:

Как я поднял свой личный Matrix-мессенджер

7. Создание администратора

Первого пользователя я создавал так:

docker exec -it matrix-synapse \

register_new_matrix_user \

-c /data/homeserver.yaml \

-a \

http://matrix-synapse:8008

(matrix-synapse:8008 — адрес внутри Docker-сети)

8. Создание обычного пользователя

docker exec -it matrix-synapse \

register_new_matrix_user \

-c /data/homeserver.yaml \

--no-admin \

http://matrix-synapse:8008

9. Важное замечание о паролях при создании пользователей

При создании пользователей через CLI нельзя использовать в пароле символы UTF-16, иначе Synapse выдает ошибку:

UnicodeEncodeError: 'utf-8' codec can't encode character '\udce3'

10. Как узнать свой токен для админских команд

Для работы с API нужен токен доступа.
Получить его проще всего через CLI-авторизацию.

Шаг 1. Выполнить вход через API:

docker exec -it matrix-synapse curl -s -X POST \

-H "Content-Type: application/json" \

-d '{"type":"m.login.password","user":"ВАШ_ЛОГИН","password":"ВАШ_ПАРОЛЬ"}' \

http://localhost:8008/_matrix/client/r0/login

Шаг 2. В ответе найдите поле:

"access_token": "syt_xxxxxxx..."

11. Полезные команды с токеном

Проверить, кто вы:

docker exec -it matrix-synapse curl -H "Authorization: Bearer ВАШ_ТОКЕН" \

http://localhost:8008/_matrix/client/r0/account/whoami

Список пользователей:

docker exec -it matrix-synapse curl -H "Authorization: Bearer ВАШ_ТОКЕН" \

http://localhost:8008/_synapse/admin/v2/users

Список комнат:

docker exec -it matrix-synapse curl -H "Authorization: Bearer ВАШ_ТОКЕН" \

http://localhost:8008/_synapse/admin/v1/rooms

Удалить комнату:

docker exec -it matrix-synapse curl -X DELETE \

-H "Authorization: Bearer ВАШ_ТОКЕН" \

http://localhost:8008/_synapse/admin/v1/rooms/ROOM_ID

Деактивация пользователя:

docker exec -it matrix-synapse curl -s -X PUT \

-H "Authorization: Bearer ВАШ_ТОКЕН" \

-H "Content-Type: application/json" \

-d '{"deactivated": true}' \

"http://localhost:8008/_synapse/admin/v2/users/@user:chat.example.net"

Получить список устройств пользователя:

docker exec -it matrix-synapse curl -s \

-H "Authorization: Bearer ВАШ_ТОКЕН" \

"http://localhost:8008/_synapse/admin/v2/users/@user:chat.example.net/devices"

Удалить конкретное устройство:

docker exec -it matrix-synapse curl -s -X DELETE \

-H "Authorization: Bearer ВАШ_ТОКЕН" \

"http://localhost:8008/_synapse/admin/v2/users/@user:chat.example.net/devices/ИДЕНТИФИКАТОР_УСТРОЙСТВА"

12. Подключение с телефона

На телефон ставим приложение Element (iOS/Android) и настраиваем подключение к другому серверу.

Если у вас HTTPS и домен:

https://chat.example.net

Если вы работаете по IP:

http://server-ip:8008/

Далее вводите имя пользователя и пароль, затем через поиск находите второго пользователя:

@имя

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

Важно: Сохраните в настройках клиента ключи восстановления, чтобы в следующий раз восстановить зашифрованные сообщения, иначе не получится их прочитать.

13. Немного про звонки

Звонки и видео требуют настроенный TURN-сервер (coturn).
Он поднимается отдельно, настраивается не сложно, но это уже другая тема.
Для обычной текстовой переписки не нужен вообще.

14. Итог

Matrix - это несложно.
Он даёт вам:

  • свой личный мессенджер

  • без рекламы

  • без чужих серверов

  • с нормальным шифрованием

  • с хранением данных у вас

Для семьи или небольшой группы - идеальный вариант.

Показать полностью 1
[моё] Мессенджер Docker Linux WhatsApp Telegram Длиннопост
317
13
VladLoop
VladLoop
Искусственный интеллект

Поднимаем свой n8n: Полный гайд по комфортной и надежной установке⁠⁠

1 месяц назад
Поднимаем свой n8n: Полный гайд по комфортной и надежной установке

Я несколько раз поднимал n8n у себя. И каждый раз думал: почему базовая установка вроде работает, но ощущается… как тестовый стенд? Логов нет, база тормозит, интерфейс отваливается через пару дней. А потом понял – не сам n8n виноват, а настройки по умолчанию.

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

Коротко про способы установки

Существует несколько способов установить n8n, включая npm. Но давайте договоримся сразу: если вы строите систему для работы, а не для тестов на один вечер, ваш выбор – Docker.

Почему? Все просто:

  • Изоляция: n8n и все, что ему нужно для работы (база данных, Redis и т.д.), живут в своих изолированных «контейнерах». Они не конфликтуют с другими программами на вашем сервере и не оставляют мусора в системе.

  • Воспроизводимость: Вся конфигурация вашей системы описывается в одном простом файле – docker-compose.yml. Вы можете взять этот файл, перенести на любой другой сервер, выполнить одну команду и получить точную копию вашей системы за пять минут.

  • Простота обновления: Вышла новая версия n8n? Вы выполняете docker-compose pull и docker-compose up -d – и все обновлено. Никаких ручных манипуляций с файлами и зависимостями.

Сборка: от базового запуска до production-конфигурации

Предполагается, что у вас уже есть чистый сервер (например, VPS на Ubuntu 22.04) и вы можете подключиться к нему по SSH.

Я рекомендую изучить материал: Гайд по Coolify: Как развернуть n8n и Supabase на одном VPS за вечер – там достаточно подробно рассмотрено, чем вам может быть полезен Coolify и как устанавливать сервисы по типу n8n в один клик на своём VPS.

Базовая среда и работа с окружением

Самая частая ошибка – поднять контейнер и радоваться, пока он работает. Но чтобы потом не ловить баги “из ниоткуда”, стоит сразу поправить несколько переменных окружения.

NODE_ENV=production

GENERIC_TIMEZONE=Europe/Moscow

EXECUTIONS_DATA_PRUNE=true

EXECUTIONS_DATA_PRUNE_MAX_COUNT=10000

NODE_ENV – в dev-режиме n8n ведёт себя иначе: меньше оптимизаций, медленнее отклик, иногда включен дебаг. В продакшене это просто лишнее.

GENERIC_TIMEZONE – Пока не поставите свой часовой пояс, все расписания будут сдвигаться. Особенно заметно, если вы триггерите задачи по времени – cron в UTC, вы в МСК, а воркфлоу срабатывает в 3 ночи.

EXECUTIONS_DATA_PRUNE – Если не включить очистку старых записей, база раздуется до гигабайтов.

Но есть нюанс: если вы активно тестируете сценарии – лучше временно выключить prune, чтобы не потерять логи.

Безопасность

n8n не хранит токены в открытом виде, но это не повод раздавать доступ всем.

Минимальный набор для спокойной работы выглядит примерно так:

N8N_BASIC_AUTH_ACTIVE=true

N8N_BASIC_AUTH_USER=admin N8N_BASIC_AUTH_PASSWORD=your_secure_password N8N_SECURE_COOKIE=true

N8N_DIAGNOSTICS_ENABLED=false N8N_VERSION_NOTIFICATIONS_ENABLED=false

Базовая авторизация – обязательна. Даже если вы на localhost, привычка “ставить пароль” спасает от случайных вторжений.

SECURE_COOKIE=true – если у вас HTTPS, это защита от кражи сессии. Без неё браузер может отправлять cookie даже в небезопасных запросах.

Отключаем телеметрию.

n8n по умолчанию отправляет анонимные данные разработчикам (версии, события). Не критично, но для своих установок это просто лишняя нагрузка.

Логи, бэкапы и обновления

Хуже всего, когда n8n падает тихо. Без логов вы не узнаете почему.

Пара строк решает вопрос:

N8N_LOG_LEVEL=info

N8N_LOG_OUTPUT=file

N8N_LOG_FILE_LOCATION=/home/node/.n8n/logs/

Теперь вы хотя бы увидите, почему сценарий “вдруг перестал работать”.

warn, error, debug – можете также переключить на нужный уровень в случае необходимости.

Бэкапы — три папки:

  • .n8n – ваши воркфлоу и креды,

  • postgres_data – база,

  • docker-compose.yml – вся инфраструктура в одном месте.

Обновление занимает 10 секунд:

docker-compose pull && docker-compose up -d

Но перед этим всё же протестируйте на копии – иногда меняется структура БД, либо пользуйтесь удобной командой из Coolify.

Масштабирование: Redis и worker-режим

Когда воркфлоу начинают тормозить, первое желание – включить Redis и worker.

Но тут важно понимать: это не про ускорение, а про устойчивость.

EXECUTIONS_MODE=queue

QUEUE_BULL_REDIS_HOST=redis

QUEUE_BULL_REDIS_PORT=6379

QUEUE_HEALTH_CHECK_ACTIVE=true

Режим queue распределяет выполнение задач между воркерами – полезно, если вы гоняете десятки сценариев параллельно.

Если же у вас один сервер и 10 сценариев – worker-режим только усложнит жизнь.

Мой принцип: “Добавляй Redis, когда CPU стабильно в 80%”. Раньше просто рано.

Error workflow

Что это: отдельный воркфлоу, который автоматически срабатывает, когда любой другой воркфлоу падает. По сути – централизованный обработчик ошибок. n8n поддерживает «Error workflows» через Error Trigger/триггер ошибок.

Зачем: не нужно вручную мониторить executions; вы получаете контекст ошибки (какой воркфлоу, какие данные, где упало), можно сразу уведомить ответственных и логгировать данные для разбирательства.

Как настроить минимально полезный набор можно почитать подробнее тут.

2FA – включать или нет

Зачем: пароль – слабая линия защиты. Если вы открываете n8n в интернет (даже через домен), 2FA резко снижает риск взлома.

Как включить (опции):

  • Встроенная MFA (если доступна у вашей версии): проверьте N8N_MFA_ENABLED и включите у пользователей из UI/аккаунтов.

  • Лучший вариант для self-hosted (часто используемый): ставите аутентификацию на уровне reverse-proxy / identity provider (Keycloak / OAuth2-proxy). Это даёт SSO, централизованную 2FA и больше контроля (блокировка IP, MFA политики).

Практический вывод: если вам нужен надёжный 2FA – делайте это на уровне прокси/IdP; встроенная MFA – полезна, но на неё нельзя полностью полагаться как на единственный механизм защиты для критичных инстансов.

Другие вещи, которые стоит сделать сразу после установки

Защита вебхуков и публичных эндпоинтов

  • Используйте секреты в URL или проверку HMAC в запросах, если сервис поддерживает.

  • Если вебхуки публичны, добавьте rate-limiting на прокси и проверку подписей.

Зачем: webhook – это дверь в ваш n8n; без подписи чужой запрос может запустить процесс.

Перехват ошибок на уровне нодов

  • В каждом узле есть настройка Continue on fail / Execute on error – используйте её осознанно: если в цепочке есть «необязательный» шаг, разрешите продолжить, чтобы не ломать весь процесс.

Зачем: иногда полезно продолжить обработку, даже если один внешний сервис временно недоступен.

Мониторинг и алерты

  • Настройте health check (пинг-эндпоинт), базовую метрику CPU/memory и алерт в случае падения контейнера.

  • Включите QUEUE_HEALTH_CHECK_ACTIVE если используете очередь, и мониторьте Redis/DB.

Зачем: знать о проблеме раньше, чем начнут писать пользователи.

Версионирование и testing

  • Держите копию production-DB/compose для тестирования новых версий n8n. Это достаточно молодой инструмент и новые изменения могут сломать все ваши текущие наработки.

Зачем: новая версия может неожиданно изменить поведение работы нод и сломать ваши workflow.

Небольшой вывод

Неважно, где вы развернули n8n – на VPS, NAS или локалке. Важно, чтобы система была прозрачна, предсказуема и безопасна.

Для меня n8n давно уже не просто no-code. Это личная инфраструктура автоматизации. И как любая инфраструктура, она требует чуть-чуть инженерной заботы.

Показать полностью
[моё] Развитие ChatGPT Автоматизация Искусственный интеллект Опыт Docker Нейронные сети Длиннопост
0
4
dimtiis

CapRover⁠⁠

1 месяц назад

Может быть вы всегда хотели своё собственное "облако", легко ставить на нём разное ПО и использовать Open и не очень Open Source?

Что, если оно ближе к вам чем вы думаете. Хотя и некоторые хостинг-провайдеры предоставляют возможность установить Minecraft или Valheim сервер, а так-же ряд других инструментов, чтобы весело проводить время, но откровенно говоря - этого будет мало:

А ещё эти предустановленные образы не будут работать на одном сервере одновременно - им будут нужны отдельные VPS для каждой программы.

Знакомство с Docker

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

Если вы уже использовали Docker, то возможно слышали о Kubernetes - серьезное ПО для серьезных дядь, умеющих его настраивать. Но нам нужны программы, а не настройка сложной архаичной корпоративной инфраструктуры.

Не Куб, а Swarm

А если вы слышали о "кубах", то вероятно и краем уха видели что-то про Docker Swarm. Это концептуально немного другая технология, не совместимая с docker-compose и kubernetes и о том, как работать с контейнерам под docker-swarm (включать, выключать, выводить список, смотреть логи) можно глянуть на этой странице: https://caprover.com/docs/troubleshooting.html

Работа docker swarm, да и самого CapRover подразумевает некоторое distributed-решение, при котором возможно запускать несколько инстансов выбранного ПО, работающих одновременно на одном или на разных caprover-серверах. Я этого никогда ещё не пробовал, потому что не понял как это мне поможет, к примеру в работе базы данных, ведь ей нужен исключительный доступ к файлам и своя настройка репликации. Но, а у CapRover и Docker Swarm, по крайне мере, это всё есть - cap его установить на разных машинах и связать их как главную и подчиненную.

С чего начать?

Основной вопрос - насколько это сложно? Будет ли это дорого? Что надо знать и уметь уже, перед тем как это попробовать всё сделать?
- Сложно по шкале от 1 до 3: 2.
- Будет дорого да: от 300 рублей в месяц за VPS (почти как оплата за интернет).
- Надо уметь подключаться по SSH к Linux и пользоваться хостингом и DNS и купить домен.

А что если я видел Linux только на экране своей Windows, когда запускал её через WSL2 с кнопки "установить Ubuntu"?

А если хостинг и домен для меня одинаковые вещи и я не вижу между ними разницы?

Спокойно, всё придет. Вы можете не верить в себя или свои способности сейчас, но поверьте в то будущее, в котором вы оглядываясь назад сможете вспомнить это и сказать "Аха, нуда, теперь я чувствую разницу между DNS и роутером, и могу подключаться к Linux по SSH по ключам и настраивать фаервол".

Во всяком случае, вы не обязан понимать полностью как работает настройка фаерволов. Я тоже этого не знаю. Достаточно обычной логики и подумать. Как это делать? Расскажу вкратце на примере правил фаервола, которые вы встретите в руководстве "С чего начать" на официальном сайте CapRover - сперва вы должны понять, а включен ли на вашем Linux фаервол, если да и при выводе статуса фаервола там есть ряд правил, которые могут лимитировать сетевые соединения - то значит вам нужно применить дополнительные правила из руководства CapRover; Если фаервол на Linux не включен, правил в выводе статуса нет - значит применять правила фаервола из руководства CapRover - не нужно. Это всё. Вот как надо думать. Это просто - применяйте этот навык везде, где только можно 😉.

Так с чего же начать

Начните с инструкции "с чего начать" - https://caprover.com/docs/get-started.html

Пару комментариев о том что такое root-домен, cli, https и пароль, потому что Шаг 1 он более менее понятен, а вот Шаг 2 может вызвать вопросы.

Перед этим конечно купите себе VPS на 1 ядро и желательно с 2 Гб RAM. Этого будет достаточно, чтобы запустить CapRover и начать устанавливать приложения (на данный момент их 678) - вот полный список https://github.com/caprover/one-click-apps/tree/master/publi...

Что такое Шаг 2, root-домен и где надо менять пароль и что потом будет.

CapRover - это такой-же docker контейнер, как и ПО, которое будет работать в docker-контейнерах, которое вы установите потом в самом caprover. И сам caprover и его вспомогательные сервисы будут тоже работать в docker-контейнерах.
Поэтому, первое что вы должны сделать - установить этот CapRover. После установки он сразу запуститься. Однако при первом запуске нужно сделать следующее:
- прописать root-домен;
- установить пароль.

Есть два варианта того, как это сделать - 1️⃣ через cli и nodejs там-же в linux-терминале. Или через браузер.

К тому моменту, когда вы начнете устанавливать CapRover - у вас уже должен быть домен или поддомен, который вы полностью зарезервируете под вашу cap-инсталляцию. Концепция доменных имен в CapRover следующая: есть один главный домен (root-домен) для caprover. Например, возьмем ситуацию где вас уже есть домен и какие-то поддомены на нем, и вы не хотите резервировать этот домен полностью под caprover. Вы создаете поддомен: cap.yourdomain.ru и направляете его на IP-адрес вашего VPS. Таким образом, вам нужно назначить этот поддомен как главный (root-domain). Рабочий же интерфейс caprover, после завершения настройки, будет доступен по другому субдомену: captain.cap.yourdomain.ru. Таким образом cap.yourdomain.ru даже не будет использоваться напрямую. Всё устанавливаемое ПО, если для него подразумевается доступ из веб - будет так-же на субдоменах: *.cap.yourdomain.ru. Чтобы это работало, нужно так-же в DNS-записях прописать вот такой плейсхолдер *.cap.yourdaomain.ru и направить на IP-адрес вашего VPS или выделенного сервера.

2️⃣ Второй вариант - через браузер, зайти по IP-адресу вашего сервера и 3000-у порту (указан в инструкции get-started) , указать root-домен, включить HTTPS, и указать новый свой пароль, вместо пароля по-умолчанию.

После чего войти на https://captain.cap.yourdomain.ru и пользоваться своим персональным облачным сервисом.

Вы уже там сможете установить Seafile, о котором можно прочитать тут

Свой собственный почтовый сервер poste.io:

И таск-трекер для управления проектами:

Экран установки любого приложения выглядит примерно так:

здесь нужно ввести название приложения (оно же будет автоматическим субдоменом, например kb (адрес вашего приложения КБ затем будет такой kb.cap.yourdomain.ru)

PS: CapRover это не золотая котлета. Некоторое ПО в нем может быть устаревшим, так как конфиги (one-click-apps) нужно поддерживать - это делается сообществом. Если вам нужны новые версии программ, на которые вы положили глаз - вероятно нужно будет разбираться самим, как их устанавливать с нуля, без докер на нативном linux-окружении.

Рекомендуемые вычислительные ресурсы для нормальной работы CapRover и нескольких приложений внутри него: 6 Гб RAM, 2 ядра CPU и 50 Гб места на диске.

Для поддержки работы вашего сервера с CapRover вам следует озадачиться как минимум одной или даже двумя вещами: чисткой старых образов (в caprover есть такая функция) и кое-что понимать о downtime и постоянных хранилищах данных. Углубившись в детали вы начнете замечать эти нюансы, хотя с порога какие-то вещи будут совсем не очевидными и не привычными. Так или иначе разрабатывали это ПО для того, чтобы оно работало, оно не обязательно должно бы таким, к которому вы уже привыкли.

Зато, открывается возможность запускать в "один клик" большое количество разных программ, работающих на linux-сервере и вам не надо знать о том, как их устанавливать и настраивать:

За вас это сделают конфиги One Clik Apps. Для работы некоторых приложений - нужны базы данных (Postgres, Redis) - и это прописано в yaml-конфигурациях one-click-apps. Всё что требуется - установиться само. Вы, как пользователь - просто включайте нужное ПО и пользуйтесь им.

Показать полностью 6
Docker Linux Приготовление Длиннопост
0
1
Вопрос из ленты «Эксперты»
Аноним
Аноним

Платные курсы по Java⁠⁠

2 месяца назад

Приветствую! Кто-нибудь может порекомендовать какие-нибудь хорошие платные курсы по Java с изучением спринга, докера и тд?

Просьба Java Docker Вопрос Спроси Пикабу Короткопост Текст
7
leom405
leom405
IT-юмор

Ответ на пост «Поиск в последних windows»⁠⁠1

3 месяца назад

Вот идея
Отличный логотип для Российского аналога Docker.

Ответ на пост «Поиск в последних windows»
Юмор Мемы Логотип Идея Импортозамещение Docker Ответ на пост
2
3
snoozletter
snoozletter

Вашему вниманию, дамы и господа, Affine!⁠⁠

3 месяца назад

❗️ Вашему вниманию, дамы и господа, Affine! ❗️

Долго искал аналог Notion, ибо они прикрыли доступ из РФ, а пользоваться обходом для доступа к "блокноту" нет желания. Аналог не нашел, но нашел замену.

Affine полноценно не заменяет Notion с его database, но, на мой взгляд, очень хорошая и красивая штука с перспективой на развитие, ибо довольно молода. И database тоже имеются, но пока не такие "развитые", как у Notion, пока только Table Veiw и Kanban View.

Я не рассказываю о его функционале, это можно легко найти на сайте или нагуглить, я рассказываю, как его установить в self hosted версии и не давать доступ к данным незнакомым людям.

🔗 Инструкция доступна по ссылке

🍑 И вот еще что, эта инструкция написана и расшарена в моем локальном Affine. Удобный функционал.

Это статья об установке, а не реклама Affine, я к ним никак не отношусь, я делюсь интересным, на мой взгляд, сервисом.

Пост из моего телеграм канала, за форматирование отвечает бот Pikabu, а не я ☺️


#️⃣#️⃣#️⃣
#блокнот #заметки #notion #красивое #selfhosted #docker #synology #ubuntu #linux

Показать полностью
Кросспостинг Pikabu Publish Bot Блокнот Заметки Notion Красота Docker Synology Ubuntu Linux Текст Telegram (ссылка)
0
BJandHoockers
BJandHoockers

Docker vs. Max⁠⁠

3 месяца назад

Для меня проблема необходимости установки Макса не стоит, но если бы мне кровь из носу он был нужен, то может быть какие-то контейнерные решения помогли бы?

Спросил у гугла и в первых же строчках ответ от их ИИ:

Docker для Android позволяет запускать контейнеризованные приложения на устройствах Android, обеспечивая изолированную среду для разработки и тестирования. Это достигается за счет использования образов Docker, которые включают все необходимое для работы приложения. Существуют специальные образы Docker.

Ссылок вставлять не буду, кому интересно - найдет. Для iOs скорее всего тоже всё давно есть.

[моё] Инженер Программа Docker Android Текст
11
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Маркет Промокоды Пятерочка Промокоды Aroma Butik Промокоды Яндекс Путешествия Промокоды Яндекс Еда Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии