# 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`. ## Использование В строке веб-браузера необходимо ввести: `://<:port>/[?]` Ответ: - 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/)