3.1 KiB
Audio + Mastodon = Audon
Audon is a service for Mastodon (and Pleroma) users to create and join rooms of live audio conversations.
Tech Stack
- Go powers the backend server
- Vue.js, Vite and Vuetify are used for the browser frontend
- LiveKit as WebRTC SFU and TURN server
- MongoDB and Redis for storing data
Deployment
Only Docker-based installation is currently supported. This repository provides pre-configured Dockerfile
and docker-compose.yaml
.
Note that the LiveKit service runs in the Host-network mode, thus the following ports have to be available in the host machine.
- 7880/tcp
- 7881/tcp
- 50000-60000/udp
- 5349/tcp
- 3478/udp
These ports are changeable in config/livekit.yaml
. Please refer to the documentation of LiveKit here.
Requirements
- Docker 20.10+
- docker-compose 2.12+
Installation Steps
Before getting started, clone this repo in your working directory.
git clone --recursive https://codeberg.org/nmkj/audon.git
Edit Config Files
The followings config files are needed to run Audon.
.env.production
config/livekit.yaml
config/redis.conf
First, create them by copying the sample files.
cp .env.production.sample .env.production && cp config/livekit.sample.yaml config/livekit.yaml && cp config/redis.sample.conf config/redis.conf
Then, create a pair of API key and secret to connect to LiveKit.
docker run --rm -it livekit/generate
You will be asked some questions, but they do not matter. Just enter random domains and keep hitting Return/Enter key.
Then generated API key and secret appear as follows:
API Key: your-key
API Secret: your-secret
Copy and paste these values to .env.production
and config/livekit.yaml
, for example,
keys:
your-key:your-secret
# Same as the keys field in livekit.yaml
LIVEKIT_API_KEY=your-key
# Same as the keys field in livekit.yaml
LIVEKIT_API_SECRET=your-secret
Prepare Reverse Proxy
The easiest way is to use Caddy as TLS endpoints. Here is an example Caddyfile:
audon.example.com {
encode gzip
reverse_proxy 127.0.0.1:8100
}
livekit.example.com {
reverse_proxy 127.0.0.1:7880
}
h2://livekit-turn.example.com {
reverse_proxy 127.0.0.1:5349
}
h3://livekit-turn.example.com {
reverse_proxy h3://127.0.0.1:3478
}
You may want to use your own TLS certificates with tls
directive of Caddyfile.
Build and Start Containers
With your config files ready, run the following command to start containers.
docker compose build && docker compose up -d