# plugNmeet-server: self-hosted video conferencing with a LiveKit under it

> plugNmeet-server is the Go backend of an open-source web conferencing system built on LiveKit, with AI meeting artifacts, E2EE, whiteboard and SIP support, published as a Docker image with SDKs for PHP and JavaScript. It suits a team embedding conferencing into its own product, and the service dependencies are more than one container.

**mynaparrot/plugNmeet-server** — The open-source, self-hosted video conferencing software. Scalable, customizable, and with a powerful AI Meeting Agent.

- Repository: https://github.com/mynaparrot/plugNmeet-server
- Website: https://www.plugnmeet.org
- Stars: 575 · Forks: 122
- Language: Go
- License: MIT
- Published: 2026-10-22 · Updated: 2026-10-22 · Language: en
- Canonical page: https://hysenlabs.com/projects/mynaparrot-plugnmeet-server

## Three repositories, and the server is only the Go half

The core components section splits the system into three pieces, and knowing which is which saves a lot of confusion. plugNmeet-server is the primary backend server written in Go, handling all the API and business logic. plugNmeet-client is the main frontend interface built with React and Redux, in a separate repository. plugNmeet-recorder is a dedicated Go application for managing MP4 recordings and RTMP broadcasting, also separate. So the project is a family of three repositories rather than one application, and the one in this repository is the Go service that the browser client talks to. The go.mod confirms the module path as github.com/mynaparrot/plugnmeet-server, requires Go 1.27.1, and lists the direct dependencies that describe what the server actually does, including the Fiber web framework at v3, pion webrtc v4, the LiveKit server SDK and protocol packages, GORM with a MySQL driver, the Redis client, NATS, gorilla/websocket, the Microsoft cognitive services speech SDK for Go, and both the OpenAI Go SDK and the Google genai package. That last pair is the AI meeting agent, and it is worth noticing that two providers are wired in.

## Adaptive streaming is where the LiveKit dependency earns its keep

The streaming features are described as adaptive streaming with Simulcast and Dynacast support, which the readme says ensures stable calls even on poor networks by intelligently managing video quality and bandwidth, with the supported codecs being H264, VP8, VP9 and AV1. Simulcast and Dynacast are LiveKit's own mechanisms rather than things plugNmeet implements, which is the clearest statement of the architecture in the whole readme: the media plane belongs to LiveKit and plugNmeet is the application layer on top of it. The consequence for an operator is that a plugNmeet deployment is really a LiveKit deployment with a chat and API server attached, and that the configuration work is split between the two. The tree supports that reading, with a livekit_sample.yaml at the top level alongside the plugNmeet config_sample.yaml, an ingress_sample.yaml for the RTMP and WHIP ingress path, and a nats_server_sample.conf, which is the messaging backbone LiveKit itself uses.

## The AI meeting agent produces artifacts, and it is the headline

The AI feature is described as turning meetings into actionable intelligence, with the agent providing live spoken translations, real-time transcription and automated summaries with action items, all accessible via the Artifacts API. The Artifacts API is the interesting part for an integrator, because it means the meeting output is a queryable object rather than something a user has to copy out of a panel. Two observations are worth making. First, this is not a local model feature: the go.mod lists the OpenAI Go SDK and the Google genai package as direct dependencies, so the agent talks to hosted providers, which is a data governance question rather than a technical one. Second, the Artifacts API is the integration surface, so if your product wants to write summaries into your own system, that API is the contract to read about rather than the user interface.

## E2EE, whiteboard, SIP dial-in and broadcasting

The collaboration and enterprise features are where the differences from a plain video call show. Communication is described as WebRTC-based encryption by default, with optional end-to-end encryption for all media and data channels. The collaboration tools include HD audio and video, screen sharing, virtual backgrounds, a collaborative whiteboard with office file support for PDF, DOCX and PPTX, a shared notepad, polls and breakout rooms. Office file support in the whiteboard depends on optional software, with libreoffice and mupdf-tools listed as optional requirements. Telephone dial-in comes through a SIP gateway, letting participants join the audio of a meeting by dialling a standard number with no internet required, and the tree ships a sip_sample.yaml for it. Broadcasting and recording are also described in detail, with reliable MP4 recording, RTMP and RTMPS broadcasting to services like YouTube, and RTMP and WHIP ingress for production tools like OBS.

