autobutler

module
v0.28.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 14, 2026 License: MIT-0

README

AutoButler

Your own private cloud, running in your house. Photos, files, documents — all on hardware you own, off servers you don't trust.

CI Code Quality CodeQL


What is it?

AutoButler is a self-hosted personal cloud that runs on a device in your home. Think Google Drive or iCloud, except the data never leaves your house and nobody's training AI on your family photos.

You buy the hardware once. No subscriptions. No data mining. It's yours.

Stack

  • Go + Gin — backend server
  • Flutter — cross-platform frontend (web, iOS, Android)
  • SQLite — embedded local database
  • OpenTelemetry — observability

Getting started

Prerequisites: Go, Flutter, Make, air, sqlc, swag

git clone https://github.com/autobutler-org/autobutler.git # Include --recursive if you want to do OS image builds
cd autobutler
make setup
make generate
make build
Run it locally

Backend with hot reload:

make watch/backend

Frontend (web):

make serve/frontend

Frontend (mobile emulator):

make emulate          # default platform
make emulate/android  # or emulate/ios
make serve/frontend/mobile

USB device mounting requires root on Linux. Use AS_ROOT=1 with any backend target if you need it.

Swagger UI is at http://localhost:8080/swagger once the backend is running.

Other useful commands
make check    # lint
make format   # format
make help     # all targets

Docs

Contributing

We use linear commit history — one focused commit per PR is the norm. See CONTRIBUTING.md for the full rundown.

License

MIT. See LICENSE.

Directories

Path Synopsis
cmd
autobutler command
lsusb command
provisioning command
docs
swagger
Package swagger Code generated by swaggo/swag.
Package swagger Code generated by swaggo/swag.
internal
db
smb
Package smb provides utilities for configuring AutoButler as a Samba (SMB/CIFS) network share on Linux, allowing file access directly from macOS Finder, Windows Explorer, and Linux file managers on the same LAN.
Package smb provides utilities for configuring AutoButler as a Samba (SMB/CIFS) network share on Linux, allowing file access directly from macOS Finder, Windows Explorer, and Linux file managers on the same LAN.
pkg
calendar
Package calendar provides calendar utilities for date/month/weekday operations.
Package calendar provides calendar utilities for date/month/weekday operations.
util/diskprofiler
Package diskprofiler classifies a storage path into one of three speed tiers (Fast, Medium, Slow) by running a short sequential write benchmark.
Package diskprofiler classifies a storage path into one of three speed tiers (Fast, Medium, Slow) by running a short sequential write benchmark.
util/healthutil
Package healthutil provides gopsutil-based host hardware health metrics.
Package healthutil provides gopsutil-based host hardware health metrics.
util/iosemutil
Package iosemutil provides a shared IO concurrency semaphore to prevent disk thrashing under concurrent load — particularly on spinning hard drives where random-access seeks collapse throughput when too many goroutines compete.
Package iosemutil provides a shared IO concurrency semaphore to prevent disk thrashing under concurrent load — particularly on spinning hard drives where random-access seeks collapse throughput when too many goroutines compete.
util/ratelimitutil
Package ratelimitutil provides a per-IP token-bucket rate limiter for protecting sensitive endpoints (e.g.
Package ratelimitutil provides a per-IP token-bucket rate limiter for protecting sensitive endpoints (e.g.
util/searchutil
Package searchutil provides text extraction and full-text search over indexed file contents using SQLite FTS5.
Package searchutil provides text extraction and full-text search over indexed file contents using SQLite FTS5.
util/tlsutil
Package tlsutil provides helpers for provisioning self-signed TLS certificates used by the Autobutler server when running in production (HTTPS) mode.
Package tlsutil provides helpers for provisioning self-signed TLS certificates used by the Autobutler server when running in production (HTTPS) mode.
vfs

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL