Deploy Jitsi Meet servers in less than 3 minutes
A lightweight app that deploys Jitsi Meet servers in the cloud in less than 3 minutes.
This app is built using Feathersjs with NeDB, Terraform, CloudFlare Node API and ec2instances.info for AWS instance types and cost estimates database.
You can see a demo at https://meet.peixe.co.
Jitsi Provisioner uses Docker and Docker Compose for easier setup. Learn how to install and use Docker.
Start by cloning the repository:
$ git clone https://github.com/miguelpeixe/jitsi-provisioner.git
$ cd jitsi-provisioner
Copy env.example to .env:
$ cp env.example .env
Generate JWT secret by running the random secret generator:
$ ./gen-secrets.sh
Edit .env
and set your AWS Access Key, CloudFlare Global API Key and other required information.
Start the server with docker-compose. -d
flag enables detached mode and run the container in the background:
$ docker-compose up -d
Access http://localhost:3030
For safety purposes, demo mode is active by default. You can switch it off by setting DEMO=0
in your .env
file and restart your container.
In demo mode:
With demo mode off you can create and delete users using the custom cli:
$ cd cli/
$ npm install
$ ./bin/jitsi-provisioner users create myuser --password mypassword --role admin
$ ./bin/jitsi-provisioner users remove myuser
$ ./bin/jitsi-provisioner users changePassword myuser mypassword
A non-admin user can only provision and terminate available instances. They cannot create new instances or AMIs.
$ ./bin/jitsi-provisioner users changeRole myuser user
You can also use the CLI to manage your whole setup. If you want to just use the CLI or the API, you can disable the web client completely by setting NO_CLIENT=1
on your .env
.
You can also install the CLI globally and connect to remote Jitsi Provisioner apps. Read more about using the CLI.
Database and instance configuration data are persisted inside the DATA_PATH
defined in .env
, which is .data/
by default. This variable is not passed to the container, instead used to create a local volume for the container.
├── db ........................... Database directory
│ ├── amis.db .................. AMIs database
│ ├── aws.db ................... AWS instance types and prices pulled from ec2instances.info
│ ├── history.db ............... Instances state history database
│ ├── instances.db.............. Instances database
│ └── users.db ................. Users database
├── amis ......................... AMIs root directory
│ └── 72df3c ................... AMI directory with config data
│ ├── terraform.tfstate .... Terraform state file
│ └── tfcreate ............. Terraform creation plan
└── instances .................... Instances root directory
└── 2a6e43 ................... Instance directory with config data and keys
├── eip .................. Directory containing terraform state and plan for the EIP
├── instance ............. Directory containing terraform state and plan for the instance
├── certificate.tar.gz ... LetsEncrypt certificate
├── jitsi.tar.gz ......... Jitsi config
├── recordings.tar.gz .... Jitsi recordings
├── transcripts.tar.gz ... Jitsi transcripts
├── key.pem .............. AWS private key for server access
└── key.pem.pub .......... AWS public key
Use docker for development environment, with docker-compose.dev.yml
compose file:
$ docker-compose -f docker-compose.dev.yml up
Always remember to check Amazon EC2 pricing table and your billing dashboard.
AWS instance cost estimates are not guaranteed to be accurate or current.
This project is experimental and has no relation to Jitsi.org.