orchestration

module
v0.0.0-...-5607ea2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 1, 2026 License: AGPL-3.0

README

Orchestration server

[!WARNING] This repos is WIP and will have breaking changes and may even have non-working main commits.

This project is the modern rewrite with some changes of laurel-courses-server

Development

This project uses Task. Tools (templ, golangci-lint, gow) are declared in go.mod and invoked via go tool, so only the Go toolchain is required for the targets below; CSS targets additionally need npm.

  • task - format, generate artifacts (templ), lint, vet, test, and build (full local verification).
  • task fmt - format Go, imports, and templ files.
  • task ci - same as task, plus fail on any uncommitted changes (strict pre-push gate).
  • task build - build the server binary (assumes artifacts are already generated; run task or task dev first on a fresh checkout).
  • task dev - generate artifacts, then watch templ, Go, and CSS in parallel.
Git hooks

Optional check-only hooks live under githooks/. Register them with task hooks:install, which sets git's core.hooksPath to the versioned githooks/ directory so the committed scripts run directly (no copies or shims). Remove with task hooks:uninstall. The pre-commit hook checks gofmt/goimports/modernize and templ formatting on staged files; pre-push runs task ci. Bypass either with git commit --no-verify or git push --no-verify. See githooks/README.md for details.

License

This project is licensed under the GNU Affero General Public License v3.0 (AGPLv3).

Directories

Path Synopsis
cmd
server command
api
api/query
Package query provides tag-driven request binding, GORM scopes, pagination, and data access helpers for the API layer.
Package query provides tag-driven request binding, GORM scopes, pagination, and data access helpers for the API layer.
app
audit
Package audit provides a small helper for writing rows to the audit_logs table from request handlers.
Package audit provides a small helper for writing rows to the audit_logs table from request handlers.
audit/cron
Package cron registers background jobs that maintain the audit_logs table.
Package cron registers background jobs that maintain the audit_logs table.
db
forgejo/cron
Package cron registers background jobs that maintain the forgejo_requests table.
Package cron registers background jobs that maintain the forgejo_requests table.
grading
Package grading is a tiny HTTP client for the build/grading service.
Package grading is a tiny HTTP client for the build/grading service.
grading/cron
Package cron registers the scheduled job that notifies the build/grading service when an exercise ends.
Package cron registers the scheduled job that notifies the build/grading service when an exercise ends.
ui

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL