Run on terminal
heroku create --buildpack hashnuke/elixir
Create file elixir_buildpack.config
with content:
elixir_version=<VERSION>
erlang_version=<VERSION>
Crete file Procfile
with content:
web: MIX_ENV=prod mix phx.server
Modify config/prod.exs
- url: [host: "example.com", port: 80],
+ http: [port: {:system, "PORT"}],
+ url: [scheme: "https", host: "example.herokuapp.com", port: 443],
+ force_ssl: [rewrite_on: [:x_forwarded_proto]],
Modify config/prod.secret.exs
config :hello, Hello.Repo,
- # ssl: true,
+ ssl: true,
url: database_url,
pool_size: String.to_integer(System.get_env("POOL_SIZE") || "10")
Modify lib/hello_web/endpoint.ex
defmodule HelloWeb.Endpoint do
use Phoenix.Endpoint, otp_app: :hello
socket "/socket", HelloWeb.UserSocket,
- websocket: true,
+ websocket: [timeout: 45_000],
longpoll: false
...
end
Run on terminal
heroku addons:create heroku-postgresql:hobby-dev
heroku config:set POOL_SIZE=18
heroku config:set SECRET_KEY_BASE=$(mix phx.gen.secret)
Run on terminal
MIX_ENV=prod mix ecto.migrate