v0.1.0 on PyPI  ·  MIT Licensed  ·  Python / FastAPI  ·  Mobile App

muleline

Your photos. Your files. Your storage.
Self-hosted photo and file platform with AI face recognition, smart search, and a companion mobile app. Web-first. Works everywhere.

Launch Web App Self-Host It Get the App
pip install muleline click to copy
pypi v0.1.0 license MIT python 3.9+ tests 189 passed storage 6 backends

Why Muleline

Built for reliability, not complexity

A sync engine with AI built in. Move files, recognize faces, search with natural language — all from one Python package.

🔒
SHA-256 Deduplication
Never store the same file twice. Content-addressed storage means identical files from any device get deduplicated automatically, saving space and bandwidth.
▶
Chunked Resumable Uploads
TUS-inspired protocol with 5MB chunks. Lose your connection mid-upload? Resume exactly where you left off. Works over flaky mobile networks without retrying from zero.
📈
Manifest Diff Sync
Client sends file hashes, server returns precisely what needs uploading or downloading. No full scans. Multi-device sync state tracked per device_id.
📦
Pluggable Storage Backends
Local filesystem out of the box. S3, Cloudflare R2, MinIO with pip install muleline[s3]. Or implement StorageBackend for your NAS, WebDAV, or anything else.
🔨
Mount in 3 Lines
Muleline is a FastAPI router. Mount it inside any existing FastAPI app and your sync API is live immediately. No separate service, no new infra to manage.
⚡
SQLite Only
No Redis, no Postgres. Sync state, upload sessions, device registry, and activity logs all live in a single SQLite WAL database. Run it with a single volume mount.

Storage Backends

Bring your own storage.

Connect your storage. Keep your files. Muleline works with your existing infrastructure.

📁
Local / NAS
Mount any directory, NAS share, or USB drive
☁
Amazon S3
AWS S3, plus any S3-compatible service
🌐
Cloudflare R2
S3-compatible with zero egress fees
🔧
MinIO
Self-hosted S3-compatible object storage
💫
Dropbox
Sync directly to your Dropbox account
📄
Google Drive
Back up to Google Drive automatically
🔗
WebDAV
Nextcloud, Synology, ownCloud, Box
🔐
SFTP
Any SSH server or NAS over SFTP
soon ☁
Azure Blob
Microsoft Azure object storage

Companion App

Your photos, from your pocket.

Use Muleline on the web, then install the companion app to auto-backup your camera roll and browse on the go. Everything stays in sync.

📱
Auto-Backup
Camera roll syncs automatically over Wi-Fi. Chunked resumable uploads mean no lost photos. Everything stays in sync between your phone and web browser.
🔍
AI Search
Find any photo by describing it. Natural language search powered by AI classification.
👤
Face Recognition
Automatic face detection and grouping. Browse your library by the people in it.
🔌
Storage Connectors
Configure S3, Google Drive, Dropbox, WebDAV, and SFTP backends right from the app.
GitHub Download on the App Store Google Play — Coming Soon

Quick Start

Up in under a minute

Install, wire into your FastAPI app, and every /sync/* endpoint is live.

main.py python
# pip install muleline[server]

from fastapi import FastAPI
from muleline.engine import SyncEngine
from muleline.storage import LocalStorage
from muleline.db import run_migrations
import muleline.router as sync_router

app = FastAPI()

# Initialize
run_migrations()
engine = SyncEngine(storage=LocalStorage("./data/uploads"))
sync_router.init(engine)

# Mount — all endpoints live at /sync/*
app.include_router(sync_router.router)

Intelligence

AI that works for your photos

Every upload gets smarter. No manual tagging required.

🧠
Auto-Classification
Gemini Vision categorizes every photo on upload — landscapes, food, people, screenshots, documents. Requires a Gemini API key.
👥
Face Recognition
dlib-powered face detection with numpy embeddings and sklearn clustering. Scans on upload, groups by person.
🔎
Smart Search
Search your entire library with natural language. "sunset at the beach" or "birthday cake" just works.

Pricing

Simple, honest pricing

Self-host for free forever. Managed cloud hosting when you want us to handle the ops.

Self-Hosted
Free
forever, MIT licensed
  • Run on your own server
  • All 6 storage backends
  • 262 tests, battle-tested
  • Unlimited files
  • Community support
Get Started
Cloud Pro
$19.99
per month
  • Everything in Cloud
  • Unlimited backup
  • Priority support
  • Early access to new features
  • Direct developer support
Subscribe — $19.99/mo

Join the conversation

Get help, share your setup, request features, and connect with other Muleline users.

Visit the Forum