Tailscale serve support (#2126)

Ensure we can serve the app from multiple hosts without breaking links.
* Switch unnecessary full URLs to paths
* Drop default host/port URL options for controllers

Shell 1
```bash
bin/dev
```

Shell 2
```bash
tailscale serve http://fizzy.localhost:3006
```
This commit is contained in:
Jeremy Daer
2025-12-13 09:29:50 -08:00
committed by GitHub
parent 43ab17df2f
commit 82626f020d
3 changed files with 12 additions and 7 deletions
+2 -2
View File
@@ -38,7 +38,7 @@ module Authentication
def require_account
unless Current.account.present?
redirect_to main_app.session_menu_url(script_name: nil)
redirect_to main_app.session_menu_path(script_name: nil)
end
end
@@ -125,7 +125,7 @@ module Authentication
serve_development_magic_link(magic_link)
session[:email_address_pending_authentication] = magic_link.identity.email_address if magic_link
session[:return_to_after_authenticating] = return_to if return_to
redirect_to main_app.session_magic_link_url(script_name: nil)
redirect_to main_app.session_magic_link_path(script_name: nil)
end
def serve_development_magic_link(magic_link)
+1 -1
View File
@@ -26,7 +26,7 @@ module Authorization
end
def ensure_can_access_account
redirect_to session_menu_url(script_name: nil) if Current.user.blank? || !Current.user.active?
redirect_to session_menu_path(script_name: nil) if Current.user.blank? || !Current.user.active?
end
def redirect_existing_user
+9 -4
View File
@@ -85,9 +85,14 @@ Rails.application.configure do
config.action_mailer.raise_delivery_errors = false
end
config.hosts = %w[ fizzy.localhost localhost 127.0.0.1 ] + [ /^fizzy-\d+(:\d+)$/ ]
config.hosts = [
"fizzy.localhost",
"localhost",
"127.0.0.1",
/^fizzy-\d+(:\d+)?$/, # review apps: fizzy-123:3000
/\.ts\.net$/ # tailscale serve: hostname.tail1234.ts.net
]
# Set host to be used by links generated in mailer and notification view templates.
config.action_controller.default_url_options = { host: config.hosts.first, port: 3006 }
config.action_mailer.default_url_options = { host: config.hosts.first, port: 3006 }
# Canonical host for mailer URLs (emails always link here, not personal Tailscale URLs)
config.action_mailer.default_url_options = { host: "#{config.hosts.first}:3006" }
end