Question

Migration, billing and droplet questions

  1. I have 2 domains and a shared hosting accounts from a service provider. I would like to migrate them all to DO, may I know what’s the step to do so?

  2. 1 droplet for 1 site?

  3. Will be charged more than what it is stated in the pricing page eg: $10/month if I select the popular plan? Considering the site will be live 24/7.

Thanks!

Show comments

Submit an answer

This textbox defaults to using Markdown to format your answer.

You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!

Sign In or Sign Up to Answer

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

Want to learn more? Join the DigitalOcean Community!

Join our DigitalOcean community of over a million developers for free! Get help and share knowledge in Q&A, subscribe to topics of interest, and get courses and tools that will help you grow as a developer and scale your project or business.

@kailoon

As vague as this is, the real answer is: it depends :-). DigitalOcean !== Shared Hosting, so to get the ball rolling, you’d first choose a Droplet size, your preferred Location and an Operating System.

A freshly deployed Droplet offers a bare OS, meaning there’s no web server (i.e. Apache/NGINX) installed, nor any type of standard programming language that would be available on your shared hosting plan (i.e. PHP), nor a database server (i.e. MySQL). You would be responsible for installing and configuring these on your own (which can be done using a package manager or by compiling each from source – both options are available).

DigitalOcean does offer some pre-configured images, which are available at the time of choosing the options for your Droplet, though the some knowledge of the CLI (Command Line Interface) / Bash / Shell is required to further optimize, secure, update and upgrade software on your server. Unlike in a shared hosting environment where the provider is handling software updates on the server for you and others (as well as security and optimization), you would now be required to handle this on your own.

A Droplet is essentially a VPS, or Virtual Private Server which is much like a virtualized dedicated server.

With that said, the first step would be to deploy a Droplet. You would then need to configure it to match the needs of your websites. I’d start with a 1GB Droplet if you’re running any sort of database driven website (i.e. one that requires MySQL / MariaDB / Percona / Postgres / etc). Once the Droplet is live, you would then use the IP Address provided to SSH in (using PuTTy or another SSH utility) and begin :-).

From the CLI, you can pretty install anything you’d like. It’s a blank canvas from the start, so you can choose Apache, NGINX, Caddy or any other web server that you’d like. You would then install PHP, NodeJS or the language of your choice followed by the database server of your choice (if needed).

Of course, the DigitalOcean Tutorial section of the community is available. As an example, the guide below will provide some insight as to how to go about setting up NGINX on Ubuntu (the guide easily applies to both Ubuntu 14.x & 15.x, so you don’t have to choose 14.04).

https://www.digitalocean.com/community/tutorials/how-to-install-nginx-on-ubuntu-14-04-lts

You can type NGINX, MySQL, PHP-FPM etc in to the search box and you’ll see numerous tutorials and guides. If you have any questions, that’s what the open community is for :-).

As for the number of sites per Droplet, that really depends on traffic levels. There’s not a specific limit on the number of sites you can host. You can create any number of sites, though the actual limit just depends on how resource intensive your current two sites are.

In regards to pricing, the monthly price is the maximum monthly cost per Droplet deployed. If you run a single 1GB Droplet for an entire month, the cost will be $10 flat. If you run it for 24 hours and then decide to destroy it, the cost will only be $0.36 :-). You’re billed hourly up to the maximum monthly cost.

Droplets are billed by deployments. Whether it’s online or offline, you’re billed for it. Only by destroying (i.e. deleting) the Droplet will you not be charged.

If you have any other questions, feel free to let me know! Always happy to help!

Shared Hosting .vs. Virtual Private Servers (un-managed)

Shared Hosting

The web hosting provider handles installing, configuring, updating and securing common software needed by clients, such as Apache (or NGINX), MySQL (or MariaDB / Percona), PHP, Dovecot (for e-mail), Software Firewall and so forth. This is often automated by cPanel, a commercial control panel which most shared / reseller web hosting providers provide clients with as a way of easing some of the more complex tasks that would otherwise require interaction with the CLI (i.e. creating e-mail accounts and MySQL databases).

