mirror of
https://github.com/benbusby/farside.git
synced 2025-04-29 23:20:03 +00:00
Allow bypassing app router with FARSIDE_NO_ROUTER
Setting the aforementioned env var skips creation of the app router, which is useful for running update.exs when the main app is already running (otherwise there's a port conflict).
This commit is contained in:
parent
5904c7cce4
commit
d4581797e7
4 changed files with 22 additions and 4 deletions
|
@ -73,3 +73,9 @@ request per second per IP.
|
||||||
- Run Farside: `mix run --no-halt`
|
- Run Farside: `mix run --no-halt`
|
||||||
- Uses localhost:4001
|
- Uses localhost:4001
|
||||||
|
|
||||||
|
### Environment Variables
|
||||||
|
|
||||||
|
| Name | Purpose |
|
||||||
|
| -- | -- |
|
||||||
|
| FARSIDE_TEST | If enabled, skips the instance availability check in `update.exs`. |
|
||||||
|
| FARSIDE_NO_ROUTER | If enabled, skips creation of the router. Useful for running `update.exs` with `mix run` when the app is already running. |
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
import Config
|
import Config
|
||||||
|
|
||||||
config :farside,
|
config :farside,
|
||||||
|
port: 4001,
|
||||||
redis_conn: "redis://localhost:6379",
|
redis_conn: "redis://localhost:6379",
|
||||||
update_file: ".update-results",
|
update_file: ".update-results",
|
||||||
service_prefix: "service-",
|
service_prefix: "service-",
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
defmodule Farside.Application do
|
defmodule Farside.Application do
|
||||||
|
@farside_port Application.fetch_env!(:farside, :port)
|
||||||
@redis_conn Application.fetch_env!(:farside, :redis_conn)
|
@redis_conn Application.fetch_env!(:farside, :redis_conn)
|
||||||
@moduledoc false
|
@moduledoc false
|
||||||
|
|
||||||
|
@ -6,12 +7,22 @@ defmodule Farside.Application do
|
||||||
|
|
||||||
@impl true
|
@impl true
|
||||||
def start(_type, _args) do
|
def start(_type, _args) do
|
||||||
children = [
|
plug_children = [
|
||||||
Plug.Cowboy.child_spec(scheme: :http, plug: Farside.Router, options: [port: 4001]),
|
Plug.Cowboy.child_spec(
|
||||||
{Redix, {@redis_conn, [name: :redix]}},
|
scheme: :http,
|
||||||
|
plug: Farside.Router,
|
||||||
|
options: [
|
||||||
|
port: @farside_port
|
||||||
|
]
|
||||||
|
),
|
||||||
{PlugAttack.Storage.Ets, name: Farside.Throttle.Storage, clean_period: 60_000}
|
{PlugAttack.Storage.Ets, name: Farside.Throttle.Storage, clean_period: 60_000}
|
||||||
]
|
]
|
||||||
|
|
||||||
|
children = [
|
||||||
|
{Redix, {@redis_conn, [name: :redix]}} |
|
||||||
|
System.get_env("FARSIDE_NO_ROUTER") && [] || plug_children
|
||||||
|
]
|
||||||
|
|
||||||
opts = [strategy: :one_for_one, name: Farside.Supervisor]
|
opts = [strategy: :one_for_one, name: Farside.Supervisor]
|
||||||
Supervisor.start_link(children, opts)
|
Supervisor.start_link(children, opts)
|
||||||
end
|
end
|
||||||
|
|
|
@ -3,4 +3,4 @@
|
||||||
SCRIPT_DIR="$(builtin cd "$(dirname "${BASH_SOURCE[0]}")" && pwd -P)"
|
SCRIPT_DIR="$(builtin cd "$(dirname "${BASH_SOURCE[0]}")" && pwd -P)"
|
||||||
|
|
||||||
cd "$SCRIPT_DIR"
|
cd "$SCRIPT_DIR"
|
||||||
mix run update.exs
|
FARSIDE_NO_ROUTER=1 mix run update.exs
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue