Skip to main content

Requirements

Docker Engine 24+

Install via curl -fsSL https://get.docker.com | sh

MariaDB 10.6+ or 11.x

An existing external MariaDB instance is required

1 GB RAM minimum

2 GB recommended for production use

4 GB Disk

For the container image and persistent volumes

Soketi (required)

WebSocket server required for the realtime dashboard data feed and provider testing results
Soketi is required, not optional. Without it the dashboard will not receive realtime updates and provider connection tests will not return results to the UI.

Installation

Docker run commands assume you already have a database installed and configured. SQLite is fine for most installs, but you can also use more traditional relational databases like MariaDB, MySQL, and PostgreSQL. See Environment Variables for the available DB_CONNECTION drivers and their connection parameters.
1

Prepare your database

Connect to your MariaDB instance and create the database and user:
Use '%' as the host so the MariaDB user is reachable from inside the Docker container. 'localhost' will not work because the container has its own network namespace.
2

Generate an application key

Copy the full output — it starts with base64:. You will use it as APP_KEY in the next step.
3

Run Soketi (required for realtime features)

Zepeed uses Soketi as its WebSocket server to power the realtime dashboard data feed and to stream provider testing results back to the UI. Start it before launching Zepeed:
The SOKETI_DEFAULT_APP_ID, SOKETI_DEFAULT_APP_KEY, and SOKETI_DEFAULT_APP_SECRET values must match the PUSHER_APP_ID, PUSHER_APP_KEY, and PUSHER_APP_SECRET you set on the Zepeed container in the next step.
If Soketi runs on a different host than Zepeed, set PUSHER_HOST to that host’s address (instead of 127.0.0.1) when running the Zepeed container.
4

Run the container

See Environment Variables for a full description of every option.
5

Run the container

See Environment Variables for a full description of every option.
6

Follow the first-boot logs

Wait until you see: [default-account] Default admin account created: admin@zepeed.localThis confirms that migrations ran successfully and the admin account is ready.
7

Follow the first-boot logs

Wait until you see: [default-account] Default admin account created: admin@zepeed.localThis confirms that migrations ran successfully and the admin account is ready.
8

Open in your browser

Navigate to http://your-host:8080 and log in with the DEFAULT_ADMIN_EMAIL and DEFAULT_ADMIN_PASSWORD you set in step 3.
Change your password immediately after first login via Profile Settings.
9

Open in your browser

Navigate to http://your-host:8080 and log in with the DEFAULT_ADMIN_EMAIL and DEFAULT_ADMIN_PASSWORD you set in step 3.
Change your password immediately after first login via Profile Settings.

Updating

Re-run the same docker run command from step 3. Migrations run automatically on startup. Your volumes (zepeed-storage, zepeed-logs) persist across updates.
To pin a specific version replace :latest with a version tag, e.g. marjose123/zepeed:1.2.0.

Useful Commands