Skip to main content

Overview

FilePizza is a browser-based, peer-to-peer file sharing service deployed as part of the Mondo Open Platform Service (MOPS). It allows users to share files directly between browsers using WebRTC technology, without storing files on a central server.

Service Details

Architecture

FilePizza consists of a single container connected to the Traefik network:
FilePizza acts as a WebRTC signaling server to establish direct peer connections, but the file data transfers directly between browsers.

Deployment Configuration

Docker Compose File

Deployment Instructions

  1. Create the deployment directory:
  2. Create the docker-compose.yml file with the content shown above:
  3. Deploy the service:
  4. Verify the service is running:

Traefik Integration

FilePizza is configured with the following Traefik settings:
  • Host Rule: pizza.trymondo.com
  • Entrypoint: websecure (HTTPS)
  • TLS: Enabled with production certificate resolver
  • Backend Port: 3000

Usage

  1. Access the service at https://pizza.trymondo.com
  2. File senders can:
    • Select a file to share
    • Receive a unique URL to share with recipients
  3. File recipients:
    • Open the shared URL
    • Download the file directly from the sender’s browser

Important Notes

FilePizza requires WebRTC support in browsers. Some corporate firewalls or restrictive networks might block WebRTC connections.
FilePizza is a stateless application. No persistent volumes are needed as files are never stored on the server.

Resource Usage

FilePizza is a lightweight application with minimal resource requirements:
  • Memory: Typically less than 100MB
  • CPU: Minimal usage during idle periods, moderate during connection establishment

Maintenance

Updates

To update FilePizza to the latest version:

Troubleshooting

If the service is inaccessible:
  1. Check container status:
  2. View container logs:
  3. Verify Traefik routing:

Security Considerations

  • FilePizza doesn’t store files, reducing data exposure risks
  • All communications go through HTTPS via Traefik
  • WebRTC connections are encrypted by default
  • Consider adding Traefik middleware for additional security:

Additional Resources