As a freelancer, you must be your own IT department. You are responsible for website hosting, backups, version control, project/time-tracking and invoicing. Finding inexpensive and maintainable solutions for these needs can be quite daunting. In this session, I will present an overview open-source solutions for these needs.
4. Open Source Hosting
• LAMP (Linux/Apache/MySQL/PHP) is the
most common
• Webservers: Lighttpd, Nginx, Mongrel
• Databases: PostgreSQL, Firebird, Drizzle,
CouchDB
• Languages: Ruby/Rails, Python, Perl, etc.
Friday, June 19, 2009
5. 4 Types of Hosting
• Shared Hosting
• Virtual Private Server
• Dedicated Server
• Cloud Hosting
Friday, June 19, 2009
6. Shared Hosting
• Cheap, ready-to-go, no technical expertise
needed
• Often over sold, not much control, not
very scalable
• Distributed vs. Traditional
Friday, June 19, 2009
7. Virtual Private Servers
• A chunk of a server is virtualized and made
available to you.
• More power/control than shared hosting
without the cost of dedicated server.
• Managed and Unmanaged.
• Many options: verify that resource
allocation, options meets your needs.
Friday, June 19, 2009
8. Dedicated Server
• You have your own server. More control,
more power.
• Managed and unmanaged.
• Most expensive option.
Friday, June 19, 2009
9. Cloud Hosting
• Dynamically scalable and virtualized
hosting.
• Pay for what you use. Scale up/down very
quickly.
• Technologies vary.
• Google App Engine (java/python), Amazon
EC2, RackspaceCloud (Mosso).
Friday, June 19, 2009
10. Local Hosting
• Your laptop/desktop can act as a web host
• Great for developing, designing and testing
• Not really suitable for a live site
• XAMPP an easy way to start
Friday, June 19, 2009
12. Keys to Success
• Should have both on-site and off-site
backups.
• Automated (if you have to think about it, it
won’t happen regularly)
• Test your system *before* you need it.
Friday, June 19, 2009
13. Local Backups
• rysnc to external drive
• Carbon Copy Cloner on Mac
• Other full-drive backups for Linux
• Complete local backup every week
Friday, June 19, 2009
15. Offsite Backups
• option 1: backup to external drive, then
take offsite (storage, office, friend’s house)
• option 2: backup to online storage (s3,
another server, etc.)
Friday, June 19, 2009
16. Duplicity (+s3)
• Cross-platform (OSX and Linux at least)
• Can use any remote or local store, but I like
Amazon s3
• Duplicity creates encrypted tar-format
volumes and uploads to local or remote server
• Need gpg and other libraries
• http://duplicity.nongnu.org/
Friday, June 19, 2009
18. now automate it
• cron on *nix, osx < 10.4
• put in script in
/etc/cron/{daily/weekly/monthly}
• or use crontab
• launchd on osx >= 10.5
• Lingon, by Peter Borg
• http://tuppis.com/lingon/
Friday, June 19, 2009
21. What is it?
• Stores your project files and manages
changes to those files.
• Makes deploying your projects much easier.
• Maintain a complete history of your
project.
• Just as important as backups.
Friday, June 19, 2009
22. Version Control Software
• git: http://git-scm.com/
• subversion: http://subversion.tigris.org/
• others: bazaar, mercurial, cvs
• lots of software integrates with VCS
Friday, June 19, 2009
23. How to Set up
• Server and client components.
• Can set up on own server.
• Or, use one of many hosted options
(github, devguard, unfuddle, etc.)
• git gui clients: git k, git gui, GitX (mac)
• subversion gui clients: rapidSVN, svnX
(mac), TortoiseSVN (win)
Friday, June 19, 2009
24. Subversion Example
• checking http://svnurl
svn co
out:
.
• commiting changes:
svn commit -m “commit message”
• updating:
svn update .
• get status:
svn status
Friday, June 19, 2009
30. Remember
• Open source isn’t perfect and isn’t
necessarily going to fit all our your needs
• Sometimes you’ll have to go with a
proprietary product
Friday, June 19, 2009
32. Time Tracking
• timebook: python script for time tracking
• kimai: web-based time-tracking
Friday, June 19, 2009
33. Timebook Example
$ t switch writing
$ t in document timebook
$ t out
$ t display
Timesheet writing:
Day Start End Duration Notes
Mar 14, 2009 19:53:30 - 20:06:15 0:12:45 document timebook
20:07:02 - 0:00:01 write home about
timebook
0:12:46
Total 0:12:46
Friday, June 19, 2009