Getting Started
Requirements
System prerequisites for running Swush.
Required
- Runtime: Bun (recommended) or Node.js
- Database: PostgreSQL
- FFmpeg: required for media previews and HLS processing
- Storage: local filesystem or S3-compatible storage for uploads and assets
- SMTP server for email notifications
- YT-DLP for Media remote downloads (optional, but recommended for that feature)
Recommended
- S3-compatible storage for large libraries
- Reverse proxy (Caddy/Nginx) for TLS in production
- Docker for simplified deployment and isolation
Capacity planning
- Disk: enough space for uploads + preview/HLS assets
- CPU: FFmpeg uses CPU for transcoding
- Network: plan for upload bandwidth and remote media fetching
- RAM: plan for concurrent uploads and previews
Install dependencies
bun installIf you use Docker, runtime dependencies are handled in the containers.