All Projects → robertluwang → portabledevops

robertluwang / portabledevops

Licence: MIT license
A portable devops tool set on windows, easy customization of cmder/console+msys2/cygwin/wsl

Programming Languages

shell
77523 projects

Projects that are alternatives of or similar to portabledevops

bash-zsh-on-windows-cmder
Integration of Bash, ZSH on Windows with Cmder
Stars: ✭ 37 (-30.19%)
Mutual labels:  wsl, cmder
win-gpg-agent
[DEPRECATED] Windows helpers for GnuPG tools suite
Stars: ✭ 214 (+303.77%)
Mutual labels:  wsl, cygwin
Tmux Yank
Tmux plugin for copying to system clipboard. Works on OSX, Linux and Cygwin.
Stars: ✭ 1,941 (+3562.26%)
Mutual labels:  wsl, cygwin
runx
Provide X server on MS Windows with cookie authentication.
Stars: ✭ 67 (+26.42%)
Mutual labels:  wsl, cygwin
Cmder
Lovely console emulator package for Windows
Stars: ✭ 23,148 (+43575.47%)
Mutual labels:  portable, cmder
Sftpgo
Fully featured and highly configurable SFTP server with optional HTTP, FTP/S and WebDAV support - S3, Google Cloud Storage, Azure Blob
Stars: ✭ 3,534 (+6567.92%)
Mutual labels:  portable
memealyzer
Memealyzer is an app built to demonstrate some the latest and greatest Azure tech to dev, debug, and deploy microservice applications.
Stars: ✭ 97 (+83.02%)
Mutual labels:  wsl
Pockint
A portable OSINT Swiss Army Knife for DFIR/OSINT professionals 🕵️ 🕵️ 🕵️
Stars: ✭ 196 (+269.81%)
Mutual labels:  portable
Wagon
免安裝可攜的 Laravel 開發環境
Stars: ✭ 189 (+256.6%)
Mutual labels:  portable
convey
Communication through a serial port or named pipe
Stars: ✭ 46 (-13.21%)
Mutual labels:  wsl
wic
WebSockets in C for Embedded Applications
Stars: ✭ 60 (+13.21%)
Mutual labels:  portable
dotfiles
My shell configuration and scripts. My "dotfiles". ... Over a decade of tuning my environments. ⌚😮🤯
Stars: ✭ 20 (-62.26%)
Mutual labels:  wsl
Libonnx
A lightweight, portable pure C99 onnx inference engine for embedded devices with hardware acceleration support.
Stars: ✭ 217 (+309.43%)
Mutual labels:  portable
osmid
osmid is a tool to bridge MIDI and OSC. It is currently in use in Sonic Pi
Stars: ✭ 63 (+18.87%)
Mutual labels:  portable
Libagar
Cross-Platform GUI Toolkit (stable)
Stars: ✭ 212 (+300%)
Mutual labels:  portable
nitroml
NitroML is a modular, portable, and scalable model-quality benchmarking framework for Machine Learning and Automated Machine Learning (AutoML) pipelines.
Stars: ✭ 40 (-24.53%)
Mutual labels:  portable
Messenger For Desktop
This is not an official Facebook product, and is not affiliated with, or sponsored or endorsed by, Facebook.
Stars: ✭ 2,180 (+4013.21%)
Mutual labels:  portable
Mipp
MIPP is a portable wrapper for SIMD instructions written in C++11. It supports NEON, SSE, AVX and AVX-512.
Stars: ✭ 253 (+377.36%)
Mutual labels:  portable
Pengwin
A Linux distro optimized for WSL based on Debian.
Stars: ✭ 1,415 (+2569.81%)
Mutual labels:  wsl
Boost.simd
Boost SIMD
Stars: ✭ 238 (+349.06%)
Mutual labels:  portable

portabledevops

A portable devops tool set on windows, easy customization of cmder/console+msys2/cygwin/mobaxterm/WSL.

1 Background

Cmder is a software package created out of pure frustration over absence of usable console emulator on Windows. It is based on ConEmu. There are two version of cmder: cmder with own Git for Windows and cmdermini without git and bash. I used cmdermini as lightweight xterm with bash/git from msys or cygwin.

Console is another lightweight windows console enhancement, supports multi-tabs.

Cygwin is a large collection of GNU and Open Source tools which provide functionality similar to a Linux distribution on Windows, also provides substantial POSIX API functionality.

MobaXterm provides all the important remote network tools (SSH, X11, RDP, VNC, FTP, MOSH, ...) and Unix commands (bash, ls, cat, sed, grep, awk, rsync, ...) to Windows desktop, in a single portable exe file. The Unix commands are from cygwin but little bit customized.

MSYS is a collection of GNU utilities such as bash, make, gawk and grep to allow building of applications and programs which depend on traditionally UNIX tools to be present. It is lightweight *NIX shell on windows. The MSYS2 is an independent rewrite of MSYS, based on modern Cygwin (POSIX compatibility layer) and MinGW-w64 with the aim of better interoperability with native Windows software.

WSL The Windows Subsystem for Linux lets developers run GNU/Linux environment -- including most command-line tools, utilities, and applications -- directly on Windows, unmodified, without the overhead of a virtual machine.

2 What is portabledevops?

it is portable practice approach to integrate all portable devops tools into one portable folder running on usb or portable disk

3 portabledevops folder structure sample:

<drive>:\portabledevops\

  • productive tools
qdir/   
7z/   
filezilla/   
scite/                 
sublimetext3/  
kitty/  
  • nix
cygwin64/ 
msys64/
mobaxterm/
  • shell
cmdermini/             
console2/
  • vm and docker tool
dockertoolbox/        

4 portabledevops files list

portabledevops.sh - mini portable all-in-one customization setting for msys2/cygwin64/wsl
dockertoolbox.zip - collection of portable docker toolbox win binary files
README.md - this file   

5 How to setup portabledevops?

It is pretty easy, the idea is to place all portable customization in one place, and flexible to any window DOS replacement - shell terminal like cmder, console etc.

5.1 create portabledevops root folder on USB drive

for example:

L:\portabledevops

5.2 make junction (directory hard link) for “Program Files”

it will make easy to find VirtualBox tools
from cmd.exe

mklink /j  C:\Program_Files  "C:\Program Files"
Junction created for C:\Program_Files <<===>> C:\Program Files
mklink /j  C:\Program_Files_x86 "C:\Program Files (x86)"
Junction created for C:\Program_Files_x86 <<===>> C:\Program Files (x86)

5.3 install portable shell

L:\portabledevops\cmdermini - download and unzip cmdermini from cmder_mini.zip to this folder L:\portabledevops\console2 - download and unzip console2 from console2 zip to this folder

5.4 install portable msys2

  • download msys2-x86_64-xxx.exe from http://msys2.github.io/
  • install to default location C:\msys64
  • copy C:\msys64 to L:\portabledevops\msys64
  • uninstall msys64 from windows
  • launch msys2.exe from L:\portabledevops\msys64 folder
  • at bash shell, install necessary package for dev env on msys2
pacman -Sy base-devel mingw-w64-x86_64-gcc python git zip unzip p7zip
wget -qO- https://bootstrap.pypa.io/get-pip.py | python2

5.5 install portable cygwin64

  • download cygwin64 from https://www.cygwin.com/setup-x86_64.exe
  • move setup-x86_64.exe to L:\portabledevops\cygwin64 folder
  • click setup-x86_64.exe only install wget, choice install folder and package folder to L:\portabledevops\cygwin64,it will install cygwin 64 core package.
  • click Cygwin.bat to launch cygwin bash shell
  • install apt-cyg
wget raw.github.com/transcode-open/apt-cyg/master/apt-cyg
chmod +x apt-cyg
mv apt-cyg /usr/local/bin
which -a apt-cyg
  • install git, python-devel, gcc-g++, curl, zip, unzip
apt-cyg install git python-devel gcc-g++ curl zip unzip
  • install pip
wget -qO- 'https://bootstrap.pypa.io/get-pip.py' | python2

5.6 install portable mobaxterm

  • download mobaxterm from https://mobaxterm.mobatek.net
  • move mobaxterm folder to L:\portabledevops\
  • launch MobaXterm.exe, click Setting->General
  • change persistent root(/) directory to mobaxterm/root
  • change home directory to mobaxterm/home or C:\Users\USERNAME
  • install git, zip
