Skip to content

Self-hosted edition

Run Customer360 on your own server with Docker, licensed by an offline key.

5 min readFor Admins

The self-hosted edition is the same product running on your own infrastructure: your data never leaves your servers. It needs a Linux server with Docker (2 vCPU and 4 GB RAM is enough for most sites), a domain name pointing to it and an SMTP account for emails.

  1. 1Copy docker/selfhosted.env.example to .env and fill it in: APP_URL, DOMAIN, MONGO_PASSWORD, the three crypto keys, PRODUCT_ADMIN_EMAILS, SMTP and your ELEXY_LICENSE_KEY.
  2. 2Run docker compose --profile tls up -d --build. This starts the app, MongoDB (with authentication, not reachable from outside) and Caddy, which gets an HTTPS certificate automatically.
  3. 3Open your APP_URL, sign up with an email from PRODUCT_ADMIN_EMAILS and create your organization.
  4. 4Install the tracking script on your websites as usual.
openssl rand -base64 32   # DATA_ENCRYPTION_KEY, BLIND_INDEX_KEY, IP_HASH_SALT_SEED
openssl rand -hex 24      # MONGO_PASSWORD

Licence key

  • Eleserv Softech issues a signed key (trial or paid). It is checked on your server: no connection to Eleserv is needed.
  • The key sets your plan limits, the number of organizations and the expiry date. The Billing page shows the licence status.
  • Without a valid key, or after it expires, dashboards stay readable but tracking pauses. Put the renewal key in .env and run docker compose up -d.

Upgrades and backups

  • Upgrade: fetch the new release, then docker compose up -d --build. Database changes are applied automatically on start.
  • Back up the MongoDB data (for example a nightly mongodump) and your .env file. Encrypted fields can't be read without the original crypto keys.

Good to know: Never change DATA_ENCRYPTION_KEY or BLIND_INDEX_KEY after the first start: encrypted emails and phone numbers would become unreadable.

Related topics

Self-hosted edition · Guide · Customer360