📝(doc) update README to engage users
Revamp README to be more engaging and informative. Goal: Foster a true open-source spirit by making it easier for contributors to engage, interact, and contribute. Heavily inspired by PostHog's excellent README.
This commit is contained in:
committed by
aleb_the_flash
parent
fdb6dda65b
commit
e04d9a9dab
228
README.md
228
README.md
@@ -1,157 +1,113 @@
|
|||||||
# Meet
|
<p align="center">
|
||||||
|
<img alt="posthoglogo" src="./docs/assets/visio-logo.png" maxWidth="100%">
|
||||||
Meet is a simple video and phone conferencing tool, powered by [LiveKit](https://livekit.io/).
|
</p>
|
||||||
|
|
||||||
Meet is built on top of [Django Rest
|
|
||||||
Framework](https://www.django-rest-framework.org/) and [Vite.js](https://vitejs.dev/).
|
|
||||||
|
|
||||||
## Getting started
|
|
||||||
|
|
||||||
### Prerequisite
|
|
||||||
|
|
||||||
#### Docker
|
|
||||||
|
|
||||||
Make sure you have a recent version of Docker and [Docker
|
|
||||||
Compose](https://docs.docker.com/compose/install) installed on your laptop:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
$ docker -v
|
|
||||||
Docker version 20.10.2, build 2291f61
|
|
||||||
|
|
||||||
$ docker compose -v
|
|
||||||
docker compose version 1.27.4, build 40524192
|
|
||||||
```
|
|
||||||
|
|
||||||
> ⚠️ You may need to run the following commands with `sudo` but this can be
|
|
||||||
> avoided by assigning your user to the `docker` group.
|
|
||||||
|
|
||||||
#### LiveKit CLI
|
|
||||||
|
|
||||||
Install LiveKit CLI, which provides utilities for interacting with the LiveKit ecosystem (including the server, egress, and more), please follow the instructions available in the [official repository](https://github.com/livekit/livekit-cli).
|
|
||||||
|
|
||||||
### Project bootstrap
|
|
||||||
|
|
||||||
The easiest way to start working on the project is to use GNU Make:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
$ make bootstrap FLUSH_ARGS='--no-input'
|
|
||||||
```
|
|
||||||
|
|
||||||
Then you can access to the project in development mode by going to http://localhost:3000.
|
|
||||||
You will be prompted to log in, the default credentials are:
|
|
||||||
```bash
|
|
||||||
username: meet
|
|
||||||
password: meet
|
|
||||||
```
|
|
||||||
---
|
|
||||||
|
|
||||||
This command builds the `app` container, installs dependencies, performs
|
|
||||||
database migrations and compile translations. It's a good idea to use this
|
|
||||||
command each time you are pulling code from the project repository to avoid
|
|
||||||
dependency-related or migration-related issues.
|
|
||||||
|
|
||||||
Your Docker services should now be up and running 🎉
|
|
||||||
|
|
||||||
[FIXME] Explain how to run the frontend project.
|
|
||||||
|
|
||||||
### Configure LiveKit CLI
|
|
||||||
|
|
||||||
For the optimal DX, create a default project named `meet` to use with `livekit-cli` commands:
|
|
||||||
```bash
|
|
||||||
$ livekit-cli project add
|
|
||||||
URL: http://localhost:7880
|
|
||||||
API Key: devkey
|
|
||||||
API Secret: secret
|
|
||||||
Give it a name for later reference: meet
|
|
||||||
? Make this project default?? [y/N] y
|
|
||||||
```
|
|
||||||
|
|
||||||
Thus, you won't need to pass the project API Key and API Secret for each command.
|
|
||||||
|
|
||||||
|
|
||||||
### Adding content
|
<p align="center">
|
||||||
|
<a href="https://github.com/suitenumerique/meet/stargazers/">
|
||||||
|
<img src="https://img.shields.io/github/stars/suitenumerique/meet" alt="">
|
||||||
|
</a>
|
||||||
|
<a href='http://makeapullrequest.com'><img alt='PRs Welcome' src='https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=shields'/></a>
|
||||||
|
<img alt="GitHub commit activity" src="https://img.shields.io/github/commit-activity/m/suitenumerique/meet"/>
|
||||||
|
<img alt="GitHub closed issues" src="https://img.shields.io/github/issues-closed/suitenumerique/meet"/>
|
||||||
|
<a href="https://github.com/suitenumerique/meet/blob/main/LICENSE">
|
||||||
|
<img alt="GitHub closed issues" src="https://img.shields.io/github/license/suitenumerique/meet"/>
|
||||||
|
</a>
|
||||||
|
</p>
|
||||||
|
|
||||||
You can create a basic demo site by running:
|
<p align="center">
|
||||||
|
<a href="https://livekit.io/">LiveKit</a> - <a href="https://go.crisp.chat/chat/embed/?website_id=58ea6697-8eba-4492-bc59-ad6562585041">Chat with us</a> - <a href="https://github.com/orgs/suitenumerique/projects/3/views/2">Roadmap</a> - <a href="https://github.com/suitenumerique/meet/blob/main/CHANGELOG.md">Changelog</a> - <a href="https://github.com/suitenumerique/meet/issues/new?assignees=&labels=bug&template=Bug_report.md">Bug reports</a>
|
||||||
|
</p>
|
||||||
|
|
||||||
```bash
|
<p align="center">
|
||||||
$ make demo
|
<a href="https://visio.numerique.gouv.fr/">
|
||||||
```
|
<img src="https://github.com/user-attachments/assets/09c1faa1-de88-4848-af3a-6fbe793999bf" alt="Visio Demonstration">
|
||||||
|
</a>
|
||||||
|
</p>
|
||||||
|
|
||||||
Finally, you can check all available Make rules using:
|
## Visio: Simple Video Conferencing
|
||||||
|
|
||||||
```bash
|
Powered by [LiveKit](https://livekit.io/), Visio offers Zoom-level performance with high-quality video and audio. No installation required—simply join calls directly from your browser. Check out LiveKit's impressive optimizations in their [blog post](https://blog.livekit.io/livekit-one-dot-zero/).
|
||||||
$ make help
|
### Features
|
||||||
```
|
- Optimized for stability in large meetings (+100 p.)
|
||||||
|
- Support for multiple screen sharing streams
|
||||||
### Django admin
|
- Non-persistent, secure chat
|
||||||
|
- End-to-end encryption (coming soon)
|
||||||
You can access the Django admin site at
|
- Meeting recording (coming soon)
|
||||||
[http://localhost:8071/admin](http://localhost:8071/admin).
|
- Meeting transcription (currently in beta)
|
||||||
|
- Telephony integration (in development)
|
||||||
You first need to create a superuser account:
|
- Secure participation with robust authentication and access control
|
||||||
|
- LiveKit Advances features including :
|
||||||
```bash
|
- speaker detection
|
||||||
$ make superuser
|
- simulcast
|
||||||
```
|
- end-to-end optimizations
|
||||||
|
- selective subscription
|
||||||
### Run application on local Kubernetes
|
- SVC codecs (VP9, AV1)
|
||||||
|
|
||||||
The application is deployed across staging, preprod, and production environments using Kubernetes (K8s).
|
|
||||||
Reproducing environment conditions locally is crucial for developing new features or debugging issues.
|
|
||||||
|
|
||||||
This is facilitated by [Tilt](https://tilt.dev/) ("Kubernetes for Prod, Tilt for Dev"). Tilt enables smart rebuilds and live updates for services running locally in Kubernetes. We defined our services in a Tiltfile located at `bin/Tiltfile`.
|
|
||||||
|
|
||||||
|
|
||||||
#### Getting Started
|
Visio is fully self-hostable and released under the MIT License, ensuring complete control and flexibility. It's free to [get started](https://visio.numerique.gouv.fr/) or [request a demo](mailto:visio@numerique.gouv.fr).
|
||||||
|
|
||||||
Make sure you have installed:
|
We’re continuously adding new features to enhance your experience, with the latest updates coming soon!
|
||||||
- kubectl
|
|
||||||
- helm
|
|
||||||
- helmfile
|
|
||||||
- tilt
|
|
||||||
|
|
||||||
To build and start the Kubernetes cluster using Kind:
|
|
||||||
```shell
|
|
||||||
$ make build-k8s-cluster
|
|
||||||
```
|
|
||||||
|
|
||||||
Once the Kubernetes cluster is ready, start the application stack locally:
|
## Table of Contents
|
||||||
```shell
|
|
||||||
$ make start-tilt
|
|
||||||
or
|
|
||||||
$ make start-tilt-keycloak # start stack without Pro Connect, use keycloak
|
|
||||||
```
|
|
||||||
These commands set up and run your application environment using Tilt for local Kubernetes development.
|
|
||||||
|
|
||||||
You can monitor Tilt's at `http://localhost:10350/`. After Tilt actions finish, you can access the app at `https://meet.127.0.0.1.nip.io/`.
|
- [Get started for free](#get-started-for-free)
|
||||||
|
- [Docs](#docs)
|
||||||
|
- [Contributing](#contributing)
|
||||||
|
- [Philosophy](#philosophy)
|
||||||
|
- [Open-source](#open-source)
|
||||||
|
|
||||||
#### Debugging frontend
|
|
||||||
|
|
||||||
Tilt deploys the `meet-dev` for the frontend by default, to benefit from Vite.js hot reloading while developing.
|
## Get started for free
|
||||||
To troubleshoot production issues, please modify the Tiltfile, switch frontend's target to `frontend-production`:
|
|
||||||
|
|
||||||
```yaml
|
### Visio Cloud (Recommended)
|
||||||
...
|
Sign up for Visio Cloud, designed for European public servants. Hosted on SecNumCloud-compliant providers and accessible via government SSO, [ProConnect](https://www.proconnect.gouv.fr/). Start for free. Reach out if your entity isn't connected yet to our sso.
|
||||||
|
|
||||||
docker_build(
|
### Open-source deploy (Advanced)
|
||||||
'localhost:5001/meet-frontend:latest',
|
|
||||||
context='..',
|
Deploy Visio on your own infrastructure using [our self-hosting guide](https://github.com/suitenumerique/meet/blob/main/docs/installation.md). Our open-source deployment is optimized for Kubernetes, and we're working on supporting additional deployment options. Keycloak integration and any SSO are supported. We offer customer support for open-source setups—just reach out for assistance.
|
||||||
dockerfile='../src/frontend/Dockerfile',
|
|
||||||
only=['./src/frontend', './docker', './.dockerignore'],
|
## Docs
|
||||||
target='frontend-production', # Update this line when needed
|
|
||||||
live_update=[
|
We're currently working on both technical and user documentation for Visio. In the meantime, many of the essential aspects are already well covered by the [LiveKit documentation](https://docs.livekit.io/home/) and their [self-hosting guide](https://docs.livekit.io/home/self-hosting/deployment/). Stay tuned for more updates!
|
||||||
sync('../src/frontend', '/home/frontend'),
|
|
||||||
]
|
|
||||||
)
|
|
||||||
...
|
|
||||||
```
|
|
||||||
|
|
||||||
## Contributing
|
## Contributing
|
||||||
|
|
||||||
This project is intended to be community-driven, so please, do not hesitate to
|
We <3 contributions big and small:
|
||||||
get in touch if you have any question related to our implementation or design
|
|
||||||
decisions.
|
|
||||||
|
|
||||||
## License
|
- Vote on features or get early access to beta functionality in our [roadmap](https://github.com/orgs/suitenumerique/projects/3/views/2)
|
||||||
|
- Open a PR (see our instructions on [developing Visio locally](https://github.com/suitenumerique/meet/blob/main/docs/developping_locally.md))
|
||||||
|
- Submit a [feature request](https://github.com/suitenumerique/meet/issues/new?assignees=&labels=enhancement&template=Feature_request.md) or [bug report](https://github.com/suitenumerique/meet/issues/new?assignees=&labels=bug&template=Bug_report.md)
|
||||||
|
|
||||||
This work is released under the MIT License (see [LICENSE](./LICENSE)).
|
|
||||||
|
## Philosophy
|
||||||
|
|
||||||
|
We’re relentlessly focused on building the best open-source video conferencing product—Visio. Growth comes from creating something people truly need, not just from chasing metrics.
|
||||||
|
|
||||||
|
Our users come first. We’re committed to making Visio as accessible and easy to use as proprietary solutions, ensuring it meets the highest standards.
|
||||||
|
|
||||||
|
Most of the heavy engineering is handled by the incredible LiveKit team, allowing us to focus on delivering a top-tier product. We follow extreme programming practices, favoring pair programming and quick, iterative releases. Challenge our tech and architecture—simplicity is always our top priority.
|
||||||
|
|
||||||
|
|
||||||
|
## Open-source
|
||||||
|
|
||||||
|
Gov 🇫🇷 supports open source! This project is available under [MIT license](https://github.com/suitenumerique/meet/blob/0cc2a7b7b4f4821e2c4d9d790efa739622bb6601/LICENSE).
|
||||||
|
|
||||||
|
All features we develop will always remain free, and we are committed to contributing back to the LiveKit community whenever feasible.
|
||||||
|
To learn more, don't hesitate to [reach out](mailto:visio@numerique.gouv.fr).
|
||||||
|
|
||||||
|
### Help us!
|
||||||
|
|
||||||
|
Come help us make Visio even better. We're growing fast and [would love some help](mailto:visio@numerique.gouv.fr).
|
||||||
|
|
||||||
|
|
||||||
|
## Contributors 🧞
|
||||||
|
|
||||||
|
<a href="https://github.com/suitenumerique/meet/graphs/contributors">
|
||||||
|
<img src="https://contrib.rocks/image?repo=suitenumerique/meet" />
|
||||||
|
</a>
|
||||||
|
|
||||||
|
## Credits
|
||||||
|
|
||||||
|
We're using the awesome [LiveKit](https://livekit.io/) implementation. We're also thankful to the teams behind [Django Rest Framework](https://www.django-rest-framework.org/), [Vite.js](https://vite.dev/), and [React Aria](https://github.com/adobe/react-spectrum) — Thanks for your amazing work!
|
||||||
|
|||||||
BIN
docs/assets/visio-logo.png
Normal file
BIN
docs/assets/visio-logo.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 28 KiB |
145
docs/developping_locally.md
Normal file
145
docs/developping_locally.md
Normal file
@@ -0,0 +1,145 @@
|
|||||||
|
# Getting Started
|
||||||
|
|
||||||
|
Before setting up, let's review Visio's architecture.
|
||||||
|
|
||||||
|
Visio consists of four main components that run simultaneously:
|
||||||
|
|
||||||
|
- React frontend, built with Vite.js
|
||||||
|
- Django server
|
||||||
|
- LiveKit server
|
||||||
|
- FastAPI server (optional, required for AI beta features)
|
||||||
|
|
||||||
|
These components rely on a few key services:
|
||||||
|
|
||||||
|
- PostgreSQL for storing data (users, rooms, recordings)
|
||||||
|
- Redis for caching and inter-service communication
|
||||||
|
- MinIO for storing files (room recordings)
|
||||||
|
- Celery workers for meeting transcript (optional, required for AI beta features)
|
||||||
|
|
||||||
|
We provide two stack options for getting Visio up and running for development:
|
||||||
|
|
||||||
|
- Docker Compose stack (recommended for most users)
|
||||||
|
- Kubernetes stack powered by Tilt (Advanced)
|
||||||
|
|
||||||
|
We recommend starting with the **Docker Compose** option for simplicity. However, if you're comfortable with running Kubernetes locally, the advanced option mirrors the production environment and provides most of the tools required for development (e.g., hot reloading).
|
||||||
|
|
||||||
|
These instructions are for macOS or Ubuntu. For other distros, adjust as needed.
|
||||||
|
|
||||||
|
If any steps are outdated, please let us know!
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
We also provide **GNU make utilities**. To view all available Make rules, run:
|
||||||
|
```shellscript
|
||||||
|
$ make help
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Need Help?
|
||||||
|
If you need any assistance or have questions while getting started, feel free to reach out to @lebaudantoine anytime! Antoine is available to help you onboard and guide you through the process. Chat with him @antoine.lebaud:matrix.org, or from the [support hotline](https://go.crisp.chat/chat/embed/?website_id=58ea6697-8eba-4492-bc59-ad6562585041).
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Option 1: Developing with Docker
|
||||||
|
|
||||||
|
### Prerequisites
|
||||||
|
|
||||||
|
1. Ensure you have a recent version of **Docker** and **Docker Compose** installed:
|
||||||
|
```shellscript
|
||||||
|
$ docker -v
|
||||||
|
Docker version 20.10.2, build 2291f61
|
||||||
|
|
||||||
|
$ docker compose version
|
||||||
|
Docker Compose version v2.32.4
|
||||||
|
```
|
||||||
|
|
||||||
|
2. Install **LiveKit CLI** by following the instructions available in the [official repository](https://github.com/livekit/livekit-cli). After installation, verify that it's working:
|
||||||
|
```shellscript
|
||||||
|
$ lk --version
|
||||||
|
lk version 2.3.1
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Project Bootstrap
|
||||||
|
|
||||||
|
1. Bootstrap the project using the **Make** command. This will build the `app` container, install dependencies, run database migrations, and compile translations:
|
||||||
|
```shellscript
|
||||||
|
$ make bootstrap FLUSH_ARGS='--no-input'
|
||||||
|
```
|
||||||
|
|
||||||
|
2. Access the project:
|
||||||
|
- The frontend is available at [http://localhost:3000](http://localhost:3000) with the default credentials:
|
||||||
|
- username: meet
|
||||||
|
- password: meet
|
||||||
|
- The Django backend is available at [http://localhost:8071](http://localhost:8071)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Developing
|
||||||
|
|
||||||
|
- To **stop** the application:
|
||||||
|
```shellscript
|
||||||
|
$ make stop
|
||||||
|
```
|
||||||
|
|
||||||
|
- To **restart** the application:
|
||||||
|
```shellscript
|
||||||
|
$ make run
|
||||||
|
```
|
||||||
|
|
||||||
|
- For **frontend development**, start all backend services without the frontend container:
|
||||||
|
```shellscript
|
||||||
|
$ make run-backend
|
||||||
|
```
|
||||||
|
|
||||||
|
Then:
|
||||||
|
```shellscript
|
||||||
|
$ make frontend-development-install
|
||||||
|
$ make run-frontend-development
|
||||||
|
```
|
||||||
|
|
||||||
|
Which is equivalent to these direct npm commands:
|
||||||
|
```shellscript
|
||||||
|
$ cd src/frontend
|
||||||
|
$ npm i
|
||||||
|
$ npm run dev
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Adding Content
|
||||||
|
|
||||||
|
You can bootstrap demo data with a single command:
|
||||||
|
```shellscript
|
||||||
|
$ make demo
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Option 2: Developing with Kubernetes
|
||||||
|
|
||||||
|
Visio is deployed across staging, preprod, and production environments using **Kubernetes (K8s)**. Reproducing the environment locally is crucial for developing new features or debugging.
|
||||||
|
|
||||||
|
This is facilitated by [Tilt](https://tilt.dev/), which provides Kubernetes-like development for local environments, enabling smart rebuilds and live updates.
|
||||||
|
|
||||||
|
### Getting Started
|
||||||
|
|
||||||
|
Make sure you have the following installed:
|
||||||
|
- kubectl
|
||||||
|
- helm
|
||||||
|
- helmfile
|
||||||
|
- tilt
|
||||||
|
|
||||||
|
To build and start the Kubernetes cluster using **Kind**:
|
||||||
|
```shellscript
|
||||||
|
$ make build-k8s-cluster
|
||||||
|
```
|
||||||
|
|
||||||
|
Once the Kubernetes cluster is ready, start the application stack locally:
|
||||||
|
```shellscript
|
||||||
|
$ make start-tilt-keycloak
|
||||||
|
```
|
||||||
|
|
||||||
|
Monitor Tilt’s progress at [http://localhost:10350/](http://localhost:10350/). After Tilt actions finish, you can access the app at [https://visio.127.0.0.1.nip.io/](https://visio.127.0.0.1.nip.io/).
|
||||||
Reference in New Issue
Block a user