# Setting Up Hetzner

> Use when setting up a new machine to work with this repo, or when hcloud context is missing, or direnv isn't loading token

- Skill: `majiayu000/setting-up-hetzner` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds add majiayu000/setting-up-hetzner`
- Raw SKILL.md: https://api.skillmd.com/api/skills/majiayu000/setting-up-hetzner/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: majiayu000 (https://skillmd.com/u/majiayu000)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/majiayu000/setting-up-hetzner

---


# Setting Up Hetzner Dev Infrastructure

## Overview

Prerequisites and first-time setup for working with this repo.

## Prerequisites

Install required tools:

```bash
brew install hcloud direnv nix
```

## First-Time Setup

**Step 1: Create hcloud context**

```bash
hcloud context create workstation
# Enter your API token when prompted
```

Get token from: https://console.hetzner.cloud → Project → Access → API Tokens → Generate (Read & Write)

**Step 2: Allow direnv**

```bash
cd ~/Code/workstation
direnv allow
```

This loads `HCLOUD_TOKEN` from your hcloud CLI context.

## Verify Setup

```bash
# Check token is loaded
echo $HCLOUD_TOKEN | head -c 10

# Check hcloud can connect
hcloud server list
```

## Common Issues

### "context not found"

```bash
hcloud context list
# If empty:
hcloud context create workstation
```

### "direnv: error .envrc"

```bash
direnv allow
```

### Python version error

The `.envrc` requires Python 3.11+ for `tomllib`. Check:

```bash
python3 --version
```

## SSH Key Setup

Ensure your SSH key is registered with Hetzner:

```bash
hcloud ssh-key list
# If 'devbox' key is missing:
hcloud ssh-key create --name devbox --public-key-from-file ~/.ssh/id_ed25519.pub
```

