
PastePoint is a secure, feature-rich file-sharing service designed for local networks. It enables users to share files and communicate efficiently through peer-to-peer WebRTC connections. Built with a Rust-based backend using Actix Web and an Angular frontend with SSR support, PastePoint prioritizes security, performance, and usability.
-
Local Network Communication:
- Establish WebSocket-based local chat between computers on the same network
- List available sessions, create new sessions, or join existing ones
- Real-time messaging with emoji support and dark/light theme
-
File Sharing:
- Peer-to-peer WebRTC connections for secure file transfers
- Drag & drop file upload with real-time progress tracking
- File offer system with accept/decline options
- Chunk-based file transfer with progress tracking and cancellation support
-
Security:
- End-to-end encryption for all file transfers via WebRTC
- SSL/TLS encryption for WebSocket signaling
- Self-signed certificate generation included
- Input validation and rate limiting
-
Cross-Platform Compatibility:
- Runs seamlessly on Linux, macOS, and Windows with Dockerized support
- Responsive design for mobile and desktop
- 🐳 Full Docker integration
- 📦 Isolated microservices architecture
- 🔧 Configurable environments (dev/prod)
- ✅ Comprehensive test suites
- 🚀 Server-Side Rendering (SSR) for improved initial load time
- 🔍 Complete SEO optimization with metadata, sitemap, and robots.txt
- 📦 Response compression for faster page loads
- 🎯 Static asset optimization with proper caching headers
- Framework: Actix Web with WebSocket support
- Security: OpenSSL for TLS termination
- Utilities: UUID generation, Serde serialization
- Rate Limiting: Actix-governor for request throttling
- Rendering: Server-Side Rendering with Angular Universal
- State Management: RxJS observables
- Styling: Tailwind CSS with dark mode
- I18n: ngx-translate integration (English, Arabic) (WIP)
- WebRTC: Native WebRTC API for file transfers
- Notifications: Hot-toast for real-time feedback
- Container Orchestration: Docker Compose with multi-stage builds
- Reverse Proxy: Nginx with enhanced security features
- SSL/TLS: Automated certificate management
- Health Monitoring: Built-in health check endpoints
- SSR Server: Express.js with compression middleware
pastepoint/
├── 📁 client/ # Angular frontend with SSR
├── 📁 server/ # Rust backend with WebSockets
├── 📁 nginx/ # Reverse proxy & SSL termination
├── 📁 scripts/ # Development & deployment scripts
├── docker-compose.yml # Multi-container orchestration
├── .nvmrc # Node.js version specification
├── rust-toolchain # Rust toolchain specification
├── Makefile # Makefile for development
└── README.md # Project documentation
- Work in progress
- Work in progress
docker-compose.yml
: Manages containers for:- Backend service (Rust)
- Frontend SSR service (Angular + Express)
- Certificate checker service
- Nginx reverse proxy
scripts/generate-certs.sh
: Script to generate self-signed certificatesscripts/configure-network.sh
: Script to configure the domain name for the local network (optional)nginx/nginx.conf
: Main Nginx configurationnginx/locations.conf
: Location block configurations including SEO routesnginx/security/
: Security-related configurationssecurity_settings.conf
: Security and rate limiting settingssecurity_headers.conf
: Security headers configuration
nginx/includes/
: Reusable configuration snippetscommon_proxy_ssr.conf
: SSR proxy settingscommon_proxy_ws.conf
: WebSocket proxy settingscommon_cache_busting.conf
: No-cache headerscommon_rate_limiting.conf
: Rate limiting status codescommon_ssl.conf
: SSL/TLS settings
- Docker and Docker Compose
- Node.js (v22.14.0 as specified in
.nvmrc
) - Rust (stable, specified in
rust-toolchain
)
- Windows 10/11 with WSL2 enabled
- Docker Desktop for Windows
- Git Bash or PowerShell 7+ for running scripts
- OpenSSL installed via
winget install OpenSSL
-
Clone the repository:
git clone https://github.com/SloMR/pastepoint.git cd pastepoint
-
Generate SSL certificates (required for HTTPS):
./scripts/generate-certs.sh
-
Configure for Local Network (Optional): If you want to run PastePoint on your local network instead of just localhost:
./scripts/configure-network.sh
This will prompt you to enter your local IP address and update all necessary configuration files.
-
Build and Start Services:
make dev # or make prod
-
Access PastePoint:
- 🔗 Frontend:
- Localhost: https://localhost
- Local Network:
https://<your-local-ip>
- 🔌 Server API:
- Localhost: https://localhost:9000
- Local Network:
https://<your-local-ip>:9000
- 🔗 Frontend:
Common Issues:
- SSL Certificate Errors
Run:
./scripts/generate-certs.sh
-
Certificate Management:
- Replace self-signed certificates with proper SSL certificates in production
- Keep private keys secure and never commit them to version control
-
Data Privacy:
- All file transfers are encrypted end-to-end via WebRTC
- No data is stored permanently on servers
- Session data is cleared on server restart or leaving the session
This project is licensed under the GPL-3.0 License. See the LICENSE file for details.
For issues or feature requests:

Leave a Reply