Skip to content

Configuration

{
"name": "my-project",
"base_image": "buildpack-deps:bookworm",
"setup_commands": [
"apt install -y python3 python3-pip"
],
"environment": {
"PYTHONPATH": "/island"
},
"ports": ["5000:5000"],
"volumes": ["/island/data:/data"]
}
FieldDescription
nameProject name
base_imageDocker image (default: buildpack-deps:bookworm)
setup_commandsCommands run on init
environmentEnvironment variables
portsPort mappings (host:container)
volumesVolume mounts
dotfilesDotfiles paths to mount
working_dirWorking directory (default: /island)
shellShell to use (default: /bin/bash)
userContainer user
restartRestart policy
resources{"cpus": "2", "memory": "4g"}
capabilitiesLinux capabilities (e.g., ["SYS_PTRACE"])
labelsDocker labels (key-value pairs)
networkDocker network mode (e.g., bridge, host)
health_checkContainer health check config
gpusGPU access (e.g., all or device IDs)
{
"settings": {
"default_base_image": "buildpack-deps:bookworm",
"auto_stop_on_exit": true,
"auto_update": false
}
}

Modify by editing the file directly at ~/.coderaft/config.json, or view current settings with:

Terminal window
coderaft config global

Package installs are recorded to coderaft.history:

Terminal window
# Inside the island shell (after running coderaft shell)
coderaft history
# Or view directly on the host
cat ~/coderaft/<project>/coderaft.history

Location: ~/coderaft/<project>/coderaft.history

CategoryPackage Managers
Systemapt, apt-get, dpkg, apk, dnf, yum, pacman, zypper, rpm, brew, snap, flatpak
Pythonpip, pip3, pipx, poetry, uv, conda, mamba, micromamba
Node.jsnpm, yarn, pnpm, bun, deno, corepack
Languagescargo (Rust), go install (Go), gem (Ruby), composer (PHP)
Version Managersnvm, pyenv, rustup, sdk (SDKMAN!), asdf
Manual Installswget, curl (all downloads), make install

Pin exact environment state:

Terminal window
coderaft lock <project> # Create coderaft.lock.json
coderaft verify <project> # Check for drift
coderaft apply <project> # Reconcile to lock

Lock files include: base image digest, all installed packages from supported package managers, registry URLs, and apt/apk sources. The checksum enables fast drift detection.

Store sensitive environment variables in an encrypted vault:

Terminal window
# Initialize vault (one-time setup)
coderaft secrets init
# Store secrets
coderaft secrets set myproject API_KEY
coderaft secrets set myproject DATABASE_URL=postgres://localhost/db
# Import from .env file
coderaft secrets import myproject .env.production
# List secrets (keys only)
coderaft secrets list myproject
# Export for shell
eval $(coderaft secrets export myproject)

Features:

  • AES-256-GCM encryption with PBKDF2 key derivation
  • Master password protection (cannot be recovered if lost)
  • .env file import/export support
  • Stored at ~/.coderaft/secrets.vault.json

Secrets are designed to be injected into islands as environment variables at runtime.

View exposed ports for running islands:

Terminal window
# Show all ports for all islands
coderaft ports
# Show ports for specific project
coderaft ports myproject

Features:

  • Auto-detects 20+ common services (PostgreSQL, Redis, MongoDB, etc.)
  • Generates clickable URLs for web ports
  • Tabular output with service hints

Configure ports in coderaft.json:

{
"ports": ["3000:3000", "5432:5432", "6379:6379"]
}