Note: This repository is a fork of cs50/codespace.
A Docker-based GitHub Codespaces environment for Harvard's CS50 courses. It provides a pre-configured cloud IDE with C, Python, Java, and PHP toolchains, plus custom CS50 VS Code extensions, a VNC-based GUI desktop, and helper utilities -- all ready to use in the browser.
This Codespace image builds on the official CS50 CLI Docker image and adds everything needed for a full CS50 development workflow inside GitHub Codespaces, including glibc sources for debugging, a noVNC virtual desktop, PHP with SQLite support, and curated VS Code extensions.
- Pre-built CS50 environment -- C/C++ (GCC, GDB), Python 3, Java 18, PHP, and SQLite
- Custom VS Code extensions -- CS50-specific IDE features, PHPLiteAdmin, debugging tools, Live Share, and Git auto-commit (gitdoc)
- Virtual desktop (noVNC) -- Run GUI applications (e.g., JavaFX) directly in the browser via X11/VNC
- Helper scripts --
update50for self-updating,postCreateCommandfor workspace bootstrapping, custom prompt and URL rewriting for Codespaces - Smart .gitignore -- Automatically generated to track source files while ignoring binaries and files over 100 MB
- A GitHub account with access to GitHub Codespaces
- Fork this repository to your GitHub account.
- Click the green Code button and select Open with Codespaces.
- Create a new Codespace. The container will build automatically from the Dockerfile.
Once the Codespace is running:
- C programs:
make hello ./hello
- Python programs:
python hello.py
- Flask applications are automatically URL-rewritten for the Codespaces proxy.
- PHPLiteAdmin is available for managing SQLite databases.
- Run
update50in the terminal to pull the latest CS50 environment updates.
| Technology | Purpose |
|---|---|
| Docker | Container image for the development environment |
| Ubuntu (Focal) | Base operating system |
| GCC / GDB | C/C++ compiler and debugger |
| Python 3 | Scripting and CS50 problem sets |
| Java 18 (OpenJDK) | Java development |
| PHP + SQLite | Web development and database management |
| noVNC / X11 | Browser-based virtual desktop for GUI apps |
| VS Code Extensions | CS50 IDE customizations |
This project is licensed under the GNU General Public License v3.0.