Welcome to the Apollon Monorepo! This repository uses npm workspaces to manage multiple packages (including a server, webapp, and library) in a single codebase.
# Clone the repository
git clone git@github.com:ls1intum/Apollon.git
cd Apollon
# Use correct Node.js version
nvm install && nvm use
# Install dependencies
npm install
# Build all packages
npm run build
# Start dev stack with hot reload
npm run devThis starts:
- Library build watch (auto-rebuilds on changes)
- Server (tsx watch) on a printed local HTTP port with a matching WebSocket relay port
- Webapp (Vite HMR) on a printed local dev URL
npm run dev also handles local port collisions for the webapp, server, WebSocket relay, and Redis. It reuses an existing local Redis when possible and otherwise starts the local Redis container on a free host port. Docker still needs to be available when no compatible local Redis is already running.
If you need to pin preferred ports, set APOLLON_WEBAPP_PORT, APOLLON_SERVER_PORT, APOLLON_WS_PORT, or APOLLON_REDIS_PORT before running npm run dev.
No .env files needed — defaults match the local setup.
| Component | Technology |
|---|---|
| Library | React, TypeScript, React Flow, Yjs (CRDT), Zustand, Vite |
| Server | Express 5, Redis (RedisJSON), WebSocket relay |
| Webapp | React, TypeScript, Vite, MUI, Tailwind |
| Database | Redis with RedisJSON (diagrams expire after 120 days via native TTL) |
| Reverse Proxy | Caddy (production) |
For complete documentation, setup instructions, and guides, visit:
https://apollon.readthedocs.io/en/latest/
- Getting Started - Requirements and setup
- Development - Project structure and workflow
- Mobile Development - iOS and Android with Capacitor
- Deployment - GitHub Actions and Docker Compose
- Troubleshooting - Common issues
- Node.js (version specified in
.nvmrc) - npm 7+ (for workspace support)
- Docker (for running Redis locally via
npm run devornpm run start:localdb)
We welcome contributions! Please see our Contributing Guide for detailed instructions.