Сервер для расширения списка поддерживаемых сайтов для voice-over-translation.
- Разверните сервер media-converter-backend. Необходимо для конвертации файлов
- Разверните сервер translate-backend. Необходимо для перевода текста без ограничений
- Установите PostgreSQL 16+
- Установите Redis 6.2.0+
- Создайте S3 хранилище у любого провайдера или разверните локально с помощью Minio/CEPH
- Установите Bun
- Клонируйте репозиторий с помощью команды:
git clone https://github.com/FOSWLY/vot-backend
- Установите зависимости с помощью команды:
bun install
- Переименуйте .example.env в .env и заполните его
- Выполните миграцию базы данных:
bun migrate
- Запустите сервер
bun start
- Выполните стандартные шаги установки 1-9
- Установите зависимости:
bun install -g pm2 && pm2 install pm2-logrotate
- Запустите сервер
pm2 start ecosystem.config.json
- Установите Docker
- Разверните сервер media-converter-backend. Необходимо для конвертации файлов
- Разверните сервер translate-backend. Необходимо для перевода текста без ограничений
- Создайте S3 хранилище у любого провайдера или разверните локально с помощью Minio/CEPH
- Клонируйте репозиторий с помощью команды:
git clone https://github.com/FOSWLY/vot-backend
- Заполните переменные (environment) в docker-compose.yml своими данными:
db:
...
environment:
POSTGRES_DB: vot-backend # <-- имя бд по умолчанию (не трогайте, если вы не уверены в том, что делаете)
POSTGRES_USER: postgres # <-- имя пользователя по умолчанию
POSTGRES_PASSWORD: mysecretpassword # <-- пароль пользователя (поменяйте его)
vot-backend:
...
environment:
SERVICE_TOKEN: 90jrtire8i9u4353asdasdasd # <-- токен с помощью которого можно будет взаимодействовать с админ-эндпоинтами (поменяйте его)
MEDIA_CONVERTER_HOSTNAME: http://localhost:3001 # <-- путь до вашего экземпляра media-converter (вы же уже засельфхостили его?)
MEDIA_CONVERTER_TOKEN: x # <-- токен используемый для доступа к media-converter
TRANSLATE_TEXT_HOSTNAME: https://translate.toil.cc # <-- путь до экземпляра перевода текста (лучше засельфхостите свой экземпляр, а не используйте публичный. Спасибо за понимание)
S3_REGION: ru-central1 # <-- регион s3
S3_ENDPOINT: https://storage.yandexcloud.net # <-- ссылка для доступа к s3
S3_BUCKET: example # <-- имя бакета
S3_ACCESS_KEY_ID: # <-- ваш Access Key
S3_SECRET_ACCESS_KEY: # <-- ваш Secret Access Key
REDIS_HOST: redis # <-- хост на котором работает Redis (не трогайте, если вы не уверены в том, что делаете)
POSTGRES_NAME: vot-backend # <-- имя бд
POSTGRES_HOST: db # <-- хост на котором работает Postgres (не трогайте, если вы не уверены в том, что делаете)
POSTGRES_USER: postgres # <-- имя пользователя бд
POSTGRES_PASSWORD: mysecretpassword # <-- пароль от бд (поменяйте его на тот, что используется для db выше)
Без заполнения следующих переменных реальными данными сервер нормально работать не будет:
MEDIA_CONVERTER_HOSTNAME
MEDIA_CONVERTER_TOKEN
S3_REGION
S3_ENDPOINT
S3_BUCKET
S3_ACCESS_KEY_ID
S3_SECRET_ACCESS_KEY
- Соберите образ с помощью команды:
docker compose build
7.1. Если у вас не получается собрать из-за ошибки, связанной с .env файлом, добавьте аргумент --env-file nul
(для Windows) или --env-file /dev/null
(для Linux)
docker compose --env-file /dev/null build
- Запустите образ с помощью команды:
docker compose up -d
При первом холодном запуске могут быть ошибки, связанные с долгой инициализацией контейнера базы данных, но спустя пару автоматических рестартов все должно запуститься.
- Если у вас заблокирован какой-либо из сервисов, то гарантировать работоспособность я не могу
Поддерживаются только S3 хранилища, которые, хотя бы частично, поддерживают Presigned URL и имеют возможность отключения CORS.
Если вы не уверены, что в вашем S3 отключены CORS вам следует запустить скрипт для их отключения:
bun run s3:disable-cors