A full featured self-hosted video web-conferencing platform shipped as a single executable.
- Works on Linux and FreeBSD.
- Single executable, no setup is required.
- Let's Encrypt integration - instant SSL certs generation for your web-conferencing host.
- Unlimited meeting rooms and webinars.
- Integrated whiteboard.
- Video calls recording.
- Low memory/CPU consumption due to lighting fast core engine written in C.
Wirow platform community edition is distributed under terms of AGPLv3 license
For a license to use the Wirow software under conditions other than AGPLv3, or for technical support for this software, please contact us at info@wirow.io
If you have a question, advice or an issue related to your server setup ask for help at Wirow Discussion Group. Please be patient and note what project maintainers have limited time provide a free support on this forum.
Fill an Issue If you believe that Wirow has a software bug.
- IWNET - Asynchronous HTTP Library
- EJDB2 - Embeddable JSON Database engine
- Mediasoup - C++ WebRTC SFU router
- Excalidraw - A Whiteboard Web UI
- FFmpeg
- Sentry error reporting
- Svelte Frontend Framework
cd ./docker
docker build --no-cache --force-rm -t wirow .
Please mind about the following volume dirs defined in Dokerfile:
/data
Where wirow database, uploads and room recordings are located./config/wirow.ini
A server configuration file.
Before starting Wirow docker container
- Read the Wirow server Administrator's Guide
- Review
/config/wirow.ini
ip/network options, ssl certs section (if you don't plan to use Let's Encrypt).
Basic check of Wirow server availability:
docker run --rm wirow -h
You have three options how to run a Wirow server:
- Wirow server on your domain with Let's Encrypt HTTPS Certificates. (Recommended)
- Wirow server on your host with own HTTPS certificates.
- Wirow server behind HTTP proxy.
Please check what your host is accessible by your domain name and 80/443, 44300-44600 tcp/udp ports are accessible.
Example:
# Below `start01` is the initial password for `admin` user
docker run --name wirow wirow -n mywirow.example.com -a start01
Later you may change your password and manage users by Admin UI.
Here is the Example:
WIROWSRC=<path to wirow cloned repo>
WORKDIR=<path to my workdir>
mkdir -p ${WORKDIR}/config
cd ${WORKDIR}/config
openssl req -x509 -nodes -days 3650 -newkey ec:<(openssl ecparam -name prime256v1) \
-keyout wirow-eckey.pem -out wirow-ecdsacert.pem
cp ${WIROWSRC}/docker/wirow.ini ./wirow.ini
echo -e '\n\n[main]' >> ./wirow.ini
echo 'cert_file = {config_file_dir}/wirow-ecdsacert.pem' >> ./wirow.ini
echo 'cert_key_file = {config_file_dir}/wirow-eckey.pem' >> ./wirow.ini
# Below `start01` is the initial password for admin user
docker run --name wirow -v ${WORKDIR}/config:/config wirow -a start01
23 Apr 17:15:06.543 INFO: main:ip=auto
23 Apr 17:15:06.543 INFO: main:data=/data
23 Apr 17:15:06.543 INFO: rtc:ports=44300..44600
23 Apr 17:15:06.543 INFO: main:cert_file=/config/wirow-ecdsacert.pem
23 Apr 17:15:06.543 INFO: main:cert_key_file=/config/wirow-eckey.pem
23 Apr 17:15:06.543 INFO: Number of workers: 6
23 Apr 17:15:06.544 INFO: Autodetected external IP address for wirow server: 172.17.0.2
23 Apr 17:15:06.544 INFO: Opening /data/wirow.db
23 Apr 17:15:06.791 INFO: Server on: 172.17.0.2:443
23 Apr 17:15:06.791 INFO: HTTP/HTTPS redirect port: 80
Point your browser https://172.17.0.2
(specific to this example) then use admin/start01
credentials at login page.
Later you may change your password and manage users by Admin UI.
Please refer to Wirow server Administrator's Guide
- Linux or FreeBSD
- Git
- CMake v3.18+
- GNU Make, autoconf, automake, libtool, ninja (optional)
- Nodejs v16+ and Yarn package manager v1.22+
- Clang C/C++ compiler v10+ or GCC v9+
- yasm assembler (yasm) needed by FFmpeg
- Python 3 pip package manager (python3-pip)
Example of prerequisite software installation on Debian/Ubuntu Linux:
apt-get install -y apt-utils software-properties-common \
apt-transport-https sudo curl wget gpg
wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null \
| gpg --dearmor -i \
| tee /etc/apt/trusted.gpg.d/kitware.gpg >/dev/null
wget -qO- https://deb.nodesource.com/setup_lts.x | bash -
wget -qO- https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add -
apt-add-repository -y 'deb https://apt.kitware.com/ubuntu/ focal main'
echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list
apt-get update
apt-get install -y autoconf automake pkgconf \
binutils build-essential ca-certificates cmake \
g++ gcc git libtool make ninja-build nodejs python-is-python3 yarn \
yasm python3-pip
git clone --recurse-submodules https://github.com/wirow-io/wirow-server.git
mkdir -p ./wirow-server/build && cd ./wirow-server/build
cmake .. -G Ninja \
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
-DIW_EXEC=ON
ninja
Wirow build artifacts are located here:
./build/src/wirow # Stripped binary
./build/src/wirow_g # Binary with debug symbols (Not stripped)
/*
* Copyright (C) 2022 Greenrooms, Inc.
*
* 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 http://www.gnu.org/licenses/
*/