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 WebSocket 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.
-
File Sharing:
- Peer-to-peer WebSocket connections for sending files and text.
- File compression for efficient transfers.
- Optimized chunk-based file transfer with progress tracking.
-
Security:
- SSL/TLS encryption for secure communication.
- Self-signed certificate generation included.
-
Cross-Platform Compatibility:
- Runs seamlessly on Linux, macOS, and Windows with Dockerized support.
- π³ 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
- Rendering: Server-Side Rendering with Angular Universal
- State Management: RxJS observables
- Styling: Tailwind CSS with dark mode
- I18n: ngx-translate integration
- 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
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/security_settings.conf
: Security and rate limiting settingsnginx/security_headers.conf
: Security headers configurationnginx/locations.conf
: Location block configurations including SEO routesnginx/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:
CERT_PATH
: Path to SSL certificates (default:/etc/ssl/pastepoint
)SERVER_NAME
: Server name for SSL (default:pastepoint.com www.pastepoint.com
)RUST_BUILD_MODE
: Rust build mode (default:release
)NPM_BUILD_CONFIG
: npm build configuration (default:docker
)SERVER_ENV
: Server environment (default:production
)PORT
: SSR server port (default:4000
)HOST
: SSR server host (default:0.0.0.0
)
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
- 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: