self-hosted · free & open source

Take the app you need.
Leave the rest.

Small self-hosted apps for the family: photos, notes, a calendar, contacts and health data, on your own server. Each one installs and runs on its own: if all you want is a photo app, install ioPix and you're done. Add another whenever you like, and it signs in with the same accounts.

GPL-3.0 · Proxmox VE · Docker (amd64 / arm64) · any Linux or Mac · MariaDB / MySQL
ioPixphotos
ioNotesnotes
ioCalendarcalendar
ioContactscontacts
ioHealthhealth
ioSuitestart page
Just the photos1 app
Every combination is a complete install. Each app has its own port, its own database and its own updates.
the apps

Six apps. Each one complete on its own.

Every app is a small web server with its own web app, its own database and its own installer, built the same way: FastAPI, a single-page app, light and dark, a real phone layout, installable on a home screen.

ioPixPhotos

  • Browse, search, map and edit a photo library from any browser
  • Search by what is in the photos, faces and places, with AI that runs on your own server
  • A web companion for digiKam, or a library of its own without it

On its own: a complete photo app. Point it at a folder of photos.

ioNotesNotes, clipboard snippets and screenshots

  • Notes with folders, tags, pins and full-text search, text in pictures included
  • Mac and iPhone apps: save anything from the clipboard, synced and offline
  • Notes are private to each account

On its own: your notes, searchable everywhere. It can even keep them in a SQLite file.

ioCalendarThe family calendar

  • Shared and private calendars, repeating events, reminders, public holidays
  • CalDAV, so the same events are on every phone and in every calendar app
  • Tag events with the family member they're for

On its own: a family calendar every phone already speaks to.

ioContactsContacts for the family

  • Every field a phone has, relations and a family tree, birthdays
  • CardDAV and an LDAP directory for phones, mail apps and printers
  • Duplicates, data quality checks and merges you can undo

On its own: one family address book on every device.

ioHealthApple Health, on your own server

  • The ioHealthSync iPhone app copies your Health data into your own database
  • Dashboards, charts of any metric, workouts on a map, sleep, glucose, records
  • Everyone sees only their own data

On its own: a fitness web app that needs no cloud service.

ioSuiteThe start page

  • A tile per installed app, with today's events, photos and steps on it
  • Search, quick add to the calendar, weather, Home Assistant, bookmarks
  • A wall display for a tablet in the kitchen

Optional: worth it once you run two or more apps. It finds them by itself.

one app or all of them

You don't need the whole suite.

There is no suite to install first and no central server to run. Each app is the whole product for what it does; the others only add to it.

just one

A photo app, and nothing else? Fine.

Install ioPix with one command. It needs a MariaDB or MySQL server for its data and its accounts, and that's it: no start page, no other apps, nothing waiting for something you didn't install.

add one later

Grow when you want to

Months later, install ioCalendar and point it at the same account database. Everyone already has an account, and with a shared domain one sign-in covers both. Nothing about the first app changes.

or all at once

The whole suite in one go

Every installer ends with "Also install…?". Tick the others and they go in the same machine or container, each with its own database and port, without asking the shared questions twice. Or run the whole-suite Docker stack.

ioContacts + ioCalendar: a Birthdays calendar from your contacts, and the people on an event picked from them.
ioPix + ioContacts: the face named in ioPix becomes the contact's photo, on every phone.
ioSuite + any app: a tile with what matters today: the next events, photos from this day, last night's sleep.
Any two apps: the same accounts, roles per app, one sign-in, one admin panel, the same Settings in every app.
screenshots

The real applications.

Every screenshot is the actual app, holding made-up data: the Parker family and their friends are invented.

Photos in the ioPix screenshots: Wikimedia Commons, StockSnap, Unsplash and the project owner's own, under the licenses listed here. The names are invented.

install

Pick your apps. One is enough.

Tick what you want and copy the command. Each app's installer asks for its database, the shared account database and an admin, then starts the service. The requirements are short.

proxmox ve host, as root — ioPix
$ bash -c "$(curl -fsSL https://raw.githubusercontent.com/avandeputte/iopix/main/proxmox/ct/iopix.sh)"

then Open http://<host>:<port> and sign in

ioPix 8600ioNotes 8610ioCalendar 8620ioSuite 8630ioContacts 8640ioHealth 8650

Every app has its own default port, so all of them fit on one host. The installer creates the admin you answered; with several apps it is the same admin everywhere, because the accounts live in one Shared ioSuite database.

Then put the apps behind your reverse proxy for HTTPS (Caddy, nginx, HAProxy or a Cloudflare Tunnel), and every app updates itself from Settings › Server.