refactor(config): use secret files in dev mode
- Refactor `config/dev.exs` to use `config/dev.secret.exs` instead of fetching the SMTP information from the environment and using hardcoded database credentials. This is useful when different developers have different database credentials and they use different SMTP adapters - Add a sample `dev.secret.exs` in `config/dev.secret.sample.exs`. Also gitignore the origin `dev.secret.exs` file - Add instructions on how to setup the config file for development in `README.md` - Add `Plug.Swoosh.MailboxPreview` plug on "/mailbox" route in development mode for easier development with e-mails Signed-off-by: Akshit Garg <garg.akshit@gmail.com>
This commit is contained in:
parent
74ed02c4da
commit
12ec98d15e
5
.gitignore
vendored
5
.gitignore
vendored
@ -35,4 +35,7 @@ npm-debug.log
|
||||
/priv/native/
|
||||
.idea
|
||||
.env
|
||||
.envrc
|
||||
.envrc
|
||||
|
||||
# Secret config files
|
||||
config/*.secret.exs
|
||||
|
@ -2,6 +2,8 @@
|
||||
|
||||
To start your Phoenix server:
|
||||
|
||||
* Copy `config/dev.secret.sample.exs` to `config/dev.secret.exs`
|
||||
* Fill in the SMTP and database configuration in `config/dev.secret.exs`
|
||||
* Install dependencies with `mix deps.get`
|
||||
* Create and migrate your database with `mix ecto.setup`
|
||||
* Install Node.js dependencies with `npm install` inside the `assets` directory
|
||||
|
@ -1,14 +1,5 @@
|
||||
use Mix.Config
|
||||
|
||||
# Configure your database
|
||||
config :ketbin, Ketbin.Repo,
|
||||
username: "postgres",
|
||||
password: "postgres",
|
||||
database: "ketbin_dev",
|
||||
hostname: "localhost",
|
||||
show_sensitive_data_on_connection_error: true,
|
||||
pool_size: 10
|
||||
|
||||
# For development, we disable any cache and enable
|
||||
# debugging and code reloading.
|
||||
#
|
||||
@ -30,32 +21,6 @@ config :ketbin, KetbinWeb.Endpoint,
|
||||
]
|
||||
]
|
||||
|
||||
smtp_relay =
|
||||
System.get_env("SWOOSH_SMTP_RELAY") ||
|
||||
raise """
|
||||
environment variable SWOOSH_SMTP_RELAY is missing.
|
||||
"""
|
||||
username =
|
||||
System.get_env("SWOOSH_USERNAME") ||
|
||||
raise """
|
||||
environment variable SWOOSH_USERNAME is missing.
|
||||
"""
|
||||
password =
|
||||
System.get_env("SWOOSH_PASSWORD") ||
|
||||
raise """
|
||||
environment variable SWOOSH_PASSWORD is missing.
|
||||
"""
|
||||
|
||||
# configure mailer
|
||||
config :ketbin, Ketbin.Mailer,
|
||||
adapter: Swoosh.Adapters.SMTP,
|
||||
relay: smtp_relay,
|
||||
username: username,
|
||||
password: password,
|
||||
tls: :always,
|
||||
auth: :always,
|
||||
port: 587
|
||||
|
||||
# ## SSL Support
|
||||
#
|
||||
# In order to use HTTPS in development, a self-signed
|
||||
@ -100,3 +65,6 @@ config :phoenix, :stacktrace_depth, 20
|
||||
|
||||
# Initialize plugs at runtime for faster development compilation
|
||||
config :phoenix, :plug_init_mode, :runtime
|
||||
|
||||
# Import the secrets config
|
||||
import_config "dev.secret.exs"
|
||||
|
24
config/dev.secret.sample.exs
Normal file
24
config/dev.secret.sample.exs
Normal file
@ -0,0 +1,24 @@
|
||||
import Mix.Config
|
||||
|
||||
# Configure your database
|
||||
config :ketbin, Ketbin.Repo,
|
||||
username: "postgres",
|
||||
password: "postgres",
|
||||
database: "ketbin_dev",
|
||||
hostname: "localhost",
|
||||
show_sensitive_data_on_connection_error: true,
|
||||
pool_size: 10
|
||||
|
||||
smtp_relay = "<Your SMTP Relay Here>"
|
||||
username = "<Your SMTP username here>"
|
||||
password = "<Your SMTP password here>"
|
||||
|
||||
# configure mailer
|
||||
config :ketbin, Ketbin.Mailer,
|
||||
adapter: Swoosh.Adapters.SMTP,
|
||||
relay: smtp_relay,
|
||||
username: username,
|
||||
password: password,
|
||||
tls: :always,
|
||||
auth: :always,
|
||||
port: 587
|
@ -59,7 +59,9 @@ defmodule KetbinWeb.Router do
|
||||
|
||||
scope "/" do
|
||||
pipe_through :browser
|
||||
|
||||
live_dashboard "/dashboard", metrics: KetbinWeb.Telemetry
|
||||
forward "/mailbox", Plug.Swoosh.MailboxPreview
|
||||
end
|
||||
end
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user