mirror of
				https://github.com/juanfont/headscale.git
				synced 2025-10-28 10:51:44 +01:00 
			
		
		
		
	lint and format
This commit is contained in:
		
							parent
							
								
									b4e867d472
								
							
						
					
					
						commit
						bb88d9a2dc
					
				| @ -55,7 +55,7 @@ tailscale login --login-server <YOUR_HEADSCALE_URL> | |||||||
| Install the official Tailscale tvOS client from the [App Store](https://apps.apple.com/app/tailscale/id1470499037). | Install the official Tailscale tvOS client from the [App Store](https://apps.apple.com/app/tailscale/id1470499037). | ||||||
| 
 | 
 | ||||||
| > [!CAUTION]   | > [!CAUTION]   | ||||||
| > __DON't__ open the Tailscale App after installation!. | > **DON't** open the Tailscale App after installation!. | ||||||
| 
 | 
 | ||||||
| ### Configuring the headscale URL | ### Configuring the headscale URL | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -17,9 +17,13 @@ func Apple(url string) *elem.Element { | |||||||
| 			headerOne("headscale: iOS configuration"), | 			headerOne("headscale: iOS configuration"), | ||||||
| 			headerTwo("GUI"), | 			headerTwo("GUI"), | ||||||
| 			elem.Ol(nil, | 			elem.Ol(nil, | ||||||
| 				elem.Li(nil, | 				elem.Li( | ||||||
|  | 					nil, | ||||||
| 					elem.Text("Install the official Tailscale iOS client from the "), | 					elem.Text("Install the official Tailscale iOS client from the "), | ||||||
| 					elem.A(attrs.Props{attrs.Href: "https://apps.apple.com/app/tailscale/id1470499037"}, | 					elem.A( | ||||||
|  | 						attrs.Props{ | ||||||
|  | 							attrs.Href: "https://apps.apple.com/app/tailscale/id1470499037", | ||||||
|  | 						}, | ||||||
| 						elem.Text("App store"), | 						elem.Text("App store"), | ||||||
| 					), | 					), | ||||||
| 				), | 				), | ||||||
| @ -31,27 +35,47 @@ func Apple(url string) *elem.Element { | |||||||
| 				elem.Li(nil, | 				elem.Li(nil, | ||||||
| 					elem.Text("Open Settings on the iOS device"), | 					elem.Text("Open Settings on the iOS device"), | ||||||
| 				), | 				), | ||||||
| 				elem.Li(nil, | 				elem.Li( | ||||||
| 					elem.Text(`Scroll down to the "third party apps" section, under "Game Center" or "TV Provider"`), | 					nil, | ||||||
|  | 					elem.Text( | ||||||
|  | 						`Scroll down to the "third party apps" section, under "Game Center" or "TV Provider"`, | ||||||
|  | 					), | ||||||
| 				), | 				), | ||||||
| 				elem.Li(nil, | 				elem.Li(nil, | ||||||
| 					elem.Text("Find Tailscale and select it"), | 					elem.Text("Find Tailscale and select it"), | ||||||
| 					elem.Ul(nil, | 					elem.Ul(nil, | ||||||
| 						elem.Li(nil, | 						elem.Li( | ||||||
| 							elem.Text(`If the iOS device was previously logged into Tailscale, switch the "Reset Keychain" toggle to "on"`), | 							nil, | ||||||
|  | 							elem.Text( | ||||||
|  | 								`If the iOS device was previously logged into Tailscale, switch the "Reset Keychain" toggle to "on"`, | ||||||
| 							), | 							), | ||||||
| 						), | 						), | ||||||
| 					), | 					), | ||||||
| 				elem.Li(nil, |  | ||||||
| 					elem.Text(fmt.Sprintf(`Enter "%s" under "Alternate Coordination Server URL"`,url)), |  | ||||||
| 				), | 				), | ||||||
| 				elem.Li(nil, | 				elem.Li( | ||||||
| 					elem.Text("Restart the app by closing it from the iOS app switcher, open the app and select the regular sign in option "), | 					nil, | ||||||
|  | 					elem.Text( | ||||||
|  | 						fmt.Sprintf( | ||||||
|  | 							`Enter "%s" under "Alternate Coordination Server URL"`, | ||||||
|  | 							url, | ||||||
|  | 						), | ||||||
|  | 					), | ||||||
|  | 				), | ||||||
|  | 				elem.Li( | ||||||
|  | 					nil, | ||||||
|  | 					elem.Text( | ||||||
|  | 						"Restart the app by closing it from the iOS app switcher, open the app and select the regular sign in option ", | ||||||
|  | 					), | ||||||
| 					elem.I(nil, elem.Text("(non-SSO)")), | 					elem.I(nil, elem.Text("(non-SSO)")), | ||||||
| 					elem.Text(". It should open up to the headscale authentication page."), | 					elem.Text( | ||||||
|  | 						". It should open up to the headscale authentication page.", | ||||||
|  | 					), | ||||||
|  | 				), | ||||||
|  | 				elem.Li( | ||||||
|  | 					nil, | ||||||
|  | 					elem.Text( | ||||||
|  | 						"Enter your credentials and log in. Headscale should now be working on your iOS device", | ||||||
| 					), | 					), | ||||||
| 				elem.Li(nil, |  | ||||||
| 					elem.Text("Enter your credentials and log in. Headscale should now be working on your iOS device"), |  | ||||||
| 				), | 				), | ||||||
| 			), | 			), | ||||||
| 			headerOne("headscale: macOS configuration"), | 			headerOne("headscale: macOS configuration"), | ||||||
| @ -61,39 +85,63 @@ func Apple(url string) *elem.Element { | |||||||
| 			), | 			), | ||||||
| 			elem.Pre(nil, | 			elem.Pre(nil, | ||||||
| 				elem.Code(nil, | 				elem.Code(nil, | ||||||
| 					elem.Text(fmt.Sprintf("tailscale login --login-server %s",url)), | 					elem.Text(fmt.Sprintf("tailscale login --login-server %s", url)), | ||||||
| 				), | 				), | ||||||
| 			), | 			), | ||||||
| 			headerTwo("GUI"), | 			headerTwo("GUI"), | ||||||
| 			elem.Ol(nil, | 			elem.Ol(nil, | ||||||
| 				elem.Li(nil, | 				elem.Li( | ||||||
| 					elem.Text("ALT + Click the Tailscale icon in the menu and hover over the Debug menu"), | 					nil, | ||||||
|  | 					elem.Text( | ||||||
|  | 						"ALT + Click the Tailscale icon in the menu and hover over the Debug menu", | ||||||
|  | 					), | ||||||
| 				), | 				), | ||||||
| 				elem.Li(nil, | 				elem.Li(nil, | ||||||
| 					elem.Text(`Under "Custom Login Server", select "Add Account..."`), | 					elem.Text(`Under "Custom Login Server", select "Add Account..."`), | ||||||
| 				), | 				), | ||||||
| 				elem.Li(nil, | 				elem.Li( | ||||||
| 					elem.Text(fmt.Sprintf(`Enter "%s" of the headscale instance and press "Add Account"`,url)), | 					nil, | ||||||
|  | 					elem.Text( | ||||||
|  | 						fmt.Sprintf( | ||||||
|  | 							`Enter "%s" of the headscale instance and press "Add Account"`, | ||||||
|  | 							url, | ||||||
|  | 						), | ||||||
|  | 					), | ||||||
| 				), | 				), | ||||||
| 				elem.Li(nil, | 				elem.Li(nil, | ||||||
| 					elem.Text(`Follow the login procedure in the browser`), | 					elem.Text(`Follow the login procedure in the browser`), | ||||||
| 				), | 				), | ||||||
| 			), | 			), | ||||||
| 			headerTwo("Profiles"), | 			headerTwo("Profiles"), | ||||||
| 			elem.P(nil, | 			elem.P( | ||||||
| 				elem.Text("Headscale can be set to the default server by installing a Headscale configuration profile:"), | 				nil, | ||||||
|  | 				elem.Text( | ||||||
|  | 					"Headscale can be set to the default server by installing a Headscale configuration profile:", | ||||||
| 				), | 				), | ||||||
| 			elem.P(nil, | 			), | ||||||
| 				elem.A(attrs.Props{attrs.Href: "/apple/macos-app-store", attrs.Download: "headscale_macos.mobileconfig"}, | 			elem.P( | ||||||
|  | 				nil, | ||||||
|  | 				elem.A( | ||||||
|  | 					attrs.Props{ | ||||||
|  | 						attrs.Href:     "/apple/macos-app-store", | ||||||
|  | 						attrs.Download: "headscale_macos.mobileconfig", | ||||||
|  | 					}, | ||||||
| 					elem.Text("macOS AppStore profile "), | 					elem.Text("macOS AppStore profile "), | ||||||
| 				), | 				), | ||||||
| 				elem.A(attrs.Props{attrs.Href: "/apple/macos-standalone", attrs.Download: "headscale_macos.mobileconfig"}, | 				elem.A( | ||||||
|  | 					attrs.Props{ | ||||||
|  | 						attrs.Href:     "/apple/macos-standalone", | ||||||
|  | 						attrs.Download: "headscale_macos.mobileconfig", | ||||||
|  | 					}, | ||||||
| 					elem.Text("macOS Standalone profile"), | 					elem.Text("macOS Standalone profile"), | ||||||
| 				), | 				), | ||||||
| 			), | 			), | ||||||
| 			elem.Ol(nil, | 			elem.Ol(nil, | ||||||
| 				elem.Li(nil, | 				elem.Li( | ||||||
| 					elem.Text("Download the profile, then open it. When it has been opened, there should be a notification that a profile can be installed"), | 					nil, | ||||||
|  | 					elem.Text( | ||||||
|  | 						"Download the profile, then open it. When it has been opened, there should be a notification that a profile can be installed", | ||||||
|  | 					), | ||||||
| 				), | 				), | ||||||
| 				elem.Li(nil, | 				elem.Li(nil, | ||||||
| 					elem.Text(`Open System Preferences and go to "Profiles"`), | 					elem.Text(`Open System Preferences and go to "Profiles"`), | ||||||
| @ -106,20 +154,35 @@ func Apple(url string) *elem.Element { | |||||||
| 				), | 				), | ||||||
| 			), | 			), | ||||||
| 			elem.P(nil, elem.Text("Or")), | 			elem.P(nil, elem.Text("Or")), | ||||||
| 			elem.P(nil, | 			elem.P( | ||||||
| 				elem.Text("Use your terminal to configure the default setting for Tailscale by issuing:"), | 				nil, | ||||||
|  | 				elem.Text( | ||||||
|  | 					"Use your terminal to configure the default setting for Tailscale by issuing:", | ||||||
|  | 				), | ||||||
| 			), | 			), | ||||||
| 			elem.Ul(nil, | 			elem.Ul(nil, | ||||||
| 				elem.Li(nil, | 				elem.Li(nil, | ||||||
| 					elem.Text(`for app store client:`), | 					elem.Text(`for app store client:`), | ||||||
| 					elem.Code(nil, | 					elem.Code( | ||||||
| 						elem.Text(fmt.Sprintf(`defaults write io.tailscale.ipn.macos ControlURL %s`,url)), | 						nil, | ||||||
|  | 						elem.Text( | ||||||
|  | 							fmt.Sprintf( | ||||||
|  | 								`defaults write io.tailscale.ipn.macos ControlURL %s`, | ||||||
|  | 								url, | ||||||
|  | 							), | ||||||
|  | 						), | ||||||
| 					), | 					), | ||||||
| 				), | 				), | ||||||
| 				elem.Li(nil, | 				elem.Li(nil, | ||||||
| 					elem.Text(`for standalone client:`), | 					elem.Text(`for standalone client:`), | ||||||
| 					elem.Code(nil, | 					elem.Code( | ||||||
| 						elem.Text(fmt.Sprintf(`defaults write io.tailscale.ipn.macsys ControlURL %s`,url)), | 						nil, | ||||||
|  | 						elem.Text( | ||||||
|  | 							fmt.Sprintf( | ||||||
|  | 								`defaults write io.tailscale.ipn.macsys ControlURL %s`, | ||||||
|  | 								url, | ||||||
|  | 							), | ||||||
|  | 						), | ||||||
| 					), | 					), | ||||||
| 				), | 				), | ||||||
| 			), | 			), | ||||||
| @ -127,52 +190,68 @@ func Apple(url string) *elem.Element { | |||||||
| 				elem.Text("Restart Tailscale.app and log in."), | 				elem.Text("Restart Tailscale.app and log in."), | ||||||
| 			), | 			), | ||||||
| 			headerThree("Caution"), | 			headerThree("Caution"), | ||||||
| 			elem.P(nil, | 			elem.P( | ||||||
| 				elem.Text("You should always download and inspect the profile before installing it:"), | 				nil, | ||||||
|  | 				elem.Text( | ||||||
|  | 					"You should always download and inspect the profile before installing it:", | ||||||
|  | 				), | ||||||
| 			), | 			), | ||||||
| 			elem.Ul(nil, | 			elem.Ul(nil, | ||||||
| 				elem.Li(nil, | 				elem.Li(nil, | ||||||
| 					elem.Text(`for app store client: `), | 					elem.Text(`for app store client: `), | ||||||
| 					elem.Code(nil, | 					elem.Code(nil, | ||||||
| 						elem.Text(fmt.Sprintf(`curl %s/apple/macos-app-store`,url)), | 						elem.Text(fmt.Sprintf(`curl %s/apple/macos-app-store`, url)), | ||||||
| 					), | 					), | ||||||
| 				), | 				), | ||||||
| 				elem.Li(nil, | 				elem.Li(nil, | ||||||
| 					elem.Text(`for standalone client: `), | 					elem.Text(`for standalone client: `), | ||||||
| 					elem.Code(nil, | 					elem.Code(nil, | ||||||
| 						elem.Text(fmt.Sprintf(`curl %s/apple/macos-standalone`,url)), | 						elem.Text(fmt.Sprintf(`curl %s/apple/macos-standalone`, url)), | ||||||
| 					), | 					), | ||||||
| 				), | 				), | ||||||
| 			), | 			), | ||||||
| 			headerOne("headscale: tvOS configuration"), | 			headerOne("headscale: tvOS configuration"), | ||||||
| 			headerTwo("GUI"), | 			headerTwo("GUI"), | ||||||
| 			elem.Ol(nil, | 			elem.Ol(nil, | ||||||
| 				elem.Li(nil, | 				elem.Li( | ||||||
| 					elem.Text("Install the official Tailscale iOS client from the "), | 					nil, | ||||||
| 					elem.A(attrs.Props{attrs.Href: "https://apps.apple.com/app/tailscale/id1470499037"}, | 					elem.Text("Install the official Tailscale tvOS client from the "), | ||||||
|  | 					elem.A( | ||||||
|  | 						attrs.Props{ | ||||||
|  | 							attrs.Href: "https://apps.apple.com/app/tailscale/id1470499037", | ||||||
|  | 						}, | ||||||
| 						elem.Text("App store"), | 						elem.Text("App store"), | ||||||
| 					), | 					), | ||||||
| 				), | 				), | ||||||
| 				elem.Li(nil, | 				elem.Li( | ||||||
| 					elem.Text("Go Settings (the apple tvOS settings) > Apps > Tailscale") | 					nil, | ||||||
|  | 					elem.Text( | ||||||
|  | 						"Go Settings (the apple tvOS settings) > Apps > Tailscale", | ||||||
|  | 					), | ||||||
|  | 				), | ||||||
|  | 				elem.Li( | ||||||
|  | 					nil, | ||||||
|  | 					elem.Text( | ||||||
|  | 						fmt.Sprintf( | ||||||
|  | 							`Enter "%s" under "ALTERNATE COORDINATION SERVER URL"`, | ||||||
|  | 							url, | ||||||
|  | 						), | ||||||
|  | 					), | ||||||
| 				), | 				), | ||||||
| 				elem.Li(nil, | 				elem.Li(nil, | ||||||
| 					elem.Text(fmt.Sprintf(`Enter "%s" under "ALTERNATE COORDINATION SERVER URL"`,url)), | 					elem.Text("Return to the tvOS Home screen"), | ||||||
| 				), | 				), | ||||||
| 				elem.Li(nil, | 				elem.Li(nil, | ||||||
| 					elem.Text("Return to the tvOS Home screen") | 					elem.Text("Open Tailscale"), | ||||||
| 				), | 				), | ||||||
| 				elem.Li(nil, | 				elem.Li(nil, | ||||||
| 					elem.Text("Open Tailscale") | 					elem.Text("Select \"Install VPN configuration\""), | ||||||
| 				), | 				), | ||||||
| 				elem.Li(nil, | 				elem.Li(nil, | ||||||
| 					elem.Text("Select \"Install VPN configuration\"") | 					elem.Text("Select \"Allow\""), | ||||||
| 				), | 				), | ||||||
| 				elem.Li(nil, | 				elem.Li(nil, | ||||||
| 					elem.Text("Select \"Allow\"") | 					elem.Text("Scan the QR code and follow the login procedure"), | ||||||
| 				), |  | ||||||
| 				elem.Li(nil, |  | ||||||
| 					elem.Text("Scan the QR code and follow the login procedure") |  | ||||||
| 				), | 				), | ||||||
| 				elem.Li(nil, | 				elem.Li(nil, | ||||||
| 					elem.Text("Headscale should now be working on your tvOS device"), | 					elem.Text("Headscale should now be working on your tvOS device"), | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user