Files
Sovran_SystemsOS/custom.nix
2026-03-27 16:07:34 -05:00

191 lines
10 KiB
Nix

{ config, lib, ... }:
{
###########################################################
# #
# Sovran_SystemsOS — custom.nix #
# #
# This is YOUR configuration file. Edit it to customize #
# which services and features run on your machine. #
# #
# After making changes, rebuild with: #
# #
# nixos-rebuild switch --impure #
# #
###########################################################
# ═══════════════════════════════════════════════════════════
# STEP 1: CHOOSE YOUR ROLE
# ═══════════════════════════════════════════════════════════
#
# Pick ONE role by uncommenting it. If none is chosen,
# you get the Server-Desktop role by default.
#
# Server-Desktop (default):
# - Full server + desktop environment
# - All services ON by default
# - All features OFF by default
#
# Desktop Only:
# - Desktop environment, no server services
# - All services OFF by default
#
# Bitcoin Node Only:
# - Bitcoin ecosystem, mempool, bip110
# - BTCPay runs but is NOT exposed to the web
# - All other services OFF by default
#
# ───────────────────────────────────────────────────────────
# sovran_systemsOS.roles.desktop = true;
# sovran_systemsOS.roles.node = true;
# ═══════════════════════════════════════════════════════════
# STEP 2: SERVICES (default: ON)
# ═══════════════════════════════════════════════════════════
#
# These are all ON by default in the Server-Desktop role.
# Set any to "false" to disable it.
#
# ┌─────────────────────┬────────────────────────────────┐
# │ Service │ What it does │
# ├─────────────────────┼────────────────────────────────┤
# │ synapse │ Matrix Synapse homeserver │
# │ bitcoin │ Bitcoin ecosystem (bitcoind, │
# │ │ electrs, lnd, rtl, btcpay) │
# │ vaultwarden │ Vaultwarden password manager │
# │ wordpress │ WordPress website │
# │ nextcloud │ Nextcloud file hosting │
# └─────────────────────┴────────────────────────────────┘
#
# Example — disable WordPress and Nextcloud:
#
# sovran_systemsOS.services.wordpress = false;
# sovran_systemsOS.services.nextcloud = false;
#
# ───────────────────────────────────────────────────────────
# sovran_systemsOS.services.synapse = false;
# sovran_systemsOS.services.bitcoin = false;
# sovran_systemsOS.services.vaultwarden = false;
# sovran_systemsOS.services.wordpress = false;
# sovran_systemsOS.services.nextcloud = false;
# ═══════════════════════════════════════════════════════════
# STEP 3: FEATURES (default: OFF)
# ═══════════════════════════════════════════════════════════
#
# These are all OFF by default. Set to "true" to enable.
#
# ┌─────────────────────┬────────────────────────────────┐
# │ Feature │ What it does │
# ├─────────────────────┼────────────────────────────────┤
# │ haven │ Haven NOSTR relay │
# │ │ (requires nostr_npub below) │
# │ element-calling │ Element video/audio calls │
# │ │ (LiveKit + lk-jwt-service) │
# │ mempool │ Bitcoin Mempool Explorer │
# │ bip110 │ BIP-110 Bitcoin Better Money │
# │ bitcoin-core │ Bitcoin Core (standalone) │
# │ rdp │ GNOME Remote Desktop (RDP) │
# └─────────────────────┴────────────────────────────────┘
#
# Example — enable Haven and Element Calling:
#
# sovran_systemsOS.features.haven = true;
# sovran_systemsOS.features.element-calling = true;
#
# ───────────────────────────────────────────────────────────
# sovran_systemsOS.features.haven = true;
# sovran_systemsOS.features.element-calling = true;
# sovran_systemsOS.features.mempool = true;
# sovran_systemsOS.features.bip110 = true;
# sovran_systemsOS.features.bitcoin-core = true;
# sovran_systemsOS.features.rdp = true;
# ═══════════════════════════════════════════════════════════
# STEP 4: WEB EXPOSURE (controls Caddy reverse proxy)
# ═══════════════════════════════════════════════════════════
#
# These control whether a service gets a public Caddy
# vhost. The service itself still runs regardless.
#
# ┌─────────────────────┬────────────────────────────────┐
# │ Option │ Default │
# ├─────────────────────┼────────────────────────────────┤
# │ btcpayserver │ true (false in Node role) │
# └─────────────────────┴────────────────────────────────┘
#
# Example — hide BTCPay from the web:
#
# sovran_systemsOS.web.btcpayserver = false;
#
# ───────────────────────────────────────────────────────────
# sovran_systemsOS.web.btcpayserver = false;
# ═══════════════════════════════════════════════════════════
# STEP 5: NOSTR PUBLIC KEY (required for Haven)
# ═══════════════════════════════════════════════════════════
#
# If you enabled Haven above, paste your npub here.
# Haven will NOT start without a valid npub.
#
# Example:
#
# sovran_systemsOS.nostr_npub = "npub1abc123...";
#
# ───────────────────────────────────────────────────────────
# sovran_systemsOS.nostr_npub = "";
# ═══════════════════════════════════════════════════════════
# QUICK REFERENCE — COMMON SETUPS
# ═══════════════════════════════════════════════════════════
#
# ── Full Server (default, change nothing) ──────────────
#
# All services ON, all features OFF.
# Just leave this file as-is.
#
#
# ── Server without WordPress ───────────────────────────
#
# sovran_systemsOS.services.wordpress = false;
#
#
# ── Server with Haven + Element Calling ────────────────
#
# sovran_systemsOS.features.haven = true;
# sovran_systemsOS.features.element-calling = true;
# sovran_systemsOS.nostr_npub = "npub1your_key_here";
#
#
# ── Bitcoin Node Only ──────────────────────────────────
#
# sovran_systemsOS.roles.node = true;
#
# (Gives you: bitcoind, electrs, lnd, rtl, btcpay,
# mempool, bip110 — no web services)
#
#
# ── Desktop Only (no server) ───────────────────────────
#
# sovran_systemsOS.roles.desktop = true;
#
#
# ── Node with BTCPay web access ────────────────────────
#
# sovran_systemsOS.roles.node = true;
# sovran_systemsOS.web.btcpayserver = true;
#
# ═══════════════════════════════════════════════════════════
}