Self-hosted photo & file platform

Your photos. Your files. Your server.

pip install muleline

Serving your library at localhost:8510

Why Muleline

One home for your whole library

Most tools make you choose between photo backup and file sync. Muleline is one server for both.

Photos + Files

One platform for your entire digital library. Not just photos (Immich), not just files (Nextcloud). Albums, folders, favorites, and search in one place.

Your Storage, Your Rules

Eight backends out of the box: local disk, S3, R2, MinIO, Dropbox, SFTP, WebDAV, and Google Cloud Storage. Bring the storage you already have.

AI That Stays Home

CLIP semantic search finds photos by description. Face recognition groups the people you love. Everything runs locally. Nothing leaves your server.

Mobile App

Your library, in your pocket

The Muleline app backs up your camera roll automatically, keeps your favorites available offline, and puts face and semantic search in your hand. iOS is live on the App Store. Android is in beta and we need testers to help us launch.

  • Automatic camera-roll backup
  • Offline access to your favorites
  • Face recognition & semantic search
Prefer the browser? Launch the web app

Compare

How it compares

Purpose-built for media, light enough to run anywhere.

Feature Muleline Immich Nextcloud Google Photos
Photos Basic
Files
Self-hosted
One-command install pip install Compose stack Server setup N/A
Storage backends 8 built-in Local disk Via apps N/A
AI semantic search local local cloud
Face recognition local local cloud
Mobile app iOS · Android beta
Open source MIT AGPL AGPL
Price Free · Pro $4/mo Free Free · paid tiers Free to 15 GB

Muleline runs CLIP search and face recognition entirely on your server. Your photos never train anyone’s models.

Quickstart

Up and running in a minute

  1. Install

    pip install muleline

    One package from PyPI. No database server, no container maze.

  2. Serve

    muleline serve

    Starts the server and web app on port 8510.

  3. Open

    localhost:8510

    Your library is live in the browser. Start uploading.

Prefer containers? One line does it:

docker run -p 8510:8510 -v photos:/data muleline/muleline

Pricing

Simple pricing

Self-hosting is free forever. Cloud plans exist for people who’d rather not run a server.

Free forever

Self-Hosted

$0forever
  • Unlimited photos & files
  • All 8 storage backends
  • CLIP search & face recognition
  • MIT licensed, no strings
Install free

Cloud

$7.99/month
  • Managed hosting
  • Automatic updates
  • Daily backups
Get Cloud
Most popular

Cloud Pro

$19.99/month
  • Everything in Cloud
  • Priority support
  • Extended storage
  • Family sharing
Get Pro