uAssign is a system to manage *NIX terminal assignments. It uses Docker containers to build real, interactive environments to an instructor's specification, proxying a terminal over WebSockets to a user. The full lifecycle of containers is managed, including the ability for users to disconnect and reconnect with their state preserved.
More information about this project can be found in my
as well as in the
This repo has switched to Go modules to make this project more accessible,
as it can now be cloned and built outside of
$GOPATH. For now, dependencies
are still vendored to make mounting the project into a Docker container
docker-compose.yml) work without resolving and downloading dependencies
at startup or mounting the host's mod cache directly.
vendor/ is correctly populated.
gomod.sh script to properly update
go.mod. This project uses
Docker libraries pretty heavily, the most important of which are not yet
compatible with Go modules.
gomod.sh will update the more troubled
Docker libraries to
go.uuid with the gofrs fork,
update the rest of the libraries normally, then populate
should be equivalent to using
dep with some dependencies constrained
kallax gen doesn't work outside of
should not be run without cloning the repo into
$GOPATH first when generating
models/kallax.go. This will need to be done until the upstream fixes it
(unlikely, as they seem to have dropped the project), or this project switches
to another ORM.
TODOs relating to Go modules:
- Switch from the unmaintained
mattes/migrateto the maintained
golang-migrate/migrate; was blocked by needing modules for versioned import paths.
- Run all
go generatetooling with