https://github.com/nanobox-io/nanobox-engine-elixir
Engine for running Elixir apps on Nanobox
https://github.com/nanobox-io/nanobox-engine-elixir
deployment elixir elixir-apps elixir-engine elixir-lang elixir-runtime nanobox
Last synced: 8 months ago
JSON representation
Engine for running Elixir apps on Nanobox
- Host: GitHub
- URL: https://github.com/nanobox-io/nanobox-engine-elixir
- Owner: nanobox-io
- License: mit
- Created: 2015-10-07T20:01:10.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2019-03-11T22:10:29.000Z (over 7 years ago)
- Last Synced: 2025-04-10T09:50:54.190Z (about 1 year ago)
- Topics: deployment, elixir, elixir-apps, elixir-engine, elixir-lang, elixir-runtime, nanobox
- Language: Shell
- Homepage: https://nanobox.io
- Size: 147 KB
- Stars: 11
- Watchers: 9
- Forks: 6
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Elixir
This is an Elixir engine used to launch Elixir apps on [Nanobox](http://nanobox.io).
## Usage
To use the Elixir engine, specify `elixir` as your `engine` in your boxfile.yml.
```yaml
run.config:
engine: elixir
```
## Build Process
When preparing your runtime, this engine compiles code by doing the following:
```
> mix local.hex --force
> mix local.rebar --force
> mix deps.get --force
> mix deps.compile --force
> mix compile --force
```
## Helper Scripts
This engine provides helper scripts to make managing your Elixir application easier.
### node-attach
The `node-attach` helper facilitates connecting to an Elixir node that was started with `elixir-start`.
```bash
node-attach
```
### node-start
The `node-start` helper ensures that nodes are started with credentials sufficient to cluster and attach to after they are running.
```bash
# Examples
node-start mix phoenix.server
node-start mix run —no-halt
```
## Configuration Options
This engine exposes configuration options through the [boxfile.yml](http://docs.nanobox.io/boxfile/), a yaml config file used to provision and configure your app's infrastructure when using Nanobox. This engine makes the following options available.
#### Overview of Boxfile Configuration Options
```yaml
run.config:
engine.config:
# Elixir Settings
runtime: elixir-1.5
```
---
#### runtime
Specifies which Elixir runtime to use. The following runtimes are available:
- elixir-1.5
```yaml
run.config:
engine.config:
runtime: elixir-1.5
```
---
#### erlang_runtime
Specifies which Erlang runtime to use. The following runtimes are available:
- erlang-18
- erlang-19
- erlang-20
```yaml
run.config:
engine.config:
erlang_runtime: erlang-20
```
---
#### postgresql_client_version
Specifies what version of the PostgreSQL client to use:
NOTE: The engine will try to detect the correct version first.
- 9.3
- 9.4
- 9.5
- 9.6
- 10
```yaml
run.config:
engine.config:
postgresql_client_version: 9.6
```
---
## Help & Support
This is an Elixir engine provided by [Nanobox](http://nanobox.io). If you need help with this engine, you can reach out to us in the [Nanobox Slack channel](https://nanoboxio.slack.com) (access can be requested at [slack.nanoapp.io](http://slack.nanoapp.io)). If you are running into an issue with the engine, feel free to [create a new issue on this project](https://github.com/nanobox-io/nanobox-engine-elixir/issues/new).