Installing Countly server



Countly can be installed on a Linux server (see system requirements for more information). By default, Node.js (the web server Countly needs) will run on port 80 or 443 (for HTTPS), so make sure those ports are free and not blocked (as in Amazon AWS case)

Ubuntu flavors

Ubuntu flavors (eg. Kubuntu, Lubuntu) are not supported.

Method 1: One liner installation

The following command will download and install Countly Community Edition on your Ubuntu or CentOS server.

Latest Stable Development
sudo su - 
wget -qO- | bash

Method 2: One click installation via Digital Ocean

If you have a Digital Ocean account and want to install Countly Community Edition, create a droplet using this link. Upon selecting a plan and a datacenter region, your Countly instance is ready to go!

Method 3: Downloading via Github or package installation

As an alternative method, you can download Countly Community Edition via Github:

Note: Enterprise Editions source code is not available for public and is downloaded from Enterprise Edition customer private repository. However, installation procedures for both editions are the same, as follows.

Extract Countly package to a directly of your taste (e.g under /usr) - do not use /root folder for this purpose. Then, fire the easy installation script that comes with Countly, which will work both for Ubuntu or RHEL/CentOS:

sudo su - 

Disable SELinux

Disable SELinux on Red Hat or CentOS if it's enabled. Countly may not work on a server where SELinux is enabled. In order to disable SELinux, run "setenforce 0".

Installation will take between 10-15 minutes. Using your browser, go to http://YOUR_SERVER_IP_OR_DOMAIN in order to create your admin account and login to your dashboard. Also do not forget to download client SDKs.

64-bit support only

Due to MongoDB and 32-bit limitations, we only support new installations on 64 bit servers.

Running Countly from a subdirectory

It is also possible to run Countly from a subdirectory. Follow those instructions to configure this.

Method 4: Installation via Docker

We provide various Docker images for Countly Community Edition & Countly Enterprise Edition suitable for both: standard Docker installations & Kubernetes clusters. Please refer to Docker & Kubernetes page for further information.

Configure DNS

While Countly server will work without a DNS, it's suggested that you assign a DNS A record to your server, so you do not have to memorize IP address, like

Configure email delivery

Due to potential spam issues, you need make sure that you configure your DNS records (explained below), so that emails sent from Countly (e.g when you add a new user, or daily/weekly email reports) can be sent and not caught by SPAM preventions.

Here are a few important things you should check first:

  1. Make sure your ISP have a reverse DNS record entered to associate the domain names and IP addresses you send mail from. Test your Reverse PTR record here. If your ISP does not enter the proper reverse DNS pointer record, it's very unlikely any of your email will be delivered.

  2. Is your domain's SPF record correct? Test your SPF record here. Note that TXT is the correct official record type for SPF.

  3. Is your domain's DKIM record correct? This will significantly improve email deliverability. Test your DKIM record here.

  4. If you run your own mail server, check to make sure the IPs of your mail server are not on any email blacklists. Also verify that it is definitely sending a fully-qualified hostname that resolves in DNS in its HELO message. If not, this will cause your email to be rejected by many mail services.

We highly recommend you send a test email to to verify that all the above is working correctly.

Using a 3rd party email server

If you want to use a 3rd party email server and instead not use Countly server's email abilities, do the following:

  1. Rename this file (/extend/mail.example.js in your Countly directory) to /extend/mail.js.
  2. Add your email server information. An example is provided below:
module.exports = function(mail){
    //define this if you need to send email from some third party service
    mail.smtpTransport = nodemailer.createTransport(smtpTransport({
        host: "",
        secureConnection: true,
        port: 2525,
        auth: {
            user: "your-mailserver-username",
            pass: "your-mailserver-password"

Configure monitoring for your server

When your server has a problem (e.g lack of enough RAM, lack of swap space, running out of disk etc), chances are Linux kernel will kill some of the processes, or Countly won't work properly. In order to make sure you have a healthy and stable server, we suggest that you use one of monitoring and alerting solutions like Server Density, Nagios or New Relic.

Making Countly more secure

We have a list of security & privacy recommendations, together with guidelines on how to ensure a secure deployment. You can read it here.

Was this article helpful?
0 out of 0 found this helpful

Looking for help?