Skip to content
Development Notes
Branch: master
Clone or download
Pull request Compare This branch is 17 commits behind geraldvillorente:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

Software Development Notes


Please fork and contribute.

Orchestration, Configuration Management & DevOps Tools:

  • Packer - Packer is a tool for creating identical machine images for multiple platforms from a single source configuration.
  • Puppet - Server automation framework and application
  • Vagrant - Vagrant is free and open-source software for creating and configuring virtual development environments.
  • Chef - A systems integration framework, built to bring the benefits of configuration management to your entire infrastructure.
  • - is a service that allows you to pregenerate typical Vagrant builds.
  • PuPHPet - A simple GUI to set up virtual machines for Web development.
  • DevStack - A documented shell script to build complete OpenStack development environments.
  • GetProtobox - Protobox is a layer on top of vagrant and a web GUI to setup virtual machines for web development. A single YAML document controls everything that is installed on the virtual machine.
  • Ansible - Ansible is an open-source software platform for configuring and managing computers. It combines multi-node software deployment, ad hoc task execution, and configuration management.
  • Mcollective - The Marionette Collective AKA MCollective is a framework to build server orchestration or parallel job execution systems.
  • Pallet - Infrastructure definition, configuration and management via a Clojure DSL.
  • Salt - It's written in Python.
  • Slaughter - It's written in Perl.
  • CFEngine - Lightweight agent system. Configuration state is specified via a declarative language.

Configuration Management Database:

  • i-doit - Open Source IT Documentation and CMDB.
  • iTop - A complete open source, ITIL, web based service management tool.
  • Ralph - Asset management, DCIM and CMDB system for large Data Centers as well as smaller LAN networks.
  • Clusto - Helps you keep track of your inventory, where it is, how it's connected, and provides an abstracted interface for interacting with the elements of the infrastructure.

Continuous Integration:

  • Jenkins - An extendable open source continuous integration server.
  • Hudson - An extendable open source continuous integration server.
  • Apache Continuum - Apache Continuum™ is an enterprise-ready continuous integration server with features such as automated builds, release management, role-based security, and integration with popular build tools and source control management systems.
  • Apache Gump - Continuous integration tool.
  • Travis CI - A distributed build system for the open source community.
  • Circle CI
  • CruiseControl.rb - Lightweight, Ruby-based continuous integration server that can build any codebase, not only Ruby; released under Apache Licence 2.0.
  • CABIE - (Continuous Automated Build and Integration Environment) Open source, written in Perl.
  • Buildbot - Python/Twisted-based continuous build system.
  • CruiseControl - CruiseControl is both a continuous integration tool and an extensible framework for creating a custom continuous build process.
  • GitLab CI - Based off of ruby. They also provide GitLab, which manages git repositories.
  • Go - Open source agile build and release management software.
  • Vlad the Deployer - Deployment automation.

Build and Deployment:

  • Maven - Apache Maven is a software project management and comprehension tool.
  • Capistrano - A remote server automation and deployment tool written in Ruby.
  • Docker - Docker is an open platform for developers and sysadmins to build, ship, and run distributed applications, whether on laptops, data center VMs, or the cloud.
  • Flyway - Flyway is an open-source database migration tool.
  • Gradle - Gradle is build automation evolved. Gradle can automate the building, testing, publishing, deployment and more of software packages or other types of projects such as generated static websites, generated documentation or indeed anything else.

Software Containers:

  • Docker - Open platform for developers and sysadmins to build, ship, and run distributed applications.
  • OpenVZ - Container-based virtualization for Linux.
  • Virtualbox - VirtualBox is a powerful x86 and AMD64/Intel64 virtualization product for enterprise as well as home use.

Network Management:

  • GestióIP - An automated web based IPv4/IPv6 IP Address Management tool.
  • rConfig - Another network device configuration management tool.
  • RANCID - Monitors network device's configurarion and maintain history of changes.


  • PHPMemcacheAdmin - This program allows to see in real-time (top-like) or from the start of the server, stats for get, set, delete, increment, decrement, evictions, reclaimed, cas command, as well as server stats (network, items, server version) with googlecharts and server internal configuration.
  • openNMS - OpenNMS is the world’s first enterprise grade network management application platform developed under the open source model.
  • Nagios - Computer system, network and infrastructure monitoring software application.
  • Munin - Networked resource monitoring tool.
  • New Relic - Offers a performance management solution enabling developers to diagnose and fix application performance problems in real time.
  • Datadog – Datadog is a monitoring service for IT, Operations and Development teams who write and run applications at scale, and want to turn the massive amounts of data produced by their apps, tools and services into actionable insight.
  • Cacti - Web-based network monitoring and graphing tool.
  • Zabbix - Enterprise-class software for monitoring of networks and applications.
  • Cabot - Monitoring and alerts, similar to PagerDuty.
  • check_mk - Collection of extensions for Nagios.
  • Icinga - Fork of Nagios.
  • LibreNMS - fork of Observium.
  • Monit - Small Open Source utility for managing and monitoring Unix systems.
  • Naemon - Network monitoring tool based on the Nagios 4 core with performance enhancements and new features.
  • Observium - SNMP monitoring for servers and networking devices. Runs on linux.
  • OMD - The Open Monitoring Distribution.
  • Opsview - Based on Nagios 4, Opsview Core is ideal for small IT and test environments.
  • Riemann - Flexible and fast events processor allowing complex events/metrics analysis.
  • Sensu - Open source monitoring framework.
  • Sentry - Application monitoring, event logging and aggregation.
  • Shinken - Another monitoring framework.
  • Thruk - Multibackend monitoring webinterface with support for Naemon, Nagios, Icinga and Shinken.
  • Xymon - Network monitoring inspired by Big Brother.
  • Zenoss - Application, server, and network management platform based on Zope.
  • Scout - Server Monitoring built for developers.
  • Pingdom - Pingdom is an essential tool for tracking the performance and uptime of website/server.
  • AppFirst - Complete visibility for the modern data center.
  • Librato - Librato provides a cloud-based service for devops, development and operations teams, allowing you to monitor and understand the metrics that impact your business at all levels of the stack.
  • AlertBot Website Monitoring - AlertBot is an industry leader in website and server monitoring service.
  • Dotcom-Monitor - Dotcom-Monitor instantly alerts you when your website has problems.
  • AppDynamics - AppDynamics is the next generation application performance management solution that simplifies the management of complex, business-critical apps.
  • Site 24x7 - Web Infrastructure monitoring service.

Metric & Metric Collection:

  • Dashing - Ruby gem that allows for rapid statistical dashboard development. An all HTML5 approach allows for big screen displays in data centers or conference rooms.
  • InfluxDB - Open source distributed time series database with no external dependencies.
  • Graphite - Open source scaleable graphing server.
  • Collectd - System statistic collection daemon.
  • Diamond - Python based statistic collection daemon.
  • Grafana - A Graphite & InfluxDB Dashboard and Graph Editor.
  • Collectl - High precision system performance metrics collecting tool.
  • Statsd - Application statistic listener.
  • Ganglia - High performance, scalable RRD based monitoring for grids and/or clusters of servers. Compatible with Graphite using a single collection process.
  • RRDtool - Open source industry standard, high performance data logging and graphing system for time series data.
  • OpenTSDB - Store and server massive amounts of time series data without losing granularity.
  • StatHat - StatHat is a custom stat tracking tool. One line of code gets you beautiful charts, automatic alerts, and more.

Log Management:

  • Logstash - Tool for managing events and logs.
  • Elasticsearch - A Lucene Based Document store mainly used for log indexing, storage and analysis.
  • Kibana - Visualize logs and time-stamped data.
  • Flume - Distributed log collection and aggregation system.
  • Heka - Stream processing system which may be used for log aggregation.
  • Graylog2 - Pluggable Log and Event Analysis Server with Alerting options.
  • Fluentd - Log Collector and Shipper.

IT Asset Management:

  • GLPI - Information Resource-Manager with an additional Administration Interface.
  • OCS Inventory NG - Enables users to inventory their IT assets.
  • RackTables - Datacenter and server room asset management like document hardware assets, network addresses, space in racks, networks configuration.
  • Ralph - Asset management, DCIM and CMDB system for large Data Centers as well as smaller LAN networks.
  • Snipe IT - Asset & license management software.


  • Courier IMAP/POP3 - Fast, scalable, enterprise IMAP and POP3 server.
  • Cyrus IMAP/POP3 - Intended to be run on sealed servers, where normal users are not permitted to log in.
  • Dovecot - IMAP and POP3 server written primarily with security in mind.
  • Qpopper - One of the oldest and most popular server implementations of POP3.

Physical Server & VM Management:

  • Foreman - Foreman is a complete lifecycle management tool for physical and virtual servers.
  • Forego - Foreman in Go
  • Honcho - a python clone of Foreman. For managing Procfile-based applications.
  • Vagrant - Vagrant is free and open-source software for creating and configuring virtual development environments.

