MyOS - Develop and Share Linux Environments
If you like the project, please remember to star it so we can grow the community!
If you want your environment listed in the showcase, please submit a PR
Uses Docker + Docker Compose to provide a consistent and reproducible build environment. Base image assumes the minimum while still being useful out of the box.
Everything depends on
myos base Docker image. This image is available on Dockerhub, but you may also build it using the included Dockerfile.
OSX Users: For display forwarding to work, you'll need to have X11 Quartz. It's crappy and I'd love to find an alternative.
Ctrl-D is the most sure fire way of getting out of the container
Clone the repo
$ git clone https://github.com/rylandg/myos.git
Alias the CLI or add it to your
Create a template environment with empty config files
$ myos init ./somepath/ $ ls somepath vim tmux zsh docker-compose.yml
Enter directory and create your environment
$ cd somepath $ myos create testmyos
Connect to the environment via ssh
$ myos connect testmyos
Bring down the environment when you're done (this can lose data)
$ myos remove testmyos
Assuming you've already installed the tool, my personal configuration can be used to test out MyOS.
- Clone my personal MyOS config
$ git clone https://github.com/rylandg/rylandg-myosfiles
- Create a MyOS based on my setup
$ cd rylandg-myosfiles $ myos create rysetup $ myos connect rysetup
myos init <dir>
Creates the initial templates that the default
docker-compose.yml expects. These are...
# vim vim/binds.vim vim/helpers.vim vim/plugins.vim vim/vimrc # zsh zsh/.zlogin zsh/.zprofile zsh/.zshenv zsh/.zshrc # tmux tmux/tmux_saves tmux/install_tmux.sh tmux/tmux.conf
These files are empty (for the most part). You're expected to add your environment specific settings.
myos create <envName>
docker-compose up -d from the current directory
myos connect <envName>
Connects to a previously created MyOS environment
myos restart <envName>
Restart a previously created MyOS environment
myos remove <envName>
Remove a running MyOS environment
- Configuring locale and colors
- Creating a non-root user and setting necessary permissions
- Setups OpenSSH for password-less login
- Enabling X11 Display server
- Super light, highly optimized base Ubuntu image
- Mechanism to "safely" run multiple processes
- Init for running your user process as PID > 1
- OpenSSH server out of the box
- Vim8 with clipboard support
- Latest Tmux built from source
- XAuth and XDisplay packages for clipboard support
- Very vim focused, would like to see if its possible to support other editors (definitely Emacs)
- Needs CLI command that allows you to copy another users MyOS environment