Startup-time configuration
This commit is contained in:
parent
5625a4d5b6
commit
8deb142ebc
15
mix.exs
15
mix.exs
|
@ -29,10 +29,25 @@ defmodule Lytedev.MixProject do
|
||||||
deps_path: @deps_path,
|
deps_path: @deps_path,
|
||||||
deps: deps(),
|
deps: deps(),
|
||||||
docs: docs(),
|
docs: docs(),
|
||||||
|
releases: releases(),
|
||||||
]
|
]
|
||||||
|
|
||||||
def application, do: [
|
def application, do: [
|
||||||
mod: {Lytedev.Application, []},
|
mod: {Lytedev.Application, []},
|
||||||
extra_applications: [:logger],
|
extra_applications: [:logger],
|
||||||
]
|
]
|
||||||
|
|
||||||
|
def releases, do: [
|
||||||
|
lytedev: [
|
||||||
|
include_executables_for: [:unix],
|
||||||
|
applications: [runtime_tools: :permanent],
|
||||||
|
strip_beams: true,
|
||||||
|
path: Path.join(@build_path, "rel"),
|
||||||
|
include_erts: true,
|
||||||
|
rel_templates_path: Path.join(@src_path, "rel"),
|
||||||
|
# overlays: ["src/static"],
|
||||||
|
steps: [:assemble],
|
||||||
|
runtime_config_path: Path.join(@src_path, "release.exs"),
|
||||||
|
],
|
||||||
|
]
|
||||||
end
|
end
|
||||||
|
|
13
readme.md
13
readme.md
|
@ -13,3 +13,16 @@ iex -S mix
|
||||||
```bash
|
```bash
|
||||||
mix test
|
mix test
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Generate Release
|
||||||
|
|
||||||
|
```bash
|
||||||
|
MIX_ENV=prod mix release
|
||||||
|
```
|
||||||
|
|
||||||
|
## Deploy
|
||||||
|
|
||||||
|
```bash
|
||||||
|
rsync -r ./build/rel/ $YOUR_HOST:~/my-app
|
||||||
|
ssh $YOUR_HOST ~/my-app/bin/lytedev daemon
|
||||||
|
```
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
use Mix.Config
|
use Mix.Config
|
||||||
|
|
||||||
config :lytedev, Lytedev.HttpServer, port: 3000
|
{port, ""} = Integer.parse(System.get_env("PORT", "3000"))
|
||||||
|
config :lytedev, Lytedev.HttpServer, port: port
|
||||||
|
|
||||||
config :logger, level: :debug
|
config :logger, level: :debug
|
||||||
|
|
||||||
|
|
18
src/rel/env.sh.eex
Normal file
18
src/rel/env.sh.eex
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# Sets and enables heart (recommended only in daemon mode)
|
||||||
|
# case $RELEASE_COMMAND in
|
||||||
|
# daemon*)
|
||||||
|
# HEART_COMMAND="$RELEASE_ROOT/bin/$RELEASE_NAME $RELEASE_COMMAND"
|
||||||
|
# export HEART_COMMAND
|
||||||
|
# export ELIXIR_ERL_OPTIONS="-heart"
|
||||||
|
# ;;
|
||||||
|
# *)
|
||||||
|
# ;;
|
||||||
|
# esac
|
||||||
|
|
||||||
|
# Set the release to work across nodes. If using the long name format like
|
||||||
|
# the one below (my_app@127.0.0.1), you need to also uncomment the
|
||||||
|
# RELEASE_DISTRIBUTION variable below. Must be "sname", "name" or "none".
|
||||||
|
# export RELEASE_DISTRIBUTION=name
|
||||||
|
# export RELEASE_NODE=<%= @release.name %>@127.0.0.1
|
11
src/rel/vm.args.eex
Normal file
11
src/rel/vm.args.eex
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
## Customize flags given to the VM: http://erlang.org/doc/man/erl.html
|
||||||
|
## -mode/-name/-sname/-setcookie are configured via env vars, do not set them here
|
||||||
|
|
||||||
|
## Number of dirty schedulers doing IO work (file, sockets, and others)
|
||||||
|
##+SDio 5
|
||||||
|
|
||||||
|
## Increase number of concurrent ports/sockets
|
||||||
|
##+Q 65536
|
||||||
|
|
||||||
|
## Tweak GC to run more often
|
||||||
|
##-env ERL_FULLSWEEP_AFTER 10
|
4
src/release.exs
Normal file
4
src/release.exs
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
import Config
|
||||||
|
|
||||||
|
{port, ""} = Integer.parse(System.get_env("PORT", "3000"))
|
||||||
|
config :lytedev, Lytedev.HttpServer, port: port
|
Loading…
Reference in a new issue