Linux Managers & Hosting Control Panels:

  • Ajenti - Control panel for Linux and BSD.
  • Feathur - VPS Provisioning and Management Software.
  • ISPConfig - Hosting control panel for Linux.
  • VestaCP - Hosting panel for Linux but with Nginx.
  • Virtualmin - Control panel for Linux based on webmin.
  • ZPanel - Control panel for Linux, BSD, and Windows.
  • Webmin - Webmin is a web-based interface for system administration for Unix.


  • Bind - The most widely used name server software.
  • djbdns - A collection of DNS applications, including tinydns.
  • Designate - DNS REST API that support several DNS servers as its backend.
  • dnsmasq - A lightweight service providing DNS, DHCP and TFTP services to small-scale networks.
  • Knot - High performance authoritative-only DNS server.
  • NSD - Authoritative only, high performance, simple name server.
  • PowerDNS - DNS server with a variety of data storage back-ends and load balancing features.
  • Unbound - Validating, recursive, and caching DNS resolver.
  • Yadifa - Lightweight authoritative Name Server with DNSSEC capabilities powering the .eu top-level domain.



  • Exim - Message transfer agent (MTA) developed at the University of Cambridge.
  • Haraka - A high-performance, pluginable SMTP server written in JavaScript.
  • MailCatcher - Ruby gem that deploys a simply SMTP MTA gateway that accepts all mail and displays in web interface. Useful for debugging or development.
  • Maildrop - Open Source disposable email SMTP server, also useful for development.
  • OpenSMTPD - Secure SMTP server implementation from the OpenBSD project.
  • Postfix - Fast, easy to administer, and secure Sendmail replacement.
  • Qmail - Secure Sendmail replacement.
  • Sendmail - Message transfer agent (MTA).

