One place for hosting & domains


      Installing Countly Community Edition on Ubuntu 20.04

      The Countly analytics platform offers an alternative to the ubiquitous Google Analytics. In contrast to Google Analytics, Countly puts more emphasis on privacy and an all-in-one feature set. Countly’s data gathering offers compliance with GDPR, HIPAA, and other privacy standards. Meanwhile, it provides not just visitor analytics, but also a wider range of analytics related to marketing.

      This tutorial shows you how to start using Countly for your analytics needs. Countly Community Edition is free to use, and it runs in a self-hosted server environment. Through this guide, you can learn all the steps needed to get your own Countly server up and tracking activity on your applications.

      Before You Begin

      1. Familiarize yourself with our
        Getting Started with Linode guide, and complete the steps for setting your Linode’s hostname and timezone.

      2. This guide uses sudo wherever possible. Complete the sections of our
        How to Secure Your Server guide to create a standard user account, harden SSH access, and remove unnecessary network services.

      3. Update your system.

        Debian / Ubuntu

        sudo apt update && sudo apt upgrade

        AlmaLinux / CentOS Stream / Fedora / Rocky Linux


      This guide is written for a non-root user. Commands that require elevated privileges are prefixed with sudo. If you’re not familiar with the sudo command, see the
      Users and Groups guide.

      Countly provides several installation options, which you can review in the link provided at the end of this tutorial.

      This guide covers the method using the Countly server GitHub repository, which tends to be straightforward as a result of the included installation script.

      These instructions are intended for and have been tested on Ubuntu systems. However, they may work on Debian and CentOS as well. Just be sure to make the necessary substitutions where relevant.

      After the steps on installing Countly, the tutorial includes instructions for two optional setup features to potentially improve your Countly experience: DNS and SSL.

      Installing Countly from the GitHub Repository

      These steps show you how to download the Git repository for Countly and use the included installation script. It also includes the steps you need to configure NGINX to properly serve your Countly interface.

      1. Clone the Countly server GitHub repository. This example clones the repository to the current user’s home directory. The process creates a new subdirectory there, countly-server:

        git clone
      2. The included installation script requires root access for the installation, so you should first switch to a superuser shell:

      3. Navigate to the subdirectory where the script is held:

        cd /home/example-user/countly-server/bin
      4. Run the installation script:

      5. Afterward, you can exit the superuser shell:

      6. Replace the default NGINX configuration with Countly’s
        own NGINX configuration file. Typically, you can find the default configuration file at /etc/nginx/sites-available/default. However, if this is a brand-new installation, you may have to create it:

        sudo mkdir /etc/nginx/sites-available
        sudo nano /etc/nginx/sites-available/default

        Additionally, you should extend the server_name property with the domain name and/or remote IP address you intend to use to access your Countly server. For instance, this example adds the domain name and the remote IP address

        File: /etc/nginx/sites-available/default
        server {
            listen   80;
            listen   [::]:80 ipv6only=on;
            server_name  localhost;
            access_log  off;
      7. Open the HTTP port (80) on your server’s firewall. Typically, the firewalls on Ubuntu and Debian systems are managed with UFW. Using it, you can open the HTTP port with:

        sudo ufw allow http
        sudo ufw reload
      8. Access your Countly instance by navigating to one of the enabled addresses (that is, the server_name values from the NGINX configuration) in your web browser.

      (Optional) Assign Countly DNS

      Countly does not require you to use DNS for your server. However, doing so can make your Countly instance easier to access. It gives you access to your instance via a custom domain name, rather than just the remote IP address.

      To set up DNS on a Linode server, refer to our collection of guides on the
      Linode DNS manager. The process there is straightforward and can have your server running through a DNS quickly.

      (Optional) Assigning Countly TLS via Let’s Encrypt

      Another optional step is giving your Countly instance an SSL certificate. Doing so secures and encrypts its traffic using HTTPS.

      The following steps show you how to apply an SSL certificate to Countly using
      Certbot. Certbot allows you to easily request and download free certificates from
      Let’s Encrypt.

      1. Open the HTTPS port on your system’s firewall. Like above, you can do this using UFW with the HTTPS keyword:

        sudo ufw allow https
        sudo ufw reload
      2. Update the
        Snap app store. Snap provides application bundles that work across major Linux distributions and comes by default with all Ubuntu releases since 16.04:

        sudo snap install core && sudo snap refresh core
      3. Remove any existing Certbot installation:

      4. Install Certbot:

        sudo snap install --classic certbot
      5. Download a certificate using standalone verification. When prompted, accept the terms of service, enter an email address for notifications about certificate renewals, and enter your Countly server’s domain name:

        sudo certbot certonly --standalone

        Certbot outputs the location from which the new certificate can be accessed. Typically, it stores the required files in the following directory, replacing with your domain name: /etc/letsencrypt/live/

      6. Access the NGINX site configuration again, and make the following modifications to the beginning of the file.

        These changes first add a server for port 80 that redirects traffic to the HTTPS URL. Then they alter the existing server definition to listen on port 443, the HTTPS port, and to use the SSL certificate created above.

        Replace in this example with your server’s domain name:

        File: /etc/nginx/sites-available/default
        server {
                listen      80;
                server_name localhost;
                access_log  off;
                rewrite ^ https://$host$request_uri? permanent;
        server {
                listen   443 ssl;
                server_name  localhost;
                ssl_certificate      /etc/letsencrypt/live/;
                ssl_certificate_key  /etc/letsencrypt/live/;
                access_log  off;

      Now, when navigating to your Countly instance in a web browser, you should be redirected to the HTTPS URL.

      You can optionally also add your server’s remote IP address to the NGINX configuration above and use that as well to access Countly. However, you may receive a certificate warning in your browser. This is because the certificate was issued for your server’s domain name, not its IP address.

      How to Navigate the Countly Server Interface

      With your Countly instance up and running, you are ready to start setting it up for use. This next series of sections first covers the initial setup within the Countly interface.

      Further on, you can set up a Countly client SDK within your application and see it begin gathering your analytics.

      Creating an Administrator Account and Logging In

      When you first access Countly, you’re presented with a form to register an administrator user for your instance. Keep track of the login information you create here, as this user has administrative control within the Countly instance.

      Countly registration page

      Accessing the address for your Countly instance after this initial setup directs you to the login page.

      Countly login page

      Adding an Application to the Countly Dashboard

      Submitting the form to create your administrator account automatically directs you to a page to create a new application for your Countly instance. Here, you are entering the name and some descriptive information about the application.

      Creating a new application in Countly

      You can also reach this form later from the Countly dashboard by selecting the Add new app button in the upper right.

      Later, you can use the application key created by this process to associate a Countly client with your Countly server instance. Doing so then directs analytics from that client to Countly’s dashboard for the application.

      Accessing the Countly Dashboard

      From there you are directed to your Countly dashboard, the same page you land on for subsequent logins.

      Countly dashboard

      Here, you can survey the analytics generated by your Countly instance and manage all aspects of your Countly operations. You can navigate between and create application entries, and within each, view analytics for visits, events, and more.

      How to Set Up the Countly Client for Analytics

      To have Countly start collecting analytics, you need to embed one of its client SDKs within your application.

      Countly has numerous client SDKs available to fit your needs, from web and mobile apps, to the desktop, server, and beyond. You can see Countly’s
      full list of client SDKs for more information on how to download and operate each.

      To get you started and to demonstrate, the rest of this section walks you through an example using Countly’s web application SDK. It covers how you can make the client available for your web application and even includes example code to embed it. If you don’t have a web application ready, follow our guide
      Deploy a Static Site using Hugo and Object Storage.

      1. Ensure your web application’s client-side code includes or has access to the Countly web SDK file. This can be done multiple ways:

        • The SDK is automatically hosted alongside your Countly instance. Assuming your server’s domain is, you can find the SDK at:

        • Additionally, the file itself can be found among the Countly server files. Starting from the base Countly server directory, the SDK file is located at frontend/express/public/sdk/web/countly.min.js. You can then copy that file to an appropriate directory with your web application’s client-side code.

        • The Countly SDK can also be accessed from Countly’s own CDN, which you can learn about in their
          web SDK documentation.

        For these steps, it is assumed that you made a copy of the countly.min.js file from Countly’s server files. The steps also assume that you have added that file to a lib subdirectory within your client-side code.

      2. Add the following code to the head section of one of your application’s web pages.

        Replace EXAMPLE_COUNTLY_APP_KEY with the App Key found in your Countly instance. Likewise, replace with your Countly server’s URL or IP address (preceded by http://, or ‘https:// if you set up SSL).

        File: index.html
        <!-- [...] -->
        <script type='text/javascript'>
        // Initialize variables to be used by the Countly client.
        var Countly = Countly || {};
        Countly.q = Countly.q || [];
        // Provide the application key from the Countly dashboard.
        Countly.app_key = 'EXAMPLE_COUNTLY_APP_KEY';
        // Provide the URL for your Countly server instance.
        Countly.url = '';
        // These next two start pushing function calls to queue. Both
        // are recommended configurations.
        // Track sessions automatically.
        // Track web page views automatically.
        // Load the Countly script asynchronously.
        (function() {
            var cly = document.createElement('script'); cly.type = 'text/javascript';
            cly.async = true;
            // Replace the URL here with the location of your Countly client SDK file.
            cly.src = 'lib/countly.min.js';
            cly.onload = function(){Countly.init()};
            var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(cly, s);
        <!-- [...] -->


        Alternatively, you can have Countly automatically generate this code specifically for your applications. Click Management (the wrench icon) in the left-hand toolstrip, then Applications. Choose your application and scroll all the way down to the blue box titled “Need some help with SDK integration?”. Click the Web button and you should be redirected to an address that starts with From here, choose where you want to retrieve the countly.min.js file and what features you want to use. When done, click Generate code for code that’s custom-tailored for your application.

      3. Begin incorporating Countly event calls into your application. Here is an example of one such call, used for a button on the pages:

        File: index.html
        <!-- [...] -->
        <script type='text/javascript'>
        function exampleButtonClicked(ob){
            segmentation: {
        <!-- [...] -->
        <!-- [...] -->
        <input type="button" id="exampleButton" onclick="exampleButtonClicked(this)" value="Click This Button">
        <!-- [...] -->

      Navigating to your web application should now generate page views in Countly. Activating an event, like clicking the button in the above example, similarly now shows in Countly.

      Countly page visitors

      Countly page events


      You are now ready to run your application’s analytics with Countly. With your own Countly server set up and the client embedded, you can begin diving deeper into your Countly configuration. Take a look through the
      Countly documentation to learn all the possibilities and see more of what Countly is capable of.

      More Information

      You may wish to consult the following resources for additional information
      on this topic. While these are provided in the hope that they will be
      useful, please note that we cannot vouch for the accuracy or timeliness of
      externally hosted materials.

      Source link

      Want to Play Minecraft With Friends Across Devices? Set Up a Bedrock Edition Server With DreamHost

      One of the best things about Minecraft is the ability to collaborate with other gamers. If your Minecraft friends all use different devices and platforms, however, collaborating can be problematic. Consequently, you might be wondering how you can set up your own server and permit players on multiple devices to join in. 

      Fortunately, Mojang has created a solution. The Bedrock Edition of its popular game enables gamers on a wide variety of devices to play on the same server. Additionally, here at DreamHost, we have several hosting solutions to suit your Minecraft gaming needs. 

      In this article, we’ll go over what you need to know about the Bedrock Edition. We’ll also discuss the benefits of managing your own game server. Then we’ll walk you through the six steps you’ll need to set up Minecraft on your own server. Let’s get started!

      Get DreamHost’s Most Powerful Hosting

      Our dedicated hosting plans are the ideal solution for Minecraft servers that require fast speeds and consistent uptime.

      What You Need to Know About the Minecraft Bedrock Edition

      Minecraft’s popularity has remained high over the years. New developments that bring the game to more and more devices have helped it gain broad appeal. In fact, 91 million people were actively playing the game each month in 2018.  

      When it comes to understanding the different Minecraft editions, the most important thing to keep in mind is who you can connect and play with when using each version. When you’re playing the game in the original Java version, you’ll only be able to communicate and play with other Java users.

      “The Minecraft Java Edition.”

      This means there may be some players you can’t connect with if they are using other versions or devices. The Bedrock Edition, on the other hand, enables players to unite in the game world, regardless of the devices they’re using. This means an Xbox gamer can join a PC gamer and a Nintendo Switch player in the same Minecraft game world.  One important caveat: at this time, there’s no Bedrock release for Mac, meaning the Java client for Mac won’t be able to connect to a Bedrock server.

      The Benefits of Hosting Your Own Bedrock Edition Server

      If you’re an avid Minecraft gamer, and you want more flexibility and control over your game world, the Bedrock Edition should be right up your alley. There are several benefits to setting up your own server, including: 

      • Cross-platform play. When you host the Bedrock Edition on a dedicated server, you’ll be able to play with friends across all platforms and multiple devices. 
      • User control. With a dedicated server, you’ll also have full control over who joins the game, which can be a valuable safety mechanism with multi-generational players. 
      • Customized settings. The Bedrock Edition gives you a lot more customization options than the Java edition, including a new character creation option

      We’ll cover controls and customizations in more detail later on. It’s also worth noting that another one of the benefits of Minecraft is the vast user community and wealth of online knowledge bases you can access about the game.

      Why You Should Consider a Dedicated Server for Your Minecraft Setup 

      If you’re familiar with WordPress, you know there are two options for creating a website with the platform. You can use the servers, or you can purchase server space and host your own copy of the open-source software.

      Minecraft is similar, in that you can use its Realms option and pay to host a private server at an extra monthly fee. Just as with WordPress, there are limitations to this option, which you can avoid if you use your own dedicated server.

      Here at DreamHost, we offer an excellent solution if you’re looking for more control. Our dedicated server plans are fully-managed and have the speed, security, and memory you need to host Minecraft Bedrock.

      “DreamHost dedicated hosting plans.”


      Of course, we’re all about giving you options. If a dedicated plan is not what you need right now, you can also explore setting up a Minecraft server with our DreamCompute cloud hosting instead.

      How to Set Up a Minecraft Bedrock Edition Server With DreamHost (In 6 Steps)

      Setting up a dedicated server for Minecraft requires some knowledge of server programming. You’ll need to use Terminal to execute commands and create a few files in a plain-text editor. Let’s walk through how this process works in six steps.

      Step 1: Create an Admin User on Your Server

      The first thing you’ll need to do is create a user with administrator rights on your dedicated DreamHost server. To do that, you’ll access your DreamHost Panel.

      Once logged in, you can navigate to Dedicated Servers > Admin Users. There, you can see any existing users and create new ones.

      “The Admin Users page.”

      Next, click on Add a New Admin User. This will take you to a form where you’ll need to designate a username and password.

      “The Add New Admin User form.”

      Once you complete the necessary information, select Add Admin User. It may take a few minutes for this information to appear on the User Admins page.

      To fully access your server and complete the steps necessary to install the Minecraft Bedrock Edition, you’ll also need to set up your user admin as a Secure Socket Shell (SSH) user in your DreamHost user panel.

      You’ll then access your server using a terminal client so you can run command lines, rather than merely transferring files as you would with a Secure File Transfer Protocol (SFTP) application. This process can work differently on a Mac than it does on a Windows machine

      Step 2: Download the Server Software

      To get the Bedrock Edition of Minecraft working on your server, you’ll need to install Java Runtime Environment (JRE) — you can use our command line instructions below. This is what enables Minecraft to run on your server since the game is essentially a Java application. Java is also the programming language that allows the game to be played on multiple platforms.

      Of course, you’ll also need the Minecraft Bedrock Edition server software itself.

      “The server software download page.”

      Once you download the appropriate server software for your system, you’ll be able to access detailed user guides to use as you configure your server. It’s important to note that the server software is free to download, but you will need to have an active Minecraft account and a copy of the game in order to run it from your server.

      You can run the following command to install JRE  server software: 

      apt-get update && apt-get -y install 
      wget screen openjdk-8-jdk-headless  

      Extract (unzip) the downloaded Bedrock  .zip file.

      Upload (via SFTP) the extracted folder to the admin user’s home directory.

      You might find similar command lines in other tutorials online, but these snippets have been adjusted explicitly for your DreamHost server. You’ll just need to replace “your-admin-user” with the username you set up in the previous step.

      You should refer to your software documentation for further instructions if needed. Additionally, there are specific instructions for Linux users that may require slightly different commands.

      It’s also important to note that while Bedrock enables multi-platform gameplay, all users will need to make sure they are running the same version of the game as the version installed on the server. 

      Step 3: Configure Your Server Properties

      Now that you have the right software installed and can launch your server, you’ll need to begin configuring the properties of the game server. You can do this by opening the file in a plain text editor or code editor. This file should have come packaged with your server software.  

      Your server documentation will contain a list of allowable syntax options. This is where you’ll customize your game on the server. There is an extensive list of options specific to the Bedrock Edition. For example, you can configure properties for: 

      • gamemode: By default, this is always set to “survival” mode, but you can configure it to survival (0), creative (1), or adventure (2).  
      • difficulty: Your options for setting the difficulty level are peaceful (0), easy (1), normal (2), and hard (3), and it will be set to “easy” by default.
      • max-players: You can set any number you want for this, although higher numbers may have an impact on the server’s performance.
      • allow-cheats: This can be set to “true” or “false”, and is used to control the ability of all players on the server to use cheat commands. 

      You’ll need to restart your server once you’ve made changes to the properties file, in order for them to take effect. 

      Step 4: Develop and Save Your Player Whitelist

      If players are having trouble accessing and playing the game on your server, you may need to create a whitelist file. This will add specific gamer information for your server to recognize. The file can contain the following command line:

              "ignoresPlayerLimit": false,
              "name": "YOURGAMERTAGHERE"

      This snippet is specifically designed for Xbox Live Gamertags. You’ll also need to enable the whitelist option in your file. Once you’re done adding information to the file, you’ll want to save it to the same directory as your server software’s executable files. 

      Step 5: Create a Player Permissions File

      Next, it’s a good idea to create a file that controls all of your player permissions. This will keep your game world safe and secure.

      You’ll first want to create a new file in a code or plain-text editor and call it permissions.json. Then, save this to the same location as your server software’s executable files. Just make sure you don’t save the file with a .txt extension, but use .json instead.

      To complete this file, you’ll need to review the server software documentation for all allowable syntax. This is where you’ll list the Xbox User Identification (XUID) for each player, and define their permissions. Each player is assigned a XUID when they join the server, which will be listed in the whitelist.json file and displayed in the server console when a player joins the game. 

      Step 6: Start Your Server

      Once you’ve configured your Minecraft settings, you can start your server and begin building! To do that, you’ll need to use Terminal again, along with the following command: 

      LD_LIBRARY_PATH=. ./bedrock_server

      Or, using screen to prevent server halting when disconnecting from the shell:

      screen -S minecraft ./bedrock_server

      Then hit Enter, and you should be good to go. If you encounter any issues when starting the server, however, you can contact DreamHost support for help.


      Setting up the Bedrock Edition on one of our dedicated servers gives you the flexibility to invite gamers on a wide variety of platforms to your Minecraft worlds. This gives you more options than the original Java edition of the game permits.  

      Here at DreamHost, we have dedicated server options to suit all your gaming needs. Check out our pricing options and server features and start building new worlds with Minecraft!   

      Source link