mirror of
https://github.com/coder/coder.git
synced 2025-07-13 21:36:50 +00:00
docs: add context for wireguard in places referencing tailscale (#15901)
> We do not use Tailscale (product) but instead import Tailscale OSS libraries which has some nice ways of handling Wireguard. We also use Tailscale's logo in our architecture, but calling it only `Tailscale` seems to throw people off when they're considering Coder and how it works. I've left it wherever it seems to make sense (such as when we talk about [DERP](https://coder.com/docs/admin/networking#relayed-connections)), and sprinkled some `Wireguard` and `websocket/HTTPS` where I could
This commit is contained in:
@ -9,9 +9,10 @@ but otherwise, all topologies _just work_ with Coder.
|
|||||||
When possible, we establish direct connections between users and workspaces.
|
When possible, we establish direct connections between users and workspaces.
|
||||||
Direct connections are as fast as connecting to the workspace outside of Coder.
|
Direct connections are as fast as connecting to the workspace outside of Coder.
|
||||||
When NAT traversal fails, connections are relayed through the coder server. All
|
When NAT traversal fails, connections are relayed through the coder server. All
|
||||||
user <-> workspace connections are end-to-end encrypted.
|
user-workspace connections are end-to-end encrypted.
|
||||||
|
|
||||||
[Tailscale's open source](https://tailscale.com) backs our networking logic.
|
[Tailscale's open source](https://tailscale.com) backs our websocket/HTTPS
|
||||||
|
networking logic.
|
||||||
|
|
||||||
## Requirements
|
## Requirements
|
||||||
|
|
||||||
@ -128,12 +129,13 @@ but this can be disabled or changed for
|
|||||||
By default, your Coder server also runs a built-in DERP relay which can be used
|
By default, your Coder server also runs a built-in DERP relay which can be used
|
||||||
for both public and [offline deployments](../../install/offline.md).
|
for both public and [offline deployments](../../install/offline.md).
|
||||||
|
|
||||||
However, Tailscale has graciously allowed us to use
|
However, our Wireguard integration through Tailscale has graciously allowed us
|
||||||
|
to use
|
||||||
[their global DERP relays](https://tailscale.com/kb/1118/custom-derp-servers/#what-are-derp-servers).
|
[their global DERP relays](https://tailscale.com/kb/1118/custom-derp-servers/#what-are-derp-servers).
|
||||||
You can launch `coder server` with Tailscale's DERPs like so:
|
You can launch `coder server` with Tailscale's DERPs like so:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
$ coder server --derp-config-url https://controlplane.tailscale.com/derpmap/default
|
coder server --derp-config-url https://controlplane.tailscale.com/derpmap/default
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Custom Relays
|
#### Custom Relays
|
||||||
|
@ -33,12 +33,12 @@ counterpart can be reached. Once communication succeeds in one direction, we can
|
|||||||
inspect the source address of the received packet to determine the return
|
inspect the source address of the received packet to determine the return
|
||||||
address.
|
address.
|
||||||
|
|
||||||
At a high level, STUN works like this:
|
|
||||||
|
|
||||||
> The below glosses over a lot of the complexity of traversing NATs. For a more
|
> The below glosses over a lot of the complexity of traversing NATs. For a more
|
||||||
> in-depth technical explanation, see
|
> in-depth technical explanation, see
|
||||||
> [How NAT traversal works (tailscale.com)](https://tailscale.com/blog/how-nat-traversal-works).
|
> [How NAT traversal works (tailscale.com)](https://tailscale.com/blog/how-nat-traversal-works).
|
||||||
|
|
||||||
|
At a high level, STUN works like this:
|
||||||
|
|
||||||
- **Discovery:** Both the client and agent will send UDP traffic to one or more
|
- **Discovery:** Both the client and agent will send UDP traffic to one or more
|
||||||
configured STUN servers. These STUN servers are generally located on the
|
configured STUN servers. These STUN servers are generally located on the
|
||||||
public internet, and respond with the public IP address and port from which
|
public internet, and respond with the public IP address and port from which
|
||||||
|
@ -6,15 +6,15 @@ environments. However, some changes to your configuration are necessary.
|
|||||||
> This is a general comparison. Keep reading for a full tutorial running Coder
|
> This is a general comparison. Keep reading for a full tutorial running Coder
|
||||||
> offline with Kubernetes or Docker.
|
> offline with Kubernetes or Docker.
|
||||||
|
|
||||||
| | Public deployments | Offline deployments |
|
| | Public deployments | Offline deployments |
|
||||||
| ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
| ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||||
| Terraform binary | By default, Coder downloads Terraform binary from [releases.hashicorp.com](https://releases.hashicorp.com) | Terraform binary must be included in `PATH` for the VM or container image. [Supported versions](https://github.com/coder/coder/blob/main/provisioner/terraform/install.go#L23-L24) |
|
| Terraform binary | By default, Coder downloads Terraform binary from [releases.hashicorp.com](https://releases.hashicorp.com) | Terraform binary must be included in `PATH` for the VM or container image. [Supported versions](https://github.com/coder/coder/blob/main/provisioner/terraform/install.go#L23-L24) |
|
||||||
| Terraform registry | Coder templates will attempt to download providers from [registry.terraform.io](https://registry.terraform.io) or [custom source addresses](https://developer.hashicorp.com/terraform/language/providers/requirements#source-addresses) specified in each template | [Custom source addresses](https://developer.hashicorp.com/terraform/language/providers/requirements#source-addresses) can be specified in each Coder template, or a custom registry/mirror can be used. More details below |
|
| Terraform registry | Coder templates will attempt to download providers from [registry.terraform.io](https://registry.terraform.io) or [custom source addresses](https://developer.hashicorp.com/terraform/language/providers/requirements#source-addresses) specified in each template | [Custom source addresses](https://developer.hashicorp.com/terraform/language/providers/requirements#source-addresses) can be specified in each Coder template, or a custom registry/mirror can be used. More details below |
|
||||||
| STUN | By default, Coder uses Google's public STUN server for direct workspace connections | STUN can be safely [disabled](../reference/ users can still connect via [relayed connections](../admin/networking/index.md#-geo-distribution). Alternatively, you can set a [custom DERP server](../reference/cli/server.md#--derp-server-stun-addresses) |
|
| STUN | By default, Coder uses Google's public STUN server for direct workspace connections | STUN can be safely [disabled](../reference/cli/server.md#--derp-server-stun-addresses) users can still connect via [relayed connections](../admin/networking/index.md#-geo-distribution). Alternatively, you can set a [custom DERP server](../reference/cli/server.md#--derp-server-stun-addresses) |
|
||||||
| DERP | By default, Coder's built-in DERP relay can be used, or [Tailscale's public relays](../admin/networking/index.md#relayed-connections). | By default, Coder's built-in DERP relay can be used, or [custom relays](../admin/networking/index.md#custom-relays). |
|
| DERP | By default, Coder's built-in DERP relay can be used, or [Tailscale's public relays](../admin/networking/index.md#relayed-connections). | By default, Coder's built-in DERP relay can be used, or [custom relays](../admin/networking/index.md#custom-relays). |
|
||||||
| PostgreSQL | If no [PostgreSQL connection URL](../reference/cli/server.md#--postgres-url) is specified, Coder will download Postgres from [repo1.maven.org](https://repo1.maven.org) | An external database is required, you must specify a [PostgreSQL connection URL](../reference/cli/server.md#--postgres-url) |
|
| PostgreSQL | If no [PostgreSQL connection URL](../reference/cli/server.md#--postgres-url) is specified, Coder will download Postgres from [repo1.maven.org](https://repo1.maven.org) | An external database is required, you must specify a [PostgreSQL connection URL](../reference/cli/server.md#--postgres-url) |
|
||||||
| Telemetry | Telemetry is on by default, and [can be disabled](../reference/cli/server.md#--telemetry) | Telemetry [can be disabled](../reference/cli/server.md#--telemetry) |
|
| Telemetry | Telemetry is on by default, and [can be disabled](../reference/cli/server.md#--telemetry) | Telemetry [can be disabled](../reference/cli/server.md#--telemetry) |
|
||||||
| Update check | By default, Coder checks for updates from [GitHub releases](https://github.com/coder/coder/releases) | Update checks [can be disabled](../reference/cli/server.md#--update-check) |
|
| Update check | By default, Coder checks for updates from [GitHub releases](https://github.com/coder/coder/releases) | Update checks [can be disabled](../reference/cli/server.md#--update-check) |
|
||||||
|
|
||||||
## Offline container images
|
## Offline container images
|
||||||
|
|
||||||
|
@ -29,8 +29,8 @@ A brief overview of all files contained in the bundle is provided below:
|
|||||||
| Filename | Description |
|
| Filename | Description |
|
||||||
| --------------------------------- | ---------------------------------------------------------------------------------------------------------- |
|
| --------------------------------- | ---------------------------------------------------------------------------------------------------------- |
|
||||||
| `agent/agent.json` | The agent used to connect to the workspace with environment variables stripped. |
|
| `agent/agent.json` | The agent used to connect to the workspace with environment variables stripped. |
|
||||||
| `agent/agent_magicsock.html` | The contents of the HTTP debug endpoint of the agent's Tailscale connection. |
|
| `agent/agent_magicsock.html` | The contents of the HTTP debug endpoint of the agent's Tailscale Wireguard connection. |
|
||||||
| `agent/client_magicsock.html` | The contents of the HTTP debug endpoint of the client's Tailscale connection. |
|
| `agent/client_magicsock.html` | The contents of the HTTP debug endpoint of the client's Tailscale Wireguard connection. |
|
||||||
| `agent/listening_ports.json` | The listening ports detected by the selected agent running in the workspace. |
|
| `agent/listening_ports.json` | The listening ports detected by the selected agent running in the workspace. |
|
||||||
| `agent/logs.txt` | The logs of the selected agent running in the workspace. |
|
| `agent/logs.txt` | The logs of the selected agent running in the workspace. |
|
||||||
| `agent/manifest.json` | The manifest of the selected agent with environment variables stripped. |
|
| `agent/manifest.json` | The manifest of the selected agent with environment variables stripped. |
|
||||||
|
Reference in New Issue
Block a user