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

Мышонок Шон

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

Играть

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

  • Oskanov Oskanov 9 постов
  • Animalrescueed Animalrescueed 44 поста
  • Antropogenez Antropogenez 18 постов
Посмотреть весь топ

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

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

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

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

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

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

2 дня назад

Я давно хотел иметь свой собственный семейный мессенджер, без зависимостей от 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 Длиннопост
280
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

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

Вот идея
Отличный логотип для Российского аналога 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
10
DmitriitheFals
Лига Сисадминов
Серия Кудахтеры: Proxmox GmbH

Переход на Proxmox (Proxmox GmbH, Vienna, Austria) с Hyper-V by Microsoft и VMware by Broadcom. Часть вторая из многих⁠⁠

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

Для лиги лени: общеизвестная фигня

Часть 1: тут

Про теорию вы уже читали, теперь к практике.

Если вы учитесь в средней школе, то для Proxmox вам достаточно одного, отдельного, загрузочного диска в домашнем ПК. Можно даже без этого, сделать двойной загрузчик и все.

Если вы работаете, то вам понадобятся:

WinSCP или SCP. Чтобы заливать всякое пофайлово. Можно и без него, но с ним проще.
Git. Чтобы хранить в нем код.
Nexus. Только для того, чтобы держать там repo proxy. Но не совсем.
Ansible. Чтобы исполнять код.
Причем, все это нужно настроить на как минимум вход по сертификату, а желательно привязать и к AD, и к любой системе сбора и анализа логов. И не забывать обновляться – в Linux, даже в самом по себе, и в окружающем софте теперь находят уязвимости чаще, чем в Microsoft.

C Git все было просто - bitnami/git , но уже вовсе и не так просто – но вы же читали Upcoming changes to the Bitnami catalog (effective August 28th, 2025).

С Ansible уже не все так просто. Можно начинать и без него, но хотя бы shell script вам понадобится. Почему? Потому что в Proxmox до сих пор нет встроенного резервного копирования собственной конфигурации. В ESXi есть. В vCenter есть и резервное копирование конфигурации, и отдельно профили хостов.
В Hyper-V как бы есть (но). Тут нет.  Скрипты для резервного копирования конфигурации Proxmox есть, но зачем их использовать, если можно развернуть с ноля.

Из знания теории вам точно понадобятся:
понимание  что такое и как работает VLAN.
Как работает TCP, iSCSI,DNS и FCP.
Что такое SCSI MPIO, что такое round-robin в MPIO.
Сети и дисковая подсистема, это очень больные места у новичков.
Конечно, нужны базовые знания по Linux – начиная от того, что такое ext4 и чем это отличается от LVM, ZFS и BTRFS . И что из этого вам нужно, а что нет.
Бонусом желательно понимать, что такое MS AD и Kerberos. Потому что авторизация на основе SSH сертификатов, открытого и закрытого ключа, это хорошо, и это база из баз, но Kerberos лучше. Когда освоите MS AD / Kerberos, сможете перейти на keycloak.

Окей, поехали.

Для начала, если вы, как я, генерировали SSH пару через Puttygen, то не забудьте что под Windows ключ нужно копировать вручную, или выдергивать со сменой формата из public, и отдельно отредактировать /etc/ssh/sshd_config.
Ну, если вдруг забыли. Я забыл.

Потом, если вам скучно, как мне, то сделайте
fio --randrepeat=1 --ioengine=libaio --direct=1 --gtod_reduce=1 --name=fiotest --filename=testfio --bs=4k --iodepth=64 --size=8G --readwrite=randrw --rwmixread=75

Заодно посмотриту, как hyper-v работает с дисками изнутри Linux. У меня вышло 270:90, результат ни о чем, при параметре size=8G, меньше размера оперативной памяти.

Git в Docker. Тут все просто, открываем Install using the apt repository и делаем хорошо.
Открываем Install GitLab in a Docker container и делаем. До просветления. В том числе до Configure the external URL for GitLab. И так вплоть до
docker exec -it gitlab /bin/bash
cat /etc/gitlab/initial_root_password

За чаем можно и нужно почитать про Sonatype Nexus Repository. Скучное, но полезное чтение.
Еще более скучное, чем Sonatype Nexus Repository System Requirements.
Или можно не читать,
mkdir -p /srv/nexus-data
chown -R 200 /srv/nexus-data

Про chown вообще не очевидно было, в документации и почти во всех примерах не нашел пункта про chown, а без него грусть, тоска, и невозможность создать файл, что видно хоть через
docker compose logs
хоть через
docker logs (ContainerName), если вы делаете через docker up

Причем docker exec -it nexus3 /bin/bash
не помогает понять, что там не так.

Потом переходим к чтению документации по Ansible, Installing Ansible on specific operating systems.
Или без чтения,
apt-get install ansible
и что в репозиторий насовали, то насовали.

Литература
Introduction to Ansible Builder
Running Ansible Server in Docker Container
Chapter 9. Configuring RAID logical volumes  by using logical volume manager (LVM)
DockerCheatSheet
docker-nginx-nexus-repository
Docker Compose Quickstart
Установка Sonatype Nexus OSS v3 в контейнере Docker
Установка и настройка Nexus Sonatype используя подход infrastructure as code
Install Sonatype Nexus using Docker Compose | Setup Nexus Repository Manager for Node.js Project
Mounting volume from host to docker image of nexus
Deploy Sonatype Nexus Repository OSS v3 with Docker & Traefik v2
Установка приватного Docker репозитория

PS. У меня вышло так: (с хардкодом, не по примеру из руководства)
gitl/docker-compose.yml

services:
gitlab:
image: gitlab/gitlab-ce:latest
container_name: gitlab
restart: always
hostname: 'gitlab.example.com'

environment:
GITLAB_OMNIBUS_CONFIG: 
# Add any other gitlab.rb configuration here, each on its own line
external_url 'https://gitlab.example.com'

ports:
- '80:80'
- '443:443'
- '22:22'

volumes:
- '/srv/gitlab/config:/etc/gitlab'
- '/srv/gitlab/logs:/var/log/gitlab'
- '/srv/gitlab/data:/var/opt/gitlab'

shm_size: '256m'

nexus/docker-compose.yml

services:
nexus-repository:
image: sonatype/nexus3
container_name: nexus3
restart: always
hostname: 'nexus3.local.tw'

ports:
- '8081:8081'

volumes:
- '/srv/nexus-data:/nexus-data'

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