- Dockerfile with Alpine Linux base and proper security configuration - docker-compose.yml with host networking for optimal WebRTC performance - docker-entrypoint.sh for automated setup and configuration - Environment-based configuration with .env.example - Comprehensive README.md with setup and troubleshooting guide - Example advanced configuration file (wirow.ini.example) - Wirow binary and documentation (wirow.pdf) Admin credentials: admin / z5JTlF (change after first login) |
||
|---|---|---|
| .dockerignore | ||
| .env.example | ||
| .gitignore | ||
| docker-compose.yml | ||
| docker-entrypoint.sh | ||
| Dockerfile | ||
| README.md | ||
| wirow | ||
| wirow.ini.example | ||
| wirow.pdf | ||
Wirow Docker Setup
This repository contains a Dockerized version of Wirow, a WebRTC-based video conferencing server.
Prerequisites
- Docker and Docker Compose installed on your system
- A valid domain name pointing to your server's IP address
- Server accessible from the Internet on the following ports:
- TCP 80 (HTTP - for Let's Encrypt ACME challenge)
- TCP 443 (HTTPS)
- TCP/UDP 49152-65535 (WebRTC RTP ports)
- Linux x86_64 host (required for Docker host networking mode)
Quick Start
-
Clone or copy this repository to your server
-
Create environment configuration
cp .env.example .env -
Edit
.envfile and set your domain namenano .envAt minimum, you must set:
DOMAIN_NAME=your-domain.com -
Build and start the container
docker-compose up -d -
Check logs to ensure it's running
docker-compose logs -f -
Access your Wirow server
Open your browser and navigate to:
https://your-domain.com -
Login with default admin credentials
Username: admin Password: z5JTlFImportant: Change the admin password immediately after first login in the Admin UI.
Configuration
Environment Variables
The following environment variables can be configured in the .env file:
| Variable | Description | Default | Required |
|---|---|---|---|
DOMAIN_NAME |
Your domain name for Let's Encrypt certificates | - | Yes |
ADMIN_PASSWORD |
Initial admin password (set on first run only) | z5JTlF |
No |
LISTEN_IP |
IP configuration: auto, <ip>, or <private_ip>@<public_ip> |
auto |
No |
PORT |
HTTPS port | 443 |
No |
Advanced Configuration
For advanced configuration, you can create a wirow.ini file and mount it into the container:
- Create your custom
wirow.inibased on the example in the documentation - Uncomment the volume mount in
docker-compose.yml:volumes: - ./wirow.ini:/var/lib/wirow/wirow.ini:ro - Restart the container:
docker-compose restart
Network Modes
Host Network (Default - Recommended)
The default configuration uses Docker's host network mode. This is the recommended setup for WebRTC as it:
- Provides best performance
- Simplifies WebRTC connectivity
- Eliminates NAT traversal issues
Note: Host network mode only works on Linux hosts.
Bridge Network (Alternative)
If you need to use bridge networking (e.g., on macOS/Windows for testing), modify docker-compose.yml:
- Remove the
network_mode: hostline - Uncomment the
portssection (it's already there but will be used) - Configure
LISTEN_IPfor NAT traversal:LISTEN_IP=<container_private_ip>@<host_public_ip>
Behind a Proxy
If running behind an HTTP proxy (not recommended):
- Use a custom
wirow.iniconfiguration - Set the
-sflag in the entrypoint - Configure your proxy (Apache/NGINX) according to the documentation in
wirow.pdf - Ensure WebRTC ports are still accessible from external network
Data Persistence
All data is stored in the Docker volume wirow-data:
- Database
- Screen recordings
- Uploaded files
- Let's Encrypt certificates
To backup your data:
docker-compose down
docker run --rm -v wirow-data:/data -v $(pwd):/backup alpine tar czf /backup/wirow-backup.tar.gz /data
docker-compose up -d
To restore from backup:
docker-compose down
docker volume create wirow-data
docker run --rm -v wirow-data:/data -v $(pwd):/backup alpine tar xzf /backup/wirow-backup.tar.gz -C /
docker-compose up -d
Troubleshooting
Container fails to start
Check logs:
docker-compose logs
Certificate issues
Ensure:
- Your domain DNS points to your server's IP
- Port 80 is accessible from the Internet
- You haven't hit Let's Encrypt rate limits
WebRTC connection issues
Verify:
- Ports 49152-65535 (UDP/TCP) are open in your firewall
- Your domain is accessible via HTTPS
- Browser supports WebRTC (Chrome 74+, Firefox 70+, Safari 14+)
Reset admin password
docker-compose down
docker-compose run --rm wirow /usr/local/bin/wirow -a NEW_PASSWORD -d /var/lib/wirow
docker-compose up -d
Building from Source
If you need to rebuild the image:
docker-compose build --no-cache
docker-compose up -d
Updating Wirow
-
Stop the container:
docker-compose down -
Replace the
wirowbinary with the new version -
Rebuild and restart:
docker-compose build --no-cache docker-compose up -d
Security Recommendations
- Change the default admin password immediately after first login
- Use strong passwords for all user accounts
- Keep your server updated with security patches
- Use firewall rules to restrict access if needed
- Regularly backup your data volume
- Monitor logs for suspicious activity
System Requirements
- CPU: 2+ cores (more if using video recording)
- RAM: 4 GB minimum
- Storage: SSD recommended
- Network: Stable Internet connection with sufficient bandwidth
Documentation
For complete documentation, refer to wirow.pdf included in this repository.
Support
For issues and questions:
- Check the official Wirow documentation in
wirow.pdf - Review Docker logs:
docker-compose logs -f - Verify your network and DNS configuration
License
Wirow is proprietary software. See wirow.pdf for license information.