Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jakebailey/ua
Docker container powered terminal assignments
https://github.com/jakebailey/ua
containers docker education linux terminal
Last synced: 4 days ago
JSON representation
Docker container powered terminal assignments
- Host: GitHub
- URL: https://github.com/jakebailey/ua
- Owner: jakebailey
- License: mit
- Created: 2017-03-23T03:54:24.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2019-11-21T06:55:40.000Z (about 5 years ago)
- Last Synced: 2024-12-07T06:22:14.837Z (2 months ago)
- Topics: containers, docker, education, linux, terminal
- Language: Go
- Homepage:
- Size: 12.9 MB
- Stars: 3
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# uAssign
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
[master's thesis](https://www.ideals.illinois.edu/handle/2142/101068),
as well as in the `docs` directory.## Developer notes
This repo has switched to Go modules to make this project more accessible,
as it can now be cloned and built outside of `$GOPATH`. When run via
docker-compose, volumes will be created to store downloaded modules and
Go's build cache.Use the `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 `master`, replace `go.uuid` with the gofrs fork,
update the rest of the libraries normally.Note that `kallax gen` doesn't work outside of `$GOPATH`, so `go generate`
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/migrate` to the maintained
`golang-migrate/migrate`; was blocked by needing modules for versioned
import paths.
- Run all `go generate` tooling with `gobin`/`tools.go` for versioning.