Files
PrivyDrop/frontend
david_bai 246eff196e feat(deploy,ssl): automate Let’s Encrypt (webroot), preserve SSL, and auto-enable HTTPS
- generate-config.sh
      - Add flags: --no-clean, --reset-ssl, --ssl-mode (letsencrypt|self-signed|provided)
      - Stop deleting docker/ssl by default; only wipe on explicit --reset-ssl
      - Inject ACME webroot route into HTTP (80) server; create docker/letsencrypt-www
      - Default SSL_MODE: full=letsencrypt, private/public=self-signed
      - Add enable_https_if_cert_present: append 443 server only when server-cert.pem/server-key.pem exist
      - Keep self-signed path generating HTTPS immediately (non-basic)
  - docker-compose.yml
      - Mount ./docker/letsencrypt-www:/var/www/certbot:ro for Nginx ACME challenges
  - deploy.sh
      - Add --le-email for Let’s Encrypt account email
      - Auto-install certbot once (apt-get) and enable systemd timer if available
      - Install deploy hook at /etc/letsencrypt/renewal-hooks/deploy/privydrop-reload.sh to:
          - Copy renewed certs into docker/ssl
          - Hot-reload Nginx; HUP or restart coturn
      - First-time issuance (webroot) for <domain> and turn.<domain> after Nginx:80 is up; copy certs
      - Re-run generate-config with --no-clean --ssl-mode letsencrypt to enable 443, then reload Nginx
  - Behavior changes
      - Full mode prefers Let’s Encrypt by default; HTTPS gets enabled as soon as certs exist
      - docker/ssl is no longer wiped by config generation
  - Notes
      - SNI-based turns:443 is not implemented yet (planned)
      - Backward compatible with private/public (self-signed)
2025-10-05 12:43:56 +08:00
..
2025-06-22 21:34:54 +08:00
2025-06-20 20:54:42 +08:00
2025-06-20 20:54:42 +08:00
2025-06-22 10:13:47 +08:00
2025-06-20 20:54:42 +08:00
2025-06-20 20:54:42 +08:00

PrivyDrop - Frontend

This is the frontend for PrivyDrop, a privacy-focused file sharing application built with Next.js and based on WebRTC.

🛠️ Tech Stack

  • Frontend Framework: Next.js 14 (App Router)
  • UI Framework: React 18 + TypeScript
  • Styling: Tailwind CSS + shadcn/ui
  • P2P Transport: WebRTC
  • Signaling Service Client: Socket.IO Client
  • Internationalization: next-intl

🚀 Local Development

Before you start, please ensure you have installed and started the backend service according to the instructions in the project's root README.md.

  1. Navigate to the Directory

    # Assuming you are in the project's root directory
    cd frontend
    
  2. Install Dependencies

    pnpm install
    
  3. Configure Environment Variables First, copy the environment variable configuration from the template file:

    cp .env_development_example .env.development
    

    Then, open and edit the .env.development file, ensuring that NEXT_PUBLIC_API_URL points to your locally running backend service.

  4. Start the Development Server

    pnpm dev
    
  5. Open http://localhost:3002 in your browser to see the application.

📚 Detailed Documentation

🤝 Contributing

We welcome all forms of contributions! Please read the Contribution Guidelines in the root directory to get started.