ua

command module
v0.0.0-...-3b91d86 Latest Latest
Warning

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

Go to latest
Published: Nov 21, 2019 License: MIT Imports: 12 Imported by: 0

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, 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.

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
app
misc
Package models contains uAssign database models.
Package models contains uAssign database models.
pkg
js
js/console
Package console implements the global JS console object, in the same fashion as in the goja_node repo.
Package console implements the global JS console object, in the same fashion as in the goja_node repo.
simplecrypto
Package simplecrypto implements a simplified interface for encryption and decryption using AES encryption in CFB mode.
Package simplecrypto implements a simplified interface for encryption and decryption using AES encryption in CFB mode.
Package static contains the static HTTP resources served at /static/.
Package static contains the static HTTP resources served at /static/.
line container.qtpl:1 line spec.qtpl:1
line container.qtpl:1 line spec.qtpl:1

Jump to

Keyboard shortcuts

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