103 lines
2.5 KiB
Plaintext
103 lines
2.5 KiB
Plaintext
@startuml
|
|
|
|
left to right direction
|
|
|
|
<style>
|
|
cloud {
|
|
LineThickness 3
|
|
LineColor lightblue
|
|
BackGroundColor lightcyan
|
|
}
|
|
folder {
|
|
LineThickness 3
|
|
LineColor lightblue
|
|
BackGroundColor lightcyan
|
|
}
|
|
control {
|
|
BackGroundColor lightpink
|
|
}
|
|
</style>
|
|
|
|
|
|
folder "configuration repo" as config_repo {
|
|
/'
|
|
' file "flake.nix" as flake_nix {
|
|
' card "input: nixpkgs.url"
|
|
' card "input: selfprivacy-overlay.url"
|
|
' }
|
|
'/
|
|
file flake_nix [
|
|
<b>flake.nix
|
|
===
|
|
inputs = {
|
|
nixpkgs.url = ...;
|
|
selfprivacy-overlay.url = ...;
|
|
userdata-json.flake = false;
|
|
hardware-configuration-nix.flake = false;
|
|
};
|
|
outputs = { ... }: {
|
|
nixosConfigurations = ... {
|
|
specialArgs = { ... userdata; };
|
|
modules = [
|
|
{ nixpkgs.overlays = [ selfprivacy-overlay ]; }
|
|
hardware-configuration
|
|
./configuration.nix
|
|
];
|
|
};
|
|
};
|
|
]
|
|
file flake_lock [
|
|
<b>flake.lock
|
|
]
|
|
flake_lock - flake_nix
|
|
note top of flake_lock : pinning with hashes
|
|
|
|
file "<b><u>configuration.nix" as configuration
|
|
|
|
collections "nix modules" as pure_imports
|
|
}
|
|
|
|
node "NixOS machine" as machine {
|
|
file "hardware-configuration.nix" as hardware_configuration #lightcyan
|
|
folder """userdata/""" as userdata_folder {
|
|
/'
|
|
' file "schema.json\n<i>(who uses?)" as schema
|
|
' file "tokens_schema.json\n<i>(who uses?)" as tokens_schema
|
|
'/
|
|
file "tokens.json" as tokens
|
|
file "<b>userdata.json" as userdata
|
|
tokens -l[hidden]- userdata
|
|
}
|
|
collections "/nix/store/*" as nix_store
|
|
control "<font:monospaced><size:15>nixos-rebuild" as nixos_rebuild
|
|
}
|
|
|
|
cloud "overlay\n<i>commit @ git.selfprivacy.org" as overlay {
|
|
node "selfprivacy-graphql-api" as selfprivacy_graphql_api
|
|
}
|
|
|
|
cloud "selfprivacy-rest-api\n<i>commit @ git.selfprivacy.org" as selfprivacy_rest_api_commit {
|
|
component "python app" as selfprivacy_api_app
|
|
}
|
|
|
|
cloud " <b>nixpkgs\n<i>commit @ github.com (?)" as nixpkgs
|
|
nixpkgs --> flake_lock
|
|
overlay --> flake_lock
|
|
|
|
|
|
nixos_rebuild <- userdata : <font:monospaced>--override-input
|
|
nixos_rebuild <-l- hardware_configuration : <font:monospaced>--override-input
|
|
|
|
selfprivacy_rest_api_commit ->> selfprivacy_graphql_api
|
|
flake_nix --> configuration
|
|
flake_lock --> configuration
|
|
|
|
configuration -d-> nixos_rebuild
|
|
nixos_rebuild -[bold]-|> nix_store
|
|
configuration <-l- pure_imports
|
|
|
|
|
|
footer %date("yyyy-MM-dd'T'HH:mmZ")
|
|
|
|
@enduml
|