In this series of articles, we will be setting up a new development environment under Debian 7.5. This will include a base server operating system, GUI Desktop Environment, Network Time Server, DNS server, Mail server, Database server and Web server. We will also be hosting our own Version Control System with integration into a Project Management and Issue and Time Tracking solution. We will also require our own Certificate Authority to request and sign digital certificates to use on our internal network and web server.
Operating System and Desktop Environment
As stated above, we will be making use of Debian 7.5 for our server operating system and either log in remotely to a shell over SSH or directly via a Desktop Environment.
Our Desktop Environment will be LXDE, due to the fact that it is designed to work well with computers on the lower end of the performance spectrum – in my case, I am running my Debian server on a Pentium IV 1.7GHz with 512MB of RAM and 2 drives of 40GB and 160GB each – the latter being used as my data drive and the former to host the operating system. We’ll also be installing Gnome and KDE as well, which are both very common Desktop Environments.
For us to be able to broadcast Coordinated Universal Time on our internal network, we will be using NTP.
For us to be able to host domains on our internal network, we will be using Bind.
For us to be able to provide data storage for our applications, we will be making use of
- Relational databases;
- In-memory object caching; and
- NoSQL databases.
The web front-ends will be hosted on Apache 2.2, with virtual hosts configured for each specific web front-end and SSL certificates securing the communication between the web front-ends and clients.
Java Application Server
Tomcat will provide our Java Application Server functionality.
Version Control System
Project Management and Issue and Time Tracking
The articles will be published in the order below and as these become available, I will update the list with the appropriate links.
- Installing the base operating system
- Tweaking the base operating system
- Enabling remote access with OpenSSH
- Installing LXDE Desktop Environment
- Installing Gnome Desktop Environment
- Installing KDE Desktop Environment
- Installing Bind
- Setting up local domains
- Installing NTP
- Installing Exim 4 with ClamAV, SpamAssassin and Greylistd support
- Installing OpenSSL
- Creating a Certificate Authority
- Installing the Certificate Authority
- Creating a Certificate
- Installing MySQL Server
- Installing Memcached
- Installing MongoDB
- Installing Apache with PHP5 and SSL support
- Setting up Apache Virtual Hosts
- Installing a Certificate on a Virtual Host
- Installing Tomcat and Java Development Tools
- Installing Zend Framework
- Installing Apigility
- Installing phpMyAdmin and enabling access over HTTPS
- Installing phpMemcachedAdmin and enabling access over HTTPS
- Installing RockMongo and enabling access over HTTPS
- Installing Subversion and enabling access over HTTPS
- Installing Mercurial and enabling access over HTTPS
- Installing Redmine and enabling access over HTTPS
At the end of this series, we will have a comprehensive development server for internal use. A note on this, we are setting up the server behind an existing firewall making use of the 192.168.100.x range of IP addresses.