Home Cloud

Goal

Self-hosted cloud; at minimum this means a File Storage (and will be treated exclusively as such for the sake of this document).

Requirements

Problem

Identity
  1. Self-hosted IdP (such as LDAP) - would have to register accounts for all friends onto each system. Issues with storing accounts that become too painful and complicated for non-technical to manage. Furthermore, this introduces too many new accounts for users.
  2. OIDC / OAuth - would have to register each server with the provider, which is too complicated for non-technical. Still requires storing linked user identifiers to track permissions or advanced features like commenting. Also, means would be limited to certain providers that users may or may not have an account with and may or may not be desirable to link with. Not having an account introduces creating more accounts.
  3. IndieAuth + OAuth - users provide their identity as a URI, and this can be linked to any IdP they desire. Little to no registration required. This SOLVES both the issue of non-technical (as simple as entering in a URI with no registration) as well as avoiding new accounts (re-use existing social media accounts with little registration or, if desired, limited to only one additional account). Plus there is no need to store users or linked user identifiers on any server since they will be identified by URI instead.

Implementation Decisions

SVN + Apache HTTPd

File-like storage mechanism that provides key cloud expectations:

Already done Proof-of-Concept (POC) for authorizing based upon an allowlist file property.

SelfAuth + MinToken

For users that do not have a social media account (next generation of people) or do not want to link one, the option to have a self-hosted identity.