2021-04-20 21:31:37 +00:00
|
|
|
|
|
|
|
**_This project is currently in early-access deep-alpha testing phase. Do not
|
|
|
|
rely on it for anything._**
|
|
|
|
|
|
|
|
-----
|
|
|
|
|
|
|
|
# cryptic-net
|
|
|
|
|
|
|
|
The cryptic-net 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.
|
|
|
|
|
2021-04-20 21:31:37 +00:00
|
|
|
The core components of cryptic-net, 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.
|
2021-04-20 21:31:37 +00:00
|
|
|
|
2022-10-07 12:38:39 +00:00
|
|
|
* An S3-compatible network filesystem. Each participant 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.
|
2021-04-20 21:31:37 +00:00
|
|
|
|
2022-10-07 12:38:39 +00:00
|
|
|
These components are wrapped into a single binary, with all setup being
|
|
|
|
automated. cryptic-net takes "just works" very seriously.
|
2021-04-20 21:31:37 +00:00
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
[nebula]: https://github.com/slackhq/nebula
|
|
|
|
[garage]: https://garagehq.deuxfleurs.fr/documentation/quick-start/
|
|
|
|
|
|
|
|
## Documentation
|
|
|
|
|
|
|
|
_NOTE: There is currently only a single live cryptic-net which can be joined,
|
|
|
|
though generalizing the bootstrap process so others can create their own network
|
|
|
|
is [planned][roadmap]. If you do not know the admins of this cryptic-net then
|
|
|
|
unfortunately there's not much you can do right now._
|
|
|
|
|
|
|
|
cryptic-net users fall into different roles, depending on their level of
|
|
|
|
involvement and expertise within their particular network. The documentation for
|
|
|
|
cryptic-net is broken down by these categories, so that the reader can easily
|
|
|
|
know which documents they need to care about.
|
|
|
|
|
|
|
|
### User Docs
|
|
|
|
|
|
|
|
Users are participants who use cryptic-net resources, but do not provide any
|
|
|
|
network or storage resources themselves. Users may be accessing the network from
|
|
|
|
a laptop, and so are not expected to be online at any particular moment.
|
|
|
|
|
|
|
|
Documentation for users:
|
|
|
|
|
|
|
|
* [Getting Started](docs/user/getting-started.md)
|
|
|
|
* [Creating a daemon.yml File](docs/user/creating-a-daemonyml-file.md)
|
|
|
|
* [Using DNS](docs/user/using-dns.md) (advanced)
|
|
|
|
* Restic example (TODO)
|
|
|
|
|
|
|
|
### Operator Docs
|
|
|
|
|
|
|
|
Operators are participants 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 100GB 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)
|
|
|
|
|
|
|
|
[ddns]: https://www.cloudflare.com/learning/dns/glossary/dynamic-dns/
|
|
|
|
|
|
|
|
### Admin Docs
|
|
|
|
|
|
|
|
Admins are participants who control membership within the network. They are
|
|
|
|
likely operators as well.
|
|
|
|
|
|
|
|
Documentation for admins:
|
|
|
|
|
|
|
|
* [Adding a Host to the Network](docs/admin/adding-a-host-to-the-network.md)
|
|
|
|
* Removing a Host From the Network (TODO)
|
|
|
|
|
|
|
|
### Dev Docs
|
|
|
|
|
|
|
|
Dev may or may not be participants in any particular cryptic-net. They instead
|
|
|
|
are those who work on the actual code for cryptic-net.
|
|
|
|
|
|
|
|
Documentation for devs:
|
|
|
|
|
|
|
|
* [Design Principles](docs/dev/design-principles.md)
|
|
|
|
* [`cryptic-net daemon` process tree](docs/dev/daemon-process-tree.svg): Diagram
|
2022-10-20 18:57:26 +00:00
|
|
|
describing the [pmux](https://code.betamike.com/cryptic-io/pmux) process tree created
|
2021-04-20 21:31:37 +00:00
|
|
|
by `cryptic-net daemon` at runtime.
|
|
|
|
* [Rebuilding Documentation](docs/dev/rebuilding-documentation.md)
|
|
|
|
|
|
|
|
## Misc
|
|
|
|
|
|
|
|
Besides documentation, there are a few other pages which might be useful:
|
|
|
|
|
|
|
|
* [Roadmap][roadmap]
|
|
|
|
|
|
|
|
[roadmap]: docs/roadmap.md
|