# Jitsi Meet Docker Deployment

This repository provides a ready-to-deploy, dockerized setup for Jitsi Meet. It is based on the official Jitsi Docker release with specific modifications to accommodate custom SSL certificates and specific environments.

![intro](./screenshots/intro.png)

## Features
- Fully dockerized deployment.
- Pre-configured volume mapping for custom SSL certificates.
- Minimal configuration required.

## Prerequisites
- Docker and Docker Compose installed on your server.
- Custom SSL certificates (e.g., from your CDN provider).
- A domain name pointing to your server's IP address.

## Quick Start

### 1. Configure Environment Variables
Copy the sample environment file and create your own `.env` file:
```bash
cp env.sample .env
```

Open `.env` in your preferred text editor and modify the following essential variables:
```env
# Exposed HTTP port
HTTP_PORT=80

# Exposed HTTPS port
HTTPS_PORT=443

# Public URL of your Jitsi Meet instance
PUBLIC_URL=https://meet.yourdomain.com

# Disable Let's Encrypt automatic SSL (since we use custom certs)
ENABLE_LETSENCRYPT=0

# Enable redirect http to https
ENABLE_HTTP_REDIRECT=1
```

### 2. Configure Custom SSL Certificates
The `docker-compose.yml` is already modified to accept custom SSL certificates. You just need to place your certificates in the correct directory.

Create the configuration directory:
```bash
mkdir -p ~/.jitsi-meet-cfg/web/certs
```

Copy your certificate files to the newly created directory (adjust the source paths to match your actual files):
```bash
cp /path/to/your/fullchain.pem ~/.jitsi-meet-cfg/web/certs/cert.crt
cp /path/to/your/private.key ~/.jitsi-meet-cfg/web/certs/cert.key
```

Set the appropriate permissions for the security keys:
```bash
chmod 644 ~/.jitsi-meet-cfg/web/certs/cert.crt
chmod 600 ~/.jitsi-meet-cfg/web/certs/cert.key
```

### 3. Generate Passwords and Run
Jitsi requires internal passwords to securely connect its different components. Generate these automatically by running:
```bash
./gen-passwords.sh
```

Finally, start the deployment in detached mode:
```bash
docker compose up --build -d
```

Your Jitsi Meet instance should now be accessible at your configured `PUBLIC_URL`.

## Client Applications

![app](./screenshots/app.png)

Jitsi Meet is cross-platform. Once your server is up and running, users can connect via standard web browsers or download the official desktop and mobile applications for Windows, macOS, Linux, Android, and iOS from the official Jitsi website.
