Self-Hosting
Run your own Emberly instance with Docker, Dokploy, a PaaS, or directly on a server.
Emberly's source is public under the Elastic License 2.0. You can run a complete instance on your own server, with your own storage, domain and users, for free.
Deploying
Docker Compose, Dokploy, Railpack/Nixpacks, or a plain Linux server.
First-Time Setup
The Setup Wizard that creates your admin account.
Environment Variables
Every variable Emberly reads, and which ones you need.
Storage
Local disk, or any S3-compatible bucket.
License & Branding
Your own name and logo, and what a license adds.
Cloud vs. Self-Hosted
What a self-hosted instance includes.
Development
Run the monorepo locally.
Contributing
Code standards and the pull request process.
Quick Start
With Docker installed, you only need two files. PostgreSQL and Redis come with them:
Open http://localhost:3000 and the Setup Wizard walks you through creating the admin account. Database migrations run automatically when the container starts.
For other ways to deploy, see Deploying.
What You Need
| Component | Version | Notes |
|---|---|---|
| PostgreSQL | 14+ | Bundled in the Compose file |
| Redis | 7+ | Bundled in the Compose file |
| Storage | — | A local volume by default, or any S3-compatible bucket |
| Server | 2 GB RAM | More if you enable OCR on large uploads |
Configuration Model
Only a few things must be set before the first start: APP_URL, AUTH_SECRET, DATABASE_URL and REDIS_URL. Everything else, including email, storage and integrations, can be set either as environment variables or later in Admin → Settings. When both are set, environment variables win for storage, and the Admin Panel value wins for email.
See Environment Variables for the full list.
Repository Layout
Emberly is a monorepo. The app you deploy lives in apps/dashboard; the other apps are optional.
| Path | What it is |
|---|---|
apps/dashboard | The Emberly web app, API and background worker |
apps/docs | This documentation site |
apps/bot | The Emberly Discord bot |
packages/db | Prisma schema and migrations |
packages/config | Shared TypeScript and lint config |