Running Services
Quick Start
The simplest way to run all services is with start-openfactory.sh, which manages screen sessions for each backend:
./start-openfactory.sh startThis starts all three backends and the frontend in separate screen sessions.
Manual Startup
If you prefer to start services individually (useful for debugging):
elster-terminal-backend
cd elster-terminal-backend
source venv/bin/activate
uvicorn app.main:app --host 0.0.0.0 --port 8000 --reload --reload-exclude 'data/*'cto-gui-libvirt-backend
cd cto-gui-libvirt-backend
source venv/bin/activate
uvicorn app.main:app --host 0.0.0.0 --port 8001 --reload --reload-exclude 'data/*'web-terminal-backend
cd web-terminal-backend
source venv/bin/activate
uvicorn app.main:app --host 0.0.0.0 --port 8002 --reload --reload-exclude 'data/*'Frontend
cd elster-terminal
npm run devAccessing Services
| Service | URL |
|---|---|
| Frontend (chat UI) | http://localhost:3000 |
| Backend API | http://localhost:8000 |
| Libvirt API | http://localhost:8001 |
| Web Terminal | http://localhost:8002 |
Viewing Logs
If running via screen sessions:
# List sessions
screen -ls
# Attach to a session
screen -r elster-terminal-backend
screen -r cto-gui-libvirt-backend
screen -r web-terminal-backend
# Detach from a session: Ctrl+A, then DBuild logs are written to elster-terminal-backend/data/logs/.
Restarting Backends
To restart backend services without interrupting other processes:
./start-openfactory.sh restart-backendsThis restarts elster-terminal-backend, cto-gui-libvirt-backend, and web-terminal-backend.
Stopping Services
./start-openfactory.sh stopService Status
./start-openfactory.sh statusHealth Checks
Verify each service is responding:
# Backend API
curl -s http://localhost:8000/api/health | python3 -m json.tool
# Libvirt backend
curl -s http://localhost:8001/api/health | python3 -m json.tool
# Frontend
curl -s -o /dev/null -w "%{http_code}" http://localhost:3000Next Steps
For a production deployment with SSL, systemd services, and monitoring, see Production Deployment.