Go to file
2024-07-20 10:42:26 +02:00
AppDir Upgrade garage to v1.0.0 2024-06-11 16:57:31 +02:00
dist/linux Fix arch package cross-compiling 2024-07-14 15:26:34 +02:00
docs Allow including CA signing key with JoiningBootstrap, and update docs 2024-07-14 13:33:29 +02:00
go Only restart sub-processes which need restarting on bootstrap changes 2024-07-20 10:42:26 +02:00
nix Upgrade garage to v1.0.0 2024-06-11 16:57:31 +02:00
tests State CA signing key in secrets store, eliminate admin bundle 2024-07-14 13:11:18 +02:00
.gitignore Adjust .gitignore after change to yml 2022-11-05 16:32:26 +01:00
default.nix Upgrade pmux to latest 2024-07-19 17:06:12 +02:00
flake.lock Make sure we can use nix cache for non-cross-compiling 2023-03-25 17:05:29 +01:00
flake.nix Perform all in-code renames which don't affect actual functionality 2023-08-05 23:53:17 +02:00
LICENSE.txt Add AGPLv3 license 2023-08-25 14:16:52 +02:00
README.md Replace admin create-network with network create over RPC 2024-07-09 11:43:17 +02:00
release.nix Fix arch package cross-compiling 2024-07-14 15:26:34 +02:00
release.sh Fixes for releasing 2024-07-14 13:56:43 +02:00
shell.nix Upgrade nixpkgs to 24.05 (primarily for a more up-to-date golang) 2024-06-10 16:01:27 +02:00
tests.sh Add tests for DNS 2023-09-06 21:55:05 +02:00

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.

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:

  • 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.

  • A DNS server which provides automatic host and service (coming soon) discovery within the network.

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 decide which documents they need to care about.

User Docs

Users are participants who use network resources, but do not provide any network 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:

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 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:

Admin Docs

Admins are users who control membership within the network. They are likely operators as well.

Documentation for admins:

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:

Misc

Besides documentation, there are a few other pages which might be useful: