{"id":18036385,"url":"https://github.com/miguelpeixe/jitsi-provisioner","last_synced_at":"2025-03-27T08:30:42.487Z","repository":{"id":42216318,"uuid":"274950372","full_name":"miguelpeixe/jitsi-provisioner","owner":"miguelpeixe","description":"Deploy Jitsi Meet servers in less than 3 minutes","archived":false,"fork":false,"pushed_at":"2023-03-14T23:50:42.000Z","size":3967,"stargazers_count":6,"open_issues_count":25,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-10-15T07:02:40.893Z","etag":null,"topics":["cli","feathersjs","jitsi-meet","provision","terraform"],"latest_commit_sha":null,"homepage":"https://meet.peixe.co","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/miguelpeixe.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-06-25T15:24:05.000Z","updated_at":"2024-08-15T01:23:03.000Z","dependencies_parsed_at":"2024-06-12T18:00:22.517Z","dependency_job_id":"b2b0d467-8649-4cbb-9cbb-54de3473e44f","html_url":"https://github.com/miguelpeixe/jitsi-provisioner","commit_stats":{"total_commits":153,"total_committers":2,"mean_commits":76.5,"dds":0.0065359477124182774,"last_synced_commit":"1f094b6d60d436907b01e3ccc8ca71b80a128a6c"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelpeixe%2Fjitsi-provisioner","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelpeixe%2Fjitsi-provisioner/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelpeixe%2Fjitsi-provisioner/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelpeixe%2Fjitsi-provisioner/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/miguelpeixe","download_url":"https://codeload.github.com/miguelpeixe/jitsi-provisioner/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245388762,"owners_count":20607164,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli","feathersjs","jitsi-meet","provision","terraform"],"created_at":"2024-10-30T12:12:47.692Z","updated_at":"2025-03-27T08:30:41.851Z","avatar_url":"https://github.com/miguelpeixe.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Jitsi Provisioner\n\nA lightweight app that deploys [Jitsi Meet](https://jitsi.org/) servers in the cloud in less than 3 minutes.\n\n---\n\nThis app is built using [Feathersjs](https://feathersjs.com/) with [NeDB](https://github.com/louischatriot/nedb), [Terraform](https://www.terraform.io/), [CloudFlare Node API](https://github.com/cloudflare/node-cloudflare) and [ec2instances.info](https://github.com/powdahound/ec2instances.info) for AWS instance types and cost estimates database.\n\nYou can see a demo at https://meet.peixe.co.\n\n## Requirements\n\n- [Amazon Web Services](https://aws.amazon.com/) account\n- [CloudFlare](https://www.cloudflare.com/) located domain\n\n## Features\n\n- Provision a Jitsi Meet server of any size and in any region of the world\n- Terminate and provision again at any time, preserving allocated elastic IP, hostname and the automatically generated LetsEncrypt certificates\n- Create your Jitsi AMI with one click for even faster provisioning\n- Store history of instance states for cost calculation\n- A [web client](https://meet.peixe.co/) and a [CLI](cli) to easily manage your setup\n- REST and real-time [socket.io](https://socket.io/) API\n\n## Installation\n\nJitsi Provisioner uses [Docker](https://www.docker.com/) and [Docker Compose](https://docs.docker.com/compose/) for easier setup. [Learn how to install and use Docker](https://docs.docker.com/get-docker/).\n\nStart by cloning the repository:\n\n```\n$ git clone https://github.com/miguelpeixe/jitsi-provisioner.git\n$ cd jitsi-provisioner\n```\n\nCopy env.example to .env:\n\n```\n$ cp env.example .env\n```\n\nGenerate JWT secret by running the random secret generator:\n\n```\n$ ./gen-secrets.sh\n```\n\nEdit `.env` and set your [AWS Access Key](https://console.aws.amazon.com/iam/home?#/security_credentials), [CloudFlare Global API Key](https://dash.cloudflare.com/profile/api-tokens) and other required information.\n\nStart the server with docker-compose. `-d` flag enables detached mode and run the container in the background:\n\n```\n$ docker-compose up -d\n```\n\nAccess http://localhost:3030\n\n## Demo mode\n\nFor 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.\n\nIn demo mode:\n\n- There is only one user with admin/admin credentials\n- You cannot create new users\n- Instances are not created in AWS\n- DNS changes are not made in CloudFlare\n- Creates fake instances with fake data\n\n## Users\n\nWith demo mode off you can create and delete users using the [custom cli](cli):\n\n```\n$ cd cli/\n$ npm install\n$ ./bin/jitsi-provisioner users create myuser --password mypassword --role admin\n$ ./bin/jitsi-provisioner users remove myuser\n```\n\n### Changing user password\n\n```\n$ ./bin/jitsi-provisioner users changePassword myuser mypassword\n```\n\n### Changing user role\n\nA non-admin user can only provision and terminate available instances. They cannot create new instances or AMIs.\n\n```\n$ ./bin/jitsi-provisioner users changeRole myuser user\n```\n\n## CLI\n\nYou can also use the [CLI](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`.\n\nYou can also install the CLI globally and connect to remote Jitsi Provisioner apps. [Read more about using the CLI](cli).\n\n## Volume and data\n\nDatabase 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.\n\n### Data directory structure\n\n```\n├── db ........................... Database directory\n│   ├── amis.db .................. AMIs database\n│   ├── aws.db ................... AWS instance types and prices pulled from ec2instances.info\n│   ├── history.db ............... Instances state history database\n│   ├── instances.db.............. Instances database\n│   └── users.db ................. Users database\n├── amis ......................... AMIs root directory\n│   └── 72df3c ................... AMI directory with config data\n│       ├── terraform.tfstate .... Terraform state file\n│       └── tfcreate ............. Terraform creation plan\n└── instances .................... Instances root directory\n    └── 2a6e43 ................... Instance directory with config data and keys\n        ├── eip .................. Directory containing terraform state and plan for the EIP\n        ├── instance ............. Directory containing terraform state and plan for the instance\n        ├── certificate.tar.gz ... LetsEncrypt certificate\n        ├── jitsi.tar.gz ......... Jitsi config\n        ├── recordings.tar.gz .... Jitsi recordings\n        ├── transcripts.tar.gz ... Jitsi transcripts\n        ├── key.pem .............. AWS private key for server access\n        └── key.pem.pub .......... AWS public key\n```\n\n## Development\n\nUse docker for development environment, with `docker-compose.dev.yml` compose file:\n\n```\n$ docker-compose -f docker-compose.dev.yml up\n```\n\n## Important information\n\nAlways remember to check [Amazon EC2 pricing table](https://aws.amazon.com/ec2/pricing/on-demand/) and your [billing dashboard](https://console.aws.amazon.com/billing/home).\n\nAWS instance cost estimates are not guaranteed to be accurate or current.\n\nThis project is experimental and has no relation to [Jitsi.org](https://jitsi.org/).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmiguelpeixe%2Fjitsi-provisioner","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmiguelpeixe%2Fjitsi-provisioner","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmiguelpeixe%2Fjitsi-provisioner/lists"}