Mave Core is the open-source video platform behind Mave. Run the dashboard, video uploads, encoding pipeline, embeddable player, API, and analytics on infrastructure you control. Metrics are built into Core.
Self-hosting covers the complete Core platform. The former standalone metrics project is no longer the starting point for a new installation: Core includes video management and analytics together. For event collection and player configuration, see video metrics.
Core is available under AGPL-3.0-or-later, with a commercial license also available. SaaS-specific billing and payment processing are outside Core. See open-source Mave for the managed and self-hosted options.
The Docker Compose bundle includes Core, PostgreSQL for application data, ClickHouse for analytics, MinIO for S3-compatible media storage, tusd for resumable uploads, and Caddy for web traffic and HTTPS. Video processing runs locally with FFmpeg.
You operate the services, storage, email, updates, monitoring, and backups. Browser components load from Mave’s hosted CDN by default, so browsers need internet access even though media and analytics stay on your installation.
Install Docker with Compose 2.24.4 or newer. For evaluation, allow at least 4 CPU cores, 8 GB RAM, and 20 GB free disk, plus space for your media.
git clone https://github.com/maveio/core.git
cd core
docker compose upThe first build can take a while. Wait for “Mave is ready”, then open the setup link in your terminal. Enter your email to create the first workspace and sign in. Alternatively, open localhost:4000 and enter the one-time setup code manually. Show the welcome message again with:
docker compose logs welcomeThe quickstart generates secrets and initializes the databases automatically. No environment file is needed for the default local setup. The installation binds to your own machine by default.
The first login works without email configuration. Configure SMTP for later email logins and team invitations using the email settings in the self-hosting guide. Put overrides in a private .env in the repository root and apply them with docker compose up -d.
For public hosting, configure your hostname’s DNS and allow ports 80/443. Before starting, add these settings to the root .env, replacing the example domain:
MAVE_BASE_URL=https://video.example.com
MAVE_CADDY_ADDRESS=video.example.com
MAVE_BIND_ADDRESS=0.0.0.0
MAVE_HTTP_PORT=80
MAVE_HTTPS_PORT=443Caddy handles HTTPS certificates. Use the release Compose setup for public hosting. Follow the full self-hosting guide for networking, email, storage configuration, and host requirements for media processing.
Upload a small video in the dashboard, wait for processing, and check playback. Copy the generated embed into a separate page and play it there. Open Data in the dashboard and allow a few seconds for analytics to appear.
Analytics use ClickHouse and receive batched HTTP events at /v1/events. Use the embed generated by your own installation. For custom integrations, see metrics configuration.
Run docker compose up -d from the repository root to start in the background and docker compose stop to stop while retaining data. Data and generated secrets live in persistent Docker volumes. Back up both, together with your .env if you use one. docker compose down -v deletes the installation’s volumes.
Before upgrading, back up your databases and media and retain the previous configuration and image. Follow the upgrade instructions for your installation method; existing scripted installations should keep their current directory, project name, volumes, and startup method. The bundle does not provide automated backups, high availability, or zero-downtime migrations.
For setup questions, join the Discord community. Report bugs in Mave Core on GitHub.