My Adventure in Digital Ocean

Update Dec 2022 Yayyyy!
I gave up on php development and recoded my old project with .net 7 on new domain name CSSMix on and hosted on CloudPanel at Digital Ocean

Update April 2022
I gave up on VestaCP and switched to Cloud Panel on Digital Ocean

Update 07 April 2015
I gave up on Zpanel as it discontinued. But same developer team started Sentora Panel
I may give a try soon but for now I am using Vesta CP on my droplets

Update: 24 April 2014
Zpanel 10.1.1 has released here is the update command:
bash <(curl -Ss https://raw.github.com/zpanel/installers/master/upgrade/Ubuntu-12_04/10_1_1.sh)

Update: 28 March 2014
Since my last configuration my servers are running smooth and nice for 4 months.
But I am getting low disk space warning, after deleting Zadmin old backups everything is normal.

Update 06.02.2014 -> Today I have noticed that mysql already running but not responding as normal so you may have to restart it using cron jobs
30 2 * * * service mysql restart
this will restart mysql service everyday at 2:30 AM

Today I have moved my websites including this website to DigitalOcean SSD Servers (referral link).

I would like to share my experiences for anyone who wants to use DigitalOcean servers. It is also self notes for me not to forget what I did when I configure a new server.

DigitalOcean provides on-demand SSD cloud servers and straightforward pricing (I have saved $20 monthly and $110 yearly that means $350 for a year in total compared to my old server company).

My motivation is not just the pricing also the super fast SSD servers. Plus I can decide where my servers will be located in the world (current datacenter options Europe and US + Singapore added last month).

I assume you have already registered and logged in Digital Ocean

My OS choice on a server is Ubuntu 12.04 ×32 and 512MB ram is good for starting( it is 5$ per month), you may upgrade ram, cpu, storage and bandwidth later. (If you are planning to have a server more than 4GB ram later you must select and 64bit OS as 32bit OSes uses ram upto 4GB)

I chose Amsterdam 1 datacenter for my server as my website mostly visited from Turkey and Europe. (This is very important because ping times nearly 2x fast (about 90ms) compared to US datacenter, this will make your visitors happy)

Name the server anything you want ie. kavidesign for my case.

After creating your server (droplet) the journey begins. You have a new and unconfigured server with no LAMP set up. (Digital Ocean does not provide managed servers, you have to configure all stuff, but don’t worry it is completely easy and no extra charge is a good motivation compared to managed servers and you have the root access power that means you can install anything on your server)

My choice is ZPanel which is not only a LAMP solution also a free and complete web hosting control panel.

Install ZPanel (complete doc)

You need to use one command line:

bash <(curl -Ss https://raw.github.com/zpanel/installers/master/install/Ubuntu-12_04/10_1_1.sh)

This works for 32 and 64 bits.
If you have issues with curl you can then:

  1. Swap to root for all the installation duration:
    sudo -i
  2. Ensure you are in your home directory:
    cd
  3. download the installer (thanks to Caffeine Addict)
    wget https://github.com/zpanel/zpanelx/releases/download/10.1.1/installer-10-1-0-ubuntu-32.sh.x
  4. Make the installer executable
    chmod +x installer-10-1-0-ubuntu-32.sh.x
  5. install required packages
    apt-get install curl at
  6. run the installer and follow its instructions.
    ./installer-10-1-0-ubuntu-32.sh.x
  7. Follow the on screen instructions during the installation.
  8. Return to user lever
    exit

All instructions to this point can be found on docs, from this point I share my experiences I have collected from forums and stack-overflow

  • After installing zpanel you may see your server CPU usage hits %100; connect your server with root privilege via SSH and restart bind service
    service bind9 restart
    I don’t know the reason but bind service hits CPU but it gets normal after restart.
  • Connect to zpanel: Default zpanel user is zadmin and password has no default value, you can get it from your server you can find passwords.txt on your server home directory
    nano passwords.txt
    There is also mysql root password in this file, you may change anytime this passwords as you need.
  • Sometimes MySQL stops due to low memory and may nor start automatically, as ZPanel needs MySQL to run; mail, ftp and zpanel control panel downs if MySQL is down. You can add a cron job to fix this problem;
    crontab -e
    this will create a new cron job, use nano and paste followings
    PATH=/usr/sbin:/usr/bin:/sbin:/bin
    */5 * * * * service mysql start
    this will check every 5 min and start mysql service if not running