aboutsummaryrefslogtreecommitdiff
path: root/config/server.cr
diff options
context:
space:
mode:
Diffstat (limited to 'config/server.cr')
-rw-r--r--config/server.cr65
1 files changed, 65 insertions, 0 deletions
diff --git a/config/server.cr b/config/server.cr
new file mode 100644
index 0000000..8ed58de
--- /dev/null
+++ b/config/server.cr
@@ -0,0 +1,65 @@
+# Here is where you configure the Lucky server
+#
+# Look at config/route_helper.cr if you want to change the domain used when
+# generating links with `Action.url`.
+Lucky::Server.configure do |settings|
+ if LuckyEnv.production?
+ settings.secret_key_base = secret_key_from_env
+ settings.host = "0.0.0.0"
+ settings.port = ENV["PORT"].to_i
+ settings.gzip_enabled = true
+ # By default certain content types will be gzipped.
+ # For a full list look in
+ # https://github.com/luckyframework/lucky/blob/main/src/lucky/server.cr
+ # To add additional extensions do something like this:
+ # settings.gzip_content_types << "content/type"
+ else
+ settings.secret_key_base = "ldNN2xc+lugplW75tBMdqikv+4ssY4v7bwdTx1FmK0U="
+ # Change host/port in config/watch.yml
+ # Alternatively, you can set the DEV_PORT env to set the port for local development
+ settings.host = Lucky::ServerSettings.host
+ settings.port = Lucky::ServerSettings.port
+ end
+
+ # By default Lucky will serve static assets in development and production.
+ #
+ # However you could use a CDN when in production like this:
+ #
+ # Lucky::Server.configure do |settings|
+ # if LuckyEnv.production?
+ # settings.asset_host = "https://mycdnhost.com"
+ # else
+ # settings.asset_host = ""
+ # end
+ # end
+ settings.asset_host = "" # Lucky will serve assets
+end
+
+Lucky::ForceSSLHandler.configure do |settings|
+ # To force SSL in production, uncomment the lines below.
+ # This will cause http requests to be redirected to https:
+ #
+ # settings.enabled = LuckyEnv.production?
+ # settings.strict_transport_security = {max_age: 1.year, include_subdomains: true}
+ #
+ # Or, leave it disabled:
+ settings.enabled = false
+end
+
+# Set a unique ID for each HTTP request.
+# To enable the request ID, uncomment the lines below.
+# You can set your own custom String, or use a random UUID.
+# Lucky::RequestIdHandler.configure do |settings|
+# settings.set_request_id = ->(context : HTTP::Server::Context) {
+# UUID.random.to_s
+# }
+# end
+
+private def secret_key_from_env
+ ENV["SECRET_KEY_BASE"]? || raise_missing_secret_key_in_production
+end
+
+private def raise_missing_secret_key_in_production
+ puts "Please set the SECRET_KEY_BASE environment variable. You can generate a secret key with 'lucky gen.secret_key'".colorize.red
+ exit(1)
+end