Update Documentation
This commit is contained in:
@@ -507,14 +507,13 @@ setup, supported hardware, and Royal Membership.
|
||||
|
||||
## For developers
|
||||
|
||||
Sovran_SystemsOS combines the reproducibility of [NixOS](https://nixos.org),
|
||||
the Bitcoin service modules of
|
||||
[nix-bitcoin](https://github.com/fort-nix/nix-bitcoin), the desktop Bitcoin
|
||||
packages provided by
|
||||
Sovran_SystemsOS combines [NixOS](https://nixos.org), an in-repository
|
||||
Bitcoin and Lightning stack, desktop packages from
|
||||
[btc-clients-nix](https://github.com/emmanuelrosa/btc-clients-nix), and the
|
||||
Sovran Hub into a complete Bitcoin operating system. The operating system
|
||||
configuration, installer, Hub, desktop integration, Bitcoin services, and
|
||||
optional self-hosting services are all maintained in this repository.
|
||||
Sovran Hub. The Bitcoin modules under `modules/bitcoin/` were adapted from
|
||||
[nix-bitcoin](https://github.com/fort-nix/nix-bitcoin) and are now maintained
|
||||
here. Builds no longer import or fetch nix-bitcoin. Legacy `nix-bitcoin.*`
|
||||
option names and `/etc/nix-bitcoin-secrets` remain for compatibility.
|
||||
|
||||
### Development workflow
|
||||
|
||||
@@ -533,9 +532,9 @@ optional self-hosting services are all maintained in this repository.
|
||||
### Technology
|
||||
|
||||
- [NixOS](https://nixos.org) and [Nix flakes](https://nixos.wiki/wiki/Flakes)
|
||||
for reproducible system configuration
|
||||
- [nix-bitcoin](https://github.com/fort-nix/nix-bitcoin) for declarative
|
||||
Bitcoin and Lightning services
|
||||
for declarative, pinned system configuration
|
||||
- `modules/bitcoin/` for the in-repository Bitcoin and Lightning stack
|
||||
- `packages/` for Sovran-maintained package definitions and patches
|
||||
- [btc-clients-nix](https://github.com/emmanuelrosa/btc-clients-nix) for the
|
||||
Sparrow, Bisq, and Bisq 2 packages
|
||||
- [Python](https://www.python.org) and [FastAPI](https://fastapi.tiangolo.com)
|
||||
@@ -625,12 +624,14 @@ sudo nixos-rebuild switch --rollback
|
||||
| `flake.nix` | Declares flake inputs, the running system, and installer outputs |
|
||||
| `flake.lock` | Pins dependencies for reproducible builds |
|
||||
| `configuration.nix` | Base host, boot, desktop, user, security, backup, and system configuration |
|
||||
| `modules/` | Core modules, Bitcoin services, self-hosted services, and optional features |
|
||||
| `modules/` | Core modules, self-hosted services, and optional features |
|
||||
| `modules/bitcoin/` | In-repository Bitcoin and Lightning service modules |
|
||||
| `modules/core/` | Roles, Hub integration, Caddy, desktop, support, and other core behavior |
|
||||
| `app/` | Sovran Hub backend, templates, static assets, scripts, and web interface |
|
||||
| `scripts/` | Automated release, build, and CDN upload utility scripts |
|
||||
| `iso/` | Installer configuration, installer code, and installer assets |
|
||||
| `packages/` | Custom package sources and patches (for example, Alby Hub) |
|
||||
| `packages/` | Sovran-maintained package definitions and patches |
|
||||
| `tests/` | Security and Nix integration checks |
|
||||
| `assets/` | Documentation images |
|
||||
| `custom.template.nix` | Template for local features and service overrides |
|
||||
|
||||
@@ -704,65 +705,35 @@ production environment.
|
||||
|
||||
## About Bitcoin wallet entropy
|
||||
|
||||
When you create a Bitcoin wallet in Sparrow Wallet, you generate a **24-word
|
||||
seed phrase**. You should also apply a **128-bit BIP39 passphrase**. These are
|
||||
**two independent entropy sources** — both are required to recover your wallet,
|
||||
and neither one alone is sufficient.
|
||||
Wallet recovery words control the funds. Never share them with a website,
|
||||
support technician, cloud service, or chat application.
|
||||
|
||||
**Create each entropy source on different hardware.**
|
||||
For meaningful balances, prefer a well-reviewed hardware signer and follow its
|
||||
verified backup process. A BIP39 passphrase is optional, advanced protection;
|
||||
it is not a replacement for the recovery words. If you use one, back it up
|
||||
separately—losing either item can make the wallet unrecoverable.
|
||||
|
||||
The seed phrase is generated by Sparrow Wallet on your Sovran_SystemsOS machine.
|
||||
The 128-bit passphrase should be generated on a separate device — for example:
|
||||
|
||||
- A **GrapheneOS** phone using Bitwarden's passphrase generator
|
||||
- A different computer running the **Diceware** program
|
||||
|
||||
This way, no single device ever produces or holds both sources of randomness.
|
||||
If one device is ever compromised, the other entropy source remains unknown to
|
||||
an attacker. Your wallet cannot be recovered without **both**.
|
||||
|
||||
This is not a recommendation against hardware wallets, dice, or any other
|
||||
well-tested method of creating entropy. Those are established and valuable
|
||||
approaches. If you use a hardware wallet, verify for yourself that its entropy
|
||||
generation — both the software and the hardware — is sound and follows best
|
||||
practices.
|
||||
|
||||
The takeaway is simply this: **how your entropy is created matters, and
|
||||
generating your two entropy sources on two physically separate devices is a
|
||||
strong practice to understand before setting up a Bitcoin wallet** with the
|
||||
software included in Sovran_SystemsOS.
|
||||
|
||||
**You must do your own research.** The information above is basic educational
|
||||
context to help you build your own best practices — not financial advice and not
|
||||
a substitute for your own due diligence.
|
||||
Keep durable offline backups in separate secure locations. Test recovery before
|
||||
relying on a wallet, and begin with a small amount.
|
||||
|
||||
---
|
||||
|
||||
## Security approach
|
||||
|
||||
Sovran_SystemsOS is designed around local ownership and explicit control.
|
||||
Sovran_SystemsOS uses layered controls:
|
||||
|
||||
Its security foundations include:
|
||||
- Pinned flake inputs and hash-pinned source archives
|
||||
- Bitcoin and Lightning modules maintained in this repository
|
||||
- Firewall enabled; public SSH and remote desktop disabled by default
|
||||
- Separate service users, systemd sandboxing, and loopback bindings where practical
|
||||
- Tor enforcement for supported Bitcoin services
|
||||
- Restricted, time-limited support access with scoped `sudo`
|
||||
- Operator-controlled public service exposure
|
||||
|
||||
- Reproducible builds from pinned flake inputs
|
||||
- Firewall enabled by default
|
||||
- Public SSH disabled by default
|
||||
- Remote desktop disabled by default
|
||||
- Hub authentication
|
||||
- Local-network Hub access through `sovransystemsos.local`
|
||||
- Tor integration for the Bitcoin stack
|
||||
- User-controlled service exposure
|
||||
- Declarative system configuration
|
||||
- Restricted technical-support access
|
||||
- Auditable open-source code
|
||||
|
||||
No operating system can guarantee complete security. Users should still apply
|
||||
updates, protect credentials, maintain backups, secure their local network,
|
||||
and review any services they choose to expose publicly.
|
||||
|
||||
Bitcoin users must also securely back up wallet seed phrases, descriptors,
|
||||
channel backups, and other recovery information. Never store your only wallet
|
||||
backup on the same computer that holds the wallet.
|
||||
See [`SECURITY.md`](SECURITY.md) for the threat model, limitations, reporting,
|
||||
and operator guidance. No operating system can protect funds after recovery
|
||||
words, administrator credentials, or the root account are compromised. Apply
|
||||
updates and keep tested offline backups.
|
||||
|
||||
---
|
||||
|
||||
@@ -780,11 +751,15 @@ Sovran_SystemsOS would not have the same reliability, transparency, or reproduci
|
||||
|
||||
### nix-bitcoin
|
||||
|
||||
Special thanks go to the [nix-bitcoin](https://github.com/fort-nix/nix-bitcoin) project and its [contributors](https://github.com/fort-nix/nix-bitcoin/graphs/contributors).
|
||||
The in-repository Bitcoin stack began with code adapted from
|
||||
[nix-bitcoin](https://github.com/fort-nix/nix-bitcoin), primarily from commit
|
||||
[`360e30f`](https://github.com/fort-nix/nix-bitcoin/commit/360e30fee5ba32f9fecc89bc35628195d9d2dbbe).
|
||||
It has since been narrowed to Sovran's supported services and is maintained in
|
||||
this repository. nix-bitcoin is no longer a flake input or build dependency.
|
||||
|
||||
nix-bitcoin provides the declarative foundation for building and operating Bitcoin and Lightning services on NixOS. Its work makes it possible to configure complex Bitcoin infrastructure—including nodes, Electrs, Lightning, Tor integration, and related services—in a reproducible and auditable way.
|
||||
|
||||
Sovran_SystemsOS builds upon that foundation to make this infrastructure approachable through an integrated desktop, installer, and Sovran Hub.
|
||||
We remain grateful to the nix-bitcoin contributors for the declarative and
|
||||
security-focused foundation. Its MIT notice is retained in
|
||||
[`THIRD_PARTY_NOTICES.md`](THIRD_PARTY_NOTICES.md).
|
||||
|
||||
### Emmanuel Rosa and btc-clients-nix
|
||||
|
||||
@@ -859,9 +834,10 @@ license.
|
||||
> Individual upstream applications, packages, artwork, fonts, and other
|
||||
> components included with or built by Sovran_SystemsOS may have their own
|
||||
> licenses and copyright holders. The AGPL-3.0 license for this repository does
|
||||
> not replace the licenses of independent upstream projects.
|
||||
> not replace those licenses.
|
||||
|
||||
Read the complete license terms in [`LICENSE`](LICENSE).
|
||||
Read [`LICENSE`](LICENSE) and
|
||||
[`THIRD_PARTY_NOTICES.md`](THIRD_PARTY_NOTICES.md).
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user