mirror of Team/StarlightOS at forge.starlightnet.work
1# Starlight OS
2
3*name, and the entire README for that matter, is temporary*
4
5An operating system based on nixOS aimed at reviving your old hardware
6as homeservers or Network-Attached-Storage (NAS), without locking you
7into one distribution.
8
9## What's different?
10
11Many distributions designed for this purpose are corporate-controlled
12and in a tight ecosystem. This makes it more difficult to migrate out
13of, difficult to peek inside of and understand the system.
14Additionally, it complicates porting new software, as it often
15requires writing platform-specific template and metadata files. Many
16of these projects also don't support ARM64 outside of Raspberry Pi
17images.
18
19To solve all of the above, we are aiming to create one of these
20operating systems, except it leverages all the existing nixOS
21infrastructure, while also adding in some more modern tooling, and
22custom tooling of our own.
23
24We will also allow configurations to be synced between devices by the
25use of `git`.
26
27For managing nixOS generations, as well as the user's changes,
28we present upcoming changes in a "queue",
29showing all changes done since the last rebuild.
30
31The mechanism for adding things to the nixOS configuration without
32manually writing it out into a file is still being investigated. We
33are leaning towards a CLI that takes expresions like
34`services.sharkey.enable true` that then spits out a
35`services/sharkey/sharkey.nix` with contents:
36
37```nix
38{
39 services.sharkey = {
40 enable = true;
41 }
42}
43```
44
45From there, changing any settings would be `cli services.sharkey.port
46= 8080` which would edit the file such that it spits out:
47
48```nix
49{
50 service.sharkey = {
51 enable = true;
52 port = 8080;
53 }
54}
55```
56
57> NOTE: I have not actually checked those are valid settings, they are
58> just an example.
59
60### Non-Commercial
61
62Unlike other projects, we are aiming to be non-commercial. The OS
63won't ever cost a dime, we won't add features that cost money to use
64nor will we paywall any existing features.
65
66You are of course free to [support
67us](https://liberapay.com/Starlight-Network) but this does not in any
68way alter the experience of using this OS.
69
70## Goals and non-goals
71
72We want to create something that has all the power of nix under the
73hood, while offering usability and user-friendliness akin to other
74projects in this space. At the same time, we want to leave the user
75with a fully working nixOS configuration that doesn't require our
76tooling to continue functioning.
77
78We do not want to create a commercial product, and we do not aim to be
79the most comprehensive GUI tooling on earth either.
80
81## Opinionated
82
83We make some opinionated changes for the base operating system, like
84for example:
85- [Fish](https://fishshell.com) as the default shell.
86- Make use of systemd *heavily*, basically as much as we can. We want
87 a lot of this tooling to be centralized there, as to make it easier
88 to work with.
89- Ship [nixos-cli](https://github.com/nix-community/nixos-cli) instead
90 of the traditional `nixos-install` and co.
91
92## Project Status
93
94The project is currently in its early stages. We are figuring out the
95structure we want to use, writing a basic installation script, and
96planning how the CLI and GUI will work.
97
98If you want to contribute, here are some things we are going to work
99on soon, that we would accept contributions on:
100
101- CLI (probably written in `go`)
102- flake structure for installed OS
103 - i.e how we want to organize the flake into i.e hosts, services
104 and so on.
105- Naming for this project (see issues tab)
106
107## License
108
109Our code is licensed under the
110[Opinionated Queer License v1.3](https://oql.avris.it/license/v1.3.md?c=Starlight%20Network%7Chttps%3A%2F%2Fstarlightnet.work)
111
112This license only applies to our own code, not external dependencies.
113Check licenses accordingly.