A recent discussion about providing access to students’ home directories from outside of school reminded me of all of the open source applications we run on our servers. When faced with a new challenge, I frequently turn to the open source community to see if a solution is already available that can be adapted to our situation. As a result, our district has saved hundreds of thousands of dollars in software licensing costs over the last decade. Here are some of the heavy hitters:
When I was hired in 1999, I was asked how I felt about Linux. I had used it… a little. I had installed it and tried to run some server applications with little success. Three months later, I was “in charge” of a Linux server that housed our web site, all of our student accounts, and the staff and student data for the high school. There’s no better motivation to learn something new than someone standing in your doorway saying, “umm… nobody can log in to the computers.”
Today, we have 24 servers running in the district, 21 of which are running Linux. We don’t pay licensing fees for the operating system or most of the applications running on these servers. We don’t buy client access licenses. We have no limits on the number of network accounts we can have. This single decision is saving us thousands of dollars per year. Every time we set up a new server, we install the CentOS distribution of Linux, and we’re ready to go.
On just about every server, we run Samba. Samba makes Windows computers think they’re logging in to a Windows domain, when in fact the server running Linux behind the scenes. While it doesn’t have all of the support for Active Directory that you’d find in a Windows server, it does more than enough to meet our needs.
Apache/MySQL/DHCP Server/DNS Server/PHP/Perl
Apache is a web server. Many web applications use the PHP and/or Perl scripting languages, and MySQL provides a database backend for these applications. Built-in DNS and DHCP servers make network management much easier. The nice thing is that all of these are included in a standard Linux distribution, so you don’t really have to worry about them very much after the initial configuration.
I have not seen a better piece of software for allowing people to quickly and easily post content on the web without having to learn much of anything about how the web works. WordPress is wonderful. Log in. Click “Write”. Type what you have to say. Click Publish. We’re using it for teacher blogs, and we’re adding more all the time. “You really think blogging is the way to go?” a science teachers asked me last week. Yeah, I do. Did I mention that you can download WordPress, install it on your server, and set up as many blogs as you like for free?
Moodle is an online learning platform. It’s used for teaching classes online. You could go out and license Blackboard or WebCT. They’ll charge you a fortune, license by the number of students using it, and place restrictions on how long your subscription lasts. Or, you could use Moodle for free. Want to just play around with online learning without jumping in with both feet? Teach a lesson (or extend a lesson) with Moodle. If you decide it’s not for you, you haven’t wasted thousands of dollars on a software license.
The initial need was to have a calendar that we could use for scheduling our school facilities. A lot of outside groups use our schools in the evenings and on non-school days, and we need a better system to keep track of this use. We’re still working on a solution for that, but in the meantime, I found Multi-Room Booking System. This is a web based calendar that can be used to schedule shared resources. We set up one for each of our buildings, and they’re using it to schedule computer labs, media center spaces, projectors and multimedia devices, and other shared resources. Staff members can see at a glance what is available when, and they can sign up to use any of these spaces or resources when they’re available. Best of all, they can’t double-book resources or remove someone else’s reservation.
You can use online survey tools. Some of them are very good, but they’re also expensive. Others are free or very inexpensive, but they also contain advertising or other undesirable characteristics. With PhpESP, you can create your own online surveys, determine when they’re available, and immediately get the results.
SmbWebClient is a script gets installed on your web server. You configure it to log in to your file server from your web server. This allows students and staff members to access the files on their network accounts from any Internet-connected computer. Students and staff no longer need to email files back and forth. There’s also a reduced need for flash drives and other portable media. Just log in, upload or download your files, and you’re all set.
All right, maybe we don’t quite use MediaWiki as much as we could. But we do have it installed. MediaWiki is the software that runs Wikipedia. Want to create your own collaborative documents? This software will do it. In addition to being able to collaboratively write documents, you also get version tracking and the ability to revert to a previous revision of the document.
Let’s say you want to run your own mail server, but you don’t want to spend a fortune on Microsoft Exchange. Or maybe you realize that Microsoft Outlook is just about the worst email application ever written, and you don’t want to use it. While I won’t say that configuration and management are easy, you can use entirely open source tools to set up your own email implementation. We’re using Xmail for sending and retrieving mail, and Dovecot as an imap server. And OpenLdap provides the directory services.
You’ve set up your own mail server, and now you’re getting all this spam. No problem. Use ASSP. Its user-friendly web-based administration and aggressive tuning options give you a powerful and economical solution for alleviating the spam problem.
When setting up our mail server a few years ago, we made the mistake of installing a groupware package. We picked the best one we could find, and it did work reasonably well. But it was big, and hard to administrate, and the web mail client wasn’t its strong suit. We quickly realized that most of the staff in our district were only using it as a webmail client. They didn’t need the groupware functions. Last fall, we switched to SquirrelMail, a php-based webmail client. It does webmail much better than the groupware solution, and it’s lighter, easier to manage, and faster to load.
There’s no product to download here. But because everything we run uses open standards, and many of the applications are in scripted languages, it’s fairly easy to customize applications to suit our own needs. We use custom generated scripts to archive our email. We use rsync and some scripting to perform nightly backups across the network to backup servers in other buildings. We use scripts to keep all of the accounts on the various servers in sync, so users can log in anywhere with the same username and password. We’ve written tools to interface with our content management system, our user security database, the blogging software, calendar software, and other applications to make them work together. In cases where we’re using proprietary software, we often lack the ability to make these connections between applications. One of the big advantages of using these tools has been the ability to create a fairly seamless, unified system from significantly disparate elements.