rename cLAN to Clan #68
@ -1,4 +1,4 @@
|
|||||||
Copyright 2023 cLAN contributers
|
Copyright 2023 Clan contributers
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
# The URL the site will be built for
|
# The URL the site will be built for
|
||||||
base_url = "https://clan.lol"
|
base_url = "https://clan.lol"
|
||||||
title = "cLAN"
|
title = "Clan"
|
||||||
|
|
||||||
# The site theme to use.
|
# The site theme to use.
|
||||||
theme = "adidoks"
|
theme = "adidoks"
|
||||||
@ -44,7 +44,7 @@ highlight_code = true
|
|||||||
|
|
||||||
[extra]
|
[extra]
|
||||||
# Put all your custom variables here
|
# Put all your custom variables here
|
||||||
author = "cLAN contributors"
|
author = "Clan contributors"
|
||||||
email = "admin@clan.lol"
|
email = "admin@clan.lol"
|
||||||
|
|
||||||
# If running on netlify.app site, set to true
|
# If running on netlify.app site, set to true
|
||||||
@ -58,7 +58,7 @@ theme_color = "#fff"
|
|||||||
|
|
||||||
# More about site's title
|
# More about site's title
|
||||||
title_separator = "-" # set as |, -, _, etc
|
title_separator = "-" # set as |, -, _, etc
|
||||||
title_addition = "Build your own cLAN"
|
title_addition = "Build your own Clan"
|
||||||
|
|
||||||
|
|
||||||
# Set date format in blog publish metadata
|
# Set date format in blog publish metadata
|
||||||
|
@ -3,10 +3,10 @@ title = "Build your own"
|
|||||||
|
|
||||||
# The homepage contents
|
# The homepage contents
|
||||||
[extra]
|
[extra]
|
||||||
lead = '<img src="/logo/clan-dark.png" class="clogo" width="100px" height="100px" alt="cLAN logo"></img> <br><b>cLAN</b> envisions a new model for a decentralized network, designed to provide families, smaller groups, and small businesses a private, secure, and user-friendly computing platform. '
|
lead = '<img src="/logo/clan-dark.png" class="clogo" width="100px" height="100px" alt="Clan logo"></img> <br><b>Clan</b> envisions a new model for a decentralized network, designed to provide families, smaller groups, and small businesses a private, secure, and user-friendly computing platform. '
|
||||||
url = "/docs/thevision/"
|
url = "/docs/thevision/"
|
||||||
url_button = "Learn more"
|
url_button = "Learn more"
|
||||||
repo_version = "cLAN v0.0.0-alpha"
|
repo_version = "Clan v0.0.0-alpha"
|
||||||
repo_license = "Open-source MIT License."
|
repo_license = "Open-source MIT License."
|
||||||
repo_url = "https://git.clan.lol/clan/"
|
repo_url = "https://git.clan.lol/clan/"
|
||||||
|
|
||||||
@ -43,13 +43,13 @@ weight = 20
|
|||||||
|
|
||||||
[[extra.list]]
|
[[extra.list]]
|
||||||
title = "Easy to use"
|
title = "Easy to use"
|
||||||
content = 'cLAN provides a user-friendly interface that allows you to establish your own private network, complete with services.'
|
content = 'Clan provides a user-friendly interface that allows you to establish your own private network, complete with services.'
|
||||||
|
|
||||||
[[extra.list]]
|
[[extra.list]]
|
||||||
title = "Open-source"
|
title = "Open-source"
|
||||||
content = 'All code for cLAN is freely available and open-source.'
|
content = 'All code for Clan is freely available and open-source.'
|
||||||
|
|
||||||
[[extra.list]]
|
[[extra.list]]
|
||||||
title = "Decentralized"
|
title = "Decentralized"
|
||||||
content = "The design of cLAN enables the distribution of your applications/services across several machines. This increases the resilience of the network, ensuring continued operation even if some computers become unavailable."
|
content = "The design of Clan enables the distribution of your applications/services across several machines. This increases the resilience of the network, ensuring continued operation even if some computers become unavailable."
|
||||||
+++
|
+++
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
+++
|
+++
|
||||||
title = "Architecture"
|
title = "Architecture"
|
||||||
description = "Overview of cLAN's architecture, components and security"
|
description = "Overview of Clan's architecture, components and security"
|
||||||
date = 2021-05-01T18:10:00+00:00
|
date = 2021-05-01T18:10:00+00:00
|
||||||
updated = 2021-07-13T18:10:00+00:00
|
updated = 2021-07-13T18:10:00+00:00
|
||||||
draft = false
|
draft = false
|
||||||
@ -9,15 +9,15 @@ sort_by = "weight"
|
|||||||
template = "section.html"
|
template = "section.html"
|
||||||
|
|
||||||
[extra]
|
[extra]
|
||||||
lead = "Overview of cLAN's architecture, components and security"
|
lead = "Overview of Clan's architecture, components and security"
|
||||||
toc = true
|
toc = true
|
||||||
section = "architecture"
|
section = "architecture"
|
||||||
+++
|
+++
|
||||||
|
|
||||||
|
|
||||||
### cLAN
|
### Clan
|
||||||
|
|
||||||
cLAN envisions a new model for a decentralized network, designed to provide families, smaller groups, and small businesses a private, secure, and user-friendly computing platform. The system transcends the conventional reliance on centralized services, allowing for direct, end-to-end encrypted communication among users. Rooted in open-source software, cLAN ensures no vendor lock-in, and introduces robust features including:
|
Clan envisions a new model for a decentralized network, designed to provide families, smaller groups, and small businesses a private, secure, and user-friendly computing platform. The system transcends the conventional reliance on centralized services, allowing for direct, end-to-end encrypted communication among users. Rooted in open-source software, Clan ensures no vendor lock-in, and introduces robust features including:
|
||||||
|
|
||||||
- Remote management
|
- Remote management
|
||||||
- Backup functionality
|
- Backup functionality
|
||||||
@ -26,7 +26,7 @@ cLAN envisions a new model for a decentralized network, designed to provide fami
|
|||||||
|
|
||||||
### Decentralized Network Model
|
### Decentralized Network Model
|
||||||
|
|
||||||
cLAN incorporates a decentralized network model to tackle the challenges posed by restrictive firewalls, NAT, and the scarcity of the IPv4 address space. By leveraging end-to-end encryption, the model ensures that all peers within the network are fully connected, allowing direct communication.
|
Clan incorporates a decentralized network model to tackle the challenges posed by restrictive firewalls, NAT, and the scarcity of the IPv4 address space. By leveraging end-to-end encryption, the model ensures that all peers within the network are fully connected, allowing direct communication.
|
||||||
|
|
||||||
This is achieved by setting up decentralized virtual private network (VPN). A decentralized VPN is a system that uses multiple servers spread across different locations to create a secure, private network within an organization, enabling secure communication and data transfer without relying on a central server. The VPN serves as an added layer of security, shielding internal services from exposure to the open internet.
|
This is achieved by setting up decentralized virtual private network (VPN). A decentralized VPN is a system that uses multiple servers spread across different locations to create a secure, private network within an organization, enabling secure communication and data transfer without relying on a central server. The VPN serves as an added layer of security, shielding internal services from exposure to the open internet.
|
||||||
|
|
||||||
@ -51,7 +51,7 @@ We will not add this to the initial prototype...
|
|||||||
|
|
||||||
### NixOS as the Operating System
|
### NixOS as the Operating System
|
||||||
|
|
||||||
Maintaining and configuring a decentralized system like cLAN with heterogeneous services on heterogeneous platforms is a challenging task. In professional setups this is usually solved with configuration management systems. These systems require years of experience and are therefore not approchable by non-expert users. The solution to this problem so far is to instead provide end-users with appliances that are massivly locked-down in terms of the functionality or platforms they support. To overcome these limitations, we cLAN is based on NixOS.
|
Maintaining and configuring a decentralized system like Clan with heterogeneous services on heterogeneous platforms is a challenging task. In professional setups this is usually solved with configuration management systems. These systems require years of experience and are therefore not approchable by non-expert users. The solution to this problem so far is to instead provide end-users with appliances that are massivly locked-down in terms of the functionality or platforms they support. To overcome these limitations, we Clan is based on NixOS.
|
||||||
|
|
||||||
NixOS is an operating system that uses a single declarative and consistent configuration to describe the whole system, using a purpose-built programming language called the Nix language. While the Nix language itself is not necessarily more accessible to non-experts, we believe it's still the best fit for the task. The underlying data structures used by NixOS are simple enough to be managed from a graphical user interface.
|
NixOS is an operating system that uses a single declarative and consistent configuration to describe the whole system, using a purpose-built programming language called the Nix language. While the Nix language itself is not necessarily more accessible to non-experts, we believe it's still the best fit for the task. The underlying data structures used by NixOS are simple enough to be managed from a graphical user interface.
|
||||||
|
|
||||||
@ -68,9 +68,9 @@ From the perspective of the user, software and systems that once required years
|
|||||||
|
|
||||||
### Self-hosted backup and restore
|
### Self-hosted backup and restore
|
||||||
|
|
||||||
cLAN enables users to easily self-host and backup their data, since one of the perils of self-hosting is data loss. Users can build pre-configured servers from the same interface where they also would be notified about devices not being backed up. They can also view information about the storage device, such as available storage and state of arrays.
|
Clan enables users to easily self-host and backup their data, since one of the perils of self-hosting is data loss. Users can build pre-configured servers from the same interface where they also would be notified about devices not being backed up. They can also view information about the storage device, such as available storage and state of arrays.
|
||||||
|
|
||||||
It is possible for users to back up devices in their global network, regardless of how they are connected. Services installed provided by cLAN also need to be aware of the backup process i.e. some applications, such as databases, have custom backup and restore procedures that needs to be integrated in the backup procedure.
|
It is possible for users to back up devices in their global network, regardless of how they are connected. Services installed provided by Clan also need to be aware of the backup process i.e. some applications, such as databases, have custom backup and restore procedures that needs to be integrated in the backup procedure.
|
||||||
|
|
||||||
## Components
|
## Components
|
||||||
|
|
||||||
@ -82,7 +82,7 @@ It is possible for users to back up devices in their global network, regardless
|
|||||||
|
|
||||||
### Base Operating System
|
### Base Operating System
|
||||||
|
|
||||||
Initially, we will utilize NixOS as the foundational operating system for hosting network-specific virtual machines. Presently, the installation process of NixOS involves advanced technical expertise, including a degree of proficiency in its unique programming language. However, our solution cLAN aims to simplify this process, enabling even non-technical users to successfully install the system.
|
Initially, we will utilize NixOS as the foundational operating system for hosting network-specific virtual machines. Presently, the installation process of NixOS involves advanced technical expertise, including a degree of proficiency in its unique programming language. However, our solution Clan aims to simplify this process, enabling even non-technical users to successfully install the system.
|
||||||
|
|
||||||
Several approaches can be considered to simplify the Base OS installation process:
|
Several approaches can be considered to simplify the Base OS installation process:
|
||||||
|
|
||||||
@ -112,16 +112,16 @@ An example flake.nix for a virtual machine network:
|
|||||||
|
|
||||||
```nix
|
```nix
|
||||||
{
|
{
|
||||||
inputs.cLAN.url = "git+https://git.cLAN.com/cLAN";
|
inputs.Clan.url = "git+https://git.Clan.com/Clan";
|
||||||
|
|
||||||
outputs = { self, cLAN, ... }:
|
outputs = { self, Clan, ... }:
|
||||||
{
|
{
|
||||||
nixosModules = {
|
nixosModules = {
|
||||||
default = inputs.cLAN.nixosSystem {
|
default = inputs.Clan.nixosSystem {
|
||||||
imports = [
|
imports = [
|
||||||
cLAN.nixosModules.default
|
Clan.nixosModules.default
|
||||||
];
|
];
|
||||||
cLAN = {
|
Clan = {
|
||||||
adminMode = "local";
|
adminMode = "local";
|
||||||
networkLayer= "yggdrasil";
|
networkLayer= "yggdrasil";
|
||||||
applications = {
|
applications = {
|
||||||
@ -129,7 +129,7 @@ An example flake.nix for a virtual machine network:
|
|||||||
enable = true;
|
enable = true;
|
||||||
sharedFolders = [ "/shared/docs" ];
|
sharedFolders = [ "/shared/docs" ];
|
||||||
};
|
};
|
||||||
mumbleClient.server = "mumble.cLAN";
|
mumbleClient.server = "mumble.Clan";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@ -160,11 +160,11 @@ The above `flake.nix` can also be split into a boilerplate `flake.nix` and a JSO
|
|||||||
|
|
||||||
```nix
|
```nix
|
||||||
{
|
{
|
||||||
inputs.cLAN.url = "git+https://git.cLAN.com/cLAN";
|
inputs.Clan.url = "git+https://git.Clan.com/Clan";
|
||||||
|
|
||||||
outputs = { self, cLAN, ... }:
|
outputs = { self, Clan, ... }:
|
||||||
{
|
{
|
||||||
nixosModules = cLAN.lib.generateNixosModules (builtins.fromJSON (import ./configs.json));
|
nixosModules = Clan.lib.generateNixosModules (builtins.fromJSON (import ./configs.json));
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
@ -181,7 +181,7 @@ The above `flake.nix` can also be split into a boilerplate `flake.nix` and a JSO
|
|||||||
"sharedFolders": [ "/shared/docs" ]
|
"sharedFolders": [ "/shared/docs" ]
|
||||||
},
|
},
|
||||||
"mumbleClient": {
|
"mumbleClient": {
|
||||||
"server": "mumble.cLAN"
|
"server": "mumble.Clan"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
+++
|
+++
|
||||||
title = "Lassulus"
|
title = "Lassulus"
|
||||||
description = "Contributor to cLAN."
|
description = "Contributor to Clan."
|
||||||
date = 2021-04-01T08:50:45+00:00
|
date = 2021-04-01T08:50:45+00:00
|
||||||
updated = 2021-04-01T08:50:45+00:00
|
updated = 2021-04-01T08:50:45+00:00
|
||||||
draft = false
|
draft = false
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
+++
|
+++
|
||||||
title = "Mic92"
|
title = "Mic92"
|
||||||
description = "Contributor to cLAN."
|
description = "Contributor to Clan."
|
||||||
date = 2021-04-01T08:50:45+00:00
|
date = 2021-04-01T08:50:45+00:00
|
||||||
updated = 2021-04-01T08:50:45+00:00
|
updated = 2021-04-01T08:50:45+00:00
|
||||||
draft = false
|
draft = false
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
+++
|
+++
|
||||||
title = "Qubasa"
|
title = "Qubasa"
|
||||||
description = "Contributor to cLAN."
|
description = "Contributor to Clan."
|
||||||
+++
|
+++
|
||||||
|
|
||||||
Contributor to **clan**.
|
Contributor to **clan**.
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
+++
|
+++
|
||||||
title = "Introducing Clan: Full-Stack Computing Redefined"
|
title = "Introducing Clan: Full-Stack Computing Redefined"
|
||||||
description = "Introducing cLAN, a new model for a decentralized network, designed to provide families, smaller groups, and small businesses a platform that’s private, secure, and user-friendly."
|
description = "Introducing Clan, a new model for a decentralized network, designed to provide families, smaller groups, and small businesses a platform that’s private, secure, and user-friendly."
|
||||||
date = 2024-03-19T09:19:42+00:00
|
date = 2024-03-19T09:19:42+00:00
|
||||||
updated = 2024-03-19T09:19:42+00:00
|
updated = 2024-03-19T09:19:42+00:00
|
||||||
draft = false
|
draft = false
|
||||||
@ -44,12 +44,15 @@ Clan embodies a new philosophy in system, application, and network design. It en
|
|||||||
{{ video(name="show_run.webm")}}
|
{{ video(name="show_run.webm")}}
|
||||||
|
|
||||||
- **Robust Backup Management:** Keep your data safe _forever_ - never worry about cloud services disappearing in 10 years.
|
- **Robust Backup Management:** Keep your data safe _forever_ - never worry about cloud services disappearing in 10 years.
|
||||||
|
|
||||||
{{ asciinema(name="backups.cast") }}
|
{{ asciinema(name="backups.cast") }}
|
||||||
|
|
||||||
- **Intuitive Secret Management:** Clan simplifies digital security by automating the creation and management of encryption keys and passwords for your services.
|
- **Intuitive Secret Management:** Clan simplifies digital security by automating the creation and management of encryption keys and passwords for your services.
|
||||||
|
|
||||||
{{ asciinema(name="secrets.cast") }}
|
{{ asciinema(name="secrets.cast") }}
|
||||||
|
|
||||||
- **Remote Install:** Set up and manage Clan systems anywhere in the world with just a QR scan or SSH access, making remote installations as easy as snapping a photo or sharing a link.
|
- **Remote Install:** Set up and manage Clan systems anywhere in the world with just a QR scan or SSH access, making remote installations as easy as snapping a photo or sharing a link.
|
||||||
|
|
||||||
{{ asciinema(name="nixos-install.cast") }}
|
{{ asciinema(name="nixos-install.cast") }}
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
+++
|
+++
|
||||||
title = "Contributing"
|
title = "Contributing"
|
||||||
description = "Contribute to cLAN, improve documentation, or submit to showcase."
|
description = "Contribute to Clan, improve documentation, or submit to showcase."
|
||||||
date = 2025-05-01T18:00:00+00:00
|
date = 2025-05-01T18:00:00+00:00
|
||||||
updated = 2021-05-01T18:00:00+00:00
|
updated = 2021-05-01T18:00:00+00:00
|
||||||
template = "section.html"
|
template = "section.html"
|
||||||
@ -18,4 +18,4 @@ section = "contributing"
|
|||||||
|
|
||||||
👉 Source code for this site: [git.clan.lol/clan/clan-homepage](https://git.clan.lol/clan/clan-homepage/src/branch/main/content/docs)
|
👉 Source code for this site: [git.clan.lol/clan/clan-homepage](https://git.clan.lol/clan/clan-homepage/src/branch/main/content/docs)
|
||||||
|
|
||||||
👉 Join [cLAN on Matrix](https://matrix.to/#/#clan:lassul.us) to contact maintainers
|
👉 Join [Clan on Matrix](https://matrix.to/#/#clan:lassul.us) to contact maintainers
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
+++
|
+++
|
||||||
title = "Documentation"
|
title = "Documentation"
|
||||||
description = "cLAN Documentation"
|
description = "Clan Documentation"
|
||||||
date = 2025-05-01T08:00:00+00:00
|
date = 2025-05-01T08:00:00+00:00
|
||||||
updated = 2021-05-01T08:00:00+00:00
|
updated = 2021-05-01T08:00:00+00:00
|
||||||
sort_by = "weight"
|
sort_by = "weight"
|
||||||
|
@ -13,30 +13,30 @@ section = "vision"
|
|||||||
+++
|
+++
|
||||||
|
|
||||||
|
|
||||||
cLAN aims to offer a compelling alternative to the ever-increasing centralization of the internet.
|
Clan aims to offer a compelling alternative to the ever-increasing centralization of the internet.
|
||||||
|
|
||||||
### Decentralized Networking
|
### Decentralized Networking
|
||||||
|
|
||||||
Instead of relying on a centralized cloud accessible via the clearnet, our objective is to establish an encrypted network of interconnected computers, essentially creating a decentralized darknet, which we affectionately call a cLAN.
|
Instead of relying on a centralized cloud accessible via the clearnet, our objective is to establish an encrypted network of interconnected computers, essentially creating a decentralized darknet, which we affectionately call a Clan.
|
||||||
|
|
||||||
### Seamless Access
|
### Seamless Access
|
||||||
|
|
||||||
Our vision includes providing users with a seamless experience when they join one or multiple cLANs through invitation links. Clicking the link will trigger a popup that seeks confirmation to connect to the network.
|
Our vision includes providing users with a seamless experience when they join one or multiple Clans through invitation links. Clicking the link will trigger a popup that seeks confirmation to connect to the network.
|
||||||
|
|
||||||
### Effortless Integration
|
### Effortless Integration
|
||||||
|
|
||||||
During the joining process, the user's computer (referred to as the client hereafter) will download a file containing information about a virtual machine (VM). The client will then automatically set up the VM, and once complete, this VM will become part of the cLAN.
|
During the joining process, the user's computer (referred to as the client hereafter) will download a file containing information about a virtual machine (VM). The client will then automatically set up the VM, and once complete, this VM will become part of the Clan.
|
||||||
|
|
||||||
Users can also choose to seamlessly integrate the cLAN configuration into their base system, effectively allowing the cLAN admin(s) to remotely manage their system.
|
Users can also choose to seamlessly integrate the Clan configuration into their base system, effectively allowing the Clan admin(s) to remotely manage their system.
|
||||||
|
|
||||||
### Dashboard for Services
|
### Dashboard for Services
|
||||||
|
|
||||||
Once connected, users will have access to a dashboard displaying all the services offered within this specific cLAN. Within this dashboard, users can easily add applications or decide to host services for fellow cLAN members, such as a Nextcloud instance or backup endpoints.
|
Once connected, users will have access to a dashboard displaying all the services offered within this specific Clan. Within this dashboard, users can easily add applications or decide to host services for fellow Clan members, such as a Nextcloud instance or backup endpoints.
|
||||||
|
|
||||||
### Decentralization and Redundancy
|
### Decentralization and Redundancy
|
||||||
|
|
||||||
The core idea is to ensure service decentralization without a single point of failure. If one service fails, another machine within the cLAN network can spin up a replacement service. VMs are designed to be lightweight, minimizing resource consumption.
|
The core idea is to ensure service decentralization without a single point of failure. If one service fails, another machine within the Clan network can spin up a replacement service. VMs are designed to be lightweight, minimizing resource consumption.
|
||||||
|
|
||||||
### Administrative Control
|
### Administrative Control
|
||||||
|
|
||||||
Within a cLAN, administrators define the configuration file and have control over who becomes part of the network.
|
Within a Clan, administrators define the configuration file and have control over who becomes part of the network.
|
||||||
|
@ -4,5 +4,10 @@
|
|||||||
$ USE_TMPDIR=1 TMPDIR=$(pwd) nix run .#nixosConfigurations.installer.config.system.build.nixos-shell
|
$ USE_TMPDIR=1 TMPDIR=$(pwd) nix run .#nixosConfigurations.installer.config.system.build.nixos-shell
|
||||||
$ clan machines install machine-to-install root@localhost:2222
|
$ clan machines install machine-to-install root@localhost:2222
|
||||||
vm> poweroff
|
vm> poweroff
|
||||||
$ qemu-kvm -enable-kvm -hda ./empty0.qcow2 -m 512 -nographic
|
qemu-kvm \
|
||||||
|
-enable-kvm -m 2048 \
|
||||||
|
-nographic \
|
||||||
|
-usb -device u2f-passthru
|
||||||
|
-drive file=disk.img,if=none,id=nvm \
|
||||||
|
-device nvme,serial=deadbeef,drive=nvm
|
||||||
```
|
```
|
||||||
|
Loading…
Reference in New Issue
Block a user