You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
*One-shot deployment and templates for Coder on Hetzner Cloud*
2
+
*Terraform based one-shot deployment of [Coder OSS](https://github.com/coder/coder)on a [Hetzner Cloud](https://www.hetzner.com/de/cloud) instance.*
3
3
4
-
This project serves two purposes:
5
-
- Terraform based deployment of [Coder OSS](https://github.com/coder/coder) on a [Hetzner Cloud](https://www.hetzner.com/de/cloud) instance.
6
-
-[Template](https://coder.com/docs/coder-oss/latest/templates)(s) for Coder to create [Workspaces](https://coder.com/docs/coder-oss/latest/workspaces) on Hetzner Cloud instances.
7
-
8
-
## Coder Deployment
9
-
10
-
### Quickstart
11
-
- Copy `coder/config.auto.tfvars.example` to `coder/config.auto.tfvars`
12
-
- Adjust `coder/config.auto.tfvars`
13
-
-`cd coder && terraform init && terraform apply`
4
+
## Quickstart
5
+
- Copy `config.auto.tfvars.example` to `config.auto.tfvars`
| hcloud_apikey || A R/W API-Key for the Hetzner Cloud project Coder shall be deployed in |
@@ -25,15 +20,27 @@ This project serves two purposes:
25
20
| coder_domain || Desired Domain for Coder (Used for CODER_ACCESS_URL, CODER_WILDCARD_ACCESS_URL and Caddy/Let's Encrypt) |
26
21
| acme_email || Administrative Email address used for Let's Encrypt and for the initial Coder user |
27
22
28
-
#### Resource allocation
23
+
###Deployment
29
24
*SSH*
30
25
31
-
Terraform creates TLS keys for the client and the host. The host key is installed later using cloud-init. The client key is registered in the Hetzner Cloud project and can be used later for regular maintenance tasks.
26
+
Terraform creates keys for the client and the host. The host key is installed later using Cloud-init. The client key is registered in the Hetzner Cloud project and can be used later for regular maintenance tasks. You may use the preconfigured wrapper script `./bin/ssh` for easy access.
32
27
33
28
*Firewall*
34
29
30
+
A Hetzner Cloud Firewall is applied. Outgoing traffic is allowed generally. Incoming traffic is restricted to ICMP and HTTP 80, 443.
31
+
32
+
*Coder installation (Cloud-init)*
33
+
34
+
Coder is managed via Docker Compose (Adapted from https://github.com/coder/coder/blob/main/docker-compose.yaml).
35
+
- First, only Coder and Postgress is started...
36
+
- When Coder is ready, the initial admin account is created...
37
+
- After that, the Proxy (Caddy) is started as well
38
+
39
+
*Maintenance*
40
+
41
+
While the Debian updates are mostly managed via `unattended-upgrades`, **you have to take care of the updates for the Docker Compose stack (`/root/coder/docker-compose.yaml`) manually!**
0 commit comments