Version Control:

  • Fossil - Distributed version control with built-in wiki and bug tracking.
  • Git - Distributed revision control and source code management (SCM) with an emphasis on speed.
  • GNU Bazaar - Distributed revision control system sponsored by Canonical.
  • Mercurial - Another distributed revision control.
  • Subversion - Client-server revision control system.


  • OpenVPN - Uses a custom security protocol that utilizes SSL/TLS for key exchange.
  • Pritunl - OpenVPN based solution. Easy to set up.
  • SoftEther - Multi-protocol software VPN with advanced features
  • sshuttle - Poor man's VPN.
  • strongSwan - Complete IPsec implementation for Linux.
  • tinc - Distributed p2p VPN.
  • [ZeroTier One] ( - Network Virtualization Everywhere



  • Apache - Most popular web server.
  • Cherokee - Lightweight, high-performance web server/reverse proxy.
  • Lighttpd - Web server more optimized for speed-critical environments.
  • Nginx - Reverse proxy, load balancer, HTTP cache, and web server.
  • uWSGI - The uWSGI project aims at developing a full stack for building hosting services.


  • DokuWiki - Simple to use and highly versatile wiki that doesn't require a database.
  • ikiwiki - A wiki compiler.
  • Mediawiki - Used to power Wikipedia.
  • MoinMoin - An advanced, easy to use and extensible WikiEngine with a large community of users.
  • TiddlyWiki - Complete interactive wiki in JavaScript.


  • fpm - Versatile multi format package creator.
  • omnibus-ruby - Full stack, cross distro packaging software (Ruby).
  • packman - Full stack, cross distro packaging software (Python).
  • ghr - Easily ship your project to your user using Github Releases (Go).


  • Column-Family
    • Apache HBase - Hadoop database, a distributed, big data store.
    • Cassandra - Distributed DBMS designed to handle large amounts of data across many servers.
  • Document Store
    • CouchDB - Ease of use, with multi-master replication document-oriented database system.
    • ElasticSearch - Java based database, popular with log aggregation, and email archiving projects.
    • MongoDB - Another document-oriented database system.
    • RavenDB - Document based database with ACID/Transactional features.
    • RethinkDB - Open source distributed document store database, focuses on JSON.
  • Graph
    • FlockDB - Twitter's distributed, fault-tolerant graph database.
    • Neo4j - Open source graph database.
  • Key-Value
    • LevelDB - Google's high performance key/value database.
    • Redis - Networked, in-memory, key-value data store with optional durability.
    • Riak - Another fault-tolerant key-value NoSQL database.

Distributed Filesystems:

  • Ceph - Distributed object store and file system.
  • DRBD - Disributed Replicated Block Device.
  • GlusterFS - Scale-out network-attached storage file system.
  • HDFS - Distributed, scalable, and portable file-system written in Java for the Hadoop framework.
  • Lustre - A type of parallel distributed file system, generally used for large-scale cluster computing.
  • MooseFS - Fault tolerant, network distributed file system.
  • MogileFS - Application level, network distributed file system.
  • OpenAFS - Distributed network file system with read-only replicas and multi-OS support.
  • TahoeLAFS - secure, decentralized, fault-tolerant, peer-to-peer distributed data store and distributed file system.
  • XtreemFS - XtreemFS is a fault-tolerant distributed file system for all storage needs.


  • Firebird - True universal open source database.
  • Galera - Galera Cluster for MySQL is an easy-to-use high-availability solution with high system up-time, no data loss, and scalability for future growth.
  • MariaDB - Community-developed fork of the MySQL.
  • MySQL - Most popular RDBMS server.
  • Percona Server - Enhanced, drop-in MySQL replacement.
  • PostgreSQL - Object-relational database management system (ORDBMS).
  • PostgreSQL-XL - Scalable Open Source PostgreSQL-based database cluster.
  • SQLite - Library that implements a self-contained, serverless, zero-configuration, transactional SQL DBS.


  • Clonezilla - Partition and disk imaging/cloning program.
  • Fog - Another computer cloning solution.
  • Redo Backup - Easy Backup, Recovery and Restore.

Cloud Computing:

  • Archipel - Manage and supervise virtual machines using Libvirt.
  • CloudStack - Cloud computing software for creating, managing, and deploying infrastructure cloud services.
  • Eucalyptus - Open source private cloud software with AWS compatibility.
  • OpenNebula - An user-driven cloud management platform for sysadmins and devops.
  • OpenStack - Open source software for building private and public clouds.
  • The Foreman - Foreman is a complete lifecycle management tool for physical and virtual servers. FOSS.
  • Cobbler - Cobbler is a Linux installation server that allows for rapid setup of network installation environments.
  • Mesos - Develop and run resource-efficient distributed systems.

Cloud Orchestration:

  • Cloudify - Open source TOSCA-based cloud orchestration software platform written in Python and YAML.
  • Juju - Cloud orechestration tool which manages services as charms, YAML configuration and deployment script bundles.
  • MCollective - Ruby framework to manage server orchestration, developed by Puppet labs.
  • Overcast - Deploy VMs across different cloud providers, and run commands and scripts across any or all of them in parallel via SSH.
  • Rundeck - Simple orchestration tool.
  • Salt - It's written in Python.

Cloud Storage:

  • git-annex assistant - A synchronised folder on each of your OSX and Linux computers, Android devices, removable drives, NAS appliances, and cloud services.
  • [ownCloud](ht+ - Provides universal access to your files via the web, your computer or your mobile devices.
  • Seafile - Another Open Source Cloud Storage solution.
  • SparkleShare - Provides cloud storage and file synchronization services. By default, it uses Git as a storage backend.
  • Swift - A highly available, distributed, eventually consistent object/blob store.
  • Syncthing - Open Source system for private, encrypted and authenticated distrobution of data.
  • Dropbox - dropbox for business.

Collaborative Software:

  • Citadel/UX - Collaboration suite (messaging and groupware) that is descended from the Citadel family of programs.
  • EGroupware - Groupware software written in PHP.
  • Kolab - Another groupware suite.
  • SOGo - Collaborative software server with a focus on simplicity and scalability.
  • Zimbra - Collaborative software suite, that includes an email server and web client.
  • - makes IRC logs awesome.
  • Slack - a platform for team communication.
  • Hipchat - bring your team to life.
  • Trello - is the free, flexible, and visual way to organize anything with anyone.
  • Hackpad - Collaborate instantly.


  • Fail2Ban - Scans log files and takes action on IPs that show malicious behavior.

Docker Tools:

  • Flynn
  • Fig - fig up.
  • Flocker - Flocker can migrate a container and its associated volume from one physical node to another and re-route network traffic.
  • Kdocker-Web - a Web-based UI for dockers management. (MIT)


  • Selenium
  • JMeter
  • Mercury
  • Apache AB
  • Siege
  • Simpletest

Code Analysis:

  • Code Sniffer
  • Sonar

Linux Utility:

  • htop
  • ntop
  • top
  • mytop
  • grep
  • awk
  • sed
  • tree
  • fgrep
  • netstat
  • whois
  • whoami,
  • vmstat
  • trap
  • atop
  • apachetop
  • nmon
  • rsync
  • tailf
  • watch
  • nmap
  • screen
  • ack
  • find
  • bash


  • Geany
  • Sublime
  • Eclipse
  • Gedit
  • Vim / Vi
  • Nano
  • PhpStorm



  • Devel - A suite of modules containing fun for module developers and themers.
  • Drush - Drush is a command-line shell and scripting interface for Drupal, a veritable Swiss Army knife designed to make life easier for those who spend their working hours hacking away at the command prompt.
  • Drush Deployment Manager - This module is focused on deployment of drupal instances using tags. You can deploy using github repo from any branches and tag it per deployment. If deployment status is not ok you can roll back to any previous tags.
  • - Evaluate Drupal projects online
  • DrupalVDD - Vagrant Drupal Development (VDD) is fully configured and ready to use development environment built with VirtualBox, Vagrant, Linux and Chef Solo provisioner.
  • Masquerade - The masquerade module is designed as a tool for site designers and site administrators. It allows a user with the right permissions to switch users.
  • Dreditor - Dreditor (short for "Drupal editor" and pronounced /'dɹɛdɪtə/) started as a simple idea for a (greasemonkey) browser user script to help module maintainers, Drupal core maintainers, and developers in general to review patches on
  • TryDrupal8 - An online Drupal 8 sandbox.

Drupal Hosting:


API Builder:

HTTP Forwarding (Local Tunnel to Web):

Real-Time Engine:


  • DadaMail - Mailing List Manager, written in Perl.
  • phpList - Newsletter manager written in PHP.
  • phpList - phpList is one of the most popular open source mailing list manager that has a capability of sending newsletters, news, messages to a huge number of subscribers.
  • OpenEMM - OpenEMM is a feature-rich web-based enterprise application for email marketing, newsletters and service mails (transaction mails and event or time triggered mails).

Ticketing systems:

  • Bugzilla - General-purpose bugtracker and testing tool originally developed and used by the Mozilla project.
  • Cerb - A group-based e-mail management project built with a commercial open source license.
  • Flyspray - Web-based bug tracking system written in PHP.
  • MantisBT - Another web-based bug tracking system.
  • osTicket - Open source support ticket system.
  • Otrs - A free and open-source trouble ticket system software package that a company, organization, or other entity can use to assign tickets to incoming queries and track further communications about them.
  • Request Tracker - Ticket-tracking system written in Perl.
  • TheBugGenie - Open source ticket system with extremely complete users rights granularity.


  • mitmproxy - A Python tool used for intercepting, viewing and modifying network traffic. Invaluable in troubleshooting certain problems.
  • Sysdig - Capture system state and activity from a running Linux instance, then save, filter and analyze.

Project Management:

Software Development Methodologies:

  • Waterfall
  • Prototype model
  • Incremental
  • Iterative
  • V-Model
  • Spiral
  • Scrum
  • Cleanroom
  • RAD
  • DSDM
  • UP
  • XP
  • Agile
  • Lean
  • Dual Vee Model
  • TDD
  • BDD
  • FDD
  • DDD
  • MDD

Software Development Core Activities:

  • Requirements - Encompasses those tasks that go into determining the needs or conditions to meet for a new or altered product, taking account of the possibly conflicting requirements of the various stakeholders, analyzing, documenting, validating and managing software or system requirements.
  • Specification - A document that clearly and accurately describes the essential technical requirements for items, materials, or services including the procedures by which it can be determined that the requirements have been met.
  • Architecture - Set of structures needed to reason about the software system, which comprises the software elements, the relations between them, and the properties of both elements and relations.
  • Construction - It is the detailed creation of working, meaningful software through a combination of coding, verification, unit testing, integration testing, and debugging.
  • Design - The process by which an agent creates a specification of a software artifact, intended to accomplish goals, using a set of primitive components and subject to constraints.
  • Testing - An investigation conducted to provide stakeholders with information about the quality of the product or service under test.
  • Debugging - A methodical process of finding and reducing the number of bugs, or defects, in a computer program or a piece of electronic hardware, thus making it behave as expected.
  • Deployment - All of the activities that make a software system available for use.
  • Maintenance - The modification of a software product after delivery to correct faults, to improve performance or other attributes.

Some extra technique:

$ natpmpc -a 9077 9000 tcp 36000 - which will forward 9077 to 9000 for 3600 seconds.



SVN Tip:

svn status | grep -e '^ G ' | awk '{print $2}' | xargs svn revert

Git Tip:



Sysadmin related books.


  • Atom - A hackable text editor from Github.
  • Brackets - Open source code editor for web designers and front-end developers.
  • Eclipse - IDE written in Java with an extensible plug-in system.
  • Geany - GTK2 text editor.
  • GNU Emacs - An extensible, customizable text editor-and more.
  • Haroopad - Markdown editor with live preview.
  • ICEcoder - Code editor awesomeness, built with common web languages.
  • jotgit - Git-backed real-time collaborative code editing.
  • Lime - Aims to provide an open source solution to Sublime Text
  • Vim - A highly configurable text editor built to enable efficient editing.


You can’t perform that action at this time.