elixir-ms
- elixir microservice base
🐜 ⚡ - microservice skeleton from scratch aka "You dont need Phoenix"
⭐
Ingredients credo
for lintingdialyxir
static analysis- strong
http server
basis using plug + cowboy - fast
json
encode/decode using poison http client
using httpoisonmetrics
using prometheus_exhealthchecks + config
setup using mix tools- (json)
access log
provided as Plug - ELK compliant
logger
with simple API - registry (in-memory cache) with simple API
redis client
using redix (pub-sub)JIT Config
via weaveRDBMS ORM
via ecto and postgrex- start-up banner
- MIT License
Requirements
- Erlang/OTP >= 21
- Elixir >= 1.8.1
Installation
- install Erlang
- install Elixir
- install Mix
- http://elixir-lang.org/install.html#unix-and-unix-like // on mac simply
brew install elixir
git clone [email protected]:krystianity/elixir-ms.git
- run
mix deps.get
or./tools/get-dependencies.sh
- start via
mix start
- (if you want to run this as is, you need a local postgres (see Other below) and a redis, otherwise you have to make adjustments to lib/demo.ex and mix.exs)
Use as docker container via docker-compose
build + run via docker-compose up --build
Testing
run mix test
License
MIT
Other
Database Setup
- (requires a local postgres, with a user named "postgres" and a password "postgres" checkout config/config.exs to change these credentials
mix ecto.create
mix ecto.migrate
Other Database Stuff
mix ecto.gen.migration add_test_table -r ExTest.Repos.Test
mix ecto.rollback
docker run -it --rm --link postgres:postgres postgres:9.3 psql -h postgres -U postgres ex_test