This is the Go implementation of the ClassIsland Management Server (CIMS).
- Management API: Manage ClassPlans, TimeLayouts, Subjects, Policies, etc.
- Client API: Serve configuration to ClassIsland clients.
- gRPC Service: Real-time communication (Register, Commands, Heartbeat).
- Service Management: Run as a system service (Windows Service, Systemd, Launchd).
- Single Binary: Easy deployment with SQLite embedded.
- Install Go 1.22+.
- Install
protoc(Protocol Buffers compiler). - Clone the repo.
- Run:
make proto go mod tidy make build
./cims_server startBy default, it listens on HTTP :50050 and gRPC :50051.
Install as a system service to start automatically on boot:
# Install the service
sudo ./cims_server service install
# Start the service
sudo ./cims_server service run
# Stop the service
sudo ./cims_server service stop
# Uninstall the service
sudo ./cims_server service uninstallNote: On Windows, run cmd/powershell as Administrator.
- Database: Defaults to
cims.dbin the current directory (or service directory). Use--db <path>to override. - Ports: Use
--port(HTTP) and--grpc-port(gRPC).
make proto: Generate Go code from.protofiles.make build: Build the binary.internal/model/domain.go: Domain models matching ClassIsland JSON structure.