My dockerfiles, dotfiles, scripts and random daimons! http://svaksha.github.io/yaksha

SVAKSHA 1faac48de5 fixed error 3 years ago
dockerfiles 1b75b029fb more updates and moved the private stuff to the private repo. 3 years ago
home 1faac48de5 fixed error 3 years ago
scripts 2ecf3c5e0a split the language installation 3 years ago
.gitignore 2ecf3c5e0a split the language installation 3 years ago
.install.conf.yaml 2ecf3c5e0a split the language installation 3 years ago
LICENSE.md f87408587d cleanup 3 years ago
README.md 586f86ff83 cleanup 3 years ago
todo.md 2ecf3c5e0a split the language installation 3 years ago
yaks-apt-firewall.sh 0a1f7be045 cleanup 3 years ago
yaks-apt-install-testing.sh 0a1f7be045 cleanup 3 years ago
yaks-apt-install.sh 0a1f7be045 cleanup 3 years ago
yaks-apt-uninstall.sh 0a1f7be045 cleanup 3 years ago
yaks-apt-update.sh 5b96e37813 minor change 3 years ago
yaks-backup.py 0a1f7be045 cleanup 3 years ago
yaks-mail-todo.sh 0a1f7be045 cleanup 3 years ago
yaks-rpm-install.sh b2c94fb248 [todo] suse automation with zypper 3 years ago
yakshara-gccpy-aptinstall.sh 0a1f7be045 cleanup 3 years ago
yakshara-julia-aptinstall.sh 0a1f7be045 cleanup 3 years ago
yakshara-julia-aptupdate.sh 0a1f7be045 cleanup 3 years ago
yakshara-langs-aptinstall.sh 0a1f7be045 cleanup 3 years ago

README.md

YAKSHA

My personal automation daimons!

Each time I installed and set up a new machine it was hard to remember every configuration setting I had changed and which packages I had installed over two years on the stable version of my Debian/Ubuntu machine. Doing this manually was a huge time-sink and an error-prone process resulting in annoying discrepancies and sometimes, dependency-hell. Enter YAKSHA, meaning "demon" in Sanskrit, my personal automation daimons/daemons for Linux system installation, updation, backups, bash shell scripts, dockerfiles, dotfiles and configuration files. Standardizing my development environment by automating the installation process and organizing the various developer tools was addictive fun!

Change is the only constant in life, so as a programmer I constantly change and (try to) improve the configs and dotfiles in my attempt to keep optimizing the repo organization for ease of maintainence and extensibility. Config and dotfiles are meant to be personally unique for individuals, but if you wish to use this repository code and these configs, follow the installation instructions.

INSTALLATION

To try out these program scripts & dotfiles, fork this repository, review the code, and remove the things you don’t require. Test them before use and most importantly, read the License & Disclaimer : No warranty and/or guarantee for any particular use, express or implied and you agree to use these automation daimons at your own risk and liability!

System Dependencies

At the outset, your Debian/Ubuntu machine should have the following core tools installed : Git and Python. Github offers HTTPS and SSH as transfer protocols or the repo can be downloaded as a zip-file (latest 'master' branch). Tip: You should have uploaded your ssh key to github and have git installed locally before issuing the git commands on the terminal.

  • For SSH protocol use the URL ssh://git@github.com:svaksha/yaksha.git via the clone command: git clone ssh://github.com/svaksha/yaksha.git
  • For HTTPS protocol use the URL https://github.com/svaksha/yaksha.git to clone/pull the repo locally.
  • After the repo is cloned into the ~/yaksha folder, change directory with the command cd yaksha to run the scripts you need. My dotfiles are stored in ~/home with symlinks.

The repository tree for yaksha is structured as follows:

1. Programs

These programs are for package dependencies and OS-tasks:

  • yaks-deb-backup.py :: This daemon will take regular backups of my system using the attic python lib.
  • yaks-deb-install.sh :: An automated system installation shell script for all new Debian/Ubuntu OS machines that installs the following developer stack:
    • Vim, bash, tab completion, curl, git, GNU core utils, etc..
    • Atom, VirtualBox, Vagrant, Docker, etc..
    • Database: MySQL, PostgreSQL, SQLite, MongoDB, etc..
    • Languages: Each programming language as per requirement can be installed via individual scripts given below.
  • yaks-deb-secure-iptables.sh :: A program firewall to secure the machine.
  • yaks-deb-uninstall.sh :: An uninstall script (that should not be used if you dont know what it does).
  • yaks-deb-update.sh :: This daemon automagically updates my Debian/Ubuntu OS.
  • yaks-mail-todo.sh :: Mail the ToDo list.

These programs will install the programming language package dependencies:

  • yakshara-gccpy-install.sh :: Installs the programming language dependencies for C/C++, Fortran and the (scientific) Python developer stack - IPython Notebook, NumPy, Scipy, Pandas, Scikit-Learn, Matplotlib, etc..
  • yakshara-julia-install.sh :: A script for the Julia installation and build process.
  • yakshara-julia-update.sh :: This script updates my Julia installation - I use the master build, so dont use this script if you are not comfortable with some breakage.
  • yakshara-langs-install.sh :: Install programming language dependencies for Go, R, Ruby, Java and JS.

2. Folders

  • ~/yaksha/dockerfiles/ :: My dockerfiles.
  • ~/yaksha/home/ :: Home dotfiles and folders for .atom, .julia, .vim, etc..
  • ~/yaksha/scripts/ :: General scripts.

COPYRIGHT & LICENSE

  • COPYRIGHT© 2005-Now SVAKSHA All Rights Reserved. Copyrights for code when referenced and/or attributed to other people and/or entities belongs to them as listed in the files.
  • The yaksha repository is licensed and distributed under the AGPLv3 License and ALL references, citations, copies and forks of this work must retain the Copyright, Licence (LICENSE.md file), this permission notice and attribute credit.

Feedback

Any suggestions for improvements are welcome via BR's !