feat: add LINBO Docker sync endpoints#17
Open
amolani wants to merge 1 commit intolinuxmuster:lmn73from
Open
Conversation
Add read-only API endpoints for LINBO Docker to sync host data,
configurations, GRUB configs, DHCP exports, and images from the
LMN server.
New file: routers_v1/linbo.py with endpoints:
- GET /v1/linbo/server-info — server network config for auto-setup
- GET /v1/linbo/health — subsystem health check
- GET /v1/linbo/changes — cursor-based delta feed for sync
- POST /v1/linbo/hosts:batch — batch get hosts by MAC
- POST /v1/linbo/startconfs:batch — batch get start.conf files
- POST /v1/linbo/configs:batch — batch get GRUB configs
- GET /v1/linbo/grub-configs — all GRUB configs for a school
- GET /v1/linbo/dhcp/export/isc-dhcp — ISC DHCP config export
- GET /v1/linbo/dhcp/export/dnsmasq-proxy — dnsmasq proxy config
- GET /v1/linbo/images/manifest — image list with checksums
- GET/HEAD /v1/linbo/images/download/{name}/{file} — image download
- PUT /v1/linbo/images/upload/{name}/{file} — chunked image upload
- POST /v1/linbo/images/upload/{name}/complete — finalize upload
All endpoints are read-only (except image upload), school-aware
via ?school= parameter, and require global-administrator role.
Modified: body_schemas.py (add LinboBatchMacs, LinboBatchIds)
Modified: main.py (register linbo router)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds read-only API endpoints under
/v1/linbo/that enable LINBO Docker (the modern caching server replacement) to sync data from the LMN server.These endpoints provide:
devices.csvstart.conf.*and GRUB*.cfgfilessetup.inifor automated Docker setupAll endpoints are read-only (except image upload which stages to
.incoming/), school-aware via?school=parameter, and require the global-administrator role.New Endpoints
/v1/linbo/server-info/v1/linbo/health/v1/linbo/changes/v1/linbo/hosts:batch/v1/linbo/startconfs:batch/v1/linbo/configs:batch/v1/linbo/grub-configs/v1/linbo/dhcp/export/isc-dhcp/v1/linbo/dhcp/export/dnsmasq-proxy/v1/linbo/images/manifest/v1/linbo/images/download/{name}/{file}/v1/linbo/images/upload/{name}/{file}/v1/linbo/images/upload/{name}/{file}/status/v1/linbo/images/upload/{name}/complete/v1/linbo/images/upload/{name}Files Changed
routers_v1/linbo.py(1215 lines) — all LINBO endpointsrouters_v1/body_schemas.py— addedLinboBatchMacsandLinboBatchIdsPydantic modelsmain.py— registeredlinbo.routerContext
This is part of the LINBO Docker project which provides a containerized LINBO caching server as a modern replacement for
linuxmuster-cachingserver-satellite. The endpoints have been running in production on LMN 7.3 since March 2026.Testing
/docs(Swagger UI)