Category: Howtos

On this category, I post various HowTo articles and setup tutorials for different FOS Sofwares. During my spare time, I learn how to install everything, from any Linux-based applications to server apps which are intended for Cloud VPS operation. Once learned… I document it, write the guide and post it on this section of the site. This site also serve as my personal reference site, I tend to forget how I setup something, especially when haven’t used it for a while. So I resort to my own blog post and read my own guide to install an App. I work as part-time virtual tech assistant on various Freelancing web site and that would mean that I have real-world experience in setting up sever applications or FOSS. This would mean that I’ve handled several Cloud VPS and other Linux-based softwares, in a professional level. And yes, I am a self-taught tech dude as mentioned in my About Chubbable’s page, and I am making small money off of it. I setup and configure servers for production environment, and whatever I learned and experienced from it shall be shared and posted on this Blog.
  • How To Setup A Headless Media Server Using Ubuntu 14.04 and Plex Software

    How To Setup A Headless Media Server Using Ubuntu 14.04 and Plex Software

    This is a step-by-step guide that will teach you how to setup an Ubuntu-based media server. I’m gonna use a proprietary software called Plex Media Server. It’s is a software that you can use to organize and stream your media collection. It let’s you stream media to various multimedia devices like, Smart-TV, mobile phones, streaming players, and other multimedia applications (like XBMC).

    It’s an awesome piece of software that you could build awesome projects upon it. In my case, I use it with my XBMC box, Android Phone and Smart-TV. You could install Plex in various supported platforms, and you could either install it with a GUI or GUI-less (headless) installation. But in this guide, I’m going to show you how to configure via command-line. I’ve chosen Ubuntu 14.04 LTS Server edition as my base-OS for this guide. If you wanted to use other OS as your Base, then you should read additional information below to know the various platforms it currently supports. If you wanted to use a Linux-based setup, and you want it headless, then read further and follow the steps enumerated below. Also, prepare yourself to be acquainted with Linux command-line.

    Plex Media Server Supported Platforms

    Plex’s latest version (0.9.9.12.504-3e7f93c as of July 2014) supports Windows, Mac, Linux and Free-BSD. You could build your own media server using any versions it currently supports, as your base operating system. I’ve listed down below the platforms and operating systems, that it currently supports.

    • Windows
    • Windows XP SP3
    • Windows 7 * Windows 8
    • Mac * Mac OS X 10.6.3 Snow Leopard or Later
    • Mac OS X 10.7/10.7.x Lion
    • Mac OS X 10.8/10.8.x Mountain Lion
    • Mac OS X 10.9/10.9.x Mavericks
    • Mac OS X 10.10/10.10.x Yosemite
    • Linux Ubuntu * 10.04 LTS Lucid Lynx
    • 10.10 Maverick Meerkat * 11.04 Natty Narwhal
    • 11.10 Oneric Ocelot
    • 12.04 LTS Precise Pangolin
    • 12.10 Quantal Quetzal
    • 13.04 Raring Ringtail
    • 13.10 Saucy salamander
    • Ubuntu 14.04 LTS Trusty Tahr
    • Fedora 14 – 19 CentOS 6 or Newer FreeBSD 9.1

    Minimum System Requirements

    You also must know the hardware requirements so you could tell whether you choice of OS and hardware components have met Plex’s minimum requirements. Your choice of hardware must at least meet the minimum, to install Plex successfully. If you have higher requirements and probably wanna build a kick-ass media server, then you should go more than the minimum. Read further below to see the nominal requirements.

    Standalone Implementation – No Transcoding

    The nominal requirements would be enough to install and run Plex, if you don’t intend to encode and transcode media files with your machine. Also, if you don’t intend to install and run other CPU intensive applications and background services, the minimum requirements would be sufficient to start with. But in my opinion, I think it’s better to start with a more powerful CPU, with a minimum amount of memory. Because it is easier to upgrade a memory than a CPU. You just throw another stick of ram and you have an upgrade. This is not the case of CPU, you have to change the whole processor and buy another one to have an upgrade.

    Note: These are just guidelines, only to give you an idea or ballpark estimate of what hardware specs your box may require. This serves as base unit, so it’s better to use more than the minimum, so long as you could and has the resources to acquire the hardware components. Requirements: At least 1.6Ghz 2-Core processor (Intel Core 2 Duo or AMD X2 Series) At least 1 GigaByte of Memory, if you’re on Mac or Windows At least 512MegaByte of Memory, for Linux Hard Drive, at least 80GB

    With HD Encoding or Transoding Capability

    If you wanted your Plex box to have the HD encoding or transcoding capability and at the same time, serves and stream media to several media clients, the following requirements are suggested.

    Requirements:

    • For single instance 720p HD file transcoding: 2-Core 2.0GHz CPU
    • For single instance 1080p HD file transcoding: 2-Core 2.4Ghz CPU
    • For multi-instance 720p & 1080 HD file transcoding: At least 4-Core CPU
    • At least 2GigaByte of Memory
    • H.264 Capable Video Card, if you want a GPU based encoding. (More about this in my next post.)

    Plex Media Server, Headless Ubuntu 14.04

    Installation If you have the box that met the minimum requirements, then you may now proceed with the following procedures. Plex Media Server supports Windows, Mac, Linux and FreeBSD, but in this guide, I’m going to show how you would install it in a server edition of Ubuntu 14.04 LTS. The following steps below will walk you through, on how to set things up. This is going to be a headless and standalone setup. That means, no monitor and peripherals attached. But we need to attach those during the installation and initial setup. Before you start with this guide, you must have already downloaded the latest version of Ubuntu (14.04.1 LTS as of July 2014) and burned it to a DVD disc, and your machine meets the nominal system requirements for a stand-alone PMS installation. Please read the necessary things you need for this guide, below.

    Things you need:

    • Comfortable wit Linux commands
    • Putty (from http://putty.org), if you’re on Windows
    • Extra device for testing (Android or iOS device, streaming player or similar)
    • A clean and fresh hard-drive with at least 80GB free space
    • Separate hard drive for media files (optional)
    • Hardware components that meets the minimum requirements
    • A configured DHCP server This guide is broken into a two-part series. For the first part, we will install our operating system, and that would be Ubuntu server edition. The second part would be the installation of the Plex software.

    Part 1: Ubuntu Server 14.04 LTS Installation

    For the first part, we install Ubuntu 14.04 as our base-OS. Below are the necessary procedures.
    • Step 1: Power on your machine and set your BIOS settings to boot from CD/DVD.
    • Step 2: After doing so, insert your Ubuntu DVD installer and boot from it. When your machine successfully booted up, you’ll be prompted with a menu, similar to the image shown below. Screenshot: Ubuntu 14.04.1 Installation Screen 1 Select your desired language using your keyboard’s arrow keys. Navigate and highlight your language and then press enter to activate it. In my case, I choose English.
    • Step 3: Remember that we’re setting a headless setup of Ubuntu, so we’ll setup just the core files, plus OpenSSH server. So just choose Install Ubuntu Server by highlighting it with your arrow keys, and press enter. Screenshot: Install Ubuntu Menu That should take you to the next step.
    • Step 4. At this point, you must choose your location. It is recommended to choose your real geographic location because Ubuntu will choose the most optimal mirror server for your current location. So if you choose United States, Ubuntu shall configure the apt sources list to pick the most optimal servers that are located in the U.S. Screenshot: Select Country Territory So in my case I’d choose Philippines.
    • Step 5. The next prompt will ask you if you want your keyboard be detected properly by the installer. If you have chosen a different language other than English from the previous steps, and you have a different keyboard layout other than the QWERTY layout, I suggest that you choose Yes here. You should use TAB key to select a choice from this menu. If you select YES, then you will be ask to press a series of keys. The installer will detect your keyboard layout properly depending on what keys you’ve pressed. In my case, I would choose No. Now, depending on your answer, if you choose NO (like I did) the installer will ask you again if what is the Country Origin of your keyboard, In my case, I should choose English US and hit enter and the installation should start. But if you choose YES to let the installer detect your keyboard, it will not ask you to select your keyboard’s Country of origin, instead it will start the installation process.
    • Step 6. After the above step, depending again on your setup, the installer will ask you to configure your network manually if it didn’t acquire a dynamic IP address. But if you have configured a DHCP server inside your network, and the installer automatically acquires an IP address, no prompt will pop-up. Network Detection Failed In case you need to configure your network manually, then you should follow the following steps.
      • 6.1: Select and activate Configure network manually. 08-plex-media-server-headless-ubuntu-install
      • 6.2: Then the installer will prompt you to input your desired IP address. Enter your IP address, it should have the same subnet as your existing network. In my case, I have a subnet of 192.168.1.xxx, so I would input my IP like so, 192.168.1.99. Then hit enter to continue with the next step. Use TAB key to select CONTINUE. Screenshot: Configure Network Manually
      • Step 6.3: Enter a subnet mask, in my case, 255.255.255.0. 11-plex-media-server-headless-ubuntu-install
      • Step 6.4: Enter your gateway IP address, this should be your router’s IP address. In my case, 192.168.1.1. 12-plex-media-server-headless-ubuntu-install
      • Step 6.5: Enter you name server address, this should also be your router’s IP address. In my case, 192.168.1.1.
      • Step 6.6: Select and activate Continue button. You should be taken to the next step. You’re done with the manual network configuration.
    • Step 7: You’ll be prompted to enter your desired host name with this step, so enter your host name. This will be the name of your box/machine that you could identify from your local network. You may name it like, ubuntu-headless or any name you can think of. It could be planet names or celebrities. In my case, I’ll name it ubuntu-plex. 13-plex-media-server-headless-ubuntu-install
    • Step 8: The next step will ask you for your domain name. But since this host will only be used inside the local network, we could just make something up. So in my case, I would name it chubbable.loc. Now we have configured our domain name. And when a domain name is attached to a host name, it makes the host name a fully qualified domain name. But this setup is just for local network. You don’t really have to register a domain name. In my case, my fully qualified domain name for my setup would be ubuntu-plex.chubbable.loc.
    • Step 9: Next, enter your name, your desired username and password. [justified_image_grid ids=”1346,1347,1348,1349″]
    • Step 10: The installer will ask you if you want your home directory encrypted, since this is just a basic and simple setup, we may choose No to not encrypt home directory.
    • Step 11: Choose your time zone. If you want to choose another time zone, then you should choose NO when asked if Is this time zone correct? 18-plex-media-server-headless-ubuntu-install In my case, it automatically selects my desired time zone, which is Asia/Manila, so I’d answer Yes.
      • Note: The installer can only select your Country automatically when your machine is connected to the Internet. It selects your Country based on your detected public IP address.
    • Step 12: Choose a partitioning method. By default, Guided - use entire disk and setup LVM option is selected. I recommend to just implement it and hit enter to start partitioning. Select your hard disk and press enter to continue. In my case, I have a 80GB Sata hard disk. When asked to Write changes to disk and configure LVM, answer Yes. 19-plex-media-server-headless-ubuntu-install Another prompt will ask you, Write the changes to disk?, answer Yes and the partitioning process should start. After this process, a prompt will ask you to configure a HTTP proxy, you may skip this by hitting Continue button and proceed with the installation.
    • Step 13: After the previous step the install process should start, you can sit back and relax while the installer applies your settings. During this process, another prompt will pop-up asking you how you would manage upgrades on your system. You should choose Install security updates automatically. Another prompt will ask you if what software to install. Since this is going to be an Ubuntu headless setup, you would select OpenSSH Server package, and you may select Samba file server as well (you can use this service later on with your media file management). To select a package, use arrow keys and space-bar to activate it and hit Continue button to continue. 26-plex-media-server-headless-ubuntu-install In the final part of this process, another prompt will ask you if you wanted to install GRUB bootloader to the master boot record. You should answer Yes to continue. That would be it, hit Continue once more to finalize the install process. Your machine should reboot and should take you to a black-screen login prompt. Congratulations! You have now installed a GUI-less Ubuntu 14.04. You may now continue with the next phase of the server setup.

    Part 2 – A: Plex Installation Procedures for Windows Platform

    If you’re on windows, you need to have Putty.exe to be able to remotely connect to your headless server.

    • Step 1: Download and Install putty.exe. You can download the software from http://www.putty.org. You dont’ need to install it, just double-click the putty.exe to launch it and follow Step 2 below.

    • Step 2: Enter your Ubuntu server’s IP address. In my case it is 192.168.1.99. Fill up Save Sessions and enter something like Ubuntu Headless or My Server or any text you might want, then click save. Putty Configuration

    • Step 3: A new entry should appear right below the entry, Default Settings. Look for the entry that you’ve created from Step 2 above. Select and click Load button, then click Open button. A new window and prompt should appear. Click Yes to continue. 32-plex-media-server-headless-ubuntu-install

    • Step 4: You should be now at the log-in prompt. Enter your username and password. The one you entered during the Ubuntu 14.04 server installation. When you’re logged in, you should see a window similar to the image shown below. 33-plex-media-server-headless-ubuntu-install

    Install Plex Software Using SSH In Windows – Do the steps below. Let’s download the latest Debian package (.deb file) for our OS (Operating System).
    • Step 1: Fire-up your browser and head over to plex.tv/downloads. Then click COMPUTER button, a pop-up window should open.
    • Step 2: Click Linux tab and scroll further below, right-click on 64-BIT button just below the Ubuntu text and select Copy link location. Minimize the window and switch-back to your Putty session.
    • Step 3: Type-in wget and then space. Then paste what you have just copied (copy link location) in the Putty.exe window. To do this, just right-click on it to paste, then hit enter. It should download the latest version of Plex software. Wait for it to finish then proceed to the next step.
    • Step 4: After downloading the file, install it by using the following command: sudo dpkg -i plexmediaserver_0.9.9.12.504-3e7f93c_amd64.deb and hit enter. You’ll be prompted to enter your password, enter your password and hit enter.
    Note: When you type your secret-pass, your screen won’t print it.
    Installation should start when you typed-in your pass-phrase correctly.
    TIP: Noticed that the Plex software installer has a very long file name, to help you out a little bit, you may do the following: Type sudo dpkg -i then space, then type plex, and then hit Tab key. It should auto-completes the file-name.
    • Step 5: If you encountered an error during install process, do this: type sudo apt-get install -f and hit enter. When ask if you want to continue, answer y and hit enter. Installation should resume.
    • Step 6: After the above installation step, we now test the server and see if Plex was installed properly. So let’s do that now and fire-up a browser. To access Plex’s web-based control panel, you would type-in your server’s IP address plus port number, then directory name manage The format is like this:
      ip-address:port-number/manage
      
      
      So you would type like this in your browser’s address bar:
      192.168.1.99:32400/manage
      
      
      Substitute 192.168.1.99 with your machine’s IP address. Port Number 32400 is Plex’s default port it listens to, for web administration.
      If you see a web-page similar to the image below, then you have setup Plex media server correctly. Now click Agree button to accept the software terms of service. Screenshot: Plex Media Server Admin Web Interface At this point, you can now configure and administer your server remotely from any machine within your local network. You’ll be using a lot of command-line syntaxes when you configure your Linux server and when you add or install additional modules/packages to it.

    Part 2 – B: Installation procedures for Ubuntu-based Platform:

    Installing Plex Media Server from an Ubuntu-based OS (Ubuntu Deskop or Linux Mint) is very similar to the steps we’ve taken previously. The only difference is, we don’t need to download Putty.exe or similar software. We only need to open a terminal and type in… ssh [email protected]. A window will pop-up asking you if you wanted to continue, just type yes and hit enter. You could now move on and follow the procedures from “To Install Plex Using SSH In Windows” above. Sample Screen From LinuxMint Command Prompt:
    Tip: You could copy-paste an applicable command to a command-line. To paste a copied text or snippet to a Linux terminal, click middle mouse button.

    That’s a Wrap

    This is my "How-to" guide on how to setup a headless media server with Ubuntu 14.04 & Plex Media Server software. I hope you find this post helpful. Installation wasn’t that difficult, but in case you’ve gone through issues and wasn’t able to follow the guide or stuck on certain part, just feel free to ask and I’d be happy to help you. Just put your comments and questions below. But wait, your Linux server won’t be called a Media Server, without media files added to it. So we have to copy files to it and add those files to Plex’s Media Library. I’m going to write a "howto" for this, so checkout my next post on how to add files in your newly configured headless media server.

  • How To Set Your Globe Broadband Aztech DSL5001EN Modem In Bridge Mode

    How To Set Your Globe Broadband Aztech DSL5001EN Modem In Bridge Mode

    In this guide, I will show you how to configure your Aztech DSL5001EN Modem+Router in bridge-mode, so you could integrate it with other routers like Linksys or DD-WRT flashed routers. You might probably ask… Why would I do that, the Aztech router already has a built-in router? Why still do this? Well, the answer is simple. You wanted to use a router feature that the Aztech Modem+Router won’t be able to handle. Or you plan of setting a not so simple network setup that requires various network device integration. There are several reasons really, like the ones enumerated below:

    • VPN or OpenVPN implementation
    • Multi-WAN setup
    • Integration with open-source Router OS and Firmwares (DD-WRT, OpenWRT, pfSense)
    • RADIUS Integration
    • Wifi Hotspot Implementation
    • CCTV and DVR Remote Access Implementation

    About Aztech DSL5001EN Modem+Router

    This modem is a combination of ADSL2+ Modem, Router and a Wireless Access Point, capable of operating 150Mbps wireless transmission speed (Wireless-N). Router feature includes; Wifi with WPS feature, 1 10/100 LAN port, DDNS (dyndns.org only) and port-forwarding feature.

    Preparation

    Before you follow this guide, I like to inform you that the CPE (your Aztech router) used in this guide is custom flashed to work with Globe Broadband Tattoo’s internet service. In case you didn’t know, Globe Broadband is a local ISP here in my country (Philippines). Configuration with other ISPs using the same modem will still yield similar positive result, just make sure you enter the correct values in the important input fields (VPI, VCI values and etc). To start of with this guide, prepare the things enumerated below.

    Things You Need:

    • Aztech DSL5001EN
    • Working Internet Connection
    • DD-WRT flashed router or any router you might have
    • LAN Cables

    Procedure

    Before starting with the initial step, login to your router’s administrative page and create a backup of your current configuration. If you’re not sure on how to do this, then the first step below shall be your starting point. You need to do this so in case you need to revert back to your original settings, you can use the backup file to restore your original settings.

    Note: The firmware/configuration backup page is locked with super admin authentication. You also need to have this information before proceeding. This is not supplied to you by your ISP, but you can Google your way around.

    Let’s Get Started

    1. Fire up Chrome or Firefox and enter the IP address of your Aztech Modem/Router. You can access the administration page by typing like so, http://192.168.254.254 Login as

      admin and enter the super admin password. You can search for this info via Google or YouTube.

    2. When logged in, navigate to Advance Mode -> Admin page. Click Backup button and save/download your current config file to your desired destination. The default file name would be romfile.cfg, but you may rename it to whatever you want. This will serve as a backup in case you need to restore your configs. Ok cool, now you have a backup. You may now proceed to step 2.

    3. Let’s set the Aztech DSL5001EN ADSL2+ in bridge-mode.

      While still logged in, navigate to Advance Mode -> WAN -> ATM Settings page. You should see a page similar to the image below.

      Aztech-DSL5001EN-BridgeMode-Settings-2-chubbable

      Fill out and set the necessary fields like these:

      Virtual Circuit = PVC 0 Status = Activated VPI = 0 VCI = 35  
      Connection Type = Bridge Mode
      Encapsulation = 1483
      Bridged Only LLC ATM QoS = UBR
      PCR = 0
      SCR = 0
      MBS = 0

      After inputing the correct values, hit apply to commit the settings and will reboot your router. Upon successful commit, you’ll notice that the LED light corresponding to

      Internet label won’t light up. It’s because there is no connection since the PPoE connection shall be done from the router that you intend to use with the Aztech modem. During this mode (Bridge Mode), you can only make a PPoE connection by using a separate router to make the connection with your modem, and eventually makes a connection with your ISP using your supplied user-name and password. You’re modem should in bridge-mode now, it’s time to configure your router to make the necessary PPoE connection.

      Note: DSL LED Light should be lit up. It’s an indicator that your Aztech DSL5001EN modem is physically connected to your ISP.

    4. Setup your DD-WRT router, or any router you might have. It could be a Linksys, D-link, Encore, TP-link router or some open-source BSD based Router OS like pfSense. Take note that, you need a router or any wireless router that has a PPoE connection support.

      In this step, I’ll use my DD-WRT flashed router (Linksys WRT54G2v1 wireless router), to make the PPoE connection. It is where I should put my ISP login credentials. Let’s continue. Our Aztech modem is now in bridge-mode, so it’s time for us to make the necessary PPoE connection, by using DD-WRT’s PPoE connection settings. So grab your extra LAN cable and hookup your router with the Aztech modem.

      Plug one end of your cable to your router’s WAN port (Yellow colored port) while the other end goes to Aztech’s WAN port (Yellow colored port). It doesn’t matter whether you use a patch or crossover cable. Modems and Routers these days have auto-sensing feature that automatically detects and adapts whatever type of cable you’re using. Make sure you’re computer is using the same network class as with your router. So if you’re router’s IP address is 192.168.1.1, your computer should use 192.168.1.2.

      Now, access and login to your router’s admin page by typing it’s IP address in your browser’s address bar. Upon logging in, navigate to Setup -> Basic Setup and fill out the necessary fields, like so:

      Connection Type = PPoE
      User Name = your-user-name
      Password = your-password
      Service Name = blank
      PPP Compression = Enabled
      T-Home VDSL 7 Vlan Tagging = Leave it disabled
      MPPE Encryption = You may leave it blank
      STP = Enable Router Name = name your router whatever you want
      Host Name = name it whatever you want, to make it distinct from other network devices
      Domain Name = you may it like youlocaldomain.loc
      MTU = leave default

      See reference image below:

      Screenshot: DD-WRT PPoE Setup Page

      Other settings are self-explanatory and easy to follow. After filling those important fields, you can finally click Apply Settings to make your changes takes effect. PPoE settings with other routers is very much similar with this one. So you can follow this guide with whatever router you might have.

      Screenshot: DD-WRT Reboot Success

      Upon clicking Apply Settings, your router should reboot and your browser will show a progress bar that indicates a reboot sequence. When your router reboots, it will prompt your to click Continue button, and just do as it says. Cross your fingers as your router reboots. Did it reboot? Ok cool. Login again and check if you got a successful connection.

      A good indicator for this is your WAN IP address. If you got this address, it means you’re already connected to the Internet. In my router’s screen-shot, you can see that I’ve got a dynamic IP address of 10.214.183.94. In addition to this, when you navigate to Status -> WAN page, you can see your Login Status as connected. It may be slightly different from your router brand/model, just look for similar pages from your router. When you got a WAN IP, you’re now set to browse the Internet. Congratulations, you made it this far.

    It’s a Wrap

    Are you successful in following this guide? If so, please leave your feedback below. If you’re not, I’ll try to help you in troubleshooting your issues and you can ask me a question by putting your comments. This is one real-world example of why you would set your ADSL Modem in bridge-mode. In my current setup, I have to put my Aztech DSL5001EN modem in bridge-mode because I need to interface it with my pfSense box. My pfSense box makes the PPoE connection plus, it sets a firewall and VPN connection between the Internet and my local network. In case you still didn’t know, pfSense has built-in support for OpenVPN (a free VPN implementation). I can’t live without an encrypted connection to the Internet. That’s why I chose to use pfSense (plus OpenVPN), to implement a basic home network security.

  • How to set up pfSense as OpenVPN Client

    How to set up pfSense as OpenVPN Client

    So you have now a working local VPN setup with pfSense and you wanted it to connect to another VPN server which is a remote one. You have several devices and machines connected to the pfSense box and everyone is connected through the VPN server that was configured from the pfSense Admin GUI.

    And you’re next goal now is to connect to another remote VPN server for the purpose of acquiring a US-based IP address or a secured Internet connection, then this guide would be helpful to achieve your very purpose of connecting a pfSense box to an OpenVPN Server.

    For this guide, I’m going to show you how to set up pfSense as OpenVPN client. You may also implement this guide to connect your pfSense box to other VPN providers like, Cyberghost, TorGuard, Hide My Ass and StrongVPN. But you need to do some extra step, since your downloaded VPN profile uses a password and it’s more complicated than this guide. Read the alternate configuration part if you intend to use a passworded VPN configuration file.

    Moving on, you need to have the following if you decide to follow this guide:

    1. OpenVPN Access Server Installed on a VPS or an OpenVPN configuration file from VPN provider like CyberGhost.
    2. A working VPN server setup in pfSense
    3. Another way of connecting to the Internet, in case you run through issues with your connection while following this guide. Proceed when you got everything handy.

    Configure pfSense as OpenVPN client

    Before starting off with this guide, make sure that you’ve already set up your access server by following the guide mentioned above (requirement no. 1). If you think you have set up all the requirements, then proceed to the following steps below.

    • Step 1: Create a new VPN user from the OpenVPN Access Server admin page. To create a new user, login to https://your-server-ip-address/admin You need to enable Auto Login Profile for the VPN client, in this case, pfSense is the client. To do this, navigate to main menu (left-pane), then click on Client Settings under Configurations Under Customize Client Web Server UI tick the check-box that corresponds to Offer auto-login profile and click Save Settings.

      Reference Image:

      Then click on User Permissions under User Management menu. A new page should open, now create a new VPN user account by filling up the New User text field and tick the corresponding check-box for Allow Auto-login setting. Click Save Settings and then Update Running Server.

      Reference Image:

    • Step 2: Login to the Web-GUI as VPN client and download the necessary configuration file. Login to https://your-server-ip-address/ by using the credentials you set from step 1 above. This should also be the credential you set when you invoke the adduser command in Ubuntu. If you’re currently logged in as openvpn or admin, log out first and then log in again using the previously created user-account. Upon logging in, you should see a screen similar to the image shown below:

      Reference Image:

      Click Yourself (autologin profile) to download the configuration file. The file should have an .ovpn file extension.

      Reference Image:

      • Step 3: Connect pfSense to OpenVPN Server. Now it’s time to set up pfSense as a VPN client and we’ll use the OpenVPN configuration file that was downloaded from step 2 above.

      • Step 3-A: Login to your pfSense Web-UI and navigate to main menu, then System => Certificate Manager => CAs tab.Click on the + button from the right side of the page to add a new Internal CA. Fill up the Descriptive Name field. Put something descriptive, a name that you could identify from the rest of other Certificate Authority inside your pfSense box. In my case, I’d put in… OpenVPN-AS-CA. Under Method, select Import an existing Certificate Authority from the drop-down select menu. Under Certificate data text field, copy the data found in your downloaded .ovpn configuration file. Open the file and copy everything that sits between **

        ** and **

      Click SAVE button to confirm your setting.

      • Step 3-B: Import the OpenVPN client certificate. While still on the same page, navigate to Certificates tab just beside the CAs tab, click the tab to open up the page. Click the + button to open the add/import certificate page. Set Method to Import an existing Certificate. Fill up the Descriptive name, for example, OpenVPN-Client-Cert Switch back to your downloaded .ovpn file and copy the block of text that sits between ** ** and **
    • Step 4: Set up a Peer-to-Peer VPN connection. In this guide, pfSense box shall be the VPN client, so you need to set the OpenVPN Server mode to Peer-to-peer. To do this, follow the next step below.

      • Step 4-A: Navigate to main menu, then VPN => OpenVPN and then Client tab.Click the + button to open up a new page, then fill up the necessary fields like so:
      • Server Mode = Peer to Peer (SSL/TLS)
      • Protocol = UDP
      • Device mode = tun
      • Interface = WAN
      • Local port = blank
      • Server host or address = your-server-ip-address
      • Server port = 1194
      • Proxy host or address = blank
      • Proxy port = blank
      • Proxy authentication… = leave default
      • Server host name resolution = leave default
      • Description = DO-OVPN-CLIENT or anything you want

      Then under TLS Authentication uncheck Automatically generate a shared TLS authentication key. That should open a new text field. Switch back to your .ovpn file and copy the texts between <tls -auth> and .

      You should start from

      -----BEGIN OpenVPN Static key V1-----

      Paste it in the text field.

      • Peer Certificate Authority = OpenVPN-AS-CA or the descriptive name you set when you imported the CA certificate.

      • Client Certificate = OpenVPN-Client-Cert or the descriptive name you set in step 3-B. * Encryption algorithm = BF-CBC (128-bit)

      • Hardware Crypto = leave default

      • IPv4 Tunnel Network = 10.0.8.0/24 or any private IP network you want

      • IPv4 Remote Network = 192.168.1.0/24

      • Compression = Checked

      • Type-of-service = Checked Then click Save button to save your setting.

      • Step 4-B: Check your settings and see if your VPN tunnel is actually up.

      Navigate to main menu then Status => OpenVPN.

      You should see a block labeled Client Instance Statistic and your created tunnel should appear in that block. It should have a name labeled DO-OVPN-CLIENT or the one you set in step 4. It should have a Status set to up, and has a Virtual address. If everything is good, then proceed to the next step.

      Reference Image:

      openvpn-client-instance
    • Step 5: Create a new interface and assign the newly created VPN tunnel to it. Navigate to main menu then Interfaces => (assign). You should be now at the Interface assignments tab. You’ll notice that your WAN and LAN interface is listed there. Now click on the + button to create a new interface and assign your previously created tunnel to it, in this case, its the DO-OVPN-CLIENT.

      Reference Image:

      So click the + button, a new interface should be loaded with a label OPT1. Then from the Network port pane, click the drop-down menu that corresponds to OPT1 and then select DO-OVPN-CLIENT or whatever name you configured from step 4-A. Then click on Save button. Click Interfaces menu again and then click OPT1. Tick Enable Interface check-box, A new sets of fields will be presented:

      • Description = You may change OPT1 to something like RemoteVPN-Interface
      • IPv4 Configuration Type = Set to None
      • IPv6 Configuration type = Set to None
      • MAC address = leave blank
      • MTU = leave blank
      • MSS = leave blank
      • Block private networks = checked
      • Block bogon networks = checked

      Then click Save button and then finally Apply changes to commit the changes. Now reboot your pfSense box, it’s recommended to initiate the reboot sequence from the console, rather from the web-ui. So press 5 then enter and press y then enter again to initiate the reboot. After rebooting your box, login again from the web-ui and navigate to Status => OpenVPN. Now check Client Instance Statistics block, check your client instance, it should be up this time, with a virtual address of *172.27.232. **. Or not unless you configured it to have another virtual address.

      Reference Image:

    • Step 6: Add an outbound NAT rule for the newly set interface OPT1 or the name you set.

    • Step 6-A: Enable manual outbound NAT rule.Navigate to main menu then Firewall => NAT. Click on Outbound tab. Tick the radio box labeled Manual Outbound NAT rule generation (AON – Advanced Outbound NAT). Click Save then Apply Changes.

    • Step 6-B: Create the NAT rule.While still on the Firewall: NAT: Outbound page, click the + button from the left side of the page, right after the last entry for the Description column. You should now be at Firewall: NAT: Outbound: Edit page. Now fill up the fields like so:

      • Do Not NAT = unchecked
      • Interface = OPT1 or the name you configured from step 5
      • Protocol = any
      • Source = any
      • Destination = any
      • Translation = Interface address
      • No XMLRPC Sync = Unchecked
      • Description = DO-OVPN-NAT or some descriptive name you like.

      Then click Save button then Apply Settings. Reboot your pfSense box either from the Web-UI of directly from the console.

    • Step 7: Check your Internet connection. After rebooting, check your connection by browsing a page or ping a hostname. If it’s working, then go to GOOGLE.COM and type in what is my ip and press enter. It should return your latest IP address, and it should show your server’s IP address. You may also check your connection speed by making a speed test over at speedtest.net. It will not only show your server’s connection speed, but also the server’s location. You now have configured pfSense as OpenVPN client.

    Alternate Configuration

    If you prefer to have a login password for you VPN user account, like the ones offered by CyberGhost, AirVPN, Ghost and StrongVPN, then you need to perform the following steps. This step is tricky, especially if you’re not so familiar with the command line and the "VI" text editor. To configure a user-account to use a password authentication in OpenVPN access server, login as admin to your server and navigate to user Permissions under User Management Menu. Then uncheck Allow Auto Login for the user you wanted to configure. Then click Save button and then Update Running Server.

    Now let’s configure pfSense

    Read back the procedure stated under Step 4-A. If you wanted to use a passworded VPN configuration file with pfSense, you need to follow these extra steps.

    • Step 1: Following Step 4-A, add this additional configuration to the Advance Configuration block.

      You may just edit your previous configuration by navigating to

      VPN => OpenVPN => Client tab => e button that corresponds to your client name.

      Insert the the following texts inside the Advance text field: auth-user-pass /root/myvpnpass auth-nocache

      Reference Image:

      Note: Insert other settings as instructed by your VPN provider. Also, you have to download the Linux-based configuration file for this. It’s a file with .ovpn extension.

    • Step 2: Create a file that contains your VPN user-name and user-password.To do this, you need to login directly to your pfSense box by using the console.

      If your pfSense box is a PC-based one, then you could just attach a keyboard and monitor to it and start a shell. But if you were using an embedded type or router board, you need to enable SSH first.

      To enable SSH from pfSense 2.1.4, navigate to System => Advance, then scroll down to Secure Shell section and tick Enable Secure Shell and save your settings.

      After this, ssh your way in to the pfSense box to create the file. If you have a PC-based setup, just type 8 and then enter key from the Enter an option command-line.

      Reference Image:

      Once you started a shell, type in vi myvpnpass and enter key to start the VI text editor and at the same time it also creates the myvpnpass file. The location of this file is under /root directory, since your in root directory upon logging in to the shell.

      Reference Image:

      Then your user-name and user-password. One line for user-name and another for your password. your-user-name your-user-password To start typing you data, press i and start typing your VPN user-name. Hit enter key to start a new line and enter your VPN user-password. Note: In case you already started typing your user-name without pressing "i" first, you’ll see characters like these…

      Reference Image:

      To delete that, press left arrow keys to the left-most side and hit del key to remove the characters. Then press i again and enter your data. The i by the way, won’t be printed on your screen. If you’re done inputting your data, save the file by pressing esc key then type in :wq => enter key. If you mistyped your user-name or password, press down arrow key and use left/right arrow keys to select the character you want to delete and then press del key. After this step, you should be good to go. Now go ahead and restart your pfSense box and check your connection after it reboots. To check your connection, navigate to VPN => OpenVPN and your client instance should now be up and running. If not, then double check your user-name, password and other advance settings instructed by your VPN provider.

    That’s a Wrap!

    So that’s how easy it is to connect your pfSense box to an OpenVPN access server. Keep in mind that we’ve used the Access Server software package, which is the downloadable version. It’s actually a commercial version, but you can use it for free with a maximum of 2 user accounts. But a single user-account can have several concurrent connections, you just have to set it up from your web-ui. Keep in mind that you need to set up pfSense as the OpenVPN client, not the server.

    And if you need an IP address from another country, you could do that by choosing your server location. For instance; Singapore, London or Amsterdam. With this kind of setup, you’re in total control, no third-party services and no one could log any of your online activities. This is my guide on "How To Set Up pfSense As OpenVPN Client". I hope you find this post useful, and don’t forget to put your comments below.

  • How To Obtain Static IP Address Automatically From Router

    How To Obtain Static IP Address Automatically From Router

    Learn how you could obtain a static IP address for your devices without manually entering it from network configuration. Let your Network Router do the job for you, but first you need to do something from your end. So you need to configure your Wired or WiFi Router first so it will assign the same static IP address to your devices, even after reboot.

    The usual way of getting or obtaining a static IP address for your devices within your local home network, is by setting it from the Network Configuration menu and then manually entering the IP address. But since home network Routers are more advance now, we can easily setup our routers and obtain a static IP addresses automatically. [adsense] ## Jump Links – [DD-WRT][1] – [pfSense][2] – [TP-Link][3] – [Aztech][4] ## Purpose of setting a static IP address There are few reasons why you would configure your devices to obtain or have a static IP address. One common purpose of this is, **port forwarding** or packet forwarding. To set a proper port forwarding setup on your network Router, you need to have a static and steady IP address that doesn’t change even after your reboot. A packet forwarding rule is effective for a specific IP address only, and when any of your network node or devices have changed it’s IP address, then your configured rule should now be invalid. ### Other reasons why you need a static IP addresses In order for the following process, task or activity, they need to have a static IP address to function properly. – **Traffic shaping & Bandwidth Priority** Traffic shaping and bandwidth management requires a device to have a static IP address, because it uses that particular IP address to implement a rule or sets of rule. – **Parental Control & Access Control** [Parental Control][5] and Access Control feature also requires a target device to have a static IP address so the rule would know which node on the network needs access restriction. This feature needs the IP address details not the host name. – **Server Applications** Server applications like Web server or File server needs to have a static IP address, so other network services and client machines would know where to look at. So if you plan to have a file server at home, you have to assign it a static IP address so clients on your LAN could map that IP address to a name. For instance, you could map `192.168.0.1` to a name like `File Server 1`. [adsense-responsive] ## Procedures In this guide, I will teach you how to set your home network Routers to assign a **Static IP Address** based on MAC Address. **What is MAC Address?** *MAC Address* or Media Access Control, is assigned to a network interface like your network card and WiFi card. It is unique to every devices and does not have a match with others. **MAC Address format** looks like this… A1-B2-C3-D4-E5-F6 OR A1:B2:C3:D4:E5:F6 Without explaining further, they are called **Hexadecimals**. Moving forward, below are the steps on how you would configure your Routers to issue a static IP address to each network device or node within your loca area network. I will discuss how you would do it on a [DD-WRT router][6], [pfSense][7], [TP-Link Routers][8] and [Aztech DSL5001EN modem/router][9]. Those are the current Routers and Router software that I’m using. ### Configure DD-WRT To Assign Static IP Address * * * These steps are specific to DD-WRT flashed Wired/WiFi routers. In my case, I have a **Linksys WRT54G2** flashed with **DD-WRT v24-sp2 (10/10/09) micro** Follow these very simple steps. #### Step 1: Get to know your device MAC Address. For Windows based Desktop PC, go to start menu then > `RUN` command, type in `cmd` and hit enter key, a black screen should pop-up. Next, type in `ipconfig /all` and hit enter key. Output text should be printed on your screen. Now look for your `Network Controller`. Usually this is your on-board network controller. Look for the line: Ethernet adapter Local Area Connection: Then look for your on-board network adapter under `Description`. Then below it… You should see a label and text entry (*Sample text only*): Physical Address………………: 0a-0b-0c-0d-0e-0f Take note of that, that’s your MAC Address. #### Step 2: Take note of your Host Name A host name is is your machine name. **IN Windows**, it’s your **Computer Name** found under `Control Panel` > `System` > `Computer Name` tab. **IN Ubuntu or Linux Mint**, type `hostname` from your terminal and you should know your host name. **IN Android**, Go to `Settings` > `About Phone` > `Status` > `WiFi MAC Address` #### Step 3: Login to your DD-WRT Router and enable Static Lease Once logged in, go to `Services` from the main menu then > `Services`. Browse a little farther to the bottom, and you should see **Static Leases** block. This is where you should configure your static IP address based on your MAC Address. From this page, you will lock your device MAC Address to your **desired static IP address**. [caption id="attachment_2205" align="aligncenter" width="788"]Screenshot o Static IP Lease Page in DD-WRT Static IP Lease Page[/caption] #### Step 4: Add your MAC address While still on the page, click the **ADD** button, a new set of text fields should appear just below the **Static Lease** label. If you need more for your devices, just click the button again. Those fields are: – **MAC address** – Your device MAC Address – **Hostname** – Your device host name or device name – **IP address** – Your desired IP address Now enter the necessary details accordingly, and click **Apply Settings** button to let your settings takes effect. If it doesn’t, reboot your Network Router and disable and re-enable your network controller. Just repeat this step for your other devices or hosts and that’s it. ### Static IP Address via DHCP in pfSense * * * In pfSense, **Static IP Lease** as it’s called in DD-WRT, is differently called and labeled under pfSense. It’s called… **DHCP Static Mappings**. Though it’s called differently, it will do the same thing with DD-WRT. That is… it maps a MAC Address to a specific IP address. Let’s get started with the easy steps. #### Step 1: Take note of your device MAC address and Host name. I’ve already discuss about [this step][10] and [that step][11]. #### Step 2: Login to pfSense Admin page and enable DHCP Static Mapping Fire up your browser and navigate to your pfSense IP address, login with your user name and password. From the main menu, navigate to `Services` then > `DHCP Server` > scroll further down below until you see the **DHCP Static Mappings** block. [caption id="attachment_2206" align="aligncenter" width="621"]Screenshot of Static IP Mapping in pfSense Static IP Mapping[/caption] From the far right side of the block, you’ll see a plus (`+`) button, click on that one and a new page should open. This is where you need to enter your device details. The most important field you need to fill are: – **MAC address** – Enter your MAC Address with colons (`:`) – **IP Address** – Your device IP Address – **Description** – Like, Xbox, PS4, Android, DVR or something descriptive #### Step 4: Enter all device details, save and reboot Enter all your device details here, click on **Save** button found on the bottom of the page when everything’s set up. You may also need to reboot the box. That’s it! ### Static IP Address assignment in TP-Link Routers * * * When it comes to TP-Link routers, they have labeled their static IP address mapping or static IP lease with **Address Reservation**. That’s how they labeled it. Here are the steps to configure it, particularly with **Model No. TL-WR720N**. But other models are similar. #### Step 1: Take note of your device MAC address and Host name. I’ve already discuss about [this step][10] and [that step][11]. #### Step 2: Login to your Network Router and enable the Address Reservation feature After logging in… From the left navigation menu, navigate to **Address Reservation** under `Advance Settings` > `DHCP`. [caption id="attachment_2207" align="aligncenter" width="692"]Screenshot of Static IP Address Reservation in TP-Link Screenshot of Static IP Address Reservation[/caption] When already on the page, click **Add new** button. You have to fill `MAC Address` (with dashes `-`), `Reserved IP Address` and `Enable` the status. Click **Save** when done. You need to reboot your Router for the settings to take effect. So enter all your device details in case you’re configuring it with multiple devices, then do a reboot. That’s it! [adsense-responsive-text] ### Static IP Address Reservation in Aztech DSL5001En * * * If you have this Modem+Router issued by Globe Broadband (a Philippine ISP), static IP lease is labeled as **MAC/IP Address Reservation** [caption id="attachment_2208" align="aligncenter" width="721"]Screenshot of Screenshot of Static IP Address Reservation in Aztech DSL5001EN Screenshot of Static IP Address Reservation in Aztech[/caption] To set this on *Aztech DSL5001EN* model, you need to login as Admin. The last known Admin user details that worked is below. – **User Name** – `admin` – **Password** – `3UJUh2VemEfUtesEchEC2d2e` So lets’ get started with this part. #### Step 1: Take note of your device MAC address and Host name. Instruction was mentioned in [this step][10] and [that step][11]. #### Step 2: Login as Admin Fire up your favorite browser and point to `192.168.254.254`. If you’re from other country, this detail may be different. So you need to search on this. #### Step 3: Configure IP Address Reservation When already logged in, click on **Advance Mode** under the **Aztech** logo. Then navigate to `LAN` then > `MAC/IP Address Reservation`. Now, just enter your device `MAC Address` and your desired `IP Address`. Click on **Add** button, and repeat for other devices. > **NOTE:** Enter your MAC Address with colon `:` #### Step 4: Reboot Click on the `Reboot` button, under the Aztech logo. And that’s it! ## It’s a Wrap! So that’s how you configure a static IP address reservation from various Router models. If you have other models and you know how to configure it, you may share it with me and I’ll be glad to add it to my post. You could use this guide for other router brands as well, steps are similar anyway. You must only need to take note of your device MAC and IP address. This has been my guide on **How to get a static IP address from router**. Feel free to post any comment below. Thanks for reading. [1]: #dd-wrt “Procedure for DD-WRT” [2]: #pfsense “Procedure for pfSense” [3]: #tplink “Procedure for TP-Link” [4]: #aztech “Procedure for Aztech DSL5001EN” [5]: /blocking-websites-using-parental-control-feature [6]: #dd-wrt [7]: #pfsense [8]: #tplink [9]: #aztech [10]: #get-mac “How to know your device MAC Address” [11]: #get-hostname “How to know your device Host Name”
  • How To Limit Wifi Speed on TP-Link TL-WR720N Router

    How To Limit Wifi Speed on TP-Link TL-WR720N Router

    Another step-by-step guide on how you would control and limit the bandwidth for client devices connected to your home network. This guide will show you how you should do it on a TP-Link TL-WR720N Router. It’s a Router that I’m using issued by Globe Broadband, an ISP from the Philippines.

    Purpose

    This guide may work for you if you wanted to limit or control the speed of your WiFi or Wired connection, specifically for a number of client devices or users within your local area network.

    So if you have an TP-Link TL-WR720N Router issued by Globe Broadband, then this guide should work for you.

    This guide will be useful for a shared internet connection scenario, where single Globe Broadband Internet is shared to several WiFi capable client devices like Android Phones, Tablets, iPad and Wired devices like Desktop Computers.

    Furthermore, with the help of this guide, you could throttle down the WiFi or Wired speed of Torrent downloading, video streaming and other big file downloads for a specific device or IP addresses only.

    Limiting The Bandwidth

    Before you start with this guide, make sure you know the Administration Username and Password for you device. But in case you don’t know, I’ve provided the details for you. See details below.

    TP-Link TL-WR720N Router Admin Login Details:

    • Username – admin
    • Password – admin
    • Login Address – 192.168.0.1

    In case the above details doesn’t work for you, then search around. Ask my friend Google.

    Procedures

    Before you proceed with the initial step, make sure that you’re WiFi or Wired Network is working as it should. Use a wired connection for this step and use a static IP address instead of DHCP acquired dynamic IP.

    Below is the initial step to limit your WiFI or Wired Internet speed.

    Step 1: Login as Admin

    Fire up your favorite browser and browse to 192.168.0.1. A login box should pop-up on your screen.

    Log in using the details mentioned above. Once Logged in, click on the IP QoS from the left navigation menu, under –Advance Settings–.

    Step 2: Enable and configure IP QoS

    On this page, you can see the following columns and label.

    • Bandwidth Type
    • Bandwidth Apply
    • ID
    • IP Range
    • Mode
    • Bandwidth
    • Description

    Those are the fields you need to configure to throttle or control the speed or bandwidth of your home internet for various devices and clients within your home network.

    To continue…

    Tick the check box labeled Enable IP QoS to activate it.

    Step 3: Choose Bandwidth Type and Bandwidth (in Kbps)

    Depending on your subscribed plan, you should choose between aDSL or Others from the drop-down menu. You could just choose Others and then input your applicable Internet speed.

    If you’re on a 2 Mbps plan (2048 Kbps), you could enter 2000 Kbps.

    [caption id="attachment_2191" align="aligncenter" width="521"]Screenshot of IPQoS Settings Page IPQoS Settings Page[/caption]

    Step 4: Enter an IP Range

    This details covers the IP range which should be affected by the bandwidth limit settings. Any devices or clients that has an IP address covered in this settings, should be throttled.

    In my case, I want all IP addresses from 192.168.0.201 to 192.168.0.254 to be covered by the setting. Family members and house guest should be getting those IP’s dynamically when they connect to my TP-Link TL-WR720N Router.

    You could choose whatever you want. But since you’re the Admin of your Router, I’m pretty sure that you don’t want to be affected by your own settings. And that you don’t want any of your devices gets affected by this settings. In this case, you should set your client devices to have a Static IP Address, which is not covered by the IP address range you set.

    In my case, I’ve set my Desktop computer and Android phone to have a Static IP address. For the sake of demo, I’ve set it like the following:

    • Desktop -> 192.168.0.101
    • Phone -> 192.168.0.102

    As you can see, the IP address I chose is not covered from the IP range I set above. This means that, my devices shouldn’t be affected by the bandwidth limit.

    Step 5: Set The Speed Mode and Speed

    This setting offers you to choose between two modes, which are;

    • Minimum Bandwidth Guarantee
    • Maximum Bandwidth Limit

    Minimum Bandwidth Guarantee – This mode should work to control bandwidth, but does not limit or does not impose a maximum speed. So any client should be able to use whatever speed is available. But this settings should always provide the minimum speed you configured it to provide. Meaning, this should be the lowest speed you want to provide to clients. Make sure that you properly divide the speed (in Kbps) among the clients within your home network.

    Maximum Bandwidth Limit – This mode let’s you choose to provide the maximum speed limit each client could have. So if you set this to.. say for instance, 128 Kbps (just enough to browse Facebook and make a Google search), all clients should have a maximum speed of 128 Kbps. This does not mean though, that each client will have this speed. It depends on the available bandwidth of your whole Internet bandwidth. So make sure you divide this properly, considering the total numbers of clients within your home network.

    In my case, I need to create two rules here. One for my devices and one for housemates and guests. Since I’m the admin and owner of the Internet plan, I should be getting more bandwidth.

    So I will set two sets of rules and two IP ranges.

    NOTE: I’ve set MAC address reservation to get a static IP address via DHCP. See guide here.

    For my Desktop and Phone, I will set the IP range from 192.168.0.101 to 102. IN your case, you should use the available ID’s that you have.

    For my case, I will be using the first ID (ID 1) since it is my first rule.

    Next, I set Mode to use Maximum Bandwidth Limit and I set 1000 Kbps under Bandwidth field. With this, I should be getting a maximum speed of 1000 Kbps, whenever an application needs it. So if I watch a Dubstep or Glitch Hop video from YouTube, I should get a speed limit of 1000 Kbps.

    Next, I’ll set a rule for my 3 housemates and a guest. I’ll equally divide the rest of my bandwidth (1000 Kbps) between 4 clients. So I need to create another rule by filling up ID no. 2.

    I set IP range from 192.168.0.201 to 204, Mode is set to Minimum Bandwidth Guarantee, while Bandwidth is set to 250 Kbps. This configuration sets each client to have at least 250 Kbps of bandwidth. Noticed that I divided the 1000 Kbps to 4 clients, that is why I set it to 250 Kbps. This means that each client should have at least 250 Kbps speed, but if there is still available bandwidth, and that the client requires more bandwidth… it makes use of the available bandwidth while not recognizing maximum.

    NOTE: You should configure your DHCP settings settings for this.

    Step 6: Set Rule Description

    Fill up the Description field so you’ll have a clue about the rule set when you revisit this page or when you want to reconfigure it after a long time.

    Step 7: Enable each rule and save

    Enable each rule by ticking the Enable button and finally clicking Save button located at the bottom of the page.

    [caption id="attachment_2192" align="aligncenter" width="927"]Screenshot of IPQoS Settings Page - Screen 2 IPQoS Settings Page – Screen 2[/caption]

    Static IP Address Via DHCP

    In my case, I should configure my Desktop and Phone to have a static IP address that is tied to my device’s MAC address. Media Access Control or MAC is an identifier for your network device. Use this detail to get a static IP address even using a DHCP settings to get a dynamic address.

    I should configure this from the Router so I get the same IP address even after Router reboot or my device reboots. Remember that I configured my IP address to have a maximum bandwidth limit of 1000 Kbps. If other client on your network suddenly gets this IP address, then s/he would be getting 1000 Kbps maximum of bandwidth limit.

    So you need to lock the IP address to your MAC address.

    Procedures For TL-WR720N

    Step 1: Go to Address Reservation page

    To do this, go to DHCP > Address Reservation, which is under the –Advance. Settings–

    [caption id="attachment_2193" align="aligncenter" width="708"]Screenshot of TP-Link TP-WR720N - Address Reservation IP Address Reservation[/caption]

    Step 2: Create a new rule

    Cick the Add New button to create a new rule. Then enter you device’s MAC Address with dashes.

    Enter your IP address, this IP address is the IP that you’ve configured to have a bandwidth limit.

    Set Status to Enabled and click save. Just repeat this for other devices. You need to reboot the Router for the configurations to take effect.

    NOTE: To check your MAC Address in your Android Devices, go to Settings > About Phone > Status > WiFi MAC Address.

    That’s it!

    It’s a Wrap

    That’s how To Limit WiFi Speed on TP-Link TL-WR720N Router for network devices within your local network. It should also work for your Wired devices.

    If this guide worked for you, you may say thank you by posting your comments below. If you need further help or clarifications, please feel free to ask it below.

    Enjoy your TP-Link TL-WR720N Router.

    Also checkout my guide on How to setup Quality of Service in DD-WRT flashed Routers.

  • How To Install Prestashop On A Portable Web Server

    How To Install Prestashop On A Portable Web Server

    Are you looking for an easy way of installing Prestashop on a portable web server? Actually you could! I’ve discovered and tried out a Windows-based software that you could use and carry along with you on a USB stick wherever you go. So read further below if you’re interested with this kind of thing.

    Some Bits About Prestashop

    It’s a Shopping Cart solution that you could use to build your own Online Store. I’ts free and open source, which means you don’t have to buy the software or purchase a license for you to use it. Furthermore, the source code is not encrypted, that means you are free and able to modify the codes and add some features and functions for it. Provided that you have a knowledge in PHP, MySQL, JavaScript, HTML, CSS or Smarty Template System.

    It’s a software, just like any other software that you need to install on your Windows, Mac or Linux Desktop Computers.

    Like OpenCart, Prestashop is also written in PHP and that you have to install it on a Web Server with all the necessary PHP modules and extension. You could install the software on a localhost or local computer (on a Web Server iinstalled on your local computer), Shared Web Host, Virtual Private Servers or VPS, or Dedicated Servers.

    It has a modular architecture that let’s you add some features and function to it by just installing an add-on, module or extension. Such modules/add-ons categories are; payment gateways, seo plugins, data backup and restore plugins and so much more.

    When it comes to themeng, you could easily change your online store theme by logging in to your back office or administration page and select the theme you like and apply it. If not satisfied with the Themes shipped with Prestashop, then you could purchase a ready-made or custom-made theme made by various Prestashop Theme Developers.

    System Requirements

    You need these requirements in order for you to install Prestashop successfully.

    Webserver On a Local Computer

    Installing Prestashop on a local computer, you must have the following:

    • Windows, Mac or Linux OS
    • A pre-packaged Web Server (Wamp, Xampp or Mamp)
    • Web Server is either Nginx or Apache v2.x
    • PHP version 5.2 or above
    • MySQL 5.0 or above

    OPTIONAL PHP Extensions:

    GD, cURL, SimpleXML, SOAP

    Web Host On The Internet

    To install it on a web host so you everyone on ther Internet can view it you need the following:

    • A domain name (you need to register a unique name)
    • Web server: Apache 2.x or Nginx
    • PHP 5.2+ installed and enabled
    • MySQL 5.0+ installed with a database created
    • FTP access (ask your hosting service for your credentials)
    • SSH if you’re on a VPS or DS

    OPTIONAL:

    • Memory_limit to "64M" and file_max_upload_size to "16M"
    • SSL certificate if you plan to process payments internally (not using PayPal for instance)
    • PHP extensions: GD, cURL, SimpleXML, SOAP
    • MemCached, mcrypt PHP extension – To improve performances

    Installation

    For this guide, I’m going to show how you would install it on a Windows-based computer. I’m going to use a portable web server called USBWebserver.

    You could actually download and extract the files and store it in your USB drive and carry it along with you and plugin to whatever computers you might wanna use. It’s really is a portable Web Server, very useful for testing and development purposes, before getting your online store online.

    Before starting of with the procedure, you must have already downloaded the latest Prestashop software and had extracted.

    Procedures

    • Step 1: Download and extract USBWebserver v8.x from this page.

      To where you need to extract the ZIP file? It’s really up to you. But for the sake of demonstration, I’ve extracted the ZIP file to my local C: drive.

      So it would look like this… C:\USBWebserver v8.6

      Reference Image:

      usb-web-server-extracted-path
    • Step 2: Create Prestashop folder.

      Create a new folder named prestashop inside of C:\USBWebserver v8.6 folder.

    • Step 3: Change Apache Port and other settings.

      While still on C:\USBWebserver v8.6 folder, launch usbwebserver.exe by double-clicking on it.

      Reference Image:

      usbwebserver-screen

      Once opened, click on Settings menu and change the value for Root dir.

      Change {path/root} to {path/prestashop}.

      Change Port apache value from 8080to 80. If you have other Web server running on your localhost, then you must retain the existing value or change it to something else (i.e. 8081).

      Click on Save button and click OK on the next prompt.

    • Step 4: Restart Apache.

      While still on the program window, click on Apache menu wih red exlamation point, then click on the green START button. Wait a few seconds and you should see that Apache menu with red exlamation point turn green. That indicates that Apache has restarted.

    • Step 5: Copy Prestashop files to web server root.

      Go to the path where you extracted the prestashop_1.x.0.xx.zip.

      Copy all the files and folders that is inside the prestashop_1.x.0.xx\prestashop folder.

      Paste it to C:\USBWebserver v8.6\prestashop.

    • Step 6: Create a database.

      Go back to USBWebserver program window, click on the General tab then click PHPMyAdmin button.

      That should open a browser window/tab and opens up PHPMyAdmin page.

      Login using the following default login credentials: Username - root Password - usbw

      Upon logging in, click on Users and then click Add user link menu.

      Now fill up the form, similar to the following: User Name - prestashopdb Host - localhost Password - your-password Retype - retype-your-password

      Scroll down a bit and continue filling the following: Create database with same name and grant all privileges – ticked or checked Grant all privileges on wildcard name ... – ticked or checked Global privileges – click Check All

      Then scroll down a bit more and click on Go button located at bottom-right most of the page.

      You have now created a database for your Prestashop installation. You’ve created a new user named prestashopdb and at the same time you also created a database named prestashopdb, with the necessary privilges.

      Now you’re ready to install Prestashop.

    • Step 7: Initiate the installation.

      Fire-up your browser and point to localhost and hit ENTER key.

      You should see a web page similar to the image shown below

      Reference Image:

      prestashop-install-wizard-screen

      Scroll down a bit and click on the green button labeled Next. It’s located at the bottom right-corner of the page.

      On the next screen, you have to accept the Prestashop License Agreement. Tick on the I agree to the above terms and condition check-box and click on the Next green button.

      On the next screen, fill up the information about your online store.

      Reference Image:

      prestashop-installation-2

      You need to fill up the following entries:

      • Shop name
      • Main Activity
      • Country
      • Shop timezone
      • First Name
      • Last Name
      • Email Address
      • Shop Password
      • Re-type to confirm

      Then click on the Next button.

      On the next screen, you need to enter your database details. In my case, I filled these up like so:

      • Database Server Address – localhost:3307
      • Database Name – prestashopdb
      • Database Login – prestashopdb
      • Database Password – prestashopdb
      • Table prefix – ps_

      Reference Image:

      prestashop-installation-3

      Test your database details and see to it that is correct, click on the Test your database connection now button to test your entered details.

      When all is entered correctly, you should see a screen similar to this one:

      Reference Image:

      prestashop-installation-4

      Click Next button whenever you have a successful database connection.

      Prestashop should start installing now.

      Reference Image:

      prestashop-installation-5

      You should see a confirmation text saying Your installation is finished!, after a successful installation.

      If you see a screen similar to the image show below…

      Congratulations, you didi it!

      You can now login to your back-office or the administration page of your website by clicking on the Manage your store button.

    That’s a Wrap!

    See how easy it is to insall Prestashop on a local computer, of course, this won’t be possible without the help of USBWebserver software.

    Now, if you decide to transfer your local Prestashop website to another computer and run in from there, then you only need to copy the whole USBWebserver folder to a USB drive or External Hard Drive and launch the program from there.

    This is very useful for local testing and development purposes.

    I’ve also written a guide on how would you install openCart on a portable webserver, jus click on the link to read the article.

    PLUS! You could also use this guide to install Magento Community Edition and make it portable.

  • How To Install OpenCart On Various Platforms

    How To Install OpenCart On Various Platforms

    Looking for an easy to follow step-by-step instruction on how you would install OpenCart in various platforms? Jump in and read my easy-to-follow tutorial below.

    You could actually install OpenCart in localhost (local computer), whether you’re on a Mac, Linux or Windows.

    Also, you could install it on a dedicated server or virtual private server, cPanel or DirectAdmin shared hosting.

    But for now, I will tackle how you would install it on a localhost.

    Jump Links

    What is Open Cart

    Stylized as OpenCart, is an open source ecommerce software solution, that you could use to build your own online store. I’ts perfect for merhants/retailers/wholesalers/supplier’s use especially if they wanted to expand their market and offer their products online.

    It is feature-rich ecommerce software that comes with a default mobile friendly (responsive) theme since version 2.0.2.0 of the software.

    You could add many features and function easily, with the use of various OpenCart Extensions. Theme installation is so easy, you only need to upload the Theme file and then activate it from the administration page of the software.

    It is written in PHP, and it is easy to install on various Apache enabled Web Servers, using it’s install wizard script. Installing and setting it up on Cpanel, Wamp, Xamp, Mamp or plain Ubuntu Server with Apache and PHP, is just a breeze. Provided that all requirements and dependencies for OpenCart have been met.

    Open Cart has a small foot print when it comes to server requirements, you can actually install and use it on a $5 worth of shared-hosting services. You can host and upload a hundred products without issues and hiccups.

    It offers several payment gateways and pick which one you like to accept payment from. You could choose either to accept payment from; PayPal, Authorize.net, 2Checkout and much more.

    If you wanted to take a look at how OpenCart front-end would look like, click here to view the demo site. To see the back-office or administration page, click here and use the login credentials; username: demo, password: demo to login

    If you wanted to change the look of your OpenCart theme, you could choose to buy a ready-to-install Theme or edit the Default Theme as you like, provided that you know some basic HTML/CSS coding. You could also opt to hire an OpenCart developer too and let them do the necessary customization to your OpenCart-enabled Online Store.

    OpenCart 2.3.0.x Themes – View from this page.

    Web Server Requirements

    In order for OpenCart to be installed on a server and operate smoothly, you need the following requirements to be installed and met.

    • Apache Web Server Installed
    • PHP Installed (at least version 5.2)
    • A Database (MySQL)
    • PHP Libraries/Modules; Curl, ZIP, Zlib, GD Library, Mcrypt, Mbstrings

    The above mentioned PHP Libraries or Modules are available on most hosting providers like Arvixe, HostGator, GoDaddy and other more.

    If you wanted to search more for OpenCart Web Hosting service, just fire up your favorite browser and search for the key phrase in Google.

    If you wanted to try it out first on a local Webserver for testing and development purposes, you can actually run it on XAMPP, Wamp, Mamp, Any portable web server that you can download from the Internet, provided the all server requirements and PHP module/libraries have been met and present in your chosen Web Server.

    Installing OpenCart

    You could actually install OpenCart on localhost and various web servers, so long that they have met the requirements for running OpenCart software. You don’t have to worry about requirements and dependencies if you’re on CPanel, DirectAdmin or ZPanel, because almost all those control panels are properly configured to run OpenCart.

    Installing It On Localhost

    Windows

    Installing it and running it on your local computer is fairly easy, especially on Windows-based systems. Just download any WAMP software you like to use and install OpenCart.

    The main purpose of installing it on a localhost is for testting and development purposes.

    With this guide, I will demonstrate installing it on a portable web server called USB Web Server. OS used with this guide is Windows XP SP3.

    • Step 1: Download and extract the USBWebserver V8 software from www.usbwebserver.net. Also download OpenCart’s latest version and extract it on a convenient location of your choice.

      In my case, I’ve extracted the software on my local C: drive.

    • Step 2: Fire up the application by double-clicking on usbwebserver.exe

      Reference Image:

      usbwebserver-screen
    • Step 3: Change Apache port to 80. Click on the Settings menu and change Port apache port from 8080 to 80.

      The purpose of this is, so you don’t have to type in the port number when accessing your website through localhost. If you don’t change the port number, you’ll have to access localhost like this,

      http://localhost:8080

      But if you change the port number to 80, accessing localhost is just by,

      http://localhost

      Click Save button to save the changes.

    • Step 4: Change Root path.

      By default, the root directory for your local website is root folder, which is inside the USBWebserver folder.

      If you click on Settings tab, you’ll see the value for Root dir is {path}/root

      Now that’s the thing you should change. Change it to {path}/opencart

      Then create a folder opencart inside the USBWebserver v8.x folder

    • Step 5: Restart Apache.

      After the above step, while still on the same screen, click on Apache menu and click on Stop. Wait for 3 seconds and click on Start.

    • Step 6: Download and extract the latest stable released of OpenCart

      Extract the file and copy all the files and folder inside the upload folder.

      Then paste it to opencart folder, which is inside of USBWebserver folder, the one you created earlier.

      Create two new text file and rename it to config.php. To do these, navigate to your opencart folder and then right-click on any white-space, then click New > Text Document from the context menu. Rename the file you just created, New Text Document.txt to config.php

      Then navigate to admin folder inside your opencart folder and do the same thing.

      NOTE: Windows Folder View Options should be set to show extension for known file types.

      HINT: To show extension for known file types on Windows XP, open any folder and from the tools menu, click on

      Tools > Folder Option > View > Hide extension for known file types

      Uncheck Hide extension for known file type

      Then click OK.

      It’s a similar process when you do it on a Windows 7-based machine.

    • Step 7: Create a Database for OpenCart to use it.

      While still on the USBWebserver window, click on the General tab then click PHPMyAdmin button.

      That should open a browser window/tab and opens up PHPMyAdmin page.

      Login using the following default login credentials: Username - root Password - usbw

      Upon logging in, click on Users and then click Add user link menu.

      Now fill up the form, similar to the following: User Name - opencartdb Host - localhost Password - your-password Retype - retype-your-password

      Scroll down a bit and continue filling the following: Create database with same name and grant all privileges – ticked or checked Grant all privileges on wildcard name ... – ticked or checked Global privileges – click Check All

      Then scroll down a bit more and click on Go button located at bottom-right most of the page.

      You have now created a database for your OpenCart installation. With this guide, you created a new user named opencartdb and at the same time you also created a database named opencartdb, with the necessary privilges.

      Now you’re ready to install OpenCart.

    • Step 8: Install OpenCart.

      Fire-up your browser and enter localhost in the address bar, then hit ENTER key.

      OpenCart installation wizard should open. Click on Continue blue button.

      You should now be on the next screen, double-check that your PHP settings and extension status are all green. If so, click on the Continue button.

      You’re now at the configuration page of the wizard, now enter your database info like so (in my case):

      DB Driver – MySQLi Hostname – localhost Username – opencartdb Password – opencartdb Database – opencartdb Prefix – oc_

      For Administration Username – chubbable Password- chubbable Email- chubbable@localhost

      NOTE: For Online Deployment, you must use a more secure database and admin password. A combination of alpha-numeric, upper-case, lower-case and special characters.

      Click Continue button to finish the installation.

      Upon successful installation, the wizard will show a screen, asking you if you want to go to your online shop or login to the administration page of your site.

      Reference Image:

      opencart-installed

      If you see that screen above, then congratulations! You’ve done it!

      That was an easy-to-follow tutorial on How To Install OpenCart On Local Computer.

  • How To Install OpenCart 2.x.x on a VPS Using Ubuntu 14.04

    How To Install OpenCart 2.x.x on a VPS Using Ubuntu 14.04

    Do you wish to install OpenCart on a VPS but you don’t have an idea how to? Well jump in and learn! Here is a step-by-step easy tutorial on how you would exactly do that.

    But first, why do you ever need it to install on a Virtual Private Server (VPS) when you could use a Shared Hosting Service which is way more easy to use.

    Well, shared hosting are fun and easy to use especially for newbie webmasters, because it offers an easy to use control panel (like cPanel or DirectAdmin) which let you install any CMS script easily.

    Also, shared hosting are ideal for testing purpose or development and could also be for students or self-learners who wants to be a Webmaster.

    But shared hosting has limitations, though other companies market their service as "unlimited shared hosting".

    If you have OpenCart on a shared hosting service, by the time you started receiving traffic and gain more clients, you start to consume more server resources like RAM, bandwidth and processing power.

    And if you consume a lot of computing resources way more than your neighbors on the same server, then that would be a red flag on your hosting provider. They will notice that and will suspend your account.

    Your shared hosting company will suspend your hosting account and will send you a notice that your website is using too much server resources, though they advertised their service as unlimited.

    Now the best thing you can do to keep up with your website traffic and to add more computing power to your OpenCart store, is to use a Private Server or Dedicated Server.

    With Private Server or Virtual Private Server, you have your own server resources. You have your own dedicated memory, storage space, bandwidth and virtual CPU. But that’s not the case of Dedicated Server.

    Dedicated servers are not virtual, they do not run as virtual machines. They are bare-metals or computers with it’s own hdd, memory, cpu, chassis, network connection and software that are offered for rent.

    So much for the intro, let’s get started with the procedure and follow the easy steps to install OpenCart on a VPS (Virtual Private Server).

    Jump Links

    OpenCart Server / System requirements

    To successfully install OpenCart on a VPS, these extensions must be installed and enabled on the Web Server.

    For this guide, we’ll be using Apache 2.4 for the Web Server.

    OpenCart Needs:

    • PHP (at least 5.2)
    • Database (MySQLi suggested)

    Required PHP libraries / modules:

    • Curl
    • ZIP
    • Zlib
    • GD Library
    • Mbstrings
    • Mcrypt

    We’ll be using Digital Ocean as our VPS host, since they provide an easy way to setup a webserver on an Ubuntu 14.04 VPS.

    Their LAMP (Linux Apache MySQL PHP) application installer should take care of Apache, PHP-5 and MySQL installation and will also install and enable the required modules.

    Except for the PHP5 extension called Mcrypt, we have to manually configured that ourselves.

    Buy ready-to-use OpenCart Themes – Click here!

    Installing OpenCart

    Here comes the fun part…

    But you need to prepare the following requirements first.

    You need to have:

    • Hosting account with Digital Ocean (at least 1GB RAM)
    • PuTTy if you’re on Windows
    • Terminal App if you’re on Linux
    • SSH Key Pair
    • Few hours of your time, of course

    I’ve mentioned about hosting account above, you might ask…

    Where to buy a VPS Hosting Account? other than what you have stated above.

    You actually have the option to use any VPS host you would want. But you need to install and setup LAMP differently. What you need to look for is Un-managed VPS Hosting, which means that you yourself should manage/provision your own server. If you are a tech/internet savvy person, you could save a lot of money by managing your own VPS. The internet is full of info about how to manage your own VPS.

    You could follow this step-by-step guide on how to setup a webserver, then come back here to continue the OpenCart installation part.

    Other VPS Hosting Account You May Use With OpenCart:

    Let’s get started!

    Step 1: Create a VPS with LAMP

    • Login to your Digital Ocean account and click on the Create Droplet button.

    • Enter a hostname with your domain name.

      Say for example:

      lamp1.chubbable.com
    • Choose a package.

      If you just want to play around, you may opt to choose 5USD/monthly. But if you’re migrating your OpenCart store from a shared hosting service, then 10US/monthly should be minimum.

    • Choose a Region or Location

      It’s best if you choose the location of your Data Center that is closest to your target audience.

      If you target Western Europe, you may choose either London or Amsterdam.

      Singapore if you target Asian audiences.

      But this makes no sense if you plan to use a CDN with your OpenCart website.

    • Select Image / Application

      click on the Applications tab and scroll down a bit and click to choose LAMP 14.04. When activated, it should turn blue.

    • Create an SSH Key Pair to use with your OpenCart VPS

      If you’re on Windows, then follow this video tutorial on how to create SSH Key Pair on Windows.

      If you’re on Linux, this video guide will teach you how to create your SSH Key Pair for your VPS.

      Copy and paste in the content of your .pub SSH key. Enter a comment or name for it.

      Make sure it is saved and activated, the button turns blue when activated.

    • Finally, click on the Create Droplet button. This should start creating your VPS.

    Tha’s all for creating your VPS. LAMP should be installed after your droplet is created.

    Step 2: Login to your OpenCart VPS

    • Login to your newly created VPS and use your IP address. Copy the IP address from your hosting control panel.

      Then launch a terminal (or PuTTy if on Windows) and SSH your way in to your VPS.

      The command should be…

      ssh -i .ssh/name-of-your-ssh-key [email protected]

      Note 1: In Linux or Unix, the default SSH folder path is ~/.ssh or /home/anyuser-name/.ssh

      Note 2: This command-prompt signifies that you’re on your home folder; chubbable@i7core ~ $. The ~ character (or tilde) signifies any user’s home folder.

      You’d be ask for your SSH key password, if you opted to fill those up. If not, then you’ll not be ask for it.

    • Secure MySQL server by following the wizard.

      Take note first of your MySQL root password. Write it down or copy to somewhere safe.

      Reference Image:

      how-to-install-opencart-on-vps-first-time-login

      Now run mysql_secure_installation and follow the wizard.

      Enter mysql_secure_installation command and enter your copied MySQL root password.

      Then answer the following question like so:

      Change the root password? - answer n for no
      
      Remove anonymous users? - answer n for no
      
      Disallow root login remotely? - answer n for no
      
      Remove test database and access to it? - answer n
      
      Reload privileges? answer y for yes

      And it should be all done after that.

    Step 3: Update the system & install Unzip

    • Update your system by doing the following command.

      apt-get update && apt-get upgrade

      It should take a little while to complete.

    • Install Unzip via apt-get, this software shall be used to extract the download archived file o OpenCart.

      To install the software….

      apt-get install unzip -y

    Step 4: Download OpenCart & Extract

    • Download OpenCart files from it’s official GitHub repository page:

      https://github.com/opencart/opencart

      To download the file remotely to your OpenCart VPS, right-click on the Download ZIP button (right-side of the page) and copy the link address.

      While still on your terminal, type wgetthen SPACEBARthen paste in the copied download link address, and hit ENTER key. The command should look like below.

      wget https://github.com/opencart/opencart/archive/master.zip
    • Do a ls command on your ~ (home) folder, you should see a new file named master.zip

    • Extract the file by doing unzip command:

      unzip master.zip

      Do a ls command.

      You shold see a new folder named opencart-master

    • Copy the contents of the upload folder, which is inside of opencart-master folder, to /var/www/html. This folder should hold all the OpenCart files, it’s your public_html folder.

      If you make a cd opencart-master command, you should see the folder.

      To copy all the files inside the upload folder… do the following command;

      cp -R * ~/opencart-master/upload/ /var/www/html/

      Double-check that you have copied all the files, do the following;

      cd /var/www/html

      Then do a ls command.

      Reference Image:

      how-to-install-opencart-on-vps-opencart-files-copied

    Step 5: Create OpenCart config.php file

    The command;

    touch /var/www/html/admin/config.php

    and…

    touch /var/www/html/config.php

    Step 6: Set folder permission and owner

    • To set folder owner for the OpenCart folder, do the following command;

      chown -R www-data:www-data /var/www/html
    • To set folder permisson, that is… 755 for all folders while 644 for all files;

      chmod -R a=r,a+X,u+w /var/www/html

    Step 7: Enable Mcrypt PHP module

    The LAMP installer doesn’t automatically enable mcrypt properly on your VPS, so we need to do some extra steps to enable it.

    Reference Image:

    how-to-install-opencart-on-vps-mcrypt-disabled
    • This is how to enable mcrypt on your Ubuntu 14.04 VPS.

      Do the following command;

      updatedb
    • Then find out where mcrypt is located on your server;

      locate mcrypt.so

      Sample output would be;

      /usr/lib/libmcrypt.so.4
      /usr/lib/libmcrypt.so.4.8
      /usr/php520121212/mcrypt.so

      You should take note of mcrypt.so location.

    • Find out where mcrypt.ini is located so you could edit it and update the location of the mcrypt.so module.

      Let’s do that now;

      locate mcrypt.ini

      Sample output;

      /etc/php5/mods-available/mcrypt.ini
    • Edit mcrypt.ini and update mcrypt.so’s location, so do the following command;

      nano /etc/php5/mods-available/mcrypt.ini

      Sample file content;

      ; configuration for php MCrypt module
      extension=mcrypt.so

      Now, change extension=mcrypt.so

      To

      extension=/usr/php520121212/mcrypt.so

      The /usr/php520121212/mcrypt.so is the result of the locate mcrypt.so command we did above.

      Save the fle and exit the editor;

      ctrl + o + enter then ctrl + x

    • Enable the module by doing the command php5enmod mcrypt

    • Restart Apache webserver

      service apache2 restart

    Step 8: Create OpenCart Database

    Let’s create a new database for OpenCart exclusive use. We will use the command-line, so no PHPMyAdmin involve here.

    • Login as root to MySQL server

      mysql -u root -p

      Then enter your root password. It won’t be printed on your screen.

    • Create the database

      For the sake of demonstration, I will name my OpenCart database as opencartdb, user is opencartuser, password is letmepass.

      So here we go…

      create database opencartdb;

      Hit Enter key.

    • Create the database user and grant privileges

      grant all on opencartdb.* to 'opencartuser'@'localhost' identified by 'letmepass';

      Hit enter key.

    • Refresh MySQL

      flush privileges;

      That’s it! That’s how to create a database using command-line. Next, install OpenCart.

    Step 9: Install OpenCart

    Time to install OpenCart

    • Launch your favorite web browser and point to your VPS IP address.

      You should be redirected to OpenCart’s installation wizard.

      Check the page, make sure that all is green. Which means… all the requirements are met by your VPs.

      Everything is straight-forward on this page, just fill all the fields with the proper data and install OpenCart.

      Reference Image:

      how-to-install-opencart-on-vps-opencart-requirements-met

      Click Continue button till you finish installing it.

      Reference Image:

      how-to-install-opencart-on-vps-opencart-installed-success.png
    • Delete the install folder for security reason.

      rm -rf /var/www/html/install

      And that’s it! If you reached this far, then pat yourself on the back.

    OpenCart Custom Logo Designs – Click Here!

    It’s a Wrap

    So now that you have an OpenCart VPS, the next thing you should do is to setup and configure basic server security before opening your store to the public.

    I’ve written a guide on securing a VPS, and I encourage you to read and apply what’s written in there. It is very important to secure your OpenCart installation since your VPS is your business on the Internet.

    I hope you followed this guide successfully, if not… feel free to get some help by posting your comments below.

    If this post helped you out and you’re happy with the results, please consider sharing it to your friends.

    Learning how to install OpenCart on a VPS with Ubuntu 14.04 is not that hard. So long as you’re fueled to do it, you can do it.

    By the way… you could make a Snapshot of your OpenCart VPS by using the snapshot action button on your hosting control panel. You could use the snapshot image to restore your VPS from it’s previous state.

    …and one more thing, don’t you know that you could also install OpenCart on a portable server? Yes you could! You could put it on a USB drive and plug it in any Windows-based computers.

  • How To Configure Unicenta oPOS with MySQL Database Server

    How To Configure Unicenta oPOS with MySQL Database Server

    Here is another guide for Unicenta oPOS, that will teach how you would configure or set it up with a MySQL Database Server using Ubuntu 14.04. It’s a very easy to follow guide and all procedures are written step-by-step with reference images. So if you’re looking for such guide, then jump in to read the rest of the tutorial. You could use this guide for Windows or Linux based installation.

    Jump Links

    Update:

    Unicenta 3.9 Installation Guide: Now available at http://chubbable.com/unicenta-3-9-ubuntu-16-install-guide

    Purpose & Advantage

    Unicenta’s default configuration when freshly installed is set to use the Derby Database Server. A database server embedded inside of Unicenta. This is only good for testing and experimental purposes. But when you’re ready to deploy your Unicenta box, you should be using it with an external Database Server like MySQL.

    So the main purpose of this guide is to configure Unicenta with MySQL Database Server.

    With this kind of setup, your Unicenta terminal should be able to access the database server whether it be online based server or locally deployed within your premises.

    The advantages of this are; You have a separate database server where you store all your data and keep them safe in case your Unicenta box or terminal crashed or broke, you could also reinstall Unicenta for as many as you want while keeping your data safe and maintained from the database server, you could setup a multiple Unicenta terminal while maintaining a single database server which unify all your data and configurations and no need for a separate server for each terminal, you could also use a remote or online MySQL database server and connect any Unicenta terminal from different parts of the world and unify them using a single instance of database server, you as ADMIN could remotely login to Unicenta and check transaction logs, total sales and other managerial functions for a store or restaurant.

    So for this guide, you’ll be taking advantage of those mentioned above after you successfully configured the MySQL database with Unicenta.

    To following this guide, you must have the following.

    Requirements

    These are the things you need before starting off with this guide.

    • An instance of Unicenta installation
    • A separate machine/computer if you want a separate database server.
    • USB Web Server software for Windows based database server (if you want to use. Windows)
    • MySQL and LAMP Stack
    • PuTTy if using Windows for configuration
    • Some knowledge of Linux
    • A lot of patience

    Note: I’ll be using DB and DBS here to refer to Database and Database Server.

    Installation Options

    There are different options and setups to configure a Database Server with your POS System.

    Some options are:

    • Option 1 – DBS on the same machine where Unicenta is installed.
    • Option 2 – DBS on another separate or dedicated machine.

    Option 1: MySQL DBS and Unicenta on the same computer.

    Before you start with the initial step, make sure that you already have a working Unicenta instance. If not, then you first need to install and configure Unicenta.

    Windows Based

    In this part of the guide, we’ll configure a MySQL DBS for a Windows-based Unicenta terminal.

    Both Unicenta and MySQL are on the same Windows machine.

    Procedures

    • Step 1 – Download, extract and run USBWebserver.

      You know why I recommend this portable software? It’s because I’ve already tried and tested it and had used it several times for test purposes.

      But if we’re talking about multiple nodes or terminals, we should use a dedicated machine for the DBS.

      To continue, just download the software, extract it to a permanent directory of your choice. Say for instance, Drive D or any drive partition other than drive C:.

    • Step 2 – Run the software.

      Since this software is a portable server, you don’t have to configure or install any additional software, just run it.

      Click on the the usbwebserver.exe file, the software should launch.

      Now choose your preferred language from the drop-down menu and click OK to continue.

      You should see the dashboard now.

      Reference Image: USBWebserver Dashboard.

    [caption id="attachment_2172" align="aligncenter" width="532"]USB Web Server Dashboard - Image USB Web Server Dashboard[/caption]

    • Step 3 – Configure MySQL Port.

      You may or may not configure this further. But with this software, MySQL is bound to listen to port: 3307 whereas MySQL’s default listening port is 3306.

      If you want to change it back to the default port, then configure it from the dashboard.

      Click on Settings tab and then change port number under Port MySQL field.

      Click save button.

    • Step 4 – Create a database for Unicenta.

      Launch PHPMyAdmin using the dashboard, you could click on the the button or directly access the page using your favorite browser (Firefox or Chrome).

      To access the page using a browser, browse to:

      http://localhost:8080/phpmyadmin/

      Reference Image:

      [caption id="attachment_2180" align="aligncenter" width="556"]Screenshot of PHPMyAdmin on Local Host PHPMyAdmin on Local Host[/caption]

      Then login using root as the username while usbw for the password. You should see a page similar to this image.

      Click on Databases menu to create a new DB for Unicenta. Enter a DB name under the Create database field, and then click on the create button. You should now have a DB for your POS. See reference image here.

      Now let’s create a new user for the DB. The easiest way to do this is to create a new user with the same name as the DB name.

      Click on User from the top navigation menu, then click on the Add user text link. A new page should open, now fill-up the following fields like so.

      • User Nameunicenta
      • Hostlocalhost
      • Passwordyour-password

      NOTE: if you wanted to have a stronger password, use the Generate password button to create a longer and difficult password. When you click on the button, it will automatically fill the password field, plus it will show you the generated password on a separate field. You should copy and save this password and keep it somewhere safe.

      Let’s continue, browse a further down and click/tick:

      • Create database with same name and grant all privileges

      • Grant all privileges on wildcard name

      Then click Check All text link for the Global Privileges to select all options under this. Finally, click Go button from the bottom-right of the page.

      And that’s it! You’ve created a Database for Unicenta. The next step would be to configure Unicenta to connect to the server.

    • Step 5 – Connect Unicenta to the DBS.

      Go to the folder where Unicenta is installed, and then find and click the file configure.bat.

      A configuration screen should pop-up like the one shown in this image.

      Configure the settings like so;

      • From the Database dropdown menu, choose MySQL.
      • For the URL, jdbc:mysql://localhost:3306/unicenta
      • For User, unicenta
      • For Passwrd, your-password

      Now, click the Test button to test your connection. If all is well, then you should receive a You’re Connected! pop-up message. Reference image below.

      [caption id="attachment_2184" align="aligncenter" width="596"]Screenshot of Successful Unicenta MySQL DB Connection MySQL Connection Success![/caption]

      Click OK and then finally save the settings. You’re now ready to launch and connect Unicenta to your database.

    • Step 6 – Fire up Unicenta.

      Click on your shortcut to open Unicenta, a pop-up notice saying…

      A working database cannot be detected. 
      A default database will be created. 
      
      Do you want to continue?

      This is not an error, but a notice. It’s just natural that your newly created DB has no tables yet. So you need to hit Continue to create the tables.

      Once you clicked OK you should be redirected to your Unicenta screen. If you’ve gotten this far, then congratulations you did it!

    Option 2: MySQL DBS on another dedicated machine.

    This setup will require you to use another computer to host your MySQL Database Server.

    For this guide, we’ll be using Ubuntu 14.04 Server Edition. And this would mean, no GUI or it’s a headless installation of Ubuntu.

    So before starting off with this part of the guide, make sure you already prepared your Ubuntu server. If not, then follow the tutorial from this post. Navigate to "Part 1: Ubuntu Server 14.04 LTS Installation" section of the post.

    Procedures

    • Step 1: SSH into your Ubuntu Server to control it.

      If this is the first time you heard of SSH, it’s a Unix-based command-line tool that let’s you connect to another machine remotely and securely.

      Don’t worry too much about this because I’ll walk you through it and will provide you an easy to follow procedure.

      If you’re on Windows, download PuTTy (putty.exe) for your platform. Select from the Green Colored area of the page.

      After launching it, enter the Host IP address of your Ubuntu Server on the Hostname / IP Address field and then select port 22. Reference image below.

      [caption id="attachment_2185" align="aligncenter" width="468"]Screenshot of PuTTy Screen On Windows PuTTy Screen On Windows[/caption]

      From the left-pane of putty.exe window, go to Connection > Data menu. Then fill-up Auto-login Username with your Ubuntu Server username. It should be a user name that actually exist on your Ubuntu 14.04 Server.

      Click Open to initiate the connection.

    • Step 2: Install LAMP Stack and PHPMyAdmin.

      After logging in remotely, enter the following command to your putty.exe windows. You could copy and paste the command. To paste it, click middle mouse button.

      sudo apt-get update && sudo apt-get install lamp-server^ phpmyadmin

      This should take a little while, depending on your Internet speed.

      During the process a new screen should pop-up asking you to nominate a root password for your MySQL instance. Just make it so, you have to enter your password twice to confirm match. Reference Image:

      [caption id="attachment_2186" align="aligncenter" width="559"]Screenshot of MySQL Installation on Ubuntu 14.04 Installing MySQL[/caption]

      The install should continue, then it will ask you again to configure PHPMyAdmin to use which web server to use. In this case, you should use Apache2 and hit OK.

      Reference Image:

      [caption id="attachment_2187" align="aligncenter" width="871"]Screenshot of PHPMyAdmin Configuration During Install Configuring PHPMyAdmin[/caption]

      Continue with the installation…

      A new screen should ask you to Configure database for phpmyadmin with dbconfig-common? Select YES for this.

      When a new screen will pop-up asking you to set a PHPMyAdmin password, do as it says and enter your. It will also ask for the MySQL application password, so you need to enter it twice.

    • Step 3: Install mcrypt and enable it.

      Mcrypt is a PHP5 module, which is needed for this setup. So we should enable it with our setup.

      To do just that, do the following command:

      sudo updatedb

      This command should update the locate database so you could locate certain files fast.

      Then invoke the command locate mcrypt.so. It should output the location of the extension. Copy the location and save it to a temporary text file. Then do the next command.

      locate mcrypt.ini

      Take note of the location again, you may copy the outputted text. Do the next command and paste the copied path.

      sudo nano then-paste-the-copied-text

      Sample input should look like this:

      sudo nano /etc/php5/mods-available/mcrypt.ini

      Then edit the extension= line to make it like so:

      extension=/usr/lib/php5/20121212/mcrypt.so

      Save the file by pressing ctrl + o > ENTER. o is LETTER O. Exit the editor by pressing ctrl + x.

    • Step 4: Enable the mcrypt.so extension.

      Command:

      sudo php5enmod mcrypt
    • Step 5: Restart Apach2 Server.

      sudo service apache2 resart
    • Step 6: Fire up your favorite browser and access PHPMyAdmin page.

      Sample:

      192.168.1.123/phpmyadmin

      You should use your servers IP address here.

      If you reach the Admin Login Page, then congratulations! You have now configured PHPMyAdmin. Next step that you should do is to configure MySQL to allow remote connections from within your LAN.

    • Step 7: Allow remote connection to MySQL Server.

      By default, MySQL is configured to listen from localhost (127.0.0.1) connection only. So we need to reconfigure that one so It will listen from remote connection, like from another Unicenta terminal from within your local network.

      To do just that, logon to your Ubuntu Server and enter the following command:

      sudo nano /etc/mysql/my.cnf

      Then scroll further down ’til you see this section, [mysqld].

      Then look for bind-address = 127.0.0.1

      Change this into:

      bind-address = your-server-ip-address

      Sample:

      bind-address = 192.168.1.123

      Save the file and exit the editor. That’s ctrl + o and then enter, then ctrl + x to exit.

      Finally, restart MySQL by doing the following command,

      sudo /etc/init.d/mysql restart
    • Step 8: Create a database for Unicenta to use.

      For the purpose of demonstration, We will unicenta for database name, unicenta for database user-name and password for the DB password.

      Method 1 – Using PHPMyAdmin GUI.

      Use web GUI to create a database. Follow Step 4 from Option 1.

      Method 2 – Creating a new database using the command-line.

      while still logged in to your server enter mysql -u root -p and then hit enter key. Input your password and press enter key. When you input the password, it will not show on your screen.

      Upon successful login, you should get a prompt like this:

      mysql>

      To create the database, type the following and press ENTER key:

      create database test;

      You should get an output like:

      Query OK, 1 row affected (0.00 sec)

      Create a username and password for Unicenta to use:

      grant all on unicenta.* to 'unicenta'@'your-unicenta-ip-address' identified by 'password;

      And…

      flush privileges;   

      Finally exit MySQL, by typing quit.

      NOTE: You must have configured your Unicenta terminal to have a static IP address instead of dynamic IP address through DHCP from your Router.

    • Step 9: Make a test connection.

      Use your Unicenta terminal to test your DB connection. To do this, just repeat the previous steps mentioned Option 1, Step 5, then use the database details you’ve created in this step.

      …and that’s it!

    NOTE: You could also use this procedure on a Linux-based Unicenta installation, where you would want to setup the database server and Unicenta on the same machine. Just skip Step 7 from this part of the guide.

    • Step 10: Set basic firewall.

      Though your MySQL server is just for offline use and not online, you still have to setup a basic firewall for it. Do this is not so difficult, so read on.

      Login to your server again via SSH and do the following command:

      sudo ufw enable

      That should turn on Firewall blocking all ports. So you have to open the most important ports for you setup. Since this machine is just running MySQL server with Apache2 as a web server, you should only open ports 22, 80, and 3306.

      The command for this is:

      sudo ufw allow from 192.168.1.0/24 to any port 22

      then…

      sudo ufw allow from 192.168.1.0/24 to any port 80

      lastly…

      sudo ufw allow from 192.168.1.0/24 to any port 3306

      NOE 192.168.1.0/24 is your existing LAN subnet. This means, you are allowing access to the specified ports from port IP range 192.168.1.1 to 192.168.1.255. So use your existing network config for this step.

    It’s a Wrap

    Employing this kind of configuration lets you take advantage of a centralized data storage for a multiple Point of Sale terminals using Unicenta oPOS. With this, you should be able to maintain a single database from a single server, instead of maintaining a multiple copies of database on an embedded database setup of Unicenta.

    Embedded database is just for testing, but when you’re ready for deployment, a separate, dedicated and centralized database server is recommended for Unicenta.

    So there you have it.

    This is my step-by-step guide on how to configure Unicenta oPOS with a MySQL Database Server.

    I hope you find it useful and helpful. Please feel free to post your comments. Saying thank you if it worked for you motivates me to write more guides.


  • How To Choose The Best VPS Plan For Your Service

    How To Choose The Best VPS Plan For Your Service

    If you’re looking to buy a VPS hosting plan but unsure about what plan would be the right one for you, then this article should help you clear things out about Virtual Private Servers.

    In this article, I will discuss with you about the various factors to consider before buying a VPS hosting plan from a provider.

    With his article, you should learn what server resources should be given priority when getting a VPS plan. So if you know how to choose the right server resource for your VPS, then you will probably know how to put up the best web hosting service, either for your own use or for resell.

    Before you continue with this post, I need you to know that you could use the Jump Links below and skip to other section of this post. Also read what a VPS is before digging further in this post.

    Jump Links

    What is VPS

    First of all, VPS or Virtual Private Servers are Virtual Machines (VM) hosted on a physical machine, and act as a server and performs various task and act as; web server, database server or game server. These machines are then offered for rent my hosting companies and price range depends on computer resources allotted to the VM.

    A Virtual Machine is an application that mimics a physical computer. It gets its resources (like; memory, cpu, storage and network) from the Host computer (the physical machine) and let’s you run particular Operating Systems like Windows, Linux Ubuntu, FreeBSD and other Unix-like OSes. It runs as a separate machine on top of the physical machine.

    The hosting provider let the user utilize a web-based control panel or a GUI to control several aspects of the server or VM like; creating a new VM, restart/reboot, shutdown, create/delete a snapshot, increase server resources, update kernel or rebuild the whole server.

    So a VPS is not like a shared web hosting service where server resources are shared from other tenants on the server or node.

    Essentially a VPS is a Virtual Machine, and there are various virtualization software out there (OpenVZ, Xen, KVM), that are being used by VPS hosting companies when creating a VPS. Each software has it’s own strengths and weaknesses, so you need to know some of them so you could decide what VPS type you need for your business. You also need to know the factors to consider when choosing the right kind of VPS to buy.

    1. Virtualization Software

    When choosing the right plan for your VPS, you should have at least a clue about the various types of virtualization software and techniques used by a VPS provider.

    Such software/techniques are OpenVZ, Xen and KVM.

    VirtualBox and VMWare Workstation are also examples of this software, but we’ll only cover the three (OpenVZ, Xen, KVM) mentioned software above as they are commonly used by hosting companies.

    Open Virtuozzo or OpenVZ

    OpenVZ shares the same kernel version and architecture (32bit or 64bit) with the host’s os, only thing is, it is a patched kernel. This means that you cannot run a separate container using Windows, you could only use Linux-based OSes with the same kernel version and architecture as the Host.

    So if you’re looking for Windows VPSes, OpenVZ would not be the right one for you.

    This is one disadvantage of it, but it also has an advantage when it comes to performance. It does not have much ongoing running processes just to run a single container, in other term… it does not have the overhead and it should be efficient and run fast.

    OpenVZ is a Type-II virtualization software which means, a virtualization software that runs on top of Linux-based operating system (RHEL or Debian based systems).

    NOTE 1: Type 1 Virtualization on the other hand is a technology that doesn’t require an operating system to run on. It runs directly on the physical machine, just like Windows or Mac. Examples of this type are VMWare ESXi and Microsoft Hyper-V.

    OpenVZ enables a physical machine to run a separate isolated operating system instances called Containers. And each container is given two types of resources, burst and dedicated. These are the ones offered by hosting companies as Virtual Private Servers based on OpenVZ with burstable memory.

    For instance, a VPS offered to have a dedicated memory of 512MB, burstable to 1024MB which is hosted on a server with a total memory of 2048MB. Let’s say the server hosts 2 VPS with the same resource allocation. Should VPS A needs more memory, it could borrow another 512MB from the server/host’s memory. And if at the same time, VPS B also needs more memory, it could borrow the remaining 512MB from the server’s remaining memory, and the whole 2048MB has been used.

    In this sample scenario, a hosting company could oversell the server and slice it to 4 containers (VPS), each having a 512MB of dedicated memory and burstable to 1024MB, though the server only has a total RAM of 2048MB. Not all of the 4 VPSes could have the chance to use the full 1024MB burstable memory at the same time.

    Let’s say VPS A, B, only consumes 256MB each while VPS C and D peaks at 512MB each. Overall, the memory being used in the server should be 1536MB with remaining 512MB. Now, should VPS D needs additional memory, it can borrow the unused 512MB topping it up to a total of 1024MB. But that should only be temporary. Because by the time VPS A and B needs their dedicated memory back, which is 512MB each, the Host server will begin killing some of VPS D’s processes to free up some memory so it could give back to VPS A and B.

    So in that example, that 1024MB burstable memory promised by your Hosting Company wouldn’t be granted if all VPS in that particular server consumes their dedicated memory, leaving no extra memory.

    A hosting company could oversell it more by slicing the server again to 8 VPSes with memory allocation of 512MB each, assuming not all of the VPS uses more than 256MB of memory.

    You see, this is one great disadvantage of getting an OpenVZ-based VPS from unreliable and crappy hosts.

    If you have some serious business and critical stuffs, I would rather not use OpenVZ based VPS.

    But for testing purposes or not so critical stuffs you have, you could choose OpenVZ, it is more cheaper than KVM and Xen-based VPSes, just my two cents.

    OpenVZ-based VPSes are not that bad, it’s not the type of virtualization that counts What counts is… a good and honest provider or host.

    FYI, I used OpenVZ-based VPS with my own setup of OpenVPN Access Server

    Xen

    Xen (an Open Source Software) is a Type-1 hypervisor which means, a virtualization software that doesn’t need other operating system to run under it. Type-1 are also called "bare-metals" because, just like any other operating system like Windows or Linux, you install it directly to a physical machine. It’s serves as an OS and at the same time a "virtualizor". It runs directly on the host machine (physical computer).

    Unlike OpenVZ, Xen does not share kernel version with the guest machines (virtual machines), therefore you could run several Operating System like Windows, BSDs and Linuxes. So if you’re looking where to buy a Windows VPS, then look for a Xen-based or KVM-based VPS plan like this one from servermania.com.

    There are types of virtualization which Xen uses, HVM and PV.

    Para-virtualization (PV) – is a technique used by Xen to create a virtualize environment by using a patched specialized kernels and drivers on the host and guest. Read more about this topic on this page.

    Hardware-assisted virtualization (HVM) – uses the benefits provided by modern hardware (Intel VT-x and AMD-V processors), and it doesn’t require any kind of custom kernel or patches. Xen call this a full virtualized virtual machine.

    One advantage of Xen from a customer’s point of view is that Xen cannot be over-sold since each Guest VM’s resources are allocated all the time. No extra RAM that you could borrow from neighbor VPS (in case of OpenVZ).

    FYI, Amazon AWS uses Xen with it’s hosting services.

    Reference Image: choosing-the-best-vps-amazon-aws-xen

    KVM

    Kernel-based Virtual Machine (KVM) is a virtualization technology that converts a Linux kernel into a hypervisor. A Hypervisor is a software that creates and runs a virtual machine.

    KVM requires assistance from a modern computer hardware like the (Intel VT-x and AMD-V processors) that has a hardware virtualization extension. So in essence, it is similar with Xen’s HVM virtualization technique.

    KVM is called kernel-based since it is built into Linux’s kernel. Which further means, it comes shipped with every Linux since kernel version 2.6.20.

    To use KVM as a host or VPS provider, you need to have a management tools or control panel like these.

    FYI, this site (chubbable.com) is hosted by Digital Ocean. They use KVM with their droplets or VPSes and their control panel or web GUI is built in-house or proprietary.

    Most KVM-based VPS providers could run Windows on their VPSes, but not unless they offer it. Some providers offers a custom ISO feature that let’s you use your custom bootable ISOs, whether it be Linux, Windows or BSD-based. You could use your own ISO like PFSense, FreePBX or Elastix and run it from your KVM-based VPS.

    For the customer’s advantage, using a KVM-based VPS let’s the user enjoy it’s allotted resources from the host server or node. So if a VPS is given a dedicated memory of 512MB, then it should get the 512MB whether the server is loaded or under-loaded. And when your server is idle, of course you should get a free memory. That is… used memory less total available memory is equal to free memory.

    By the way, you won’t get the full 512MB on your VPS. Video memory is sharing with your system’s memory. Therefore, your actual total available RAM would be…

    Total Available RAM = Dedicated RAM - Shared video memory

    With my VPS host, typically each VPS is given a 16MB of video memory.

    Reference Image: total-memory.png

    2. Server Resource

    Another factor you should know about is server resources. In order for you to choose which VPS plan is best for your application or service, you need to know about server resources.

    Server resource includes; RAM or Memory, Processor, Storage and Bandwidth. Other VPS hosts bundles some extra feature like; DDoS Mitigation, Unlimited downstream bandwidth or use-your-own-iso feature.

    We’ll run through these server resources and learn for yourself which VPS plan would be the best one for you.

    RAM

    Random Access Memory or RAM is one factor to consider when choosing the right VPS for your service or application.

    The general rule for this is… the more number of programs running simultaneously on your VPS, the more RAM your server needs. So the more RAM your server has, the more performance you could get from it.

    It wouldn’t hurt if in case you over-bought your RAM or you added too much RAM more than what your server needs. But surely… it will hurt if your server run on little memory than what your server actually needs.

    To determine the right amount of RAM needed for your server still depends upon your server roles, application or program you intend to run.

    For instance a web service like mine (chubbable.com) that runs WordPress CMS script, with a small daily average traffic of 300 with 10 concurrent connections, is performing well using only 512MB of RAM.

    Take note that Apache, MySQL and PHP also runs from my server.

    I also have another server with 256MB, and it is sufficient enough to run my own OpenVPN server with 5 concurrent connections or clients.

    If you’re into game servers with voice chat function like Team Speak, then a 512MB of RAM will not suffice.

    RAM requirement depends on your service. But if you’re just moving away from shared web server hosting and want to try VPS hosting, then a 512MB RAM should be your entry point.

    A 512MB VPS is commonly offered at a range of 4USD to 10USD.

    Storage Space

    Another factor to consider when choosing a VPS to buy.

    Generally, it depends on your application or mode of operation. If you’re into Forum Hosting with thousands of simultaneous users posting, editing posts and sending attachments at the same, then you probably need a larger disk space with decent Disk IOPS.

    But if you’re just serving dynamic web pages with no heavy read/write operation on your disk, then a VPS with RAID10 15k RPM SATA Drives would be enough for your needs. Go for SSD drives if you’re into file serving services or any other services that needs frequent read/write operation on a Disk.

    If you intend to operate an online Game Server, then SSD RAIDED storage drives is a must-have.

    You should also consider per Gigabyte pricing for a storage space. Typically, a 5USD to 10USD VPS already offers a 20GB SSD enabled storage space.

    Essentially, storage space depends on what you really needs, what your service needs.

    Like for instance, you plan of putting up an Online Store for digital downloads. You should know that selling a product for downloads would require a larger storage space and disk performance. You need big disk space to store your MP3, PDF and other media files. You also need decent disk performance especially when simultaneous users download files from your server.

    Bandwidth / Internet Connection

    One thing to consider when looking for the most effective VPS for you needs.

    Some providers offer a Gigabit connection while others only offer a Hundred Megabit connection.

    Well, connection type or bandwidth limit is of course subjected to price. The more bandwidth you need the more cost you would pay.

    If you just moved away from shared hosting and jump to VPS hosting, that would mean you’re running out of bandwidth or probably you need a dedicated bandwidth of your own for your growing traffic. Then you should try a Terabyte of monthly bandwidth to see if still ran out of bandwidth.

    Buying a 5 dollar VPS will typically offer a Terabyte of bandwidth using a Gigabit Internet connection.

    So a VPS with price range of 5 to 10 US dollars should suffice if you just moved away from shared hosting. Or just want to try something new aside from shared hosting.

    I’m not stressing on the price here, I’m just telling ya that most trust worthy VPS provider that offers a server with a price of 10US Dollars and below (un-managed VPS), would pack a VPS with 512MB of RAM, 20GB storage space and 1 terabyte of bandwidth, which should be sufficient enough for first time VPS users or webmasters that just moved away from shared hosting.

    3. Managed VS. Un-managed

    When choosing the a VPS for you web service, you need to understand what is Managed and Un-managed in VPS hosting.

    In simple terms, managed VPS is a VPS plan or package bundled with server administration service provided by the VPS provider. With this service, you’re not just paying for the VPS itself, you also pay for the professional service rendered by the system admins in case you need it. Some companies offers 24hour response time or 2 hours response time. Response time is the length of time the tech support team will response to your request. Other providers accepts phone support while others accepts email or ticket-based support request only. Phone support means, the company accepts supports request via their hotline. For instance, you need some modules to be installed on your VPS, then you may call their hotline and request for it. Email them for support or post a ticket if that’s what they only accept.

    On the other hand, Un-managed VPS is a plan or packaged where you are on your own. Meaning, the host does not provide administration support or any system administration service to you. You should be the one to provision and maintain your own server and also the websites that you host on it. In simple terms, you need to be a tech savvy in order for you you manage your own VPS.

    In terms of pricing, un-managed is way cheaper than managed virtual private servers. The reasons are very obvious.

    So if you’re skillful enough when it comes to servers, you could host a WordPress site with thousands of daily traffic on a single VPS worth $10.

    If you know server administration, proxies, optimization, or caching, then you’ll save a lot of money by choosing to use an un-managed virtual private server.

    4. Operating System

    This again depends on your application or service, but mostly when it comes to web servers, you will most likely to use a Linux-based VPS like CentOS 7 or Ubuntu 14.04.

    If you’re into ASP.Net web sites, then you are most probably gonna use Windows-based servers. Furthermore, if you seek for RDP or remote desktop environment using Windows, then a Windows VPS would be your choice.

    5. Support / Trustworthiness

    This is one factor that I usually seek when choosing a VPS provider.

    Whether it be managed or un-managed VPS, a trust worthy and good VPS host or provider should promptly answer every query or request sent by their client within a reasonable amount of time.

    A good VPS host should answer your query within 24 hours, regardless of your time zone and any circumstances. No excuses like not receiving your email in a timely manner or they are having some issues with their ticket support system.

    About trustworthiness… A trust worthy provider could initially be assess by checking their Website and ask some of the following questions:

    • Is the company details correct and conforms with their "who is" record and about us page?

      Read their About Us page and other company details and make sure that they match the info with their whois record. To find a companies whois record, do a Google search by typing whos vps-host.

    • Is the company a registered business entity in their country of operation?

      To find this out, again… use Google.

    • Is their website professionally made and original?

      By looking closely to their website, by your own judgement… does their site looks awesome and not copied? (…but it does not necessarily means that unprofessionally made or not so cool website are not trustworthy.)

    Another way of checking the trustworthiness of a host is to ask about their websites from known and reputable Forum sites and Web 2.0s (Quora or Yahoo Ask). Ask someone who actually tried the host and ask about his experience. Also, search and read some reviews about their service from trusted review sites.

    Those mentioned above are just guidelines, you wouldn’t really know whether a VPS host is good and trustworthy unless you jump in and try their service even for just a single month.

    6. Price

    With my 2 cents, price is not really a determinant when choosing the most excellent VPS for you.

    What you really need to consider first is type of service or application you would offer with your VPS and then look for the right feature set and necessary resource for your server. Second is hosting support, but you wouldn’t know this upfront unless you already tried the service. So you have to search and gather information about the VPS provider you plan of subscribing to. Read some reviews and ask from ruputable Forum Sites.

    List of VPS Providers

    You should know by now what your service actually needs and the necessary server resources it should have. So I made a list of VPS providers for you to lookup, but I doesn’t necessarily mean I’m recommending it.

    The final decision should be yours.

    10 Dollars VPS

    Here is a VPS list of providers that offers a VPS plan with a price range of 3 to 10 US dollars.

    ISO enabled VPS

    These VPS providers let’s you load your own ISO file. So you could actually used your own ISO and boot your VPS from it. Some ISO images these VPS hosts allow aside from CentOS, Debian and Ubuntu are; MikroTik, Elastix, and ZeroShell.

    PBX

    These are Virtual Private Servers which you can turn it into an Internet-based PBX or IP-PBX. So if you want to host your PBX on a VPS rather than on your own company premises, then these hosting providers will probably suit your needs.

    Furthermore, if you you’re up to VoIP to PSTN switching or vice-versa, these hosts should be able to satisfy your requirements.

    WordPress Managed VPS Hosting

    These hosting providers offers a managed WordPress VPS hosting. What exactly this mean is… they handled all the headaches in managing your server. They even handpicked the most must-have plugins for a WordPress website. They handle all the dirty work for you, so you could concentrate on several aspects of your website like; content creation, SEM, and monetization.

    They handle other tasks like optimization, security and updates.

    Below are the list of managed VPS hosting providers for WordPress.

    WordPress VPS

    Fully Managed VPS

    Providers that offers a fully-managed VPS hosting.

    It’s a Wrap!

    So there you have it!

    I hope you learned something from this post, especially on how to choose the best VPS plan for your website, service or application.

    I’ve mentioned above, the various factors to consider when choosing a VPS plan, so make that as your starting point when you plan of buying a good VPS plan.

    Also, to make things handy… I made a VPS provider list above that you could look up. Just click on the link and review their VPS plans. Take note of the factors you need most, like virtualization technique used, RAM, storage space and bandwidth. Also look for other additional feature like FREE DDos protection and CDN, ‘coz other VPS hosts offer those FREEBIES.

    And I like to mention another VPS providers before ending this post. They are Amazon AWS (Amazon Web Services) and Google Compute Engine.

    AWS is Amazon’s cloud computing services while Google CE is Google’s cloud platform.

    …and that’s it!

    If you have something to share related to this post, feel free to share it here using the comment section. If this post helped you, then share it or maybe linked to it.