diff options
Diffstat (limited to 'config/server.cr')
-rw-r--r-- | config/server.cr | 65 |
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 |