AniX/api-prox/README.RU.md

111 lines
5.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# AniX - Api Proxy
Данный под-проект позволяет проксировать запросы к API Anixart и изменять их ответы с помощью хуков
Он может использоваться как для основного проекта AniX, так и как отдельный сервис для андроид приложения с изменённой ссылкой на API.
Лицензия: [MIT](../LICENSE)
## Доступные хуки
- release.ts: добавляет рейтинг с shikimori в строку доп. информации
- profile.example.ts: меняет ник официального аккаунта anixart (пример работы с хуком)
- profile.sponsor.ts: включает спонсорку (отключает рекламу) после входа в аккаунт в android приложении
- toggles.ts: заменяет ответ конфигурации, если присутствует переменная окружения `HOST_URL` заменяет ссылку веб плеера, на встроенную, при совместном использовании с переменной окружения `PLAYER_PARSER_URL`, включает собственный веб-плеер, как в веб клиенте AniX
- episode.disabled.ts: позволяет изменять/добавлять озвучки, источники и эпизоды с помощью файла json, в папке `episode`.
## Использование
В строке веб-браузера необходимо ввести:
`<http|https>://<ip|domain><:port>/<ENDPOINT>[?<QUERY_PARAMS>]`
Ответ:
- 500: произошла ошибка, подробнее в строке `reason` в теле ответа
- 200: запрос прошёл успешно (если произошла ошибка на стороне API Anixart, смотри строку `code`)
## Развёртывание
### Docker
Требования:
- [docker](https://docs.docker.com/engine/install/)
### Пре-билд
1. выполните команду:
`docker run -d --name anix-api -p 7001:7001 radiquum/anix-api-prox:latest`
для использования хуков необходимо создать папку `hooks` и добавить флаг `-v ./hooks:/app/hooks` перед флагом `-p`.
(так-же и для папки `episode`, если требуется)
### Ручной билд
Доп. Требования:
- [git](https://git-scm.com/)
1. Клонируйте репозиторий `git clone https://github.com/Radiquum/AniX`
2. Переместитесь в директорию репозитория `cd AniX`
3. Переместитесь в директорию сервиса `cd api-prox`
4. Выполните команду `docker build -t anix-api-prox .`
5. После окончания, выполните команду: `docker run -d --restart always --name anix-player -p 7001:7001 anix-api-prox`
для использования хуков необходимо добавить флаг `-v ./hooks:/app/hooks` перед флагом `-p`.
(так-же и для папки `episode`, если требуется)
### docker/Обозначения
- -d - запустить контейнер в фоне
- --restart always - всегда запускать после перезагрузки сервера
- --name - название контейнера
- -p - порт контейнера который будет доступен извне. ПОРТ:7000
- -v - добавить папку с хоста в контейнер
### docker/После развёртывания
Сервис будет доступен по адресу: `http://<ВАШ IP><:ВАШ ПОРТ>/`
### docker/Примечание
Для использования своего домена и поддержки протокола HTTPS, вы можете использовать Traefik или другой reverse-proxy, с сертификатом SSL.
Полезные ссылки:
- [Конвертер из команды docker run в синтакс для docker compose](https://it-tools.tech/docker-run-to-docker-compose-converter)
- [Как настроить Traefik + свой домен + SSL](https://letmegooglethat.com/?q=how+to+setup+traefik+with+custom+domain+and+ssl+certificate+from+lets+encrypt%3F)
### pm2
Требования:
- [git](https://git-scm.com/)
- [nodejs 23+ с npm](http://nodejs.org/)
- [pm2](https://pm2.keymetrics.io/)
Инструкция:
1. Клонируйте репозиторий `git clone https://github.com/Radiquum/AniX`
2. Переместитесь в директорию репозитория `cd AniX`
3. Переместитесь в директорию сервиса `cd api-prox`
4. Выполните команду `npm install`
5. После окончания и выполните команду `pm2 start index.ts -n anix-api-prox`
### pm2/Обозначения
- -n - название сервиса в pm2
### pm2/После развёртывания
Сервис будет доступен по адресу: `http://<ВАШ IP>:7001/`
### pm2/Примечание
Для автоматического запуска приложения, рекомендуется настроить pm2 на автозапуск, с помощью команды: `pm2 startup`
Полезные ссылки:
- [PM2: подходим к вопросу процесс-менеджмента с умом @ Habr](https://habr.com/ru/articles/480670/)