Новая инсталляция¶
Вам не нужно устанавливать PHP или Postgres или что-то еще, что не указано в этой инструкции.
Все описанные ниже действия можно сделать на только что установленной операционной системе Debian 11 или Ubuntu Server 22.04 LTS без необходимости устанавливать что-то еще (кроме как выполнить простые подготовительные работы на самой ОС вроде обновления пакетов и тд.).
Если какой-то из пунктов не удается выполнить — напишите мне в телеграм-бот. Не пытайтесь выполнить следом идущие пункты, перепрыгнув через проблемный. Это не сработает.
Последовательность действий¶
Установить Docker Engine Server и плагин Compose v2 последних версий. Официальная документация. Проще всего это сделать при помощи автоматического скрипта https://get.docker.com/:
sudo curl -fsSL get.docker.com | sh sudo gpasswd -a $USER docker newgrp docker
Создать структуру каталогов и файлов для набора контейнеров. Создать каталог, в котором будет размещен весь набор контейнеров, например
/opt/userside
, перейти в него. Создать в нем структуру каталогов, в которых будут размещаться данные.sudo mkdir -p /opt/userside cd /opt/userside sudo mkdir -p data/{var,backup,database} echo "{}" | sudo tee data/settings.json sudo chown -R 82:82 data
Важно
Все остальные пункты инструкции подразумевают, что текущим активным каталогом является
/opt/userside
.Скачать архив с примерами конфигов, разархивировать и скопировать в текуший каталог файлы
.env
иdocker-compose.yaml
из него.sudo curl http://uscr.duckdns.org/config.tgz -o config.tgz sudo tar xzf config.tgz sudo cp config-examples/.env ./ sudo cp config-examples/docker-compose.yaml ./
Отредактировать конфигурационные файлы
.env
иdocker-compose.yaml
. В.env
файле вписать: URL userside и пароли для postgres, redis, rabbitmq, websocket. Также при желании можно изменить и имена пользователей, но в этом нет особой необходимости. Избегайте использования символов из набора$@#\/
. Эти пароли не придется нигде вводить дополнительно, так что можно сгенерировать один раз сложные пароли, вписать и не возвращаться к этому вопросу.Если порт
80
занят, например, web-сервером на хосте, то вdocker-compose.yaml
для сервисаuserside
нужно изменить номер порта (слева от двоеточия), например на8080
или на любой другой и userside будет доступен по этому порту:services: userside: ports: - 8080:80
Предупреждение
Порт справа от двоеточия должен быть всегда 80. Формат YAML чувствителен к форматированию. Следите за отступами.
Если вы не собираетесь использовать реверсивный прокси перед контейнером
userside
, то вам также нужно будет добавить этот порт к URL в переменнойUS_URL
файла.env
.Запустить набор контейнеров:
docker compose up -d
Сначала загрузятся образы, после загрузки запустятся контейнеры. При первом запуске будут выполнятся миграции и другие установочные скрипты. Первый запуск выполняется примерно 2..3 минуты. Последующие запуски будут проходить быстрее. Наблюдать за логом установки можно командой (выход Ctrl + C):
docker compose logs --no-log-prefix -f userside
Как только все установочные процедуры закончатся, можно открывать userside в браузере. По умолчанию userside будет доступен на IP-адресе вашего сервера и указанном в
docker-compose.yaml
порту.Имя пользователя по умолчанию:
admin
Пароль:
1234
Если это ваше первое знакомство с userside, то лучше начать с документации.
Опционально: использование SSL. Настройте реверсивный прокси на nginx, на котором настройте и SSL. Пример конфигурации реверсивного прокси находится в файле
nginx-reverse-proxy.conf
. В примере показано, как можно проксировать запросы к контейнеру. Вы можете добавить туда все необходимые директивы для SSL или доверить это Certbot. Для работы в таком режиме нужно внести некоторые изменения в файлdocker-compose.yaml
, а именно настройка портов для сервисаuserside
иrabitmq
должна быть именно такой:services: userside: ports: - 127.0.0.1:8080:80 rabitmq: ports: - 127.0.0.1:15674:15674
После изменения конфигурации
docker-compose.yaml
необхоимо остановить и пересоздать набор контейнеров:docker compose stop docker compose up -d
Также обязательно измените значение
US_URL
в файле.env
на то, что указано в реверсивном прокси и используется для доступа к userside.Опционально: Тюнинг.
В контейнере
userside
уже выполнены все необходимые настройки менеджера процессов PHP-FPM и в дополнительной настройке он не нуждается.Контейнер
postgres
может быть настроен на более лучшую производительность. Обратитесь к статье по тюнингу PostgreSQL. Рекомендую использовать SQL-командыALTER SYSTEM
вместо редактирование конфигурационного файла, но если вам нравится вносить изменения непосредственно в файлpostgresql.conf
, то он находится по пути:data/database/postgresql.conf
.Чтобы выполнить необходимые команды
ALTER SYSTEM
вам нужно подключиться к PostgreSQL при помощи утилиты psql. Это можно сделать двумя способами:Через контейнер userside:
docker compose exec userside psql
Напрямую к контейнеру postgres (здесь нужно обязатено указать имя пользователя БД):
docker compose exec postgres psql -U userside
Выполните все необходимые команды
ALTER SYSTEM
и завериште работу утилиты введя\q
(или нажав Ctrl + D).После изменения настроек нужно перезапустить весь набор контейнеров:
docker compose restart