Nov 11, 2006
Earlier this fall, while handling another complaint sent to my managers about Stephen's Web - this one about its unfairly high placement on Google - I commented that I was considering moving the site off the government servers. A good idea, responded my manager. You are required to move the site by November 22. And thus began the current series of articles.
I knew I would not be hosting the site in my living room. I couldn't just use my internet access - internet service providers make it difficult to host services subscriber accounts, and in any case the upstream bandwith from a home account is too low. So I would be paying a hosting service to provide the web server and internet access for my new website.
This is how downes.ca used to work. Before I moved to my current job, my site was housed at an Edmonton hosting service (which has now disappeared). I have also always used a hosting service for my political site, NewsTrolls.com, a company called JaguarPC, based in Houston. I have always been happy with them, so I sent their sales office an email saying I was looking at moving my website to a Jaguar PC account.
Time went by. No answer. I mentioned my plans to a few people. Daniel Lemire, who used to work with us but who now teaches at Université du Québec à Montréal (UQAM), suggested CSoft. In the end, I decided to go with them and arranged to set up an account.
What factors did I consider?
Speed. First and foremost, I wanted a fast connection to the internet. This means that they had to have good bandwidth, and they had to provide enough processor power in their computers. The site says nice things ('direct connectivity to the global MCI backbone') but for me the main thing I looked at was the performance of their own site. I also looked at the speed of Daniel's site. Both loaded very quickly, so I was satisfied with the speed.
Software. I wanted a Linux operating system and an Apache server. This is a standard setup and known to be very fast. I also wanted PERL and PHP support for my scripts. And I knew I would need a MySQL database. These are all free and open source applications. This configuration, known as 'LAMP', is very popular and generally your best bet for internet services (people who argue otherwise have a very large burden of proof). Mailing list support was a bonus.
Disk Space. I needed to make sure I had enough disk space. One of the problems I had with the government web server was running out of disk space. This would also be a problem on a hosted account, because every megabyte costs money. As we'll see later, I have been planning for this for a while. Even so, I wanted to get as much disk space as possible.
Domain Names. I wanted not only to host downes.ca but also some other sites. I want to (finally) start my Logical Fallacies site. I want to move NewsTrolls. And I have some other projects forthcoming that will require their own domain names. CSoft has a package that lets me set up a site withy multiple domain names.
Support. When the site goes down, I want it to be brought back online again. With JaguarPC I have had a good response time. With my government server, I generally had to wait until office hours to get problems fixed (we only have one person to do this (I do not get access to the server room to do it myself) and I couldn't justify calling him evenings and weekends). Most hosting services offer uptime guarantees and 24 hour service.
Spam Filters. My email host will be moving as well, which means I may again be subjected to the deluge of spam (I can get thousands of spam messages in a day, one of the pitfalls of having a very public email address). CSoft has serveral types of spam filters. Still, I'm sure this will be a learning experience for me.
Philosophy. I want to work with people who have roughly the same beliefs about software and technology I do. Here is what CSoft posts on its website: "We use high-quality open-source software exclusively. A large portion of our profits are given back to the open-source community through sponsorships and mainly our own open-source projects." Perfect. These are people I am happy to work with.
Location. While I like JaguarPC, I have no attachment to Houston. I wanted to locate at a Canadian server. When I found out that CSoft is located on the Magdalene Islands, that was a clincher.
CSoft satisfied these criteria. I went to the signup page and picked the content package that suited the needs of a large high-traffic website with a lot of local and custom software: the Advanced (dedicated web server) package. This is a comprehensive server package with the works, everfything I could want or need. The cost to me: $35 a month, plus tax. Cheaper, in other words, than a mobile phone.
Once I had signed up and after my credit card cleared, I received the following from CSoft (I've blacked out some details, for the sake opf security):
Hosting services operate a cluster of servers, and my website is on a specific machine. This part of the email tells me which machine my website will be hosted on.
Hosting services always offer a panel (the most popular is called cpanel, which is what Jaguar uses). CSoft uses its own panel. You have to log in with your account named and password to view it. When creating a new website, the first thing you should do is to learn how to use the panel. This is how you control the basic structure of your website.
The 'shell' is the user interface to your server computer. You use a 'terminal emulator' to access the shell. The display is what you would see if your server were right in front of you. Except, of course, because it's a server, you don't get any windows or icons. All you get is a prompt, from which you can type commands. Because my server is a Linux machine, it will run Linux commands (which are mostly the same as Unix commands). If it were a Windows machine, I would be typing DOS commands.
The terminal emulator accesses the shell via a protocol. When I first started with internet computing, the most populat protocol was Telnet. Today, however, because of security requirements, you should use something called SSH, or Secure Shell.
If you are working with Windows at home, you need to download and install an SSH client. The most popular Windows shell client is called PuTTY. This is a free and open source application, and it installs just like any other Windows program.
Since I am working on Linux at home, I simply open up a terminal window and type ssh xxxxxx@yyyyyy.com where xxxxxx is my userid and yyyyyy is the domain name. The computer I am connecting to sends a fingerprint, which I compare to the one I have on file, to prove that it is the real computer (hackers sometimes redirect logins with 'man in the middle' spoofs). Once my SSHG client accepts the fingerprint, it allows me to send the password, and them I am connected with a command line prompt.
In Canada.ca domain names are managed by an organization called the Canadian Internet Registration Authority (CIRA). Because I own some .ca domains, I am a CIRA member. CIRA board members are elected annually by the CIRA membership. CIRA delegates the actual transactions to CIRA Registrars. If you want to create or modify a .ca domain, you have to work through a registrar. I use a service called Arvic, based in Alberta (a holdover from my earlier server).
All internet domain names are associated with an internet address. In order to associate the domain name I own - downes.ca - with the internet address I just bought - 205.205.221.37 - I need to place an entry into a Domain Name Server (DNS). The internet is managed by a worldwide network of these servers; each DNS sends information about the domain names it knows about to the other domain name servers. The way this works is that CSoft will, when I ask them, put in a line saying "downes.ca = 205.205.221.37". Then, if I want other computers to recognize this, I designate the CSoft DNS as my 'primary' DNS. This is the information I give to Arvic - I tell Arvic that the CSoft DNS at NS128.CSOFT.NET is my primary DNS. I also designate a secondary DNS, in case the first one crashes.
I didn't switch downes.ca right away - I have a lot more setup work to do first. But since I wasn't using fallacies.ca anywhere, I could move it right away. I made the entry into Arvic and waited a day for the address to take hold and the primary DNS sent the internet address around the world.
I went into the panel and created a mailbox for myself. Then I created an email address, 'stephen@downes.ca', which I associated with the mailbox (I also made 'stephen@fallacies.ca' which points to the same box). Note that the new mailbox won't start receiving mail addressed to 'downes.ca' until I change the primary DNS for downes.ca at Arvic. More on email later.
I've already covered shell access. File Transfer Protocol (FTP) is the main way I will upload files (such as software applications, photos or web pages) to my new website. To use FTP, you need an FTP client. In Windows, I use 'WS FTP'. You can get a free limited edition (WS-FTP LE') but I decided to pay them back in the days when I had a software budget, so I use WS-FTP Pro when I'm on Windows. Another popular FTP client is Filezilla, but it never worked properly with the NRC servers).
On Linux, I use an FTP client called gftp - it's usually installed for you, but on Ubuntu Linux, which I installed a couple of days ago, I found I actually had to download and install it separately. I found that for CSoft, I couldn't simply connect directly via FTP. In gftp, I has to select SSH protocol in order to connect. That's a bit unusual, but it worked fine and it is, of course, secure.
Well I don't need that, nor do I need (for now) the stuff about CVS and Subversion, so I finished with the email from CSoft.
The whole process took a few days, off and on (you can't rush some of this stuff). But now, as I write, I have a nice empty hosted website, an internet address, and a mailbox. I've made one domain name point to the site and I'm preparing to have some others. I've become familiar with the panel, but other than setting up a mailbox, I haven't changed any settings. I tested my SSH and FTP connection to the site, uploading a test version of the Fallacies home page (that's what's there now). I am ready to begin building my site.
I knew I would not be hosting the site in my living room. I couldn't just use my internet access - internet service providers make it difficult to host services subscriber accounts, and in any case the upstream bandwith from a home account is too low. So I would be paying a hosting service to provide the web server and internet access for my new website.
This is how downes.ca used to work. Before I moved to my current job, my site was housed at an Edmonton hosting service (which has now disappeared). I have also always used a hosting service for my political site, NewsTrolls.com, a company called JaguarPC, based in Houston. I have always been happy with them, so I sent their sales office an email saying I was looking at moving my website to a Jaguar PC account.
Time went by. No answer. I mentioned my plans to a few people. Daniel Lemire, who used to work with us but who now teaches at Université du Québec à Montréal (UQAM), suggested CSoft. In the end, I decided to go with them and arranged to set up an account.
What factors did I consider?
Speed. First and foremost, I wanted a fast connection to the internet. This means that they had to have good bandwidth, and they had to provide enough processor power in their computers. The site says nice things ('direct connectivity to the global MCI backbone') but for me the main thing I looked at was the performance of their own site. I also looked at the speed of Daniel's site. Both loaded very quickly, so I was satisfied with the speed.
Software. I wanted a Linux operating system and an Apache server. This is a standard setup and known to be very fast. I also wanted PERL and PHP support for my scripts. And I knew I would need a MySQL database. These are all free and open source applications. This configuration, known as 'LAMP', is very popular and generally your best bet for internet services (people who argue otherwise have a very large burden of proof). Mailing list support was a bonus.
Disk Space. I needed to make sure I had enough disk space. One of the problems I had with the government web server was running out of disk space. This would also be a problem on a hosted account, because every megabyte costs money. As we'll see later, I have been planning for this for a while. Even so, I wanted to get as much disk space as possible.
Domain Names. I wanted not only to host downes.ca but also some other sites. I want to (finally) start my Logical Fallacies site. I want to move NewsTrolls. And I have some other projects forthcoming that will require their own domain names. CSoft has a package that lets me set up a site withy multiple domain names.
Support. When the site goes down, I want it to be brought back online again. With JaguarPC I have had a good response time. With my government server, I generally had to wait until office hours to get problems fixed (we only have one person to do this (I do not get access to the server room to do it myself) and I couldn't justify calling him evenings and weekends). Most hosting services offer uptime guarantees and 24 hour service.
Spam Filters. My email host will be moving as well, which means I may again be subjected to the deluge of spam (I can get thousands of spam messages in a day, one of the pitfalls of having a very public email address). CSoft has serveral types of spam filters. Still, I'm sure this will be a learning experience for me.
Philosophy. I want to work with people who have roughly the same beliefs about software and technology I do. Here is what CSoft posts on its website: "We use high-quality open-source software exclusively. A large portion of our profits are given back to the open-source community through sponsorships and mainly our own open-source projects." Perfect. These are people I am happy to work with.
Location. While I like JaguarPC, I have no attachment to Houston. I wanted to locate at a Canadian server. When I found out that CSoft is located on the Magdalene Islands, that was a clincher.
CSoft satisfied these criteria. I went to the signup page and picked the content package that suited the needs of a large high-traffic website with a lot of local and custom software: the Advanced (dedicated web server) package. This is a comprehensive server package with the works, everfything I could want or need. The cost to me: $35 a month, plus tax. Cheaper, in other words, than a mobile phone.
Once I had signed up and after my credit card cleared, I received the following from CSoft (I've blacked out some details, for the sake opf security):
Thank you for your interest in our service. Your account "xxxxxx" is now active on our server array named XXXXXX.CSOFT.NET. Your assigned v-host IP address is 205.205.221.37. For future reference, you will find the service addresses and other information specific to your server array on the page: http://xxxxxx.csoft.net/.
Hosting services operate a cluster of servers, and my website is on a specific machine. This part of the email tells me which machine my website will be hosted on.
Our account management tool, csoftadm, will allow you to configure your e-mail service, domain names, databases, sub-accounts and other settings. The web-based interface to csoftadm is accessible from: https://csoft.net/cgi/xxxxxx.fcgi
Hosting services always offer a panel (the most popular is called cpanel, which is what Jaguar uses). CSoft uses its own panel. You have to log in with your account named and password to view it. When creating a new website, the first thing you should do is to learn how to use the panel. This is how you control the basic structure of your website.
We also provide a command-line interface which is invoked as "csoftadm" from your shell. a step-by-step guide to the command-line csoftadm is available at http://www.csoft.net/docs/cadm/.
The 'shell' is the user interface to your server computer. You use a 'terminal emulator' to access the shell. The display is what you would see if your server were right in front of you. Except, of course, because it's a server, you don't get any windows or icons. All you get is a prompt, from which you can type commands. Because my server is a Linux machine, it will run Linux commands (which are mostly the same as Unix commands). If it were a Windows machine, I would be typing DOS commands.
The terminal emulator accesses the shell via a protocol. When I first started with internet computing, the most populat protocol was Telnet. Today, however, because of security requirements, you should use something called SSH, or Secure Shell.
If you are working with Windows at home, you need to download and install an SSH client. The most popular Windows shell client is called PuTTY. This is a free and open source application, and it installs just like any other Windows program.
Since I am working on Linux at home, I simply open up a terminal window and type ssh xxxxxx@yyyyyy.com where xxxxxx is my userid and yyyyyy is the domain name. The computer I am connecting to sends a fingerprint, which I compare to the one I have on file, to prove that it is the real computer (hackers sometimes redirect logins with 'man in the middle' spoofs). Once my SSHG client accepts the fingerprint, it allows me to send the password, and them I am connected with a command line prompt.
To transfer a domain name to your account, use the interface provided by your domain registrar to change the nameserver addresses to:
NS128.CSOFT.NET (205.205.221.3)
NS261.CSOFT.NET (205.205.221.2)
Nameserver changes usually take under 48 hours to take effect throughout
the Internet. Until then, you can use the following address to access
your web space: http://205.205.221.37/.
In Canada.ca domain names are managed by an organization called the Canadian Internet Registration Authority (CIRA). Because I own some .ca domains, I am a CIRA member. CIRA board members are elected annually by the CIRA membership. CIRA delegates the actual transactions to CIRA Registrars. If you want to create or modify a .ca domain, you have to work through a registrar. I use a service called Arvic, based in Alberta (a holdover from my earlier server).
All internet domain names are associated with an internet address. In order to associate the domain name I own - downes.ca - with the internet address I just bought - 205.205.221.37 - I need to place an entry into a Domain Name Server (DNS). The internet is managed by a worldwide network of these servers; each DNS sends information about the domain names it knows about to the other domain name servers. The way this works is that CSoft will, when I ask them, put in a line saying "downes.ca = 205.205.221.37". Then, if I want other computers to recognize this, I designate the CSoft DNS as my 'primary' DNS. This is the information I give to Arvic - I tell Arvic that the CSoft DNS at NS128.CSOFT.NET is my primary DNS. I also designate a secondary DNS, in case the first one crashes.
I didn't switch downes.ca right away - I have a lot more setup work to do first. But since I wasn't using fallacies.ca anywhere, I could move it right away. I made the entry into Arvic and waited a day for the address to take hold and the primary DNS sent the internet address around the world.
The mail server address is xxxxxx.CSOFT.NET. The POP3, IMAP, IMAPS and SMTP services are supported. IMAP will only work with mailboxes in IMAP format and POP3 will only work with mailboxes in POP format (you can configure that using csoftadm).
To send messages using our SMTP server, your mail client must have the SMTP autentication (SMTP AUTH) option enabled in your mail client settings. We also provide the mail clients pine(1), mutt(1) and elm(1). They can be run directly on the server from your shell account.
I went into the panel and created a mailbox for myself. Then I created an email address, 'stephen@downes.ca', which I associated with the mailbox (I also made 'stephen@fallacies.ca' which points to the same box). Note that the new mailbox won't start receiving mail addressed to 'downes.ca' until I change the primary DNS for downes.ca at Arvic. More on email later.
To log in to your shell account, point your ssh client to the address xxxxxx.CSOFT.NET. The first time you connect, we recommend that you verify that the SSH server fingerprint matches the one listed on http://xxxxxx.csoft.net/.
We highly recommend the use of SFTP over standard (insecure) FTP, and SFTP clients are available to most major platforms (for links to free clients, see http://www.csoft.net/docs/).
Standard FTP is still supported and the FTP server will respond to the address xxxxxx.CSOFT.NET. However, we ask that you let us know what your home IP address is because insecure FTP connections are denied by default.
I've already covered shell access. File Transfer Protocol (FTP) is the main way I will upload files (such as software applications, photos or web pages) to my new website. To use FTP, you need an FTP client. In Windows, I use 'WS FTP'. You can get a free limited edition (WS-FTP LE') but I decided to pay them back in the days when I had a software budget, so I use WS-FTP Pro when I'm on Windows. Another popular FTP client is Filezilla, but it never worked properly with the NRC servers).
On Linux, I use an FTP client called gftp - it's usually installed for you, but on Ubuntu Linux, which I installed a couple of days ago, I found I actually had to download and install it separately. I found that for CSoft, I couldn't simply connect directly via FTP. In gftp, I has to select SSH protocol in order to connect. That's a bit unusual, but it worked fine and it is, of course, secure.
Additional shell/FTP accounts (subaccounts) can be configured using csoftadm. To define exactly which data subaccounts can read or modify, you can use standard Unix groups and permissions. Unix groups can be managed from csoftadm as well (if you are not familiar with that, please see the Documentation section on our website).
Well I don't need that, nor do I need (for now) the stuff about CVS and Subversion, so I finished with the email from CSoft.
The whole process took a few days, off and on (you can't rush some of this stuff). But now, as I write, I have a nice empty hosted website, an internet address, and a mailbox. I've made one domain name point to the site and I'm preparing to have some others. I've become familiar with the panel, but other than setting up a mailbox, I haven't changed any settings. I tested my SSH and FTP connection to the site, uploading a test version of the Fallacies home page (that's what's there now). I am ready to begin building my site.