Zelvynta CRMDocs
Install

Install with Docker Compose

Download Zelvynta CRM, add your settings and start it with Docker Compose.

Download Zelvynta CRM

Copy the source code to your server, then move into its folder.

git clone https://github.com/Zelvynta/zelvynta-platform.git
cd zelvynta-platform

Run every command on this page from inside the zelvynta-platform folder.

Create your settings file

Copy the example settings file. Zelvynta CRM reads its settings from .env.

cp .env.example .env

Add two secret keys

Create a long random value:

openssl rand -hex 32

Open the settings file:

nano .env

Replace these two placeholder values. Use a different random value for each one.

SettingReplace this placeholder
AUTH_SECRETreplace-with-a-long-random-string
UPDATER_SECRETreplace-with-a-random-updater-secret

Save the file. In nano, press Ctrl+O, then Enter, then Ctrl+X.

Warning

Keep .env private. UPDATER_SECRET guards the update agent, which can control Docker on your server. Don't commit .env or share it.

Start Zelvynta CRM

docker compose -f infra/compose/docker-compose.yml up -d --build

The first start builds the app on your server. This can take several minutes.

Check that it is running

docker compose -f infra/compose/docker-compose.yml ps

web, worker, mongodb, redis, caddy and updater should show as running. mongodb-init stops after its first run. That is expected.

Block the ports that must stay private

This Compose file also opens ports 3000 (the app without HTTPS), 27017 (the database) and 6379 (Redis). They are there for testing. Only ports 80 and 443 should be reachable from the internet.

Block 3000, 27017 and 6379 in your VPS provider's network firewall. Leave port 22 open so you can still use SSH.

Danger: risk of data loss

The database on port 27017 has no password in this setup. If that port is reachable from the internet, anyone can read or delete all of your CRM data.

Note

Docker opens published ports in the server's own firewall rules, so tools such as ufw on the server don't block them. Use the firewall your VPS provider offers instead.

Next step

Connect your domain and turn on HTTPS.

On this page