A (Linux) Server for Software Developers
Trac and SubVersioN (SVN) are two tools that I consider to be almost essential for serious software development. As explained in another article, these two tools provide the means to track changes to a software project as well as bugs and tasks to be done. They are useful even with single developer projects. In my own personal development environment, these services are running on a machine running Debian Linux. Debian is due to my own personal preference and past experience in using Linux. Whilst it is perfectly possible to run everything on one machine, having these services on a separate machine automatically provides a backup on a separate machine. That same server could also be used for other tasks, such as being part of a distributed compiler network for faster building of large software projects.
The Proposed Server
This section of the website contains all the details required in order to set up and use a server running Debian Linux. It is assumed that this is for personal use, or for a small business since big companies have a dedicated Information Technology (IT) department that takes care of these kind of tasks so that the developers can get on with their own jobs. The proposed server approximately mirrors my own personal set up, but could easily be modified for anyone else's needs.
The server detailed in this section has the following specifications:
- Secure access via SSL to all resources,
- A Trac server that houses multiple projects (accessed via HTTPS),
- A multi-project SVN server that contains repositories for all the Trac projects (accessed via HTTPS),
- Secure remote terminal access via SSH for remote system administration, and
- Remote X-Windows access via SSH for remote system administration (allows running non-DOS programs and even a full remote desktop session).
Scripts are provided for installation and usage wherever appropriate. The goal of this section of the website is to enable anyone that requires such a server to get it up and running and in service within minutes instead of spending days trying to figure out how each service is to be installed, configured and used. Thus, if anything is hard to understand, or could be achieved more easily, please let me know. Suggestions for improvements are always welcome.
Choosing a Computer to use as Server
The server need not be a top of the line machine. Unless the server is accessed by many people simultaneously, a computer that is several years old should perform well enough. My own server is an old Compaq Presario 900 laptop from 2002 (this article was written in December 2008).
Installing and Using the Server
See the navigation menu on the left for the sub-pages that provide the installation and usage instructions. The most logical place to start would be setting up the Trac and SVN services.
Protecting the Hardware and Data
If the data is critical to success, then it is worth protecting both the hardware, and the data from loss with an Uninterruptible Power Supply (UPS)/surge-protector and off-site backups. More information can be found on this page.
Articles » A (Linux) Server for Software Developers