How to host a site
In light of the current desire for a roleplay forum, it seems to be useful to lay down how any of you could host a site and do whatever you want with it. For example, a roleplay forum! Also, maybe if SlayerDuck ever feels less charitable about us, it would be nice to have our own server (so we could host IRC and other things with no guilt).
So let's start with an introduction of what hosting is.
When you visit a site, you type (or follow) a link to a "domain name", such as hypnohub.net. The browser looks up that name in a global database (specific to each top-level domain, for example .net is administered by Verisign, and .de by a German authority, etc), then converts that address to an IP address. That IP address would point to your server, more on this later.
So the first part is that you need to pay to have a domain name, so that you can point a name (like hypnohub.net) to an IP of your choice.
Depending on the hosting company, they can include domain name and hosting in the same package. Don't do that, and run away from these backhanded offers. Vanndril lost a good domain name that he still had to pay (AFAIK) because of such an offer from HostGator (IIRC). It's cheaper and more secure if you order them separatedly.
The prices on domain names vary wildly. While many cost about $10 or less per year, some might cost even a thousand or more. This has no bearing with how popular a top-level domain is - some are popular and cheap, some are obscure and cheap, some are obscure and illogically expensive. Also, your ideal domain name has to be either available or for sale - choose available names, "buying" a name from someone else is too expensive.
Another two quick notes on this - you don't buy them, actually, just rent them and renew each year(s). And they follow a hierarchy in reverse order - the top-level domain is .net, the second-level domain is hypnohub, and if you own hypnohub.net you can have forum.hypnohub.net (you can call that a "subdomain").
What I do is use some site that looks up domains, such as 101domain, and register it from somewhere else if it's cheaper (like an Islandic domain name I once had to register).
For example, <<www.101domain.com/domain-...mp;sa.y=-60&sa=Search|rphub.net is available>> (isn't that a kick-ass name!). You can register from them, or from somewhere else (look online for ".net registrar" and see which company you would trust the most).
Then, you'd need actual servers. Here comes the tricky part, because it's not just one option. There are several types of hostings to choose from. The most common are:
* Shared hosting. The cheapest of all, and for a reason. Your code will run under the same machine and operating system than several other people, you will not have control over your own OS, and you'll be like an user sharing a computer with maybe a hundered other costumers. What I don't like about these types of hostings is that you have no control over the server and can't for example run an irc server on it (usually your only option is to run PHP code in some restricted sandbox mode, on a MySQL database, with server settings that who knows how were set up. Your only access is by filesystem/cPanel. Usual prices are about $5/month.
* Dedicated hosting. The most expensive option, but also for a reason. You own an entire machine on a server rack just for yourself, hosted and taken care of by professionals to be online 24/7. You can do whatever you want, and even can provide them with your own hardware for them to just allocate on their infrastructure. The prices for this vary a lot, because it depends on what kind of computer you want. You can expect that it isn't cheap to have a whole computer rented and taken care of just for you.
* Virtual Private Server or VPS. This is the sweet compromise. In a powerful server (way above a high-end gaming computer) they host several virtual machines, one of which is yours. You are promised a share of processing power and RAM usage (that you choose and pay for accordingly), and unlike shared hosting, you do whatever you want with it, almost as if it were a real physical machine. The prices for this also vary, but you'll see that it's possible to get a good deal for this.
Now, VMs are complicated so just imagine a computer inside a computer. If you've never seen it, look at <<cdn.cultofmac.com/wp-cont...011-09-16-at-12.04.19.png|some screenshot>> and imagine just how cool of a technology that is. On a server though, most of the time you want Linux, as it kicks ass as a server OS.
Here comes another variation: there are several different virtualization technologies, and their costs vary. Two of the most common are OpenVZ and KVM. Let's just say that OpenVZ is cheaper and that you'll be well-served by it (the main advantage of KVM is that you can run Windows on KVM and not on OpenVZ, but again, Windows is not the kind of OS that makes a good server). OpenVZ depends on the OS being able to handle it (Linux does), so generally you'll be presented with a list of choices to choose from. I recommend Ubuntu as it's the most user-friendly and has a huge community.
So you might be wondering how much you'll have to pay for a VPS running a OpenVZ-enabled Ubuntu. It turns out I found one company that has great prices and everyone seems to recommend it, I tried it and liked it - it's called <<ramnode.com|RamNode>>.
You're free to take my word with a grain of salt and instead look for a company you think you'll like more. I do promise that I neither work for them nor I'll post any affiliate link or any other kind of bullshit. I'm really recommending as a happy costumer.
I'm paying $14.19 USD quarterly ($4.73/month) for a server with the following configuration:
* 120GB hard drive space cached by SSDs
* 2 CPU Cores at 3.3GHz
* 512MB RAM (Linux uses about 60MB to run unlike goddamn Windows which would grind to a halt with so little) + 512MB swap partition
* 2 Terabytes monthly bandwidth limit
* 1GB/s max network speed
* One static IPv4 IP and 12 static IPv6 IPs
* Weekly backups
* They allow porn, Minecraft servers, using it as a VPN, etc.
Now, their prices look higher than that. The reason my prices are better is because I googled "RamNode coupom" and used one in particular ("LEB35") which slashes the price by 35%, and it's recurring so it will always be 35% off, lifetime. I confirm that it works for me. Note that the savings will only show up when it's time to pay, so don't worry that when it's time to check out, your price will be that good.
The longer your chosen payment cycle, the cheaper it is, but I went for 3 months anyway, and it's a good compromise for me. Paying each month could cost a bit more in the long run, but that's your choice. Also, 512MB is more than enough for a server, so if you are on a tight budget you might want a 256MB plan, but I just think the price is ok so I went with 512 MB.
Done. You know what to buy. Now what?
Well, a VPS is a Virtual Private Server. Your machine. With shared hosting you can expect some sort of support, but with VPS they'll only help you set up the OS, what you do with it is your business (this means that you're not supposed to call support for things like "how do I set up a forum?").
Maybe you're like me and you like to be in control. Well, here you are. Now how do you control it?
This might sound daunting to anyone who never saw command lines in his life, but a Linux server is managed by console access. You use a SSH client (PuTTY is a great one for Windows) in your computer, and you type commands that run somewhere far away. It looks like this: i.imgur.com/Kr9kdee.png
You might want to read on how the Linux command line works, but let me assure you: it blows the Windows one out of the water. Once you get used to it, it's damn easy and powerful too.
For example, if you've choosen Ubuntu as an OS, you can install software via the APT package manager. How easy is that? Well, let's say you want PhpMyAdmin to manage your database. You install it like this:
Installers are a thing of the past. All of your software will be kept updated for you by your Linux distribution.
You can also install some sort of web-accessible control panel that way too, if that's your thing. Since you own that (virtual) machine, you can do whatever you want.
So you might want to install a forum. Look for some forum solution that you like. If it's written in PHP, your server has to run PHP (alongside a database, usually MySQL, all on top of some HTTP server, like Apache). Unlike shared hosting, this might not be available out of the box, if it's not, just go and install it (look for "install LAMP on Ubuntu" or something - LAMP stands for Linux+Apache+MySQL+PHP).
Your forum package will certainly have an installation guide (such as, "place these files on your server and set X folder as the document root"), and honestly I barely remember these things, it's just a matter of googling as you go along (like "how do I change the document root on Apache").
Whoa, a long post. Thanks to the two of you who read it this far. Any questions just ask.
So let's start with an introduction of what hosting is.
When you visit a site, you type (or follow) a link to a "domain name", such as hypnohub.net. The browser looks up that name in a global database (specific to each top-level domain, for example .net is administered by Verisign, and .de by a German authority, etc), then converts that address to an IP address. That IP address would point to your server, more on this later.
So the first part is that you need to pay to have a domain name, so that you can point a name (like hypnohub.net) to an IP of your choice.
Depending on the hosting company, they can include domain name and hosting in the same package. Don't do that, and run away from these backhanded offers. Vanndril lost a good domain name that he still had to pay (AFAIK) because of such an offer from HostGator (IIRC). It's cheaper and more secure if you order them separatedly.
The prices on domain names vary wildly. While many cost about $10 or less per year, some might cost even a thousand or more. This has no bearing with how popular a top-level domain is - some are popular and cheap, some are obscure and cheap, some are obscure and illogically expensive. Also, your ideal domain name has to be either available or for sale - choose available names, "buying" a name from someone else is too expensive.
Another two quick notes on this - you don't buy them, actually, just rent them and renew each year(s). And they follow a hierarchy in reverse order - the top-level domain is .net, the second-level domain is hypnohub, and if you own hypnohub.net you can have forum.hypnohub.net (you can call that a "subdomain").
What I do is use some site that looks up domains, such as 101domain, and register it from somewhere else if it's cheaper (like an Islandic domain name I once had to register).
For example, <<www.101domain.com/domain-...mp;sa.y=-60&sa=Search|rphub.net is available>> (isn't that a kick-ass name!). You can register from them, or from somewhere else (look online for ".net registrar" and see which company you would trust the most).
Then, you'd need actual servers. Here comes the tricky part, because it's not just one option. There are several types of hostings to choose from. The most common are:
* Shared hosting. The cheapest of all, and for a reason. Your code will run under the same machine and operating system than several other people, you will not have control over your own OS, and you'll be like an user sharing a computer with maybe a hundered other costumers. What I don't like about these types of hostings is that you have no control over the server and can't for example run an irc server on it (usually your only option is to run PHP code in some restricted sandbox mode, on a MySQL database, with server settings that who knows how were set up. Your only access is by filesystem/cPanel. Usual prices are about $5/month.
* Dedicated hosting. The most expensive option, but also for a reason. You own an entire machine on a server rack just for yourself, hosted and taken care of by professionals to be online 24/7. You can do whatever you want, and even can provide them with your own hardware for them to just allocate on their infrastructure. The prices for this vary a lot, because it depends on what kind of computer you want. You can expect that it isn't cheap to have a whole computer rented and taken care of just for you.
* Virtual Private Server or VPS. This is the sweet compromise. In a powerful server (way above a high-end gaming computer) they host several virtual machines, one of which is yours. You are promised a share of processing power and RAM usage (that you choose and pay for accordingly), and unlike shared hosting, you do whatever you want with it, almost as if it were a real physical machine. The prices for this also vary, but you'll see that it's possible to get a good deal for this.
Now, VMs are complicated so just imagine a computer inside a computer. If you've never seen it, look at <<cdn.cultofmac.com/wp-cont...011-09-16-at-12.04.19.png|some screenshot>> and imagine just how cool of a technology that is. On a server though, most of the time you want Linux, as it kicks ass as a server OS.
Here comes another variation: there are several different virtualization technologies, and their costs vary. Two of the most common are OpenVZ and KVM. Let's just say that OpenVZ is cheaper and that you'll be well-served by it (the main advantage of KVM is that you can run Windows on KVM and not on OpenVZ, but again, Windows is not the kind of OS that makes a good server). OpenVZ depends on the OS being able to handle it (Linux does), so generally you'll be presented with a list of choices to choose from. I recommend Ubuntu as it's the most user-friendly and has a huge community.
So you might be wondering how much you'll have to pay for a VPS running a OpenVZ-enabled Ubuntu. It turns out I found one company that has great prices and everyone seems to recommend it, I tried it and liked it - it's called <<ramnode.com|RamNode>>.
You're free to take my word with a grain of salt and instead look for a company you think you'll like more. I do promise that I neither work for them nor I'll post any affiliate link or any other kind of bullshit. I'm really recommending as a happy costumer.
I'm paying $14.19 USD quarterly ($4.73/month) for a server with the following configuration:
* 120GB hard drive space cached by SSDs
* 2 CPU Cores at 3.3GHz
* 512MB RAM (Linux uses about 60MB to run unlike goddamn Windows which would grind to a halt with so little) + 512MB swap partition
* 2 Terabytes monthly bandwidth limit
* 1GB/s max network speed
* One static IPv4 IP and 12 static IPv6 IPs
* Weekly backups
* They allow porn, Minecraft servers, using it as a VPN, etc.
Now, their prices look higher than that. The reason my prices are better is because I googled "RamNode coupom" and used one in particular ("LEB35") which slashes the price by 35%, and it's recurring so it will always be 35% off, lifetime. I confirm that it works for me. Note that the savings will only show up when it's time to pay, so don't worry that when it's time to check out, your price will be that good.
The longer your chosen payment cycle, the cheaper it is, but I went for 3 months anyway, and it's a good compromise for me. Paying each month could cost a bit more in the long run, but that's your choice. Also, 512MB is more than enough for a server, so if you are on a tight budget you might want a 256MB plan, but I just think the price is ok so I went with 512 MB.
Done. You know what to buy. Now what?
Well, a VPS is a Virtual Private Server. Your machine. With shared hosting you can expect some sort of support, but with VPS they'll only help you set up the OS, what you do with it is your business (this means that you're not supposed to call support for things like "how do I set up a forum?").
Maybe you're like me and you like to be in control. Well, here you are. Now how do you control it?
This might sound daunting to anyone who never saw command lines in his life, but a Linux server is managed by console access. You use a SSH client (PuTTY is a great one for Windows) in your computer, and you type commands that run somewhere far away. It looks like this: i.imgur.com/Kr9kdee.png
You might want to read on how the Linux command line works, but let me assure you: it blows the Windows one out of the water. Once you get used to it, it's damn easy and powerful too.
For example, if you've choosen Ubuntu as an OS, you can install software via the APT package manager. How easy is that? Well, let's say you want PhpMyAdmin to manage your database. You install it like this:
apt-get install phpmyadmin
Installers are a thing of the past. All of your software will be kept updated for you by your Linux distribution.
You can also install some sort of web-accessible control panel that way too, if that's your thing. Since you own that (virtual) machine, you can do whatever you want.
So you might want to install a forum. Look for some forum solution that you like. If it's written in PHP, your server has to run PHP (alongside a database, usually MySQL, all on top of some HTTP server, like Apache). Unlike shared hosting, this might not be available out of the box, if it's not, just go and install it (look for "install LAMP on Ubuntu" or something - LAMP stands for Linux+Apache+MySQL+PHP).
Your forum package will certainly have an installation guide (such as, "place these files on your server and set X folder as the document root"), and honestly I barely remember these things, it's just a matter of googling as you go along (like "how do I change the document root on Apache").
Whoa, a long post. Thanks to the two of you who read it this far. Any questions just ask.