New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

myos

Package Overview
Dependencies
Maintainers
1
Versions
4
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

myos

A fully dockerized development environment

  • 1.0.3
  • latest
  • Source
  • npm
  • Socket score

Version published
Maintainers
1
Created
Source

MyOS - develop and share command line environments

If you like the project, please remember to star it so we can grow the community!

Blog post about MyOS

Dockerhub

If you want your environment listed in the showcase, please submit a PR

High Level

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.

Usage

Assumptions

Everything depends on myos base Docker image. This image is available on Dockerhub, but you may also build it using the included Dockerfile.

The default docker-compose.yml mounts your hosts ~/.ssh/authorized_keys file into the running container. This is what allows the openSSH server to authenticate you when you connect. This means you will need an authorized_keys file in the correct location with any keys you want to be able to use.

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

Setup

  1. Install the CLI
$ npm install -g myos
  1. Create a new template project
$ myos init ./template
$ cd template
  1. Start the container
$ myos create fooName
  1. Connect to the container
$ myos connect

Advanced usage

Assuming you've already installed the tool, my personal configuration can be used to test out MyOS.

  1. Clone my personal MyOS config
$ git clone https://github.com/rylandg/rylandg-myosfiles
  1. Create a MyOS based on my setup
$ cd rylandg-myosfiles
$ myos create rysetup
$ myos connect rysetup

API

Init

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.

Create

myos create <name>

Runs docker-compose up -d from the current directory

Connect

myos connect

Connects to a previously created MyOS environment

Restart

myos restart <name>

Restart a previously created MyOS environment

Remove

myos remove <name>

Remove a running MyOS environment

Features

  • 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
  • ZSH
  • HTop
  • Vim8 with clipboard support
  • Latest Tmux built from source
  • XAuth and XDisplay packages for clipboard support

Issues/planned changes

  • 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
  • Multiple MyOS environments should be able to run simelataneously
  • SSH key for authorized_keys could be autogenerated
  • Potentially move away from NodeJS for CLI

FAQs

Package last updated on 31 May 2019

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc