Pages

Wednesday, December 13, 2017

How to use Portainer in Docker?

Portainer is a lightweight management UI which allows you to easily manage your Docker host or Swarm cluster.

Setup Portainer in Docker

  1. Double click on Docker app-icon to start Docker engine
  2. Open Terminal on MacOS or Command-line on Windows after Docker is running
  3. Type docker and press enter 
  4. If docker comands gets listed then it is runnning properly, otherwise read logs to debug further
  5. Now type this command to create a container named portainer and run it
    • docker run --name portainer -d -p 9000:9000 --restart always -v /var/run/docker.sock:/var/run/docker.sock -v /Users/abhishekkumar/Documents/Programs/portainer:/data portainer/portainer
    • Here, /Users/abhishekkumar/Documents/Programs can be replaced with your custom path
  6. Open web-browser and go to localhost:9000
  7. A Portainer GUI would open, if everything works fine
  8. Fill up the form by setting admin password
  9. Click on Local Connection tab to connect with locally running portainer webapp
  10. Further explore the app

Stop the running Portainer or start/restart again

  1. Open Terminal and run this command to stop the container
    • docker stop portainer
  2. Run this command to restart the container again
    • docker restart portainer
  3. Or run this command to start the container in future
    • docker start portainer

Saturday, September 23, 2017

App: House Affordability Calculator

We all know that buying a new house takes lot of effort. So to help you, we have developed this tool that will help you to decide the budget you can plan for the new house.

Saturday, August 19, 2017

Bash: Using websocketd as web-terminal

Recently, I have got a work that requires a control over remote machine along with few challenges like that machine can be accessed via Remote Desktop via VPN that goes via corporate Firewall. Now that made it very slow because each incoming or outgoing message packet have to cover the circumference of Earth to reach my system.

So I tried lot many tools out there that could solve my problem. I want to eradicate the use of Remote Desktop to expedite the communication.

Since the remote system is a Windows machine, so I tried using SSH via freesshd and found it pretty good. But I want something that could run over browser as web-app.

Finally I found this great tool that is available for converting any command-line program into web-application using WebSocket.

The tool is websocketd, a WebSocket daemon that takes care of handling the WebSocket connections, launching your programs to handle the WebSockets, and passing messages between programs and web-browser.

There are lot many use cases of this tool but I like to use it as a web-terminal.

So, first get the binary file from websocketd under download section. Then, place somewhere from where you can access it easily or make it globally accessible by adding it's location in environment variable path.

After that you can run this command,

$ ./websocketd --port=8080 --devconsole bash

Then open http://localhost:8080/ in the web browser. If you want to access it from any other machine the just replace the localhost with that system IP address.

Use the system commands in the devconsole to execute any command on that system.

Sunday, May 21, 2017

Bash: Running local web-server on your system

To run a local web-server at a directory, you can use either python, ruby, node.js or php.
You can choose your suitable way out of the below provided options.
Using python
To run the server, go to the directory & execute this command with Python 2
python -m SimpleHTTPServer 8000
or with Python 3
python -m http.server 8000
Using ruby
First, install the ruby gem named 'serve'
sudo gem install serve
To run the server, go to the directory & execute this command
serve 8000
Using node.js
First, install the app named 'http-server'
npm install http-server -g
To run the server, go to the directory & execute this command
http-server ./ -p 8000
You can use any other node based servers as well like puer
Using php
To run the server, go to the directory & execute this command
php -S 0.0.0.0:8000
Note: Press Ctrl-C to quit any of the above listed server

Friday, February 24, 2017

Bash: Automating the cloning of repository


Create this bash file to clone your repository excluding .git, etc. directory or files.
#!/usr/bin/bash
ROOT_DIR="/Users/username/Documents/"

rsync -avzh --delete $ROOT_DIR"/project1/" $ROOT_DIR"/project2" --exclude '.git' --exclude 'README.md' --exclude 'LICENSE' --exclude '.gitignore'

echo "Done!"

Wednesday, January 4, 2017

How to setup Robot Framework on development machine?

Here, I have shared the steps to setup the Robot Framework on a development machine preferrably on MacOSX. 

Steps to setup

  1. Download and install Python from here 
  1. Windows users should target Python v2.7 due to Selenium compatibility while MacOS users can target v2.7 as well as v3.0 or above 
  2. After installation, add it's path in Environment Variables 
  3. Verify it on terminal $ python -V 
  1. Install Robot Framework as instructed here 
  1. Use pip install robotframework as preferred installer on terminal 
  2. Verify it on terminal $ robot --version 
  1. Install Selenium2Library as instructed here 
  1. Use pip install robotframework-selenium2library as preferred installer on terminal 
  2. No dependency related error should remain on terminal while installing this 
  1. Download Geckodriver from here, 
  1. Unzip the package 
  2. Put the executable file at suitable path 
  3. Add that path in Environment Variables 
  4. Verify it on terminal 
geckodriver -b /Applications/Firefox.app/Contents/MacOS/firefox-bin 
  1. Download & install Firefox from here 

How to generate git diff patch?

To understand the process involved in it, we need to first understand the terminologies that is being used in the git.
Suppose you have committed your code in Git repository. Now when you select the particular commit, then you will see something like this
TK-34164 e2e test cases added
Commit: 96f17e85e5b76cff8a6a0332c4f22d10aca3aec6 [96f17e8]
Parents: 56a575c5b8
Author: Abhishek Kumar 
Date: 3 January 2017 at 18:52:06 IST
Labels: HEAD -> feature/TK-34164-configure-robot-framework-into
Here at line #1 is custom message for the commit, after that at line #2 you see a commit-id which is 40 characters long hexadecimal string (SHA-1) and it's short version in square bracket which is 7 characters long. 
SHA-1 (Secure Hash Algorithm 1) produces a 160-bit (20-byte) hash value known as a message digest. A SHA-1 hash value is typically rendered as a hexadecimal number, 40 digits long.
This commit-id is 160-bit SHA-1 hash, uniquely represents the new, post-commit state of the repository. 
Now we need to get the changes of our code, that is known as diff. We can get the diff by using this command.
For single commit
git diff-tree -p {commit} > {filename}
Here, {commit} is a single short commit-id and {filename} is a patch file that could be like patch.diff
For multiple commit
git diff-tree -p {from-commit}..{to-commit} > {filename}
Here, {from-commit}..{to-commit} is a range of short commit-id and {filename} is a patch file that could be like patch.diff
So you need to just replace the portion of string with curly bracket with your specific content.
This way you can generate a patch.diff via git program.
In case you want to merge this patch.diff into the repository, then use the following command
git apply patch.diff
That's it!