Immutable multi-arch image
Ubuntu 24.04 for linux/amd64 and linux/arm64. Upgrades come from reviewed image tags — not runtime self-update.
Open Source · Self Hosted · Docker Native
AI Development Environment
Run Claude Code, Codex CLI, and your favorite development tools in a self-hosted, immutable Ubuntu 24.04 terminal environment — on amd64 and arm64.
/workspace
# on the Docker host
host$ docker compose up -d
host$ scripts/shell
# inside the container as dev
dev@ai-dev:/workspace$ tmux new -As dev
dev@ai-dev:/workspace$ claude
persistent volumes · docker sock · multi-arch image
A serious Docker-native terminal environment for AI coding agents and everyday development work.
Ubuntu 24.04 for linux/amd64 and linux/arm64. Upgrades come from reviewed image tags — not runtime self-update.
Claude Code, Codex CLI, Oh My ClaudeCode (OMC), Oh My Codex (OMX), and SaladDay cc-switch-cli are preinstalled.
Projects, credentials, caches, logs, models, and backups live in six named volumes that survive container recreate.
Docker CLI, Compose, and Buildx talk to the host docker.sock. Powerful — and intentionally trusted-single-user only.
Node.js, pnpm, Bun, Python/uv, Go, Rust, OpenJDK, GitHub CLI, and common developer utilities ship in the image.
Enter with scripts/shell or scripts/tmux. Keep sessions alive across host SSH disconnects without an in-container SSH daemon.
Terminal-first by design — illustrated below, not presented as product screenshots.
// illustrative panel 1
$ docker compose up -d
$ scripts/shell
$ scripts/exec ai-dev doctor
Keep toolchains, AI CLIs, and project state together. Recreate the container without throwing away /workspace or /config.
// illustrative panel 2
$ docker compose up -d
$ scripts/shell
$ scripts/exec ai-dev doctor
Credentials and tool homes resolve through configuration generations so Claude, Codex, and gh keep working after restarts.
// illustrative panel 3
$ docker compose up -d
$ scripts/shell
$ scripts/exec ai-dev doctor
There is no in-container SSH daemon. Reach your Docker host first, then use scripts/shell or scripts/tmux for the supported dev identity.
Three steps from a trusted Docker host to a ready AI development shell.
01
On a Linux Docker host with Engine, Compose v2, and a working docker.sock:
docker compose up -d 02
Open the supported Zsh session as dev (not a web app URL, not SSH into the container):
scripts/shell
# or durable sessions:
scripts/tmux 03
Authenticate tools as needed, then develop under /workspace with your AI coding agents.
scripts/exec claude auth login
scripts/exec codex login --device-auth Works with your preinstalled AI coding tools. These are packaged CLIs shipped in the image.
Preinstalled CLI for agentic coding. Authenticate with scripts/exec claude auth login and keep state in the active config generation.
Preinstalled OpenAI Codex CLI. Device auth works well on headless servers via scripts/exec codex login --device-auth.
Pinned OMC CLI ships in the image. Project plugin setup is a per-repo Claude Code workflow under /workspace.
User-scope OMX initialization runs offline on fresh config volumes. Project setup stays repository-local under /workspace.
SaladDay headless TUI/scriptable CLI for Claude provider switching — not the desktop GUI of a similar name.
Prerequisites: Linux Docker host, Docker Engine, Compose v2, working /var/run/docker.sock, amd64 or arm64. Default image: docker.io/jerry0510/ai-dev:latest
git clone https://github.com/mufeng510/ai-dev-server.git
cd ai-dev-server docker compose up -d
# optional:
# PUID="$(id -u)" PGID="$(id -g)" TZ=Asia/Shanghai docker compose up -d
# AI_DEV_IMAGE=docker.io/jerry0510/ai-dev:1.2.3 docker compose up -d scripts/shell
# durable tmux session:
scripts/tmux There is no published web app port and no in-container SSH daemon. On a remote machine, reach the Docker host first, then use the scripts above.
Practical deployments on hosts you already control.
Run Claude Code, Codex, and your toolchains in one trusted container on your own machine or server.
Connect to the Docker host from another device, then attach with scripts/shell or scripts/tmux. The container does not expose its own SSH service.
If your NAS or homelab can run Linux Docker with a docker.sock, you can host the environment there under the same security assumptions.
Pin image tags, keep state in named volumes, and recreate containers without rebuilding your personal toolchain from scratch.
An immutable Ubuntu 24.04 terminal development environment distributed as a multi-arch Docker image. It preinstalls AI coding CLIs, language toolchains, and Docker client tools, with durable state in named volumes.
The image stays immutable while projects and credentials live in volumes. You can recreate the container, pin versions, and keep a consistent toolchain without polluting the host user environment.
The image preinstalls Claude Code, Codex CLI, Oh My ClaudeCode (OMC), Oh My Codex (OMX), and SaladDay cc-switch-cli. Authentication is manual and persists in the active /config generation.
If the NAS provides a Linux Docker Engine, Compose v2, and a usable docker.sock on amd64/arm64, yes — under the same trusted single-user security model.
Install project dependencies inside /workspace as usual. Image contents change through reviewed image rebuilds/tags rather than runtime self-updaters.
Projects live in the workspace named volume mounted at /workspace. Configuration and credentials live under /config generations. data, logs, models, and backups have their own volumes.
No. AI Dev Server is terminal-first and does not ship a browser product UI. Compose does not publish an application HTTP port. Enter with scripts/shell or scripts/tmux.
No. The image does not run an SSH daemon. Connect to the Docker host first, then use scripts/shell. Use tmux to retain sessions across host disconnects.
Yes. The project is licensed under the MIT License.
Read CONTRIBUTING.md, keep persistence and security contracts intact, add tests for behavior changes, and open a pull request on GitHub.
Set up your own self-hosted AI development environment today — no account, no subscription, just Docker on a host you trust.