Installation Guide
Complete guide for installing and configuring DesterLib.
System Requirements
Section titled “System Requirements”Server
Section titled “Server”- CPU: 2 cores minimum
- RAM: 2GB minimum
- Storage: Your media collection size + 10GB
- OS: Linux, macOS, or Windows
- Docker: Version 20.10 or higher
Client Devices
Section titled “Client Devices”- Android 5.0+, iOS 12+, macOS 10.15+, Windows 10+, or Linux
Server Installation
Section titled “Server Installation”Option 1: Quick Setup (Recommended)
Section titled “Option 1: Quick Setup (Recommended)”Perfect for: End users who want it working fast
macOS/Linux:
curl -fsSL https://raw.githubusercontent.com/DesterLib/desterlib/main/scripts/setup/unix.sh | bashWindows (PowerShell):
iwr -useb https://raw.githubusercontent.com/DesterLib/desterlib/main/scripts/setup/windows.ps1 | iexThe setup script will:
- Check Docker installation
- Clone the repository
- Prompt for configuration (media path, port, database)
- Set up and start DesterLib
Your server will be installed in ~/.desterlib/ (or a custom location you choose) and started automatically.
Verify it’s working:
curl http://localhost:3001/health# Should return: {"status":"ok",...}Option 2: Manual Setup (For Developers)
Section titled “Option 2: Manual Setup (For Developers)”Perfect for: Contributors and advanced users
# 1. Clone the repositorygit clone https://github.com/DesterLib/desterlib.gitcd desterlib
# 2. Start with Docker Composedocker compose up -d# Note: If you have older Docker, use: docker-compose up -d
# 3. Access at http://localhost:3001Optional: Customize with .env file in apps/api/:
DATABASE_URL=postgresql://postgres:postgres@postgres:5432/desterlibNODE_ENV=productionPORT=3001Client Installation
Section titled “Client Installation”Pre-built Apps
Section titled “Pre-built Apps”Available platforms:
| Platform | File |
|---|---|
| Android Phone/Tablet | Dester-*-Android.apk |
| macOS | Dester-*-macOS.zip |
| Windows | Dester-*-Windows.zip |
| Linux | Dester-*-Linux.tar.gz |
| iOS | Dester-*-iOS.ipa |
After installing:
- Open the app
- Enter:
http://YOUR_SERVER_IP:3001 - Scan Library from Settings
- Start watching!
Build from Source
Section titled “Build from Source”For iOS or if you prefer building yourself:
Android
Section titled “Android”-
Clone the Flutter app repository:
Terminal window git clone https://github.com/DesterLib/desterlib-flutter.gitcd desterlib-flutter -
Install Flutter dependencies:
Terminal window flutter pub get -
Build and install APK:
build/app/outputs/flutter-apk/app-release.apk # Build APKflutter build apk --release# Transfer to your Android device and install# Or install directly if device is connected:flutter install
-
Prerequisites:
- macOS with Xcode installed
- Apple Developer account (for device deployment)
-
Clone and setup:
Terminal window git clone https://github.com/DesterLib/Dester-Flutter.gitcd Dester-Flutterflutter pub get -
Install CocoaPods dependencies:
Terminal window cd iospod installcd .. -
Open in Xcode:
Terminal window open ios/Runner.xcworkspace -
Build and run:
- Select your device or simulator in Xcode
- Click Run (▶️) button
- Or use:
flutter run
Desktop Platforms
Section titled “Desktop Platforms”macOS:
git clone https://github.com/DesterLib/desterlib-flutter.gitcd desterlib-flutterflutter pub getflutter build macos --release
# App will be at: build/macos/Build/Products/Release/Dester.appLinux:
# Install dependencies firstsudo apt-get install clang cmake ninja-build pkg-config libgtk-3-dev liblzma-dev libmpv-dev mpv
git clone https://github.com/DesterLib/Dester-Flutter.gitcd Dester-Flutterflutter pub getflutter build linux --release
# Binary will be at: build/linux/x64/release/bundle/Windows:
git clone https://github.com/DesterLib/desterlib-flutter.gitcd desterlib-flutterflutter pub getflutter build windows --release
# App will be at: build/windows/x64/runner/Release/Managing Your Server
Section titled “Managing Your Server”Commands depend on your installation method:
If installed via setup script:
cd ~/.desterlib # or your custom installation directory
docker compose ps # View statusdocker compose logs -f # View logsdocker compose restart # Restartdocker compose down # Stopdocker compose pull && docker compose up -d # UpdateIf installed via Git:
cd desterlib
docker ps # View statusdocker compose logs -f # View logsdocker compose restart # Restartdocker compose down # Stopgit pull && docker compose up -d --build # UpdateDevelopment Setup
Section titled “Development Setup”For contributors who want to modify the code:
# 1. Clone and installgit clone https://github.com/DesterLib/desterlib.gitcd desterlibpnpm install
# 2. Start test databasedocker compose -f docker-compose.test.yml up -d
# 3. Configure .env in apps/api/DATABASE_URL=postgresql://postgres:postgres@localhost:5433/desterlib_testNODE_ENV=developmentPORT=3001
# 4. Run the APIcd apps/apipnpm db:generatepnpm db:pushpnpm devSee Contributing Guide for more details.
Remote Access
Section titled “Remote Access”To access from outside your network:
Option 1: Port Forwarding
- Forward port 3001 on your router
- Use dynamic DNS (e.g., DuckDNS, No-IP)
Option 2: Tunneling (Easier)
- Tailscale (recommended)
- ngrok:
ngrok http 3001 - Cloudflare Tunnel
Maintenance
Section titled “Maintenance”Database Backup
Section titled “Database Backup”docker exec -t desterlib-postgres pg_dump -U desterlib desterlib > backup.sqlDatabase Restore
Section titled “Database Restore”cat backup.sql | docker exec -i desterlib-postgres psql -U desterlib desterlibUninstall
Section titled “Uninstall”Setup script installation:
cd ~/.desterlib && docker compose down -vrm -rf ~/.desterlibGit installation:
cd desterlib && docker compose down -vcd .. && rm -rf desterlibTroubleshooting
Section titled “Troubleshooting”Server Won’t Start
Section titled “Server Won’t Start”Port already in use:
# Find and kill process using port 3001lsof -ti:3001 | xargs kill -9 # Mac/Linuxnetstat -ano | findstr :3001 # WindowsCheck logs:
cd ~/.desterlib # or your install directorydocker compose logs -fFull reset:
cd ~/.desterlibdocker compose down -vdocker compose up -dCan’t Connect from Client
Section titled “Can’t Connect from Client”Checklist:
- Server running? →
docker ps | grep desterlib - Test connection →
curl http://SERVER_IP:3001/health - Find server IP:
- macOS/Linux:
ifconfig | grep "inet " - Windows:
ipconfig
- macOS/Linux:
- Check firewall → Allow port 3001
- Use IP not hostname →
192.168.1.100:3001notmy-computer:3001
Movies Not Showing
Section titled “Movies Not Showing”Steps:
- Scan library → Settings → Library Management → Scan Library
- Check media mounted → Verify path in
~/.desterlib/docker-compose.yml - File naming → Use
Movie Name (2023).mp4format - Check logs →
docker compose logs -f apifor errors - Verify TMDB key → Set in app Settings if not already configured
Build Issues (Development)
Section titled “Build Issues (Development)”# APIpnpm clean && rm -rf node_modules && pnpm install
# Flutterflutter clean && flutter pub getNeed Help?
Section titled “Need Help?”- 📖 Quick Start - 5-minute setup guide
- 🔧 API Documentation - Full API reference
- 💬 GitHub Discussions - Ask questions
- 🐛 Report Issues - Bug reports