## Running the server needs LiveKit, Redis and a database

The manual installation requirements are four items, and only the last is optional. You need a properly configured LiveKit instance, Redis for caching and messaging, MariaDB or MySQL for data storage, and optionally libreoffice and mupdf-tools for office file support in the whiteboard. You create a config.yaml from the config_sample.yaml and modify it with your environment details. With Docker the run command mounts your configuration file and passes its path.

```bash
docker run --rm -p 8080:8080 \
    -v $PWD/config.yaml:/config.yaml \
    mynaparrot/plugnmeet-server \
    --config /config.yaml \
```

There is also a docker-compose_sample.yaml in the repository to follow instead. The server image and the recorder image are both published on Docker Hub, and the readme points at a complete installation guide for the scripted route, plus an article on setting up a development environment. The go.mod also shows gorm with a database resolver plugin, which is how the server can spread reads across replicas, and Prometheus client instrumentation for metrics.

## Integration paths: SDKs, plugins, LTI and native apps

The breadth of integration options is a real differentiator for an embeddable conferencing product. There are official SDKs for PHP and for JavaScript, with the JavaScript one covering NodeJS and Deno. Ready-to-use plugins exist for WordPress, Moodle and Joomla, and there is LTI support for any compatible learning management system, which is how the Moodle plugin is built. The native mobile integration model is the one that gets the most attention, and the idea is specific: combine a native media layer with the full plugNmeet web client user interface, so a team can build a custom app for iOS, Android, Flutter, React Native or desktop without reimplementing the client. The server API documentation is published separately as the API Docs. The customisation promise is that you can change the interface, the features, the branding and the URLs to match your application without touching the core code, and the deep customisation claim sits alongside the theme and white label support in the feature list.

## Conclusion

plugNmeet-server fits a team that wants to embed video conferencing into an existing website or application with its own branding and API access, since the server, client and recorder are separate projects and the official SDKs and WordPress, Moodle, Joomla and LTI integrations cover the common cases. It does not fit a team that wants a single container, because a working install needs LiveKit, Redis and MariaDB or MySQL in addition to the server, and it does not fit a deployment that cannot ship the AI features to a third party, since the meeting agent calls out to language model providers. Before you deploy, read the installation guide and the configuration sample, decide whether the AI and E2EE options are acceptable for your data, and plan the LiveKit instance, because that is the component the whole system is built around.

## FAQ

### What is plugNmeet-server and how does it relate to LiveKit?

It is the Go backend of the plugNmeet open-source web conferencing system, handling all the API and business logic, built on the WebRTC infrastructure of LiveKit. The frontend is a separate React and Redux project and the recorder is a separate Go application, so the system spans three repositories.

### What does the AI meeting agent in plugNmeet do?

The agent provides live spoken translations, real-time transcription and automated summaries with action items, all accessible through the Artifacts API. The Go dependencies include the OpenAI Go SDK and the Google genai package, so the agent calls out to hosted language model providers.

### What do I need to install to run plugNmeet-server manually?

A properly configured LiveKit instance, Redis for caching and messaging, MariaDB or MySQL for data storage, and optionally libreoffice and mupdf-tools for office file support in the whiteboard. You also need to create a config.yaml from the config_sample.yaml and fill in your environment details.

### How do I run the plugNmeet server with Docker?

Run the published mynaparrot/plugnmeet-server image with the config file mounted and the path passed as the --config argument, for example docker run --rm -p 8080:8080 with $PWD/config.yaml mounted to /config.yaml. A docker-compose_sample.yaml is provided in the repository as an alternative.

### Which integrations does plugNmeet support?

Official SDKs for PHP and for JavaScript, including NodeJS and Deno, ready-to-use plugins for WordPress, Moodle and Joomla, LTI support for any compatible learning management system, and a native mobile integration model for building custom iOS, Android, Flutter, React Native or desktop apps.

## Sources

- [License: MIT](https://github.com/mynaparrot/plugNmeet-server/blob/main/LICENSE)
- [mynaparrot/plugNmeet-server on GitHub](https://github.com/mynaparrot/plugNmeet-server)
- [Project website](https://www.plugnmeet.org)
- [README](https://github.com/mynaparrot/plugNmeet-server/blob/main/README.md)
- [Releases](https://github.com/mynaparrot/plugNmeet-server/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/mynaparrot-plugnmeet-server