The web hosting provider in this case is essentially handling all backend tasks for all clients on the web server, thus, you’re only focus is on developing your website(s). In a shared hosting environment, you have zero access to the internals of the operating system, are unable to customize anything that falls outside the scope of your account, and are most likely limited to SFTP for uploading files (this is the case with the vast majority of shared hosting providers).

You don’t need a working knowledge of Apache or NGINX, nor MySQL beyond what is required by the application and/or scripts you run.

On the other hand…

Virtual Private Servers

DigitalOcean provides you with a bare operating system. Once your Droplet is online, you’d access the Droplet by connecting to the Public IP Address via SSH on Port 22. You’ll be presented with a command prompt and from there, what the server is used for, how it is configured and what runs on it is entirely up to you.

Apache, NGINX, MariaDB, PHP (or PHP-FPM), Dovecot / Postfix (if you wish to serve e-mail) and any other software you need has to be installed, configured and maintained by you from the CLI. This can be done using the CLI and a package manager which sources pre-compiled packages from the operating systems upstream repository, though you’d still need to configure each piece of software to bring everything together as NGINX, by default, doesn’t have a clue about PHP-FPM, nor does it care that it’s installed until you tell NGINX to use it by configuring a server block for your domain that passes requests for PHP files through.

You can, of course, install a Control Panel to automate much of this (cPanel included - though it does come with a monthly cost which you’d pay to cPanel directly - DigitalOcean doesn’t provide, install or support cPanel in terms of selling you a license, so going directly through cPanel would be the way to go).

There are other alternatives to cPanel, of course, and many are free, though as with any control panel, you’re often limited to what they support and that’s it (which throws any sort of customization out the window in most cases). You are also at the mercy of the project. If it’s discontinued, you’re stuck with what you have and in most cases, would be migrating your data again in such an event so that your server is sufficiently updated as patches and releases are made available for the software you use.

How you’d go about configuring everything really depends on what you need. If you just need to be able to run a WordPress site and don’t need e-mail (which honestly is better off being hosted off your server - zoho.com offers free and reliable e-mail hosting and you can use your domains), then you could get by with simply installing NGINX, PHP-FPM and MySQL, configuring them properly, creating your server blocks + databases, and then uploading your content + testing to make sure all is working.

About Security

Security, with a VPS, goes beyond your WordPress installation. Security would expand beyond WordPress and scale down in to the operating system. For instance, you’d want to lock down the root user as the root can do anything it wants (see below for a very nasty example).

Example: The root User Can Do Anything

rm -rf * /

The above command, when executed as root, can be interpreted as “Delete anything you find at path /, recursively and with force” where / is the base directory of your server (i.e. where all files for the OS, Software and your content exists). Recursively means that it will traverse through all directories removing all files & all sub-directories, without prompting to ask if it’s okay (it assumes it is thanks to the -f).

SSH Keys instead of passwords should be used for all accounts, thus preventing potential “password guessing” / brute forcing and compromise. You’d want to install a Firewall and lock down the server to only allow public access to a limited port selection via your Public IP and then do the same for your Private IP. You’d then ideally use your Private IP for all server-level communication (i.e. requests made by PHP-FPM to MySQL for a connection). You’d also want to lock down your directories by creating a new user & group for each domain name that you host and then assign that user & group to your directories and files, thus (on a basic level) preventing one account from affecting the other.

Of course, the above is just a very brief overview. Much more could and should be done though this post is already about a page or so long ;-).

Is 1GB Enough for 3 Websites?

It may or may not be. It depends on traffic levels and activity. If they are relatively small sites and you’ve been able to successfully host them with your current shared hosting provider without any complaints from them, 1GB should be more than sufficient.

Can I Only Use Transmit and FTP?

No. SSH and accessing the CLI, or Command Line Interface, is a requirement. You can, of course, use Transmit to upload files for your site, or any files for that matter, though you will need to configure all software on the server first and foremost, otherwise there won’t be anything on the server to actually serve incoming requests for your content :-).