https://github.com/megafarad/omoiomoi
A solution for storing and viewing transcripts from Jitsi Meet.
https://github.com/megafarad/omoiomoi
jitsi-meet play-framework react redux scala transcription
Last synced: 5 months ago
JSON representation
A solution for storing and viewing transcripts from Jitsi Meet.
- Host: GitHub
- URL: https://github.com/megafarad/omoiomoi
- Owner: megafarad
- License: agpl-3.0
- Created: 2023-05-13T19:24:03.000Z (about 3 years ago)
- Default Branch: master
- Last Pushed: 2024-04-18T10:16:15.000Z (about 2 years ago)
- Last Synced: 2024-04-18T12:08:20.714Z (about 2 years ago)
- Topics: jitsi-meet, play-framework, react, redux, scala, transcription
- Language: Scala
- Homepage:
- Size: 14.4 MB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# OmoiOmoi Transcripts
A solution for storing and viewing transcripts from [Jitsi Meet](https://github.com/jitsi/jitsi-meet). Provides an
interface for viewing and searching transcripts, as well as storage in a database (Postgres).
# Usage
This project is deployed to https://transcripts.omoiomoi.org. You are welcome to sign up for an account there. At first,
you will not see meetings. You will want to configure [jigasi](https://github.com/jitsi/jigasi) with the following
entry:
```
org.jitsi.jigasi.transcription.SEND_JSON_REMOTE_URLS=https://transcripts.omoiomoi.org/api/meetingEvent
```
After configuration and following meetings, you will then see transcribed meetings in the OmoiOmoi UI.
# Development
## Tech Stack
* **Play Framework** and **Scala** for the REST API
* **React.js** and **Redux** for the UI
# Deployment
## Prerequisites
If you prefer to run your own instance of OmoiOmoi Transcripts, you will need the following:
1. A Postgres database.
2. An account with [Auth0](https://auth0.com). They offer a free tier with support for up to 7,000 users.
3. An application and an API configured in the Auth0 web console.
4. [SBT](https://www.scala-sbt.org/) installed.
## Building a Docker image
Perhaps the easiest way to deploy OmoiOmoi Transcripts is via a Docker container. To build a Docker image:
1. `git clone https://github.com/megafarad/omoiomoi.git`
2. Create a file named `.env` in the omoiomoi/ui directory, with the following entries:
```
REACT_APP_AUTH0_DOMAIN=<>
REACT_APP_AUTH0_CLIENT_ID=<>
REACT_APP_AUTH0_AUDIENCE=<>
REACT_APP_AUTH0_SCOPE=read:meetings
```
3. `cd omoiomoi/ui`
4. `yarn build`
5. `cd ..`
6. `sbt docker:publishLocal`
Once SBT is finished, you will have an image in Docker that you can deploy.
## Application Secret
Before deploying to production, you will need to generate an application secret. In the project directory, type
`sbt playGenerateSecret`. Keep the generated secret somewhere for configuration as an environment variable.
## Environment Variables
The following environment variables are expected for configuration:
| Environment Variable | Function | Default Value |
|----------------------|--------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------|
| `DB_URL` | The Postgres Database URL | jdbc:postgresql://localhost:5432/ |
| `DB_USER` | The database user | postgres |
| `DB_PASSWORD` | The database password | postgres |
| `AUTH0_DOMAIN` | Domain for Auth0. Configured in the Auth0 web console. | - |
| `AUTH0_AUDIENCE` | The Auth0 API Audience. Also configured in the Auth0 console. | - |
| `APPLICATION_SECRET` | The Play Framework Application Secret. More info is available [here](https://www.playframework.com/documentation/2.8.x/ApplicationSecret). | changeme |
| `HOST_DOMAIN` | The domain that will host OmoiOmoi Transcripts. | - |
# License
Copyright (C) Chris Carrington.
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License along with this program. If not, see https://www.gnu.org/licenses/.