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.
Why Muleline
A sync engine with AI built in. Move files, recognize faces, search with natural language — all from one Python package.
device_id.
pip install muleline[s3]. Or implement StorageBackend for your NAS, WebDAV, or anything else.
Storage Backends
Connect your storage. Keep your files. Muleline works with your existing infrastructure.
Companion App
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.
Quick Start
Install, wire into your FastAPI app, and every /sync/* endpoint is live.
# 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
Every upload gets smarter. No manual tagging required.
Pricing
Self-host for free forever. Managed cloud hosting when you want us to handle the ops.
Community
Get help, share your setup, request features, and connect with other Muleline users.
Visit the Forum