From 31d455b0d26faba6dff9eaef91d78832b4a44829 Mon Sep 17 00:00:00 2001 From: TayunCodes Date: Fri, 10 Jan 2025 11:22:44 -0500 Subject: [PATCH] production files --- Caddyfile | 37 +++++++++++++++++++++++++++++++++++++ nixpacks.toml | 20 ++++++++++++++++++++ 2 files changed, 57 insertions(+) create mode 100644 Caddyfile create mode 100644 nixpacks.toml diff --git a/Caddyfile b/Caddyfile new file mode 100644 index 0000000..dfeded3 --- /dev/null +++ b/Caddyfile @@ -0,0 +1,37 @@ +# global options +{ + admin off # theres no need for the admin api in railway's environment + persist_config off # storage isn't persistent anyway + auto_https off # railway handles https for us, this would cause issues if left enabled + # runtime logs + log { + format json # set runtime log format to json mode + } + # server options + servers { + trusted_proxies static private_ranges 100.0.0.0/8 # trust railway's proxy + } +} + +# site block, listens on the $PORT environment variable, automatically assigned by railway +:{$PORT:3000} { + # access logs + log { + format json # set access log format to json mode + } + + # health check for railway + rewrite /health /* + + # serve from the 'dist' folder (Vite builds into the 'dist' folder) + root * dist + + # enable gzipping responses + encode gzip + + # serve files from 'dist' + file_server + + # if path doesn't exist, redirect it to 'index.html' for client side routing + try_files {path} /index.html +} \ No newline at end of file diff --git a/nixpacks.toml b/nixpacks.toml new file mode 100644 index 0000000..c28bb31 --- /dev/null +++ b/nixpacks.toml @@ -0,0 +1,20 @@ +# https://nixpacks.com/docs/configuration/file +# set up some variables to minimize annoyance +[variables] + NPM_CONFIG_UPDATE_NOTIFIER = 'false' # the update notification is relatively useless in a production environment + NPM_CONFIG_FUND = 'false' # the fund notification is also pretty useless in a production environment + +# download caddy from nix +[phases.caddy] + dependsOn = ['setup'] # make sure this phase runs after the default 'setup' phase + nixpkgsArchive = 'ba913eda2df8eb72147259189d55932012df6301' # Caddy v2.8.4 - https://github.com/NixOS/nixpkgs/commit/ba913eda2df8eb72147259189d55932012df6301 + nixPkgs = ['caddy'] # install caddy as a nix package + +# format the Caddyfile with fmt +[phases.fmt] + dependsOn = ['caddy'] # make sure this phase runs after the 'caddy' phase so that we know we have caddy downloaded + cmds = ['caddy fmt --overwrite Caddyfile'] # format the Caddyfile to fix any formatting inconsistencies + +# start the caddy web server +[start] + cmd = 'exec caddy run --config Caddyfile --adapter caddyfile 2>&1' # start caddy using the Caddyfile config and caddyfile adapter \ No newline at end of file