Skip to content

vsyrovat/awesome-elixir

Repository files navigation

Как прекрасен Elixir, посмотри

Приложение собрано на ЯП Elixir и фреймворке Phoenix и представляет собой задание Awesome Elixir.

Приложение получает список репозиториев из Awesome Elixir readme, затем для каждого репозитория определяет количество звёзд и дату-время последнего коммита. Полученные данные актуализируются раз в сутки.

Системные требования

Для запуска приложения понадобятся Erlang и Elixir, для компиляции ассетов понадобится Nodejs (версии интерпретаторов можно посмотреть здесь, либо используйте asdf-vm).

Понадобятся Docker и Docker-Compose для запуска Postgres, либо, если у вас настроен Postgres - можете использовать его.

Приложение писалось и тестировалось на GNU/Linux-сборке.

Запуск для разработки (dev)

  1. mix deps.get - чтобы установить пакеты Elixir.
  2. cd assets && npm install - чтобы установить пакеты Nodejs.
  3. dev/up - чтобы запустить Postgres (предварительно ознакомьтесь с [docker-compose.yml]). Либо используйте свою Postgres, и тогда проверьте настройки в файле [config/dev.exs].
  4. cd config && cp dev.secret.exs.dist dev.secret.exs 4а. В файле dev.secret.exs указываете либо свой Github Api Token (см. ниже).
  5. mix ecto.create && mix ecto.migrate. Делать mix ecto.setup не надо.
  6. mix phx.server
  7. Откройте в браузере http://127.0.0.1:4000

При старте дерева супервизора (mix phx.server или iex -S mix) сразу запустится наполнение локальной базы данных. По мере заполнения локальной базу информация о репозиториях будет становиться доступна в браузере (нужно обновлять страницу по F5). После наполнения приложение будет актуализировать данные самостоятельно.

Запуск тестов (test)

  1. mix deps.get
  2. dev/up
  3. mix test

Запуск в продакшне (prod)

В проде приложение работает в виде релиза внутри докер-контейнера. Необходимый инструментарий находится в папке deploy.

Github Api Token

Приложение чекает репозитории именно на github.com. Github API позволяет в час 60 анонимных запросов и до 5000 неанонимных. Это означает, что если вы укажете токен - информация о репозиториях будет обновлена в течение нескольких минут, если не укажете - в течение суток (на момент написания приложения в Awesome-листе примерно 1300 репозиториев).

Токен для dev указывается в файле config/dev.secret.exs:

use Mix.Config
config :app, github_api_token: "ваш-токен-здесь"

либо

use Mix.Config
config :app, github_api_token: nil

Токен для prod указывается в переменной окружения GITHUB_API_TOKEN.

Лицензия/License

MIT

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published