One app or all of them¶
There is no suite to install first, no central server, and no app that depends on another. Each app is the whole product for what it does. Pick the one you need; the rest are optional.
Just one app¶
A single app needs:
- somewhere to run: a Proxmox VE container, a Docker host, or any Linux machine or Mac;
- a MariaDB or MySQL server with two databases on it: the app's own, and the Shared ioSuite database that holds its accounts. The installer can create both for you (give it a database administrator once). ioNotes can even keep its notes in a SQLite file instead.
That's all. A photo app alone is a perfectly good install:
# on a Proxmox VE host, as root
bash -c "$(curl -fsSL https://raw.githubusercontent.com/avandeputte/iopix/main/proxmox/ct/iopix.sh)"
The app does not look for the others, does not show empty spaces for them, and does not need the ioSuite start page. Its Settings show Security and Global settings to suite admins all the same: those manage the accounts in the Shared ioSuite database, whether one app uses them or six.
| You want | Install |
|---|---|
| A web app for your photos (with digiKam, or without) | ioPix |
| Notes and clipboard snippets on your Mac and iPhone | ioNotes (the server) and the Mac / iPhone app |
| A family calendar on every phone | ioCalendar |
| A family address book on every phone and in every mail app | ioContacts |
| Your Apple Health data, kept and charted at home | ioHealth and the ioHealthSync iPhone app |
Adding another app later¶
Install the second app the same way, and give it the same Shared ioSuite database (the installer asks for it). From then on:
- Everyone already has an account. The accounts, passwords and app passwords are the Shared ioSuite database's, so the new app knows everybody. Each person gets the app's default role there (viewer, unless an admin changes it in Settings › Global settings › Apps).
- One sign-in covers both when they share a domain: set
COOKIE_DOMAIN=example.comin each app and a person signed in atphotos.example.comis signed in atcalendar.example.comtoo. - They find each other. Every app writes its name, address, version and icon in the suite's list of apps when it starts, so nobody types an address into another app.
Nothing about the first app changes, and neither app needs the other to keep running.
What some apps add to each other¶
These are extras, switched on by having both apps; neither app needs the other:
| Together | You get |
|---|---|
| ioContacts + ioCalendar | a read-only Birthdays calendar with the birthdays and anniversaries from ioContacts; the people on an event are picked from your contacts |
| ioPix + ioContacts | link a contact to a person named in ioPix: that face becomes the contact's photo, on phones (CardDAV) and in the LDAP directory too |
| ioSuite + any app | a tile per app on the start page with what matters today: the next events, photos from this day, today's steps and last night's sleep |
| ioSuite + ioCalendar | "Quick add": type "dinner fri 19:00" in the start page's search box to make the event |
| any two | the same accounts and roles, one admin panel, the same Settings, one sign-in |
All of them at once¶
Every installer ends with "Also install …?": tick the other apps and they go in the same machine or container, each with its own database and port, with the shared answers (database server, Shared ioSuite database, sign-in domain, admin) asked only once. Or run the whole-suite Docker stack, MariaDB included. See Several apps on one host.
Removing an app¶
Stop it and remove it the way you installed it (delete the container, the stack, or the service and its folder). The other apps don't notice. The app's row stays in the suite's list of apps until a suite admin forgets it under Settings › Global settings › Apps, which can also drop the roles, settings, app passwords and keys it kept in the Shared ioSuite database. Its own database is left for you to drop.