Finished The Vision paragraph, fixed some minor issues here and there
All checks were successful
check / test (pull_request) Successful in 5s
All checks were successful
check / test (pull_request) Successful in 5s
This commit is contained in:
parent
c384eec38f
commit
23cbfa8eff
|
@ -127,6 +127,6 @@ url = "/privacy-policy/"
|
|||
weight = 10
|
||||
|
||||
[[extra.footer.nav]]
|
||||
name = "Overview"
|
||||
url = "/docs/overview"
|
||||
name = "The Vision"
|
||||
url = "/docs/thevision"
|
||||
weight = 20
|
||||
|
|
|
@ -14,7 +14,7 @@ repo_url = "https://git.clan.lol/clan/"
|
|||
[[extra.menu.main]]
|
||||
name = "Docs"
|
||||
section = "docs"
|
||||
url = "/docs/overview"
|
||||
url = "/docs/thevision"
|
||||
weight = 10
|
||||
|
||||
[[extra.menu.main]]
|
||||
|
|
|
@ -15,11 +15,10 @@ top = false
|
|||
+++
|
||||
|
||||
|
||||
# cLAN
|
||||
### cLAN
|
||||
|
||||
cLAN envisions 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. 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, backup functionality, user-friendly app store, and fleet management for small businesses.
|
||||
|
||||
## Architecture Overview
|
||||
|
||||
### Decentralized Network Model
|
||||
|
||||
|
@ -151,8 +150,8 @@ This modules would be build by the VM controller into a system with the followin
|
|||
inputs.myNetworkFlake.nixosModules.default
|
||||
./local-overrides.nix
|
||||
];
|
||||
}
|
||||
}
|
||||
};
|
||||
};
|
||||
}
|
||||
```
|
||||
|
||||
|
@ -259,7 +258,6 @@ Our safeguards will include virtual machine isolation to mitigate the damage an
|
|||
To address this, we only offer a limited set of options in our high-level modules, which either restrict or issue warnings for configurations deemed to be unsafe.
|
||||
For instance, services are exposed exclusively to the internal network and not to the wider internet, thereby offering an extra layer of security.
|
||||
|
||||
TODO: Threats that are out-of-scope
|
||||
|
||||
### Trusted compute base
|
||||
|
||||
|
|
|
@ -6,15 +6,37 @@ updated = 2021-05-01T19:30:00+00:00
|
|||
draft = false
|
||||
weight = 30
|
||||
sort_by = "weight"
|
||||
paginator.next = "docs/overview/index.md"
|
||||
template = "docs/page.html"
|
||||
+++
|
||||
|
||||
Our vision in this context, is how we think the final product should behave and how users will interact with it. cLAN aims to provide an alternative to the ever-increasing centralization of the internet.
|
||||
|
||||
Rather than relying on a centralized cloud, accessible through the clearnet, our goal is to establish an encrypted network of interconnected computers, forming a decentralized darknet—a user-driven cloud known as a cLAN.
|
||||
In this context, our vision defines how we envision the behavior of the final product and how users will interact with it. cLAN aims to offer a compelling alternative to the ever-increasing centralization of the internet.
|
||||
|
||||
Our vision includes providing users with a seamless experience when joining one or multiple cLANs through invitation links. Clicking the link will trigger a popup that seeks confirmation to connect to the network.
|
||||
### Decentralized Networking
|
||||
|
||||
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 initiate the VM setup, and upon completion, this VM will become part of the 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.
|
||||
|
||||
Once connected, users will gain access to a dashboard showcasing all the services offered within this particular cLAN. Within this dashboard, users can easily add applications or choose to host services for other cLAN members, such as a Nextcloud instance or other services.
|
||||
### Seamless Onboarding
|
||||
|
||||
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 VM 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.
|
||||
|
||||
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
|
||||
|
||||
Once connected, users will have access to a dashboard displaying all the services offered within this specific cLAN. Within this dashboard, users can effortlessly add applications or decide to host services for fellow cLAN members, such as a Nextcloud instance or backup endpoints.
|
||||
|
||||
### 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.
|
||||
|
||||
### Administrative Control
|
||||
|
||||
Within a cLAN, administrators define the configuration file and have control over who becomes part of the network.
|
||||
|
||||
Go to [Technical Overview](@/docs/overview/index.md) to see more indepth details of our work.
|
|
@ -1,17 +1,33 @@
|
|||
// Set darkmode
|
||||
document.getElementById('mode').addEventListener('click', () => {
|
||||
let isDarkTheme = document.body.classList.contains('dark');
|
||||
setColorTheme(!isDarkTheme);
|
||||
setColorTheme(!isDarkTheme ? "dark" : "light");
|
||||
});
|
||||
|
||||
|
||||
function setColorTheme(dark) {
|
||||
if (dark) {
|
||||
let preferDarkTheme = prefersDarkMode();
|
||||
let theme = localStorage.getItem('theme');
|
||||
if (theme !== null) {
|
||||
setColorTheme(theme);
|
||||
} else {
|
||||
setColorTheme(preferDarkTheme ? "dark" : "light");
|
||||
}
|
||||
|
||||
// Get the media query list object for the prefers-color-scheme media feature
|
||||
const colorSchemeQueryList = window.matchMedia("(prefers-color-scheme: dark)");
|
||||
// Add an event listener for the change event
|
||||
colorSchemeQueryList.addEventListener("change", handleColorSchemeChange);
|
||||
|
||||
|
||||
function setColorTheme(theme) {
|
||||
if (theme === "dark") {
|
||||
document.body.classList.add('dark');
|
||||
switchClanLogo("white");
|
||||
localStorage.setItem('theme', 'dark');
|
||||
} else {
|
||||
document.body.classList.remove('dark');
|
||||
switchClanLogo("dark");
|
||||
localStorage.setItem('theme', 'light');
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -51,21 +67,14 @@ function switchClanLogo(theme) {
|
|||
}
|
||||
|
||||
|
||||
let preferDarkTheme = prefersDarkMode();
|
||||
setColorTheme(preferDarkTheme);
|
||||
|
||||
// Get the media query list object for the prefers-color-scheme media feature
|
||||
const colorSchemeQueryList = window.matchMedia("(prefers-color-scheme: dark)");
|
||||
// A function that executes some logic based on the color scheme preference
|
||||
function handleColorSchemeChange(e) {
|
||||
if (e.matches) {
|
||||
// The user prefers dark mode
|
||||
setColorTheme(true);
|
||||
setColorTheme("dark");
|
||||
} else {
|
||||
// The user prefers light mode
|
||||
setColorTheme(false);
|
||||
setColorTheme("light");
|
||||
}
|
||||
}
|
||||
|
||||
// Add an event listener for the change event
|
||||
colorSchemeQueryList.addEventListener("change", handleColorSchemeChange);
|
Loading…
Reference in New Issue
Block a user