web: count.ly twitter: @gocountly 2
This guide will take you through;
1. Deployment planning
3. SDK integration
5. Support requests
web: count.ly twitter: @gocountly 3
Countly Enterprise Server consists of two main nodes;
1. Countly application server
2. MongoDB database server
In the next few slides we’ll go over deployment options, talking about replication
and high availability scenarios including server specs.
Deployment Planning: Option 1
web: count.ly twitter: @gocountly 4
Most basic form of a Countly deployment is a single node acting as both Countly application
server and MongoDB database server.
Single Node (server)
Node 2Node 1
Deployment Planning: Option 2
web: count.ly twitter: @gocountly 5
Most common and recommended way of a production Countly deployment is like below. Two Countly application
servers behind a load balancer and a MongoDB replica set with one primary and one secondary.
Dashboard UserCountly SDK
MongoDB Replica Set
Primary Secondary Arbiter
Deployment Planning: Server Specs for Option 1
web: count.ly twitter: @gocountly 6
• 4GB RAM for each core in your node.
• 30GB boot disk.
• 100GB+ (depending on your data volume) SSD disk for MongoDB.
Deployment Planning: Server Specs for Option 2
web: count.ly twitter: @gocountly 7
• 2GB RAM for each core in Countly application server(s).
• 4GB RAM for MongoDB primary and secondary for each core in Countly application server(s). If you
have a 4 core Countly deployment, your database servers need 16GB RAM at minimum.
• MongoDB servers need minimal CPU resources.
• MongoDB arbiter needs minimal resources. You can have a 1 core, 2GB RAM server as your arbiter.
Arbiter doesn’t store any data and is only there for replica set member voting procedure.
• All 5 servers; 2 Countly, MongoDB primary, secondary and arbiter each needs 30GB boot disks.
• Data bearing servers, MongoDB primary and secondary, each needs 100GB+ (depending on your
data volume) SSD disks.
Deployment Planning: Ports
web: count.ly twitter: @gocountly 8
• Countly nodes need 80 (http), 443 (https), 53 (DNS) and 25 (mail) ports to be open.
• MongoDB requires 27017 port to be open (for replica set).
For all MongoDB ports see this link.
web: count.ly twitter: @gocountly 9
1. Upload Countly installation package to Countly node(s)
2. Extract it
3. Follow steps in this document for operating system specific guidance
If you are deploying Option 2, you need to;
1. Install a MongoDB replica set as described here
2. Configure both Countly nodes to use the new replica set as described here
web: count.ly twitter: @gocountly 10
• This link contains a list of Countly SDKs with integration guides
• In order to develop your own SDK you can check out this guide
SDK Integration: Custom Events
web: count.ly twitter: @gocountly 11
Countly collects session related metrics out of the box. For custom metric tracking
Countly offers a mechanism called custom events. Custom events should be
planned out carefully before starting SDK integration.
For further information;
1. Custom events
2. SDK methods for custom events
web: count.ly twitter: @gocountly 12
Countly offers a plugin architecture where you can develop your own plugin in
order to do custom data processing and reporting without touching Countly core
Plugins: Development Guidelines
web: count.ly twitter: @gocountly 14
● Plugin structure
● Plugin API side
● Frontend server side files
● Frontend browser files
● Frontend client side files
● Extending or modifying modules
● Shared configurations
web: count.ly twitter: @gocountly 15
• You can email firstname.lastname@example.org for any request
• Alternatively, you can submit a request to Countly Support Forum
• http://resources.count.ly contains detailed documentation about every aspect of Countly