No description
Find a file
Marcos Fermin 7d75a79ab9 Add Docker setup for Wirow video conferencing server
- 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)
2025-11-19 07:29:51 -05:00
.dockerignore Add Docker setup for Wirow video conferencing server 2025-11-19 07:29:51 -05:00
.env.example Add Docker setup for Wirow video conferencing server 2025-11-19 07:29:51 -05:00
.gitignore Add Docker setup for Wirow video conferencing server 2025-11-19 07:29:51 -05:00
docker-compose.yml Add Docker setup for Wirow video conferencing server 2025-11-19 07:29:51 -05:00
docker-entrypoint.sh Add Docker setup for Wirow video conferencing server 2025-11-19 07:29:51 -05:00
Dockerfile Add Docker setup for Wirow video conferencing server 2025-11-19 07:29:51 -05:00
README.md Add Docker setup for Wirow video conferencing server 2025-11-19 07:29:51 -05:00
wirow Add Docker setup for Wirow video conferencing server 2025-11-19 07:29:51 -05:00
wirow.ini.example Add Docker setup for Wirow video conferencing server 2025-11-19 07:29:51 -05:00
wirow.pdf Add Docker setup for Wirow video conferencing server 2025-11-19 07:29:51 -05:00

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

  1. Clone or copy this repository to your server

  2. Create environment configuration

    cp .env.example .env
    
  3. Edit .env file and set your domain name

    nano .env
    

    At minimum, you must set:

    DOMAIN_NAME=your-domain.com
    
  4. Build and start the container

    docker-compose up -d
    
  5. Check logs to ensure it's running

    docker-compose logs -f
    
  6. Access your Wirow server

    Open your browser and navigate to:

    https://your-domain.com
    
  7. Login with default admin credentials

    Username: admin
    Password: z5JTlF
    

    Important: 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:

  1. Create your custom wirow.ini based on the example in the documentation
  2. Uncomment the volume mount in docker-compose.yml:
    volumes:
      - ./wirow.ini:/var/lib/wirow/wirow.ini:ro
    
  3. Restart the container:
    docker-compose restart
    

Network Modes

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:

  1. Remove the network_mode: host line
  2. Uncomment the ports section (it's already there but will be used)
  3. Configure LISTEN_IP for NAT traversal:
    LISTEN_IP=<container_private_ip>@<host_public_ip>
    

Behind a Proxy

If running behind an HTTP proxy (not recommended):

  1. Use a custom wirow.ini configuration
  2. Set the -s flag in the entrypoint
  3. Configure your proxy (Apache/NGINX) according to the documentation in wirow.pdf
  4. 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

  1. Stop the container:

    docker-compose down
    
  2. Replace the wirow binary with the new version

  3. Rebuild and restart:

    docker-compose build --no-cache
    docker-compose up -d
    

Security Recommendations

  1. Change the default admin password immediately after first login
  2. Use strong passwords for all user accounts
  3. Keep your server updated with security patches
  4. Use firewall rules to restrict access if needed
  5. Regularly backup your data volume
  6. 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.