Goal: have a personal blog, and try out another point in the 'modular app design with elixir' space. Designing OTP systems with elixir had some interesting ideas.
55 lines
1.6 KiB
Elixir
55 lines
1.6 KiB
Elixir
defmodule FirehoseWeb.Endpoint do
|
|
use Phoenix.Endpoint, otp_app: :firehose
|
|
|
|
# The session will be stored in the cookie and signed,
|
|
# this means its contents can be read but not tampered with.
|
|
# Set :encryption_salt if you would also like to encrypt it.
|
|
@session_options [
|
|
store: :cookie,
|
|
key: "_firehose_key",
|
|
signing_salt: "gRqpcd8K",
|
|
same_site: "Lax"
|
|
]
|
|
|
|
socket "/live", Phoenix.LiveView.Socket,
|
|
websocket: [connect_info: [session: @session_options]],
|
|
longpoll: [connect_info: [session: @session_options]]
|
|
|
|
# Serve at "/" the static files from "priv/static" directory.
|
|
#
|
|
# When code reloading is disabled (e.g., in production),
|
|
# the `gzip` option is enabled to serve compressed
|
|
# static files generated by running `phx.digest`.
|
|
plug Plug.Static,
|
|
at: "/",
|
|
from: :firehose,
|
|
gzip: not code_reloading?,
|
|
only: FirehoseWeb.static_paths()
|
|
|
|
# Code reloading can be explicitly enabled under the
|
|
# :code_reloader configuration of your endpoint.
|
|
if code_reloading? do
|
|
socket "/phoenix/live_reload/socket", Phoenix.LiveReloader.Socket
|
|
plug Phoenix.LiveReloader
|
|
plug Phoenix.CodeReloader
|
|
plug Phoenix.Ecto.CheckRepoStatus, otp_app: :firehose
|
|
end
|
|
|
|
plug Phoenix.LiveDashboard.RequestLogger,
|
|
param_key: "request_logger",
|
|
cookie_key: "request_logger"
|
|
|
|
plug Plug.RequestId
|
|
plug Plug.Telemetry, event_prefix: [:phoenix, :endpoint]
|
|
|
|
plug Plug.Parsers,
|
|
parsers: [:urlencoded, :multipart, :json],
|
|
pass: ["*/*"],
|
|
json_decoder: Phoenix.json_library()
|
|
|
|
plug Plug.MethodOverride
|
|
plug Plug.Head
|
|
plug Plug.Session, @session_options
|
|
plug FirehoseWeb.Router
|
|
end
|