Configuration¶
Shed uses YAML configuration files for both client and server settings.
Client Configuration¶
Location: ~/.shed/config.yaml
The client configuration stores server connections and cached shed locations.
servers:
mini-desktop:
host: mini-desktop.tailnet.ts.net
http_port: 8080
ssh_port: 2222
added_at: "2026-01-20T10:00:00Z"
cloud-vps:
host: vps.tailnet.ts.net
http_port: 8080
ssh_port: 2222
added_at: "2026-01-19T14:00:00Z"
default_server: mini-desktop
# Timeout for shed create and start operations
create_timeout: 30m
sheds:
codelens:
server: mini-desktop
status: running
updated_at: "2026-01-20T10:30:00Z"
Client Fields¶
| Field | Type | Description |
|---|---|---|
servers |
map | Configured server connections |
servers.<name>.host |
string | Server hostname or IP |
servers.<name>.http_port |
int | HTTP API port |
servers.<name>.ssh_port |
int | SSH server port |
default_server |
string | Default server for commands |
sheds |
map | Cached shed locations |
create_timeout |
duration | Timeout for create/start operations (default: 10m) |
Server Configuration¶
Locations (checked in order):
./server.yaml~/.config/shed/server.yaml/etc/shed/server.yaml
name: mini-desktop
http_port: 8080
ssh_port: 2222
default_image: shed-base:latest
credentials:
git-ssh:
source: ~/.ssh
target: /root/.ssh
readonly: true
git-config:
source: ~/.gitconfig
target: /root/.gitconfig
readonly: true
claude:
source: ~/.claude
target: /root/.claude
readonly: false
env_file: ~/.shed/env
log_level: info
Server Fields¶
| Field | Type | Default | Description |
|---|---|---|---|
name |
string | shed-server |
Server identifier |
http_port |
int | 8080 |
HTTP API port |
ssh_port |
int | 2222 |
SSH server port |
default_image |
string | shed-base:latest |
Default Docker image for sheds |
credentials |
map | {} |
Bind mounts for credentials |
env_file |
string | - | Path to environment variables file |
log_level |
string | info |
Logging level (debug, info, warn, error) |
Credential Mounts¶
Credentials are bind-mounted into all shed containers:
credentials:
name:
source: /host/path # Path on the host (~ supported)
target: /container/path # Path inside container
readonly: true # Optional, default false
Common credential mounts:
credentials:
# SSH keys for git
git-ssh:
source: ~/.ssh
target: /root/.ssh
readonly: true
# Git configuration
git-config:
source: ~/.gitconfig
target: /root/.gitconfig
readonly: true
# Claude Code config (needs write for token refresh)
claude:
source: ~/.claude
target: /root/.claude
readonly: false
# GitHub CLI
gh:
source: ~/.config/gh
target: /root/.config/gh
readonly: true
# AWS credentials
aws:
source: ~/.aws
target: /root/.aws
readonly: true
# GCP credentials
gcloud:
source: ~/.config/gcloud
target: /root/.config/gcloud
readonly: true
Environment File¶
Location: As configured in env_file (typically ~/.shed/env)
Environment variables injected into all containers:
Set restricted permissions:
SSH Known Hosts¶
Location: ~/.shed/known_hosts
Stores SSH host keys for shed servers. Populated automatically when running shed server add.
Sync Configuration¶
See File Sync for sync configuration.
Tunnel Configuration¶
See Tunnels for tunnel configuration.