/countly-server

Countly is a product analytics platform that helps teams track, analyze and act-on their user actions and behaviour on mobile, web and desktop applications.

Primary LanguageJavaScriptOtherNOASSERTION

CI CodeQL Analysis

🔗 Quick links

🌟 What is Countly?

Countly is a product analytics platform that helps teams track, analyze and act on their user actions and behaviour on mobile, web and desktop applications.

Countly is used to track 1.5B unique identities on more than 16,000 applications via 2,000+ servers worldwide. It securely processes billions of data points every day in the cloud and on-premises, enabling teams of all sizes to build better applications and engaging experiences while maintaining full control over their product analytics data flow.

🚀 What are the Countly editions?

  • Countly Lite — Essential plugins/features and a free-to-use, open source, non-commercial license. Available as self-hosted. Suitable for individuals and small organizations.
  • Countly Enterprise — Offers a wider range of plugins/features, granular data, an SLA, and direct support. Available as self-hosted or Countly hosted/managed. Suitable for medium and large organizations.
  • Countly Flex — Our SaaS platform that offers some Enterprise features as core features, and some others as add-ons. Everyone gets their dedicated and fully-managed Countly server(s) in the region they choose. Suitable for individuals, small and medium-sized organizations.

For a detailed comparison of different editions please check here. To try the Countly Flex please visit this page.

Also, please note that SDKs of Countly are the same for all editions.

📦 What is included in this repository?

This repository includes server-side part of Countly, with the following features:

  • Session, view and event collection and reporting
  • Crash/error reporting for iOS, Android, React Native, Flutter, NodeJS, Unity, Java and Javascript
  • Rich and interactive push notifications for iOS and Android
  • Remote configuration to adjust your app's logic, appearance, and behavior on the fly
  • In-app ratings with customizable widgets
  • Built in reports and customizable dashboards
  • Email reports and alerts
  • Hooks to send the data to external parties via email or webhooks
  • Data Manager to plan and manage events and event segmentations
  • Compliance Hub for consent collection and data subject request management
  • User, application and permission management
  • Read and write APIs
  • Plugin based architecture for easy customization

content

📈 What can Countly track?

Countly can collect and visualize data from mobile, web and desktop applications. Using the write-API you can send data into Countly from any source. For more information please check the below resources:

🛠️ Installing and upgrading Countly server

Countly installation script assumes it is running on a fresh Ubuntu/CentOS/RHEL Linux without any services listening on port 80 or 443 (which should also be open to incoming traffic), and takes care of every library and software required to be installed for Countly to run.

There are several ways to install Countly:

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

    wget -qO- https://c.ly/install | bash

  2. For bash lovers, we provide a beautiful installation script (bin/countly.install.sh) in countly-server package which installs everything required to run Countly Server. For this, you need a stable release of this repository available here.

  3. Countly Lite also has Docker support - see our official Docker repository and installation instructions for Docker.

If you want to upgrade Countly from a previous version, please take a look at upgrading documentation.

🧩 API, extensibility and plugins

Countly has a well-defined API, that reads and writes data from/to the Countly backend. Countly dashboard is built using the read API, so it's possible to fetch any information you see on the dashboard using the API.

Countly is extensible using the plugin architecture. If you would like to modify any exiting feature by extending it or changing it, or if you would like to add completely new capabilities to Countly you can modify existing plugins or create new ones. We suggest you read this document if you would like to start with plugin development.

💚 Community

We have a new Discord Server (new as of Apr 2023) for our community 🎉 Please join us for any support requests, feature ideas, to showcase the application you are working on and for some occasional fun :)

🔒 Security

Security is very important to us. If you discover any issue regarding security, please disclose the information responsibly by sending an email to security@count.ly and not by creating a GitHub issue.

🏗️ Built with

  • MongoDB — One of the most popular NoSQL databases
  • NodeJS — An open-source, cross-platform JavaScript runtime environment
  • Linux — What we all love using ;-)

Plus lots of open source libraries!

🤝 How can I help you with your efforts?

  1. Fork this repo
  2. Create your feature branch (git checkout -b my-new-super-feature)
  3. Commit your changes (git commit -am 'Add some cool feature')
  4. Push to the branch (git push origin my-new-super-feature)
  5. Create a new pull request

Also, you are encouraged to read an extended contribution section on how to contribute to Countly.

👍 Badges

If you like Countly, why not use one of our badges and give a link back to us?

Countly - Product Analytics

<a href="https://countly.com/?utm_source=badge" rel="nofollow"><img style="width:145px;height:60px" src="https://count.ly/badges/dark.svg" alt="Countly - Product Analytics" /></a>

Countly - Product Analytics

<a href="https://countly.com/?utm_source=badge" rel="nofollow"><img style="width:145px;height:60px" src="https://count.ly/badges/light.svg" alt="Countly - Product Analytics" /></a>