mirror of
https://github.com/juanfont/headscale.git
synced 2026-09-13 12:02:01 +09:00
197 lines
5.2 KiB
Go
197 lines
5.2 KiB
Go
package templates
|
|
|
|
import (
|
|
"github.com/chasefleming/elem-go"
|
|
"github.com/chasefleming/elem-go/attrs"
|
|
"github.com/chasefleming/elem-go/styles"
|
|
)
|
|
|
|
func Apple(url string) *elem.Element {
|
|
return page(
|
|
"headscale - Apple",
|
|
H1(elem.Text("iOS configuration")),
|
|
H2(elem.Text("GUI")),
|
|
Ol(
|
|
elem.Li(
|
|
nil,
|
|
elem.Text("Install the official Tailscale iOS client from the "),
|
|
externalLink("https://apps.apple.com/app/tailscale/id1470499037", "App Store"),
|
|
),
|
|
elem.Li(
|
|
nil,
|
|
elem.Text("Open the "),
|
|
elem.Strong(nil, elem.Text("Tailscale")),
|
|
elem.Text(" app"),
|
|
),
|
|
elem.Li(
|
|
nil,
|
|
elem.Text("Click the account icon in the top-right corner and select "),
|
|
elem.Strong(nil, elem.Text("Log in…")),
|
|
),
|
|
elem.Li(
|
|
nil,
|
|
elem.Text("Tap the top-right options menu button and select "),
|
|
elem.Strong(nil, elem.Text("Use custom coordination server")),
|
|
),
|
|
elem.Li(
|
|
nil,
|
|
elem.Text("Enter your instance URL: "),
|
|
Code(elem.Text(url)),
|
|
),
|
|
elem.Li(
|
|
nil,
|
|
elem.Text(
|
|
"Enter your credentials and log in. Headscale should now be working on your iOS device",
|
|
),
|
|
),
|
|
),
|
|
H1(elem.Text("macOS configuration")),
|
|
H2(elem.Text("Command line")),
|
|
P(
|
|
elem.Text("Use Tailscale's login command to add your profile:"),
|
|
),
|
|
codeBlockText("tailscale login --login-server "+url),
|
|
H2(elem.Text("GUI")),
|
|
Ol(
|
|
elem.Li(
|
|
nil,
|
|
elem.Text("Option + Click the "),
|
|
elem.Strong(nil, elem.Text("Tailscale")),
|
|
elem.Text(" icon in the menu and hover over the "),
|
|
elem.Strong(nil, elem.Text("Debug")),
|
|
elem.Text(" menu"),
|
|
),
|
|
elem.Li(
|
|
nil,
|
|
elem.Text("Under "),
|
|
elem.Strong(nil, elem.Text("Custom Login Server")),
|
|
elem.Text(", select "),
|
|
elem.Strong(nil, elem.Text("Add Account...")),
|
|
),
|
|
elem.Li(
|
|
nil,
|
|
elem.Text("Enter "),
|
|
Code(elem.Text(url)),
|
|
elem.Text(" of the headscale instance and press "),
|
|
elem.Strong(nil, elem.Text("Add Account")),
|
|
),
|
|
elem.Li(
|
|
nil,
|
|
elem.Text("Follow the login procedure in the browser"),
|
|
),
|
|
),
|
|
H2(elem.Text("Profiles")),
|
|
P(
|
|
elem.Text(
|
|
"Headscale can be set to the default server by installing a Headscale configuration profile:",
|
|
),
|
|
),
|
|
elem.Div(
|
|
attrs.Props{attrs.Style: styles.Props{styles.MarginTop: spaceL, styles.MarginBottom: spaceL}.ToInline()},
|
|
downloadButton("/apple/macos-app-store", "macOS AppStore profile"),
|
|
downloadButton("/apple/macos-standalone", "macOS Standalone profile"),
|
|
),
|
|
Ol(
|
|
elem.Li(
|
|
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.Text("Open "),
|
|
elem.Strong(nil, elem.Text("System Preferences")),
|
|
elem.Text(" and go to "),
|
|
elem.Strong(nil, elem.Text("Profiles")),
|
|
),
|
|
elem.Li(
|
|
nil,
|
|
elem.Text("Find and install the "),
|
|
elem.Strong(nil, elem.Text("Headscale")),
|
|
elem.Text(" profile"),
|
|
),
|
|
elem.Li(
|
|
nil,
|
|
elem.Text("Restart "),
|
|
elem.Strong(nil, elem.Text("Tailscale.app")),
|
|
elem.Text(" and log in"),
|
|
),
|
|
),
|
|
orDivider(),
|
|
P(
|
|
elem.Text(
|
|
"Use your terminal to configure the default setting for Tailscale by issuing one of the following commands:",
|
|
),
|
|
),
|
|
P(elem.Text("For app store client:")),
|
|
codeBlockText("defaults write io.tailscale.ipn.macos ControlURL "+url),
|
|
P(elem.Text("For standalone client:")),
|
|
codeBlockText("defaults write io.tailscale.ipn.macsys ControlURL "+url),
|
|
P(
|
|
elem.Text("Restart "),
|
|
elem.Strong(nil, elem.Text("Tailscale.app")),
|
|
elem.Text(" and log in."),
|
|
),
|
|
warningBox("Caution", "You should always download and inspect the profile before installing it."),
|
|
P(elem.Text("For app store client:")),
|
|
codeBlockText("curl "+url+"/apple/macos-app-store"),
|
|
P(elem.Text("For standalone client:")),
|
|
codeBlockText("curl "+url+"/apple/macos-standalone"),
|
|
H1(elem.Text("tvOS configuration")),
|
|
H2(elem.Text("GUI")),
|
|
Ol(
|
|
elem.Li(
|
|
nil,
|
|
elem.Text("Install the official Tailscale tvOS client from the "),
|
|
externalLink("https://apps.apple.com/app/tailscale/id1470499037", "App Store"),
|
|
),
|
|
elem.Li(
|
|
nil,
|
|
elem.Text("Open "),
|
|
elem.Strong(nil, elem.Text("Settings")),
|
|
elem.Text(" (the Apple tvOS settings) > "),
|
|
elem.Strong(nil, elem.Text("Apps")),
|
|
elem.Text(" > "),
|
|
elem.Strong(nil, elem.Text("Tailscale")),
|
|
),
|
|
elem.Li(
|
|
nil,
|
|
elem.Text("Enter "),
|
|
Code(elem.Text(url)),
|
|
elem.Text(" under "),
|
|
elem.Strong(nil, elem.Text("ALTERNATE COORDINATION SERVER URL")),
|
|
),
|
|
elem.Li(
|
|
nil,
|
|
elem.Text("Return to the tvOS "),
|
|
elem.Strong(nil, elem.Text("Home")),
|
|
elem.Text(" screen"),
|
|
),
|
|
elem.Li(
|
|
nil,
|
|
elem.Text("Open "),
|
|
elem.Strong(nil, elem.Text("Tailscale")),
|
|
),
|
|
elem.Li(
|
|
nil,
|
|
elem.Text("Select "),
|
|
elem.Strong(nil, elem.Text("Install VPN configuration")),
|
|
),
|
|
elem.Li(
|
|
nil,
|
|
elem.Text("Select "),
|
|
elem.Strong(nil, elem.Text("Allow")),
|
|
),
|
|
elem.Li(
|
|
nil,
|
|
elem.Text("Scan the QR code and follow the login procedure"),
|
|
),
|
|
elem.Li(
|
|
nil,
|
|
elem.Text("Headscale should now be working on your tvOS device"),
|
|
),
|
|
),
|
|
)
|
|
}
|