This guide explains how to deploy Frappe Meet on a single VPS using Docker. The deployment includes the Frappe backend, frontend, Socket.io, workers, MariaDB, Redis, Nginx, Certbot (for automated SSL), and the Mediasoup SFU server—all running via a streamlined Docker Compose stack.
- A VPS running a Linux distribution (e.g., Ubuntu 22.04+).
- A public IP address.
- A domain name (e.g.,
meet.example.com) pointed to your server's public IP address.
Run the following command on your server to download all the necessary deployment files:
curl -fsSL https://raw.githubusercontent.com/frappe/meet/develop/deploy/install.sh | bashBy default, the installer creates a frappe-meet directory in your current working path:
cd frappe-meetOpen the .env file generated by the installer and fill in your details:
nano .envMake sure to correctly set your DOMAIN, SITE_NAME, SSL_EMAIL, ADMIN_PASSWORD, DB_ROOT_PASSWORD, DB_PASSWORD, SFU_SECRET, and WEBRTC_ANNOUNCED_IP (your server's public IP).
Execute the automated setup script. This will pull the latest Docker images, provision SSL certificates, start all services, and bootstrap your Frappe site:
./deploy.sh setupThat's it! Your Frappe Meet instance should now be up and running at https://YOUR_DOMAIN.
To update your deployment to the latest version of Frappe Meet, simply run:
cd frappe-meet
./deploy.sh updateThis command automatically pulls the latest Docker images, restarts your containers, and runs any necessary database migrations.
The deploy.sh script is a wrapper around docker compose and bench, designed to make lifecycle management easy.
./deploy.sh help
Frappe Meet — Deployment Helper
Usage: ./deploy.sh <command>
Commands:
setup First-time setup (validate, pull, start, create site)
start Start all services
stop Stop all services
restart Restart all services
update Pull latest images, migrate, restart
migrate Run bench migrate
logs Tail logs (append service name to filter, e.g., sfu, backend, mariadb)
status Show container status
backup Run bench backup (Backups are stored in the 'sites' Docker volume)
shell Open a shell in the backend container
bench Run a bench command (e.g., ./deploy.sh bench --site X migrate)
ssl-init Provision SSL certificates
ssl-renew Force SSL renewal
help Show this message