Their community, I have a working app. i decided to deploy it on a dedicated server via “Elixir mix release”. I don’t want to operate with Tools like Distillery, edeliver neither 3rd parties like Render, Gigalixir, Heroku etc…
i completed all the main steps:
- setting phoenix with NGINX
- Getting a certificate using Let’s Encrypt and make it https
- Handling application’s secrets
- Compiling application’s assets
- tasks for DB migrations
- assembling the release (
$ MIX_ENV=prod mix release
) - Starting server in production (SSL) ===> odylight.ci
But when i interacted with the domain address… it didn’t work.
So i want to know if there is a way to achieve it… maybe i missed important part!
The project itself: https://bitbucket.org/persorg with all files.
CONFIG:
Ubuntu 16.04.6 LTS
phoenix 1.4.15
Elixir 1.10.2
Erlang/OTP 22
PostgreSQL 10.12
Node v12.16.1
NGINX conf:
#ATTENTION!
#
#DO NOT MODIFY THIS FILE BECAUSE IT WAS GENERATED AUTOMATICALLY,
#SO ALL YOUR CHANGES WILL BE LOST THE NEXT TIME THE FILE IS GENERATED.
server {
listen dedicated_ip:443 ssl http2;
server_name odylight.ci;
server_name www.odylight.ci;
server_name ipv4.odylight.ci;
ssl_certificate /opt/psa/var/certificates/scf2i3Lbn;
ssl_certificate_key /opt/psa/var/certificates/scf2i3Lbn;
error_page 400 "/error_docs/bad_request.html";
error_page 401 "/error_docs/unauthorized.html";
error_page 403 "/error_docs/forbidden.html";
error_page 404 "/error_docs/not_found.html";
error_page 500 "/error_docs/internal_server_error.html";
error_page 405 "/error_docs/method_not_allowed.html";
error_page 406 "/error_docs/not_acceptable.html";
error_page 407 "/error_docs/proxy_authentication_required.html";
error_page 412 "/error_docs/precondition_failed.html";
error_page 414 "/error_docs/request_uri_too_long.html";
error_page 415 "/error_docs/unsupported_media_type.html";
error_page 501 "/error_docs/not_implemented.html";
error_page 502 "/error_docs/bad_gateway.html";
error_page 503 "/error_docs/maintenance.html";
location /error_docs {
root "/var/www/vhosts/odylight.ci";
}
client_max_body_size 128m;
proxy_read_timeout 120;
root "/var/www/vhosts/odylight.ci/httpdocs";
access_log "/var/www/vhosts/system/odylight.ci/logs/proxy_access_ssl_log";
error_log "/var/www/vhosts/system/odylight.ci/logs/proxy_error_log";
#extension letsencrypt begin
location ^~ /.well-known/acme-challenge/ {
root /var/www/vhosts/default/htdocs;
types { }
default_type text/plain;
satisfy any;
auth_basic off;
allow all;
location ~ ^/\.well-known/acme-challenge.*/\. {
deny all;
}
}
#extension letsencrypt end
location ~ /\.ht {
deny all;
}
location ~ /$ {
index "index.html" "index.cgi" "index.pl" "index.php" "index.xhtml" "index.htm" "index.shtml";
}
location / {
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Real-IP $remote_addr;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_http_version 1.1;
proxy_pass http://127.0.0.1:4000;
}
add_header X-Powered-By PleskLin;
}
server {
listen dedicated_ip:80;
server_name odylight.ci;
server_name www.odylight.ci;
server_name ipv4.odylight.ci;
error_page 400 "/error_docs/bad_request.html";
error_page 401 "/error_docs/unauthorized.html";
error_page 403 "/error_docs/forbidden.html";
error_page 404 "/error_docs/not_found.html";
error_page 500 "/error_docs/internal_server_error.html";
error_page 405 "/error_docs/method_not_allowed.html";
error_page 406 "/error_docs/not_acceptable.html";
error_page 407 "/error_docs/proxy_authentication_required.html";
error_page 412 "/error_docs/precondition_failed.html";
error_page 414 "/error_docs/request_uri_too_long.html";
error_page 415 "/error_docs/unsupported_media_type.html";
error_page 501 "/error_docs/not_implemented.html";
error_page 502 "/error_docs/bad_gateway.html";
error_page 503 "/error_docs/maintenance.html";
location /error_docs {
root "/var/www/vhosts/odylight.ci";
}
client_max_body_size 128m;
proxy_read_timeout 120;
location / {
return 301 https://$host$request_uri;
}
}