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

muleline

Your photos. Your files. Your storage.
Drop-in sync engine with AI face recognition, smart search, and a mobile app. Connect S3, R2, Dropbox, SFTP, WebDAV, and more.

View on PyPI ◆ GitLab → Quick Start
pip install muleline click to copy
pypi v0.1.0 license MIT python 3.9+ tests 262 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

Mobile App

Your photos, from your pocket.

Auto-backup your camera roll, browse your library, search with AI — all from a native app. Your phone and web browser stay in sync automatically.

📱
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 App Store — In Review

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
$20
per month
  • Everything in Cloud
  • 1TB storage
  • Priority support
  • Custom domain
  • API access

Join the conversation

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

Visit the Forum