From 143d92af50343da58fe4a6e33bd8344f5e6187d4 Mon Sep 17 00:00:00 2001 From: Fijxu Date: Sun, 15 Jun 2025 17:10:51 -0400 Subject: [PATCH 1/4] check domain configuration before starting Invidious --- src/invidious/config.cr | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/invidious/config.cr b/src/invidious/config.cr index 4d69854c4e..5d5baa744c 100644 --- a/src/invidious/config.cr +++ b/src/invidious/config.cr @@ -319,6 +319,18 @@ class Config end end + # Check if the domain configuration is valid + if (domain = config.domain).nil? || domain.empty? + puts "Config: 'domain' is required/can't be empty" + exit(1) + elsif parsed_domain = URI.parse(domain) + if !parsed_domain.scheme.nil? + puts "Config: 'domain' cannot contain a scheme (#{parsed_domain.scheme})" + puts "Config: (Hint) Set 'domain' to '#{parsed_domain.host}'" + exit(1) + end + end + return config end end From a3363fa9bcdda227e78bef4af4c4789818047484 Mon Sep 17 00:00:00 2001 From: Fijxu Date: Tue, 2 Sep 2025 12:04:16 -0400 Subject: [PATCH 2/4] Update src/invidious/config.cr Co-authored-by: Samantaz Fox --- src/invidious/config.cr | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/invidious/config.cr b/src/invidious/config.cr index 5d5baa744c..24fa4a1cea 100644 --- a/src/invidious/config.cr +++ b/src/invidious/config.cr @@ -324,9 +324,14 @@ class Config puts "Config: 'domain' is required/can't be empty" exit(1) elsif parsed_domain = URI.parse(domain) - if !parsed_domain.scheme.nil? - puts "Config: 'domain' cannot contain a scheme (#{parsed_domain.scheme})" - puts "Config: (Hint) Set 'domain' to '#{parsed_domain.host}'" + if domain != parsed_domain.domain + puts "Config: 'domain' is invalid. + + if parsed_domain.host.presence + puts "Config: (Hint) Did you mean #{parsed_domain.host} ?" + else + puts "Config: (Hint) 'domain' should look like this: invidious.example.com" + end exit(1) end end From a48e6ca65b80c6d5b3c335d3b821a13da1a27aee Mon Sep 17 00:00:00 2001 From: Fijxu Date: Sat, 6 Dec 2025 17:45:24 -0300 Subject: [PATCH 3/4] better domain missconfiguration checking --- src/invidious/config.cr | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/src/invidious/config.cr b/src/invidious/config.cr index 24fa4a1cea..1c157830b6 100644 --- a/src/invidious/config.cr +++ b/src/invidious/config.cr @@ -320,19 +320,20 @@ class Config end # Check if the domain configuration is valid - if (domain = config.domain).nil? || domain.empty? - puts "Config: 'domain' is required/can't be empty" - exit(1) - elsif parsed_domain = URI.parse(domain) - if domain != parsed_domain.domain - puts "Config: 'domain' is invalid. - - if parsed_domain.host.presence - puts "Config: (Hint) Did you mean #{parsed_domain.host} ?" - else - puts "Config: (Hint) 'domain' should look like this: invidious.example.com" + if (domain = config.domain) + if parsed_domain = URI.parse(domain) + if port = parsed_domain.path.to_i? + puts "Config (Hint): Remove the port from your domain: ':#{port}'" + exit(1) + end + if scheme = parsed_domain.scheme.presence + puts "Config (Hint): Remove the scheme from your domain: '#{scheme}'" + exit(1) + end + if host = parsed_domain.host.presence + puts "Config (Hint): Did you mean #{host}?" + exit(1) end - exit(1) end end From 2304b5abf0db779caf36c867f9c9bf29401efa7a Mon Sep 17 00:00:00 2001 From: Fijxu Date: Sat, 6 Dec 2025 18:32:50 -0300 Subject: [PATCH 4/4] improve --- src/invidious/config.cr | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/invidious/config.cr b/src/invidious/config.cr index 1c157830b6..9ed80a6b5f 100644 --- a/src/invidious/config.cr +++ b/src/invidious/config.cr @@ -326,12 +326,13 @@ class Config puts "Config (Hint): Remove the port from your domain: ':#{port}'" exit(1) end - if scheme = parsed_domain.scheme.presence - puts "Config (Hint): Remove the scheme from your domain: '#{scheme}'" + if (path_items = parsed_domain.path.split("/")).size > 1 + path = path_items[1..].join("/") + puts "Config (Hint): Remove the path from your domain: '/#{path}'" exit(1) end - if host = parsed_domain.host.presence - puts "Config (Hint): Did you mean #{host}?" + if scheme = parsed_domain.scheme.presence + puts "Config (Hint): Remove the scheme from your domain: '#{scheme}://'" exit(1) end end