Since we are stuck at home due to COVID-19 and have nothing to do, you are probably watching or reading a lot of anime. Yes, it’s probably a great time to start a blog about anime, but you don’t know where to begin. Should I just start my anime blog on WordPress.com?
While WordPress.com is an easy and free way to start, you are probably limiting your potential to grow your audience. You won’t get very far without getting a domain name. Even with that, the free version is every limited in customization and you need to pay $8, which is expensive when you can do it yourself.
Of course, this guide of some sort is the hard mode in any video game. Yes, Crow from Crow’s World of Anime did several useful guides, but I think using shared hosting is a bad idea due to my past bad experiences. Also, there is a big benefit of doing it of doing it on a virtual private server. Not only your site will run faster, and you will gain some new skills of setting the server yourself, especially if you are trying to get a job in Computer Science, Information Systems, or Information Technology.
Why a Virtual Private Server over Shared Hosting or WordPress.com to start an Anime Blog?
Shared hosting is a very easy way to start a website or blog. You don’t have to do the system administration since the host provider manages the server. You receive access to a control panel such as Cpanel to manage your site.
But there are huge drawbacks. On a shared host, you share resources with other sites on the server. If a hacker hacks one of those websites from an outdated WordPress installation for instance, your site will go down as the system administrator has to clean up the mess. You won’t be happy since you will lose a lot of visitors and perhaps subscribers. I experienced this in 2011 and it was a terrible experience. Not only that, shared host providers tend not to update their server software, especially PHP. This can become a security problem as hackers can exploit older versions.
As for WordPress.com, I find the free version too limited. You can’t really customize the design of your website since you can’t install custom themes and plugins. Also, the free domain (ex. yoursitehere.wordpress.com) won’t help you rank high on the search results compared to an actual domain name. Not to mention, it doesn’t look professional since your identity is tied to WordPress. Of course, you can’t monetize your blog and you won’t have that much storage either. When you upgrade to the higher tier packages, it can get very expensive quickly. By hosting it yourself, you control very aspect of your blog, but that comes with great responsibility.
Since 2012, I only used a virtual private server to host my blog. There were some hiccups as I switched virtual private servers a few times. I eventually settled with BuyVM/Frantech since they have the best value in terms of price and reliability along with good support. The only drawback is that they don’t have much stock since they are small provider compared to others like Digital Ocean, Linode, or Vultr. Yes, there is also Microsoft Azure and Amazon Web Services, but that is a very expensive way to host your blog. You have to pay for the server and bandwidth by the hour while others charge by the month.
Also, I have two other virtual private servers on Linode and BuyVM, which I use as a virtual private network server to encrypt my internet traffic and protect my privacy from internet service providers selling my browsing data.
There are huge pluses for using a virtual private server as a webhost. Besides learning new skills, you don’t have to wait for the server admins to update outdated PHP or fix problems. You can do the troubleshooting yourself and have your site up in no time. Also, some virtual private host providers provide backups. This allows you to easily bring back your site if your site gets hacked or a node experiences hardware failure.
While a virtual private server seems intimidating since you need some knowledge of Linux System Administration, there are lots of guides on how to set one up. This guide will use Linode, not because of ease of use, but the ability to expand your website in the future when it grows. The guide should work if you choose a different provider as I tested these steps in a local Linux virtual machine.
Also, If you are new to Linux System Administration, I recommend taking a look at some Linux training videos on how to use the Linux command-line. You can find these courses on Youtube or other training sites (e.g Pluralsight, CBT Nuggets, Linkedin Learning, Skillsoft, etc), which you may have access to from your employer. Play around with a virtual private server before actually deploying it. For those who don’t have the technical knowhow and not willing to learn, I highly suggest paying a little bit more (usually starts around $25 a month) for a managed virtual private server. A managed virtual private server will still have root access, but it usually have access to CPanel and the administrator will do the maintenance for you. Do this is if you are serious about starting a blog. Or, you can hire a system administrator to manage the system for you.
Registering a Domain
First off, you need to register a domain, which is your identity or brand for your website. I tend to recommend NameSilo since they have been around for 10 years. They provide Whois privacy, so people don’t look up your address and contact information and use it for malicious purposes. However, you would need to turn off privacy if you decide to transfer the domain to another domain registrar. Also, do not forget to turn on automatic renewal, or you might lose your domain without knowing it when it expires.
How to setup a new server
On Linode, you need to create an account first. Once logged in, click on Linodes on the left sidebar and click the Add a Linode option. To start off, it’s best to select a Nanode 1GB plan and scale up when you need more space and processing power as your site grows.
You should select the following options:
- Distribution – Ubuntu 20.04 LTS
- Region – Pick the location closest to you or your intended audience.
- Linode Plan – For starting out, choose the 1GB plan. If you are moving from WordPress.com to your own host, you probably want the 2GB plan, which is $5 more a month.
- Linode Label – You can leave it as it is if you wish.
- Root Passwords – You should use a secure password to secure your server or a hacker can easily gain access and compromise your server. You should create a memorable password that contains 8 characters or longer using upper and lowercase letters, numbers and symbols. But generally, you won’t have to use the root password since we will do everything in secure shell (SSH) terminal and use SSH keys to login without entering a password.
- SSH Key (strongly recommended)– You really want to create an SSH key since it not only stops brute force attacks, but it’s more secure. A hacker can steal passwords easily, but it’s difficult to steal a key without stealing it from your computer. Let’s face it, passwords suck. You don’t want to forget your password and having to start over from scratch. You can easily create an SSH key with this command in a terminal window
ssh-keygen -t rsa -b 4096
To view the public key, type the following and copy the contents. Click Add an SSH Key, label as your computer name and paste the SSH Public Key.
ssh-add -K ~/.ssh/id_rsacat ~/.ssh/id_rsa.pub
Note: While Windows do not have a built in ssh client, you can easily install one by installing Windows Subsystem for Linux on Windows 10. Once installed, you can create an SSH key and connect to your server using SSH. When copying the private key by running cat ~/.ssh/id_rsa, you probably want to save the contents to a file on your documents or desktop folder named id_rsa. That way, you can import your private key to the FTP client of your choice. - Backups – You probably want this if you don’t want to manually backup your server. It will create automatic snapshots of your server. If someone were to hack it or the server goes down, you can simply restore with some data loss without losing everything. The monthly price depends on what plan you use. As expected, this is not the only way to back up your WordPress blog. Paid Jetpack plans have the ability to backup your blog automatically using VaultPress. This is the best and simple option if you are only using WordPress on your server.
Once you created the server, you should see your IPv4 Address. You need to login to your domain registrar and go to the place where you can manage your domains. Each domain registrar should have a DNS editor. It should look something like this.
You want to create an A record, which points the domain to an IP address as such:
- Type: A Record
- Host: *
- IP Address: Your virtual private server’s IPv4 address listed in Linode
- TTL (Time To Live): Keep as defaults
Once added, it will take 15-30 minutes for your site to become active on your domain name.
Setting Everything Up
When I moved my blog to a virtual private server for the first time, I had to manually configure everything. Now that I know some shell and Python scripting, the process isn’t as tedious for you. This means that you don’t have to mess around with terminal commands and modifying configuration files. We will be using a simple script to setup PHP, Mysql and Nginx (the same web server software that WordPress.com uses).
To connect, type the following in your terminal (take note of these commands when you need to manage your server):
If you used an image provided by the hosting provider:
ssh root@<domain name here>
If you run the Ubuntu 20.04 LTS Server yourself:
ssh <your username here>@<domain name here>
When you get a prompt like this, type yes:
The authenticity of host ‘<my domain here> (xxx.xxx.xxx.xxx)’ can’t be established.
ECDSA key fingerprint is <fingerprint>.
Are you sure you want to continue connecting (yes/no)?
If your setup the SSH keys correctly, you do not have to type a password.
Once you are in, we will install all the packages we need to setup a basic server. I have spent hours developing a script that will automate the process, so you don’t need to type in commands or modify config files. This script will setup up nginx (web server), add the necessary firewall rules, create the config files, create the user, set up the database and install the WordPress files. All you need to do is follow the prompts. Make sure you set up a secure MySQL password during the process.
git clone https://github.com/chikorita157/WordpressVPSSetupScripts.git
cd WordPressVPSSetupScripts
sudo ./lempsetup.sh
When prompted for the MySQL Install, enter the following:
- Validate Password Component: Y
- Set root password: Y (enter the new root password)
- Remove anonymous users? Y
- Disallow root login remotely? Y
- Remove test database and access to it? Y
- Reload privilege tables now? Y
Open your web browser and navigate to your website. You should see a setup screen for WordPress. Enter the database username and database name as WordPress and the randomly generated database user password as shown in the script terminal window. If successful, you should see a configuration screen to name your blog and create your username. After entering that information, you can now login.
For normal maintenance, it’s mostly consists of installing updates. Installing operating systems updates are just as important as installing WordPress updates as it patches recently discovered security vulnerabilities. Starting on Ubuntu 20.04, updates are installed automatically. Even so, you can update the operating system by running the following command as root in your SSH session.
sudo apt-get upgrade
Post Setup
Now that you have WordPress set up, I highly recommend installing the following plugins to make the blogging experience better:
- Jetpack – Jetpack brings most of the features found on WordPress.com sites to your own self-hosted WordPress blog. I highly recommend subscribing to the Jetpack Personal plan since it will give you access to automated backups. In addition, your new posts will appear in the search results and tags in the WordPress Reader. If you can afford the Premium plan, it has additional security protection. It also allows you to monetize your blog without meeting the traffic requirements with Wordads.
- WordFence – WordFence will provide additional security to protect your site from hackers and also scan your website to insure nothing malicious is in your WordPress blog.
- WP Super Cache or W3 Total Cache – You should definitely enable caching as it will make your blog load faster. After all, page load times are important to give your users the best experience and improve your rankings on search engines. There are guides on how to setup caching here.
- Yoast SEO – This plugin provides Search Engine Optimization so your posts will rank higher in the search results. This is important if you want to attract more readers.
If you are moving your WordPress.com website to your own host and domain, you will need to import your content, install Jetpack, and move your subscribers and stats.
With that, you noticed that we haven’t set up an email server. I know that shared hosting comes with an email address. However, it’s not usually a good idea to setup your own email servers since some virtual private server providers block the ports for sending and receiving mail. It’s because people abuse these servers to send SPAM and phishing emails.
If you need email, I highly suggest getting a basic G Suite account or Microsoft 365 Business Basic for email. This will cost around $5 to 6 a month, but it has various features such as additional storage, productivity web apps for word processing and more, and a secure email service. Also, it’s a good idea to use an email address with your domain of your blog since it looks more professional. Personally, I subscribe to Microsoft 365 Business Standard since I need the Office apps, primarily Word, Excel, and Outlook. I also use Microsoft Exchange Online for email, which is included.
As for backups, I highly suggest subscribing to the Jetpack Personal Plan for $3.50 a month and have Jetpack do the work. Jetpack has a feature called VaultPress, which will backup your WordPress content and database automatically. If you need to restore, it’s relatively simple. Most importantly, it doesn’t require uploading and restoring the database yourself. Just setup the server again from a clean server image using the script, install the Jetpack and VaultPress plugin and follow this guide to restore your blog. Note that this only works if you are only using WordPress on your server.
Conclusion
While virtual private server hosting looks intimidating at first, it’s not too bad since there are scripts and resources that makes it easy. But in general, hosting WordPress on a virtual private server is not any more difficult than a shared host would be. I think the effort of setting one up will be good in the long term as you don’t have to deal with bad neighbors and slow page load times hurting the amount of traffic and readers on your blog.
Also, there is more to come with the set of scripts I created. I plan to eventually come out with an easy to use terminal text-based system to make maintenance and backing up your site easy. The repository for everything related to this will be on Github.
With that, have you decided on pulling the trigger and running your anime blog on a virtual private server? Feel free to share your experience. If you have any troubles setting it up, feel free to leave a comment or contact me on social media for help.
Thanks for the Pingback!
Quick note on the shared hosting model I was talking about: in my plan, I’m only sharing the OS and MySQL/MariaDB. I manage my own WordPress installation, and I keep it up to date. Certainly, if the provider is lax in applying patches to either Debian or MySQL, I’m at risk. But so far, they’ve done a spectacular job (TigerTech).
Speaking of patching: I’ve never used Linode. Do they handle OS/database/web server patching for you? If not, it might help folks if you mention that after the OS is up and running, they should patch periodically — certainly no less often than monthly. And they should probably subscribe to mailing lists for OS and databases they select so they’re aware of zero-day/critical vulnerabilities.
Certainly, if someone’s adept enough to bring the system on line, they probably already know about patching. But you had really complete procedures, and I’d hate for someone to miss that detail.
Just a thought!
There are probably some good shared hosting services, but still there are some downsides. But in general, I dealt with really bad shared hosts in the early 2010s, once on someone’s Midphase hosting account and WPWebHost, which was a horrible experience with a lot of downtime as seen in some of my past post. This is the main reason why I decide to manage the server and everything myself, especially since I am going into the IT field anyway.
In general, for unmanaged virtual private servers, the user is usually responsible installing the patches. I think with Ubuntu, you had to manually install the updates or set up automatic updates, which require installing the unintended-updates package and setting it up. With Ubuntu 20.04 LTS, I checked that it’s indeed enabled by default, which is a good thing. But I usually go in and check for updates every week.
But yes, the unmanaged VPS path is mostly good for those who are trying to get into tech since eventually, they are going to need to learn how to administer a linux server eventually. It’s probably better to break something and learn to troubleshoot it for a personal project instead of making the mistake on the actual job. But still, there is no excuse to not make backups, but plugins like Jetpack with a paid subscription makes it easy and it’s automated.
I think this is a bit much to throw at people new. Maybe start with semi or even fully managed VPS and move up from there. Shared hosts tend to move sites to newer (or at least less old) versions of PHP, etc by request.
Again, I would definitely not recommend this path if the person is not pursuing a degree in computer related jobs. For those without the technology knowhow, it’s always better to get a managed virtual private host, which will definitely cost more for those who don’t have the technical knowhow and not pursuing a job in a tech field, but it will take the hard-aches of having to deal with downtime due to compromised WordPress installations and slow page loading times if the person is serious in starting a blog. But I would definitely recommend taking some basic Linux administration courses on Youtube or somewhere before actually doing this.
Last time I used shared hosting in 2012, the host I was using was using an outdated PHP version. I still have a very small shared hosting account primarily for email for my side business and running my Patreon benefits services, and it allows one to select the PHP version. I think most hosts should have this ability with CPanel, but I don’t recall this being an option with WPWebHost when I used them.