The first release since the March alpha. Five months of work, most of it aimed at the gap between "this looks interesting" and "this is running on my server".
Run it
git clone https://github.com/Cloud-City-Computing/c2.git
cd c2
cp .env.example .env # fill in DB and admin credentials; SMTP is optional
docker compose -f docker-compose-release.yml upThat pulls ghcr.io/cloud-city-computing/cloud-codex:0.9.0. No Node, no build step. The image is linux/amd64; Apple Silicon runs it under Docker Desktop's emulation.
Highlights
- Boots without SMTP configured, and a fresh admin lands inside a seeded workspace instead of an empty screen.
- A real first-run experience for every user including the admin, with invitations that can carry a squad, role and permissions so an invited user joins with something to see.
- Workspace ownership is a foreign key. It used to be an email in a TEXT column, so changing your email silently lost ownership and a deleted user's address could be inherited by a later signup.
- Notifications, activity and watches, a live GitHub integration with bidirectional document sync, draw.io diagrams, inline comments and real-time collaborative editing on Yjs.
Fixed since the alpha
- Same-origin API requests work in production. A self-hosted instance following
.env.examplerejected its own browser's writes with a 500, which made logging in impossible. - Navigating away from the editor no longer blanks the application, and a render error now shows a recoverable message rather than an empty window.
PORTis honoured through the app, Docker andstart.sh, and the boot log no longer claims success on a failed bind.- The production image is 679 MB, down from 2.86 GB.
Known gaps
linux/amd64only.- The licence is a bespoke source-available text, so GitHub reports it as "Other". That is deliberate: you may view, modify and self-host for personal, educational or internal business use, and commercial use as a hosted service needs a separate licence from Cloud City Computing, LLC. See LICENSE.
- There is no migration runner. Upgrading an existing install means applying
migrations/*.sqlby hand before switching versions; see docs/deployment.md. - Documents edited only over the collaborative WebSocket have a stale
html_contentuntil an explicit save, which affects search, exports and GitHub pushes.
Full detail in CHANGELOG.md.