isle/README.md

112 lines
3.8 KiB
Markdown
Raw Normal View History

**_This project is currently in early-access deep-alpha testing phase. Do not
rely on it for anything._**
-----
# Isle
The Isle project provides the foundation for an **autonomous community
cloud infrastructure**.
2022-10-07 12:38:39 +00:00
This project targets communities of individuals, where certain members of the
community would like to host services and applications from servers running in
their homes or offices. These servers can range from simple Raspberry Pis to
full-sized home PCs.
The core components of Isle, currently, are:
2022-10-07 12:38:39 +00:00
* A VPN which enables direct peer-to-peer communication. Even if most hosts in
the network are on a private LAN (e.g. their home WiFi network) or have a
dynamic IP, they can still communicate directly with each other.
* An S3-compatible network filesystem. Each users can provide as much storage as
they care to, if any. Stored data is sharded and replicated across all hosts
that choose to provide storage.
2022-10-30 00:22:03 +00:00
* A DNS server which provides automatic host and service (coming soon) discovery
within the network.
2022-10-07 12:38:39 +00:00
These components are wrapped into a single binary, with all setup being
automated. Isle takes "just works" very seriously.
Participants are able to build upon these foundations to host services for
themselves and others. They can be assured that their communications are private
and their storage is reliable, all with zero administrative overhead and zero
third parties involved.
## Documentation
Isle users fall into different roles, depending on their level of
involvement and expertise within their particular network. The documentation
is broken down by these categories, so that the reader can easily
2022-10-30 00:22:03 +00:00
decide which documents they need to care about.
### User Docs
Users are participants who use network resources, but do not provide any network
2024-07-07 11:37:26 +00:00
resources themselves. Users may be accessing the network from a mobile device,
and so are not expected to be online at any particular moment.
Documentation for users:
* [Getting Started](docs/user/getting-started.md)
* [Using DNS](docs/user/using-dns.md) (advanced)
* Restic example (TODO)
### Operator Docs
Operators are users who own a dedicated host which they can expect to be
always-online (to the extent that's possible in a residential environment).
Operator hosts will need at least one of the following to be useful:
* A static public IP, or a dynamic public IP with [dDNS][ddns] set up.
* At least 1GB of unused storage which can be reserved for the network.
Operators are expected to be familiar with server administration, and to not be
afraid of a terminal.
Documentation for operators:
* [Contributing Storage](docs/operator/contributing-storage.md)
* [Contributing a Lighthouse](docs/operator/contributing-a-lighthouse.md)
* [Managing garage](docs/operator/managing-garage.md)
2022-11-05 16:16:25 +00:00
* [Firewalls](doc/operator/firewall.md)
[ddns]: https://www.cloudflare.com/learning/dns/glossary/dynamic-dns/
### Admin Docs
Admins are users who control membership within the network. They are likely
operators as well.
Documentation for admins:
* [Creating a New Network](docs/admin/creating-a-new-network.md)
* [Adding a Host to the Network](docs/admin/adding-a-host-to-the-network.md)
* Removing a Host From the Network (TODO)
### Dev Docs
Devs may or may not be users in any particular isle network. They instead are
those who work on the actual code for Isle.
Documentation for devs:
* [Design Principles](docs/dev/design-principles.md)
* [`isle daemon` process tree](docs/dev/daemon-process-tree.svg): Diagram
describing the [pmux](https://code.betamike.com/micropelago/pmux) process tree
created by `isle daemon` at runtime.
* [Rebuilding Documentation](docs/dev/rebuilding-documentation.md)
2023-03-25 14:58:20 +00:00
* [Releases](docs/dev/releases.md)
## Misc
Besides documentation, there are a few other pages which might be useful:
* [Roadmap][roadmap]
* [Glossary](docs/glossary.md)
[roadmap]: docs/roadmap.md