apt-cyg install git zip
  • install pip
wget -qO- 'https://bootstrap.pypa.io/get-pip.py' | python2

6 git setup

  • start cmder bash shell
launch cmder by double click Cmder.exe under cmdermini/ folder 
launch msys64 task from right-bottom menu 

similar for console2 bash shell

  • git user/email setup
$ git config --global user.name "<username>"
$ git config --global user.email "<email for git>"
verify:
$ git config --global --list
  • generate ssh key
$ ssh-keygen -t rsa -C "<email for git>"
empty for passphrase
will generate private ssh key: /home/<username>/.ssh/id_rsa, public key: /home/<username>/.ssh/id_rsa.pub 
  • change permission of private key
chmod 700 /home/<username>/.ssh/id_rsa
  • add private key to ssh agent
$ eval $(ssh-agent -s)
$ ssh-add /home/<username>/.ssh/id_rsa
  • upload id_rsa.pub to github account Settings
copy content of id_rsa.pub to clipboard: 
$ cat /home/<username>/.ssh/id_rsa.pub 
click github Settings/"SSH and GPG keys"/"Add SSH key" button:
paste to Key field, give the Title name, then click "Add SSH key" button.
  • verify ssh connection to github

7 deploy portabledevops

  • place all-in-one portable customization setting to msys2/cygwin/mobaxterm/WSL /etc/profile.d
  • install updated portable docker toolbox

download portabledevops to your home folder,

cd ~ 
wget --no-check-certificate -qO portabledevops.sh 'https://raw.githubusercontent.com/robertluwang/portabledevops/master/portabledevops.sh'
chmod +x portabledevops.sh

7.1 portable msys2/cygwin/mobaxterm

nothing change needed, just place to /etc/profile.d

cp portabledevops.sh /etc/profile.d

re-start terminal session will auto run portabledevops.

7.2 WSL

WSL installed on win10 so it is not portable, but we can integrate portable app from window10 to WSL cli using same tool.

PORTABLEBASH=NO
DEFPORTFOLDER=portabledevops
DEFHOMEDRIVEL=c
DEFVAGRANTHOME=/mnt/c/vagrant

then place to /etc/profile.d,

sudo cp portabledevops.sh /etc/profile.d

re-start terminal session will auto run portabledevops.

7.3 no portable git/msys2

This is new feature, you can directly integrate this portabledevops tool to existing git/msys2/cygwin/mobaxterm which itself is not located at portable folder like L:\portabledevops\msys64, you still can customize the portable folder, below is sample for git/msys2,

PORTABLEBASH=NO
DEFPORTFOLDER=portabledevops
DEFHOMEDRIVEL=c
DEFVAGRANTHOME=/c/vagrant

then place to /etc/profile.d,

cp portabledevops.sh /etc/profile.d

re-start terminal session will auto run portabledevops.

7.4 no portable cygwin/mobaxterm

sample for cygwin/mobaxterm

PORTABLEBASH=NO
DEFPORTFOLDER=portableapps
DEFHOMEDRIVEL=d
DEFVAGRANTHOME=/cygdrive/d/vagrant

then place to /etc/profile.d,

cp portabledevops.sh /etc/profile.d

re-start terminal session will auto run portabledevops.

7.5 optional - deploy portable docker toolbox

cd ~
wget --no-check-certificate -qO dockertoolbox.zip https://github.com/robertluwang/portabledevops/raw/master/dockertoolbox.zip
unzip dockertoolbox.zip
cp dockertoolbox/*  $PORTABLEPATH/dockertoolbox
chmod +x $PORTABLEPATH/dockertoolbox/*.exe

8 add cmder task

msys64 :  set MSYS2_PATH_TYPE=inherit & cmd /c "%ConEmuDir%\..\..\..\msys64\usr\bin\bash --login -i"
cygwin64 :  cmd /c "%ConEmuDir%\..\..\..\cygwin64\bin\bash --login -i -new_console:C:"%ConEmuDir%\..\..\..\cygwin64\Cygwin.ico"
wsl: set "PATH=%ConEmuBaseDirShort%\wsl;%PATH%" & %ConEmuBaseDirShort%\conemu-cyg-64.exe --wsl -cur_console:pm:/mnt
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].