Fully secure and scallable remote command executor and manager
rust-teleport is a project created with intention to be a proof of my skills. It can also be used as a solid project template for Rust-based secure and efficient servers. It has MIT license and your free to use parts of the code in your projects.
Create a fully secure and scallable server and command line client with the capability to:
- Remotely start a task on the server. The task is any bash-like command.
- Query the task status.
- Connect to the server and obtain logs (stout and stderr) - both past outputs and a live stream of logs being generated by the process.
- Stop the task.
- List all pending tasks.
In addition to the functional requirements there are also several quality requirements:
- Create automated tests of the API.
- Limit task resources to make sure that processes run by one user do not affect other users.
- Use microservice-like architecture and assume existence of an authorization service.
- Use fully reproducible build system.
- Containerize the application.
Full design document can be found here.
It contains all major decisons for this application and explains why they should be implemented in the given way.
To bild the application using docker:
docker build -t teleport .
To run the application:
docker run -it --rm teleport /bin/bash
Then you can use commands teleport
ad telecli
to run the server and client apps. For help run:
teleport --help
telecli --help