Skip to content

Installation Guide

Complete guide for installing and configuring DesterLib.

  • CPU: 2 cores minimum
  • RAM: 2GB minimum
  • Storage: Your media collection size + 10GB
  • OS: Linux, macOS, or Windows
  • Docker: Version 20.10 or higher
  • Android 5.0+, iOS 12+, macOS 10.15+, Windows 10+, or Linux

Perfect for: End users who want it working fast

macOS/Linux:

Terminal window
curl -fsSL https://raw.githubusercontent.com/DesterLib/desterlib/main/scripts/setup/unix.sh | bash

Windows (PowerShell):

Terminal window
iwr -useb https://raw.githubusercontent.com/DesterLib/desterlib/main/scripts/setup/windows.ps1 | iex

The setup script will:

  1. Check Docker installation
  2. Clone the repository
  3. Prompt for configuration (media path, port, database)
  4. 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:

Terminal window
curl http://localhost:3001/health
# Should return: {"status":"ok",...}

Perfect for: Contributors and advanced users

Terminal window
# 1. Clone the repository
git clone https://github.com/DesterLib/desterlib.git
cd desterlib
# 2. Start with Docker Compose
docker compose up -d
# Note: If you have older Docker, use: docker-compose up -d
# 3. Access at http://localhost:3001

Optional: Customize with .env file in apps/api/:

DATABASE_URL=postgresql://postgres:postgres@postgres:5432/desterlib
NODE_ENV=production
PORT=3001

📥 Download from Releases

Available platforms:

PlatformFile
Android Phone/TabletDester-*-Android.apk
macOSDester-*-macOS.zip
WindowsDester-*-Windows.zip
LinuxDester-*-Linux.tar.gz
iOSDester-*-iOS.ipa

After installing:

  1. Open the app
  2. Enter: http://YOUR_SERVER_IP:3001
  3. Scan Library from Settings
  4. Start watching!

For iOS or if you prefer building yourself:

  1. Clone the Flutter app repository:

    Terminal window
    git clone https://github.com/DesterLib/desterlib-flutter.git
    cd desterlib-flutter
  2. Install Flutter dependencies:

    Terminal window
    flutter pub get
  3. Build and install APK:

    build/app/outputs/flutter-apk/app-release.apk
    # Build APK
    flutter build apk --release
    # Transfer to your Android device and install
    # Or install directly if device is connected:
    flutter install
  1. Prerequisites:

    • macOS with Xcode installed
    • Apple Developer account (for device deployment)
  2. Clone and setup:

    Terminal window
    git clone https://github.com/DesterLib/Dester-Flutter.git
    cd Dester-Flutter
    flutter pub get
  3. Install CocoaPods dependencies:

    Terminal window
    cd ios
    pod install
    cd ..
  4. Open in Xcode:

    Terminal window
    open ios/Runner.xcworkspace
  5. Build and run:

    • Select your device or simulator in Xcode
    • Click Run (▶️) button
    • Or use: flutter run

macOS:

Terminal window
git clone https://github.com/DesterLib/desterlib-flutter.git
cd desterlib-flutter
flutter pub get
flutter build macos --release
# App will be at: build/macos/Build/Products/Release/Dester.app

Linux:

Terminal window
# Install dependencies first
sudo 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.git
cd Dester-Flutter
flutter pub get
flutter build linux --release
# Binary will be at: build/linux/x64/release/bundle/

Windows:

Terminal window
git clone https://github.com/DesterLib/desterlib-flutter.git
cd desterlib-flutter
flutter pub get
flutter build windows --release
# App will be at: build/windows/x64/runner/Release/

Commands depend on your installation method:

If installed via setup script:

Terminal window
cd ~/.desterlib # or your custom installation directory
docker compose ps # View status
docker compose logs -f # View logs
docker compose restart # Restart
docker compose down # Stop
docker compose pull && docker compose up -d # Update

If installed via Git:

Terminal window
cd desterlib
docker ps # View status
docker compose logs -f # View logs
docker compose restart # Restart
docker compose down # Stop
git pull && docker compose up -d --build # Update

For contributors who want to modify the code:

Terminal window
# 1. Clone and install
git clone https://github.com/DesterLib/desterlib.git
cd desterlib
pnpm install
# 2. Start test database
docker compose -f docker-compose.test.yml up -d
# 3. Configure .env in apps/api/
DATABASE_URL=postgresql://postgres:postgres@localhost:5433/desterlib_test
NODE_ENV=development
PORT=3001
# 4. Run the API
cd apps/api
pnpm db:generate
pnpm db:push
pnpm dev

See Contributing Guide for more details.

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)

Terminal window
docker exec -t desterlib-postgres pg_dump -U desterlib desterlib > backup.sql
Terminal window
cat backup.sql | docker exec -i desterlib-postgres psql -U desterlib desterlib

Setup script installation:

Terminal window
cd ~/.desterlib && docker compose down -v
rm -rf ~/.desterlib

Git installation:

Terminal window
cd desterlib && docker compose down -v
cd .. && rm -rf desterlib

Port already in use:

Terminal window
# Find and kill process using port 3001
lsof -ti:3001 | xargs kill -9 # Mac/Linux
netstat -ano | findstr :3001 # Windows

Check logs:

Terminal window
cd ~/.desterlib # or your install directory
docker compose logs -f

Full reset:

Terminal window
cd ~/.desterlib
docker compose down -v
docker compose up -d

Checklist:

  1. Server running? → docker ps | grep desterlib
  2. Test connection → curl http://SERVER_IP:3001/health
  3. Find server IP:
    • macOS/Linux: ifconfig | grep "inet "
    • Windows: ipconfig
  4. Check firewall → Allow port 3001
  5. Use IP not hostname → 192.168.1.100:3001 not my-computer:3001

Steps:

  1. Scan library → Settings → Library Management → Scan Library
  2. Check media mounted → Verify path in ~/.desterlib/docker-compose.yml
  3. File naming → Use Movie Name (2023).mp4 format
  4. Check logs → docker compose logs -f api for errors
  5. Verify TMDB key → Set in app Settings if not already configured
Terminal window
# API
pnpm clean && rm -rf node_modules && pnpm install
# Flutter
flutter clean && flutter pub get