move more configs to runtime

This commit is contained in:
shibao 2022-02-07 19:28:40 -05:00
parent da3a8c15dd
commit be8d3be4b3
4 changed files with 29 additions and 33 deletions

View File

@ -2,9 +2,6 @@ import Config
# Configure your database
config :cannery, Cannery.Repo,
url:
System.get_env("DATABASE_URL") ||
"ecto://postgres:postgres@localhost/cannery_dev",
show_sensitive_data_on_connection_error: true,
pool_size: 10

View File

@ -11,10 +11,6 @@ import Config
# before starting your production server.
config :cannery, CanneryWeb.Endpoint, cache_static_manifest: "priv/static/cache_manifest.json"
config :cannery, Cannery.Repo,
url: "ecto://postgres:postgres@localhost/cannery",
pool_size: 10
config :cannery, Cannery.Application, automigrate: true
# Do not print debug messages in production

View File

@ -12,19 +12,39 @@ if System.get_env("PHX_SERVER") && System.get_env("RELEASE_NAME") do
config :cannery, CanneryWeb.Endpoint, server: true
end
if config_env() == :prod do
database_url =
maybe_ipv6 = if System.get_env("ECTO_IPV6"), do: [:inet6], else: []
database_url =
if config_env() == :test do
System.get_env("TEST_DATABASE_URL") ||
"ecto://postgres:postgres@localhost/cannery_test#{System.get_env("MIX_TEST_PARTITION")}"
else
System.get_env("DATABASE_URL") ||
"ecto://postgres:postgres@cannery-db/cannery"
end
maybe_ipv6 = if System.get_env("ECTO_IPV6"), do: [:inet6], else: []
config :cannery, Cannery.Repo,
# ssl: true,
url: database_url,
pool_size: String.to_integer(System.get_env("POOL_SIZE") || "10"),
socket_options: maybe_ipv6
config :cannery, Cannery.Repo,
# ssl: true,
url: database_url,
pool_size: String.to_integer(System.get_env("POOL_SIZE") || "10"),
socket_options: maybe_ipv6
host = System.get_env("HOST") || "localhost"
config :cannery, CanneryWeb.Endpoint,
url: [scheme: "https", host: host, port: 443],
http: [
# Enable IPv6 and bind on all interfaces.
# Set it to {0, 0, 0, 0, 0, 0, 0, 1} for local network only access.
# See the documentation on https://hexdocs.pm/plug_cowboy/Plug.Cowboy.html
# for details about using IPv6 vs IPv4 and loopback vs public addresses.
ip: {0, 0, 0, 0, 0, 0, 0, 0},
port: String.to_integer(System.get_env("PORT") || "4000")
],
server: true,
registration: System.get_env("REGISTRATION") || "invite"
if config_env() == :prod do
# The secret key base is used to sign/encrypt cookies and other secrets.
# A default value is used in config/dev.exs and config/test.exs but you
# want to use a different value for prod and you most likely don't want
@ -37,21 +57,7 @@ if config_env() == :prod do
You can generate one by calling: mix phx.gen.secret
"""
host = System.get_env("HOST") || "localhost"
config :cannery, CanneryWeb.Endpoint,
url: [scheme: "https", host: host, port: 443],
http: [
# Enable IPv6 and bind on all interfaces.
# Set it to {0, 0, 0, 0, 0, 0, 0, 1} for local network only access.
# See the documentation on https://hexdocs.pm/plug_cowboy/Plug.Cowboy.html
# for details about using IPv6 vs IPv4 and loopback vs public addresses.
ip: {0, 0, 0, 0, 0, 0, 0, 0},
port: String.to_integer(System.get_env("PORT") || "4000")
],
secret_key_base: secret_key_base,
server: true,
registration: System.get_env("REGISTRATION") || "invite"
config :cannery, CanneryWeb.Endpoint, secret_key_base: secret_key_base
# ## Using releases
#

View File

@ -9,9 +9,6 @@ config :bcrypt_elixir, :log_rounds, 1
# to provide built-in test partitioning in CI environment.
# Run `mix help test` for more information.
config :cannery, Cannery.Repo,
url:
System.get_env("TEST_DATABASE_URL") ||
"ecto://postgres:postgres@localhost/cannery_test#{System.get_env("MIX_TEST_PARTITION")}",
pool: Ecto.Adapters.SQL.Sandbox,
pool_size: 10