forked from fediversity/fediversity
Compare commits
34 commits
a82bb393a2
...
173518ed90
| Author | SHA1 | Date | |
|---|---|---|---|
| 173518ed90 | |||
| 84e51745f8 | |||
| 2fef5c42aa | |||
| cdd39543bf | |||
| f2e294e77c | |||
| 9090269e55 | |||
| 6843e84657 | |||
| e6b06c86a6 | |||
| 3716de6409 | |||
| 8f2571ac70 | |||
| 90eae7c336 | |||
| 5ce0987640 | |||
| 69b6cac387 | |||
| 4f93303ef8 | |||
| 376d003e28 | |||
| 1aa9e959d3 | |||
| 7bab876d1b | |||
| a5b74452c8 | |||
| 428b1d4e3a | |||
| 4c6fa980f7 | |||
| d26b3502ab | |||
| 31fce3acd2 | |||
| 3f516da411 | |||
| a4a2c8c4c1 | |||
| c649802896 | |||
| b3767d30ce | |||
| cbc4937427 | |||
| d409c75476 | |||
| be8dec1f86 | |||
| 44dfef8cb4 | |||
| 44711d52ec | |||
| dcd87a3f76 | |||
| 38c12e82e9 | |||
| 3581ab5af1 |
30 changed files with 118 additions and 361 deletions
|
|
@ -1,183 +0,0 @@
|
||||||
## `makeMakeDeployment` -- Function to help hosting providers make a
|
|
||||||
## `makeDeployment` function.
|
|
||||||
##
|
|
||||||
## https://factoryfactoryfactory.net/
|
|
||||||
|
|
||||||
## Generic utilities used in this function, eg. nixpkgs, NixOps4 providers, etc.
|
|
||||||
## REVIEW: We should maybe be more specific than just `inputs`.
|
|
||||||
{
|
|
||||||
lib,
|
|
||||||
nixops4,
|
|
||||||
nixops4-nixos,
|
|
||||||
fediversity,
|
|
||||||
}:
|
|
||||||
|
|
||||||
## Information on the hosting provider's infrastructure. This is where we inform
|
|
||||||
## this function of where it can find eg. Proxmox.
|
|
||||||
{
|
|
||||||
## Four NixOS configuration resource modules for four services. Those are VMs
|
|
||||||
## that are already deployed and on which we will push our configurations.
|
|
||||||
##
|
|
||||||
## - Ultimately, we just want a pool of VMs, or even just a Proxmox.
|
|
||||||
## - Each machine is flagged for a certain use case until we control DNS.
|
|
||||||
garageConfigurationResource,
|
|
||||||
mastodonConfigurationResource,
|
|
||||||
peertubeConfigurationResource,
|
|
||||||
pixelfedConfigurationResource,
|
|
||||||
}:
|
|
||||||
|
|
||||||
## From the hosting provider's perspective, the function is meant to be
|
|
||||||
## partially applied only until here.
|
|
||||||
|
|
||||||
## Information on the specific deployment that we request. This is the
|
|
||||||
## information coming from the FediPanel.
|
|
||||||
##
|
|
||||||
## FIXME: lock step the interface with the definitions in the FediPanel
|
|
||||||
panelConfig:
|
|
||||||
|
|
||||||
let
|
|
||||||
inherit (lib) mkIf;
|
|
||||||
|
|
||||||
in
|
|
||||||
|
|
||||||
## Regular arguments of a NixOps4 deployment module.
|
|
||||||
{ providers, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
config = {
|
|
||||||
providers = { inherit (nixops4.modules.nixops4Provider) local; };
|
|
||||||
|
|
||||||
resources =
|
|
||||||
let
|
|
||||||
## NOTE: All of these secrets are publicly available in this source file
|
|
||||||
## and will end up in the Nix store. We don't care as they are only ever
|
|
||||||
## used for testing anyway.
|
|
||||||
##
|
|
||||||
## FIXME: Generate and store in NixOps4's state.
|
|
||||||
mastodonS3KeyConfig =
|
|
||||||
{ pkgs, ... }:
|
|
||||||
{
|
|
||||||
s3AccessKeyFile = pkgs.writeText "s3AccessKey" "GK3515373e4c851ebaad366558";
|
|
||||||
s3SecretKeyFile = pkgs.writeText "s3SecretKey" "7d37d093435a41f2aab8f13c19ba067d9776c90215f56614adad6ece597dbb34";
|
|
||||||
};
|
|
||||||
peertubeS3KeyConfig =
|
|
||||||
{ pkgs, ... }:
|
|
||||||
{
|
|
||||||
s3AccessKeyFile = pkgs.writeText "s3AccessKey" "GK1f9feea9960f6f95ff404c9b";
|
|
||||||
s3SecretKeyFile = pkgs.writeText "s3SecretKey" "7295c4201966a02c2c3d25b5cea4a5ff782966a2415e3a196f91924631191395";
|
|
||||||
};
|
|
||||||
pixelfedS3KeyConfig =
|
|
||||||
{ pkgs, ... }:
|
|
||||||
{
|
|
||||||
s3AccessKeyFile = pkgs.writeText "s3AccessKey" "GKb5615457d44214411e673b7b";
|
|
||||||
s3SecretKeyFile = pkgs.writeText "s3SecretKey" "5be6799a88ca9b9d813d1a806b64f15efa49482dbe15339ddfaf7f19cf434987";
|
|
||||||
};
|
|
||||||
|
|
||||||
makeConfigurationResource = resourceModule: config: {
|
|
||||||
type = providers.local.exec;
|
|
||||||
imports = [
|
|
||||||
nixops4-nixos.modules.nixops4Resource.nixos
|
|
||||||
resourceModule
|
|
||||||
|
|
||||||
{
|
|
||||||
## NOTE: With NixOps4, there are several levels and all of them live
|
|
||||||
## in the NixOS module system:
|
|
||||||
##
|
|
||||||
## 1. Each NixOps4 deployment is a module.
|
|
||||||
## 2. Each NixOps4 resource is a module. This very comment is
|
|
||||||
## inside an attrset imported as a module in a resource.
|
|
||||||
## 3. Each NixOps4 'configuration' resource contains an attribute
|
|
||||||
## 'nixos.module', itself a NixOS configuration module.
|
|
||||||
nixos.module =
|
|
||||||
{ ... }:
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
config
|
|
||||||
fediversity
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
in
|
|
||||||
|
|
||||||
{
|
|
||||||
garage-configuration = makeConfigurationResource garageConfigurationResource (
|
|
||||||
{ pkgs, ... }:
|
|
||||||
mkIf (panelConfig.mastodon.enable || panelConfig.peertube.enable || panelConfig.pixelfed.enable) {
|
|
||||||
fediversity = {
|
|
||||||
inherit (panelConfig) domain;
|
|
||||||
garage.enable = true;
|
|
||||||
pixelfed = pixelfedS3KeyConfig { inherit pkgs; };
|
|
||||||
mastodon = mastodonS3KeyConfig { inherit pkgs; };
|
|
||||||
peertube = peertubeS3KeyConfig { inherit pkgs; };
|
|
||||||
};
|
|
||||||
}
|
|
||||||
);
|
|
||||||
|
|
||||||
mastodon-configuration = makeConfigurationResource mastodonConfigurationResource (
|
|
||||||
{ pkgs, ... }:
|
|
||||||
mkIf panelConfig.mastodon.enable {
|
|
||||||
fediversity = {
|
|
||||||
inherit (panelConfig) domain;
|
|
||||||
temp.initialUser = {
|
|
||||||
inherit (panelConfig.initialUser) username email displayName;
|
|
||||||
# FIXME: disgusting, but nvm, this is going to be replaced by
|
|
||||||
# proper central authentication at some point
|
|
||||||
passwordFile = pkgs.writeText "password" panelConfig.initialUser.password;
|
|
||||||
};
|
|
||||||
|
|
||||||
mastodon = mastodonS3KeyConfig { inherit pkgs; } // {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
temp.cores = 1; # FIXME: should come from NixOps4 eventually
|
|
||||||
};
|
|
||||||
}
|
|
||||||
);
|
|
||||||
|
|
||||||
peertube-configuration = makeConfigurationResource peertubeConfigurationResource (
|
|
||||||
{ pkgs, ... }:
|
|
||||||
mkIf panelConfig.peertube.enable {
|
|
||||||
fediversity = {
|
|
||||||
inherit (panelConfig) domain;
|
|
||||||
temp.initialUser = {
|
|
||||||
inherit (panelConfig.initialUser) username email displayName;
|
|
||||||
# FIXME: disgusting, but nvm, this is going to be replaced by
|
|
||||||
# proper central authentication at some point
|
|
||||||
passwordFile = pkgs.writeText "password" panelConfig.initialUser.password;
|
|
||||||
};
|
|
||||||
|
|
||||||
peertube = peertubeS3KeyConfig { inherit pkgs; } // {
|
|
||||||
enable = true;
|
|
||||||
## NOTE: Only ever used for testing anyway.
|
|
||||||
##
|
|
||||||
## FIXME: Generate and store in NixOps4's state.
|
|
||||||
secretsFile = pkgs.writeText "secret" "574e093907d1157ac0f8e760a6deb1035402003af5763135bae9cbd6abe32b24";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
);
|
|
||||||
|
|
||||||
pixelfed-configuration = makeConfigurationResource pixelfedConfigurationResource (
|
|
||||||
{ pkgs, ... }:
|
|
||||||
mkIf panelConfig.pixelfed.enable {
|
|
||||||
fediversity = {
|
|
||||||
inherit (panelConfig) domain;
|
|
||||||
temp.initialUser = {
|
|
||||||
inherit (panelConfig.initialUser) username email displayName;
|
|
||||||
# FIXME: disgusting, but nvm, this is going to be replaced by
|
|
||||||
# proper central authentication at some point
|
|
||||||
passwordFile = pkgs.writeText "password" panelConfig.initialUser.password;
|
|
||||||
};
|
|
||||||
|
|
||||||
pixelfed = pixelfedS3KeyConfig { inherit pkgs; } // {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
);
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
BIN
infra/architecture.pdf
Normal file
BIN
infra/architecture.pdf
Normal file
Binary file not shown.
9
infra/dev/.terraform.lock.hcl
generated
9
infra/dev/.terraform.lock.hcl
generated
|
|
@ -1,9 +0,0 @@
|
||||||
# This file is maintained automatically by "tofu init".
|
|
||||||
# Manual edits may be lost in future updates.
|
|
||||||
|
|
||||||
provider "registry.opentofu.org/hashicorp/external" {
|
|
||||||
version = "2.3.4"
|
|
||||||
hashes = [
|
|
||||||
"h1:hBFp4dEKKevoZEsMW32ralBqrO7cTxTPYdWPqc4Ff+s=",
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
{"Modules":[{"Key":"","Source":"","Dir":"."},{"Key":"nixos","Source":"../sync-nix","Dir":"../sync-nix"}]}
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
[
|
|
||||||
"/nix/store/zbjjm6vgdj1p2v21qshd9np3ajdnhniy-opentofu-1.9.0/libexec/terraform-providers"
|
|
||||||
]
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
/nix/store/zbjjm6vgdj1p2v21qshd9np3ajdnhniy-opentofu-1.9.0/libexec/terraform-providers/registry.opentofu.org/hashicorp/external/2.3.4/linux_amd64
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
{"version":4,"terraform_version":"1.9.0","serial":7,"lineage":"c441e8b7-409b-c7ad-85b9-27549f9ee16d","outputs":{},"resources":[{"module":"module.nixos[\"fedipanel\"]","mode":"data","type":"external","name":"hash","provider":"provider[\"registry.opentofu.org/hashicorp/external\"]","instances":[{"schema_version":0,"attributes":{"id":"-","program":["sh","-c","echo \"{\\\"hash\\\":\\\"$(nix-hash ..)\\\"}\""],"query":null,"result":{"hash":"104476c354d745011877f63e653ae58b"},"working_dir":null},"sensitive_attributes":[]}]},{"module":"module.nixos[\"fedipanel\"]","mode":"managed","type":"terraform_data","name":"nixos","provider":"provider[\"terraform.io/builtin/terraform\"]","instances":[{"schema_version":0,"attributes":{"id":"909398aa-e751-1dc8-a61a-7eb33df17006","input":null,"output":null,"triggers_replace":{"value":[{"hash":"104476c354d745011877f63e653ae58b"},"fedi201","{\n # note interpolations here TF ones\n imports = [\n # shared NixOS config\n ./../common/shared.nix\n # FIXME: separate template options by service\n ./options.nix\n # for service `forgejo` import `forgejo.nix`\n ./../../machines/dev/fedi201/fedipanel.nix\n # FIXME: get VM details from TF\n ./../../machines/dev/fedi201\n ];\n}\n",{"terraform":{"domain":"abundos.eu","hostname":"fedi201"}}],"type":["tuple",[["map","string"],"string","string",["map",["object",{"domain":"string","hostname":"string"}]]]]}},"sensitive_attributes":[],"dependencies":["module.nixos.data.external.hash"]}]}],"check_results":null}
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
{"version":4,"terraform_version":"1.9.0","serial":5,"lineage":"c441e8b7-409b-c7ad-85b9-27549f9ee16d","outputs":{},"resources":[{"module":"module.nixos[\"fedipanel\"]","mode":"data","type":"external","name":"hash","provider":"provider[\"registry.opentofu.org/hashicorp/external\"]","instances":[{"schema_version":0,"attributes":{"id":"-","program":["sh","-c","echo \"{\\\"hash\\\":\\\"$(nix-hash ..)\\\"}\""],"query":null,"result":{"hash":"c9bc7d95c831fa099e803674e850b509"},"working_dir":null},"sensitive_attributes":[]}]},{"module":"module.nixos[\"fedipanel\"]","mode":"managed","type":"terraform_data","name":"nixos","provider":"provider[\"terraform.io/builtin/terraform\"]","instances":[{"status":"tainted","schema_version":0,"attributes":{"id":"16edc410-f42a-0489-5326-65fa4b53cf31","input":null,"output":null,"triggers_replace":{"value":[{"hash":"c9bc7d95c831fa099e803674e850b509"},"fedi201","{\n # note interpolations here TF ones\n imports = [\n # shared NixOS config\n ./../common/shared.nix\n # FIXME: separate template options by service\n ./options.nix\n # for service `forgejo` import `forgejo.nix`\n ./../../machines/dev/fedi201/fedipanel.nix\n # FIXME: get VM details from TF\n ./../../machines/dev/fedi201\n ];\n}\n",{"terraform":{"domain":"abundos.eu","hostname":"fedi201"}}],"type":["tuple",[["map","string"],"string","string",["map",["object",{"domain":"string","hostname":"string"}]]]]}},"sensitive_attributes":[],"dependencies":["module.nixos.data.external.hash"]}]}],"check_results":null}
|
|
||||||
9
infra/operator/.terraform.lock.hcl
generated
9
infra/operator/.terraform.lock.hcl
generated
|
|
@ -1,9 +0,0 @@
|
||||||
# This file is maintained automatically by "tofu init".
|
|
||||||
# Manual edits may be lost in future updates.
|
|
||||||
|
|
||||||
provider "registry.opentofu.org/hashicorp/external" {
|
|
||||||
version = "2.3.4"
|
|
||||||
hashes = [
|
|
||||||
"h1:hBFp4dEKKevoZEsMW32ralBqrO7cTxTPYdWPqc4Ff+s=",
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
{"Modules":[{"Key":"","Source":"","Dir":"."},{"Key":"nixos","Source":"../sync-nix","Dir":"../sync-nix"}]}
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
[
|
|
||||||
"/nix/store/zbjjm6vgdj1p2v21qshd9np3ajdnhniy-opentofu-1.9.0/libexec/terraform-providers"
|
|
||||||
]
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
/nix/store/zbjjm6vgdj1p2v21qshd9np3ajdnhniy-opentofu-1.9.0/libexec/terraform-providers/registry.opentofu.org/hashicorp/external/2.3.4/linux_amd64
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
{"version":4,"terraform_version":"1.9.0","serial":7,"lineage":"b39bdfbe-91a7-d39b-96f5-71d9e0c9d47f","outputs":{},"resources":[{"module":"module.nixos[\"garage\"]","mode":"data","type":"external","name":"hash","provider":"provider[\"registry.opentofu.org/hashicorp/external\"]","instances":[{"schema_version":0,"attributes":{"id":"-","program":["sh","-c","echo \"{\\\"hash\\\":\\\"$(nix-hash ..)\\\"}\""],"query":null,"result":{"hash":"a871537a6a7f4dbf5614ebaff5005606"},"working_dir":null},"sensitive_attributes":[]}]},{"module":"module.nixos[\"garage\"]","mode":"managed","type":"terraform_data","name":"nixos","provider":"provider[\"terraform.io/builtin/terraform\"]","instances":[{"schema_version":0,"attributes":{"id":"79db5288-d7d6-24e4-4f23-5bfc353c97b9","input":null,"output":null,"triggers_replace":{"value":[{"hash":"a871537a6a7f4dbf5614ebaff5005606"},"test01","{\n # note interpolations here TF ones\n imports = [\n # shared NixOS config\n ./../common/shared.nix\n # FIXME: separate template options by service\n ./options.nix\n # for service `mastodon` import `mastodon.nix`\n ./../../machines/operator/test01/garage.nix\n # FIXME: get VM details from TF\n ./../../machines/operator/test01\n ];\n ## FIXME: switch root authentication to users with password-less sudo, see #24\n users.users.root.openssh.authorizedKeys.keys = let\n keys = import ../../keys;\n in builtins.attrValues keys.contributors ++ [\n # allow our panel vm access to the test machines\n keys.panel\n ];\n}\n",{"terraform":{"domain":"fediversity.net","hostname":"test01","initialUser":{"displayName":"Testy McTestface","email":"test@test.com","password":"testtest","username":"test"}}}],"type":["tuple",[["map","string"],"string","string",["map",["object",{"domain":"string","hostname":"string","initialUser":["object",{"displayName":"string","email":"string","password":"string","username":"string"}]}]]]]}},"sensitive_attributes":[],"dependencies":["module.nixos.data.external.hash"]}]},{"module":"module.nixos[\"mastodon\"]","mode":"data","type":"external","name":"hash","provider":"provider[\"registry.opentofu.org/hashicorp/external\"]","instances":[{"schema_version":0,"attributes":{"id":"-","program":["sh","-c","echo \"{\\\"hash\\\":\\\"$(nix-hash ..)\\\"}\""],"query":null,"result":{"hash":"a871537a6a7f4dbf5614ebaff5005606"},"working_dir":null},"sensitive_attributes":[]}]},{"module":"module.nixos[\"mastodon\"]","mode":"managed","type":"terraform_data","name":"nixos","provider":"provider[\"terraform.io/builtin/terraform\"]","instances":[{"schema_version":0,"attributes":{"id":"fde5cd73-a82c-c8ee-becd-51e2822652c4","input":null,"output":null,"triggers_replace":{"value":[{"hash":"a871537a6a7f4dbf5614ebaff5005606"},"test06","{\n # note interpolations here TF ones\n imports = [\n # shared NixOS config\n ./../common/shared.nix\n # FIXME: separate template options by service\n ./options.nix\n # for service `mastodon` import `mastodon.nix`\n ./../../machines/operator/test06/mastodon.nix\n # FIXME: get VM details from TF\n ./../../machines/operator/test06\n ];\n ## FIXME: switch root authentication to users with password-less sudo, see #24\n users.users.root.openssh.authorizedKeys.keys = let\n keys = import ../../keys;\n in builtins.attrValues keys.contributors ++ [\n # allow our panel vm access to the test machines\n keys.panel\n ];\n}\n",{"terraform":{"domain":"fediversity.net","hostname":"test06","initialUser":{"displayName":"Testy McTestface","email":"test@test.com","password":"testtest","username":"test"}}}],"type":["tuple",[["map","string"],"string","string",["map",["object",{"domain":"string","hostname":"string","initialUser":["object",{"displayName":"string","email":"string","password":"string","username":"string"}]}]]]]}},"sensitive_attributes":[],"dependencies":["module.nixos.data.external.hash"]}]}],"check_results":null}
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
{"version":4,"terraform_version":"1.9.0","serial":4,"lineage":"b39bdfbe-91a7-d39b-96f5-71d9e0c9d47f","outputs":{},"resources":[{"module":"module.nixos[\"garage\"]","mode":"data","type":"external","name":"hash","provider":"provider[\"registry.opentofu.org/hashicorp/external\"]","instances":[{"schema_version":0,"attributes":{"id":"-","program":["sh","-c","echo \"{\\\"hash\\\":\\\"$(nix-hash ..)\\\"}\""],"query":null,"result":{"hash":"02bdde9db2e3d40aaabcb0fd5bf5939b"},"working_dir":null},"sensitive_attributes":[]}]},{"module":"module.nixos[\"garage\"]","mode":"managed","type":"terraform_data","name":"nixos","provider":"provider[\"terraform.io/builtin/terraform\"]","instances":[{"status":"tainted","schema_version":0,"attributes":{"id":"618c1781-9035-8b5a-573a-53ff5407256b","input":null,"output":null,"triggers_replace":{"value":[{"hash":"02bdde9db2e3d40aaabcb0fd5bf5939b"},"test01","{\n # note interpolations here TF ones\n imports = [\n # shared NixOS config\n ./../common/shared.nix\n # FIXME: separate template options by service\n ./options.nix\n # for service `mastodon` import `mastodon.nix`\n ./../../machines/operator/test01/garage.nix\n # FIXME: get VM details from TF\n ./../../machines/operator/test01\n ];\n ## FIXME: switch root authentication to users with password-less sudo, see #24\n users.users.root.openssh.authorizedKeys.keys = let\n keys = import ../keys;\n in builtins.attrValues keys.contributors ++ [\n # allow our panel vm access to the test machines\n keys.panel\n ];\n}\n",{"terraform":{"domain":"fediversity.net","hostname":"test01","initialUser":{"displayName":"Testy McTestface","email":"test@test.com","password":"testtest","username":"test"}}}],"type":["tuple",[["map","string"],"string","string",["map",["object",{"domain":"string","hostname":"string","initialUser":["object",{"displayName":"string","email":"string","password":"string","username":"string"}]}]]]]}},"sensitive_attributes":[],"dependencies":["module.nixos.data.external.hash"]}]},{"module":"module.nixos[\"mastodon\"]","mode":"data","type":"external","name":"hash","provider":"provider[\"registry.opentofu.org/hashicorp/external\"]","instances":[{"schema_version":0,"attributes":{"id":"-","program":["sh","-c","echo \"{\\\"hash\\\":\\\"$(nix-hash ..)\\\"}\""],"query":null,"result":{"hash":"02bdde9db2e3d40aaabcb0fd5bf5939b"},"working_dir":null},"sensitive_attributes":[]}]},{"module":"module.nixos[\"mastodon\"]","mode":"managed","type":"terraform_data","name":"nixos","provider":"provider[\"terraform.io/builtin/terraform\"]","instances":[{"status":"tainted","schema_version":0,"attributes":{"id":"00be3f3d-b7c2-1356-a62c-8eb3106fc7d5","input":null,"output":null,"triggers_replace":{"value":[{"hash":"02bdde9db2e3d40aaabcb0fd5bf5939b"},"test06","{\n # note interpolations here TF ones\n imports = [\n # shared NixOS config\n ./../common/shared.nix\n # FIXME: separate template options by service\n ./options.nix\n # for service `mastodon` import `mastodon.nix`\n ./../../machines/operator/test06/mastodon.nix\n # FIXME: get VM details from TF\n ./../../machines/operator/test06\n ];\n ## FIXME: switch root authentication to users with password-less sudo, see #24\n users.users.root.openssh.authorizedKeys.keys = let\n keys = import ../keys;\n in builtins.attrValues keys.contributors ++ [\n # allow our panel vm access to the test machines\n keys.panel\n ];\n}\n",{"terraform":{"domain":"fediversity.net","hostname":"test06","initialUser":{"displayName":"Testy McTestface","email":"test@test.com","password":"testtest","username":"test"}}}],"type":["tuple",[["map","string"],"string","string",["map",["object",{"domain":"string","hostname":"string","initialUser":["object",{"displayName":"string","email":"string","password":"string","username":"string"}]}]]]]}},"sensitive_attributes":[],"dependencies":["module.nixos.data.external.hash"]}]}],"check_results":null}
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
{"agenix":"/nix/store/glsqq1xn5al7d528hvlbm4hl3ladxmka-source","disko":"/nix/store/7wf9q0mb1i43x9dr1qlyfaraq15n6sii-source","flake-inputs":"/nix/store/fqln0bcp6mp75k4sl0cav2f0np60lwhj-source","git-hooks":"/nix/store/8bh3jgq1riy3jxm07vy4xxzvk9xd74pc-source","gitignore":"/nix/store/g5v3sgqy6a0fsmas7mnapc196flrplix-source","home-manager":"/nix/store/cq3b3cx5rv9d0zj57kch9wmxzc2rm8dc-source","htmx":"/nix/store/mwqqk0qmldzvv4xj9kq2lbah2flhc44z-source","nix-unit":"/nix/store/4g1vvy7bhwh16cyd2r8ibq7n6ygk1wvk-source","nixpkgs":"/nix/store/g1bajdwbkcmms8cqd9s8zbq8zxhkyx91-source"}
|
|
||||||
9
infra/sync-nix/.terraform.lock.hcl
generated
9
infra/sync-nix/.terraform.lock.hcl
generated
|
|
@ -1,9 +0,0 @@
|
||||||
# This file is maintained automatically by "tofu init".
|
|
||||||
# Manual edits may be lost in future updates.
|
|
||||||
|
|
||||||
provider "registry.opentofu.org/hashicorp/external" {
|
|
||||||
version = "2.3.4"
|
|
||||||
hashes = [
|
|
||||||
"h1:hBFp4dEKKevoZEsMW32ralBqrO7cTxTPYdWPqc4Ff+s=",
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
[
|
|
||||||
"/nix/store/zbjjm6vgdj1p2v21qshd9np3ajdnhniy-opentofu-1.9.0/libexec/terraform-providers"
|
|
||||||
]
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
/nix/store/zbjjm6vgdj1p2v21qshd9np3ajdnhniy-opentofu-1.9.0/libexec/terraform-providers/registry.opentofu.org/hashicorp/external/2.3.4/linux_amd64
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICJj4L5Yt9ABdQeEkJI6VuJEyUSVbCHMxYLdvVcB/pXh niols@wallace/fediversity
|
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEElREJN0AC7lbp+5X204pQ5r030IbgCllsIxyU3iiKY niols@wallace
|
||||||
|
|
|
||||||
|
|
@ -12,11 +12,10 @@ let
|
||||||
manage = pkgs.writeScriptBin "manage" ''
|
manage = pkgs.writeScriptBin "manage" ''
|
||||||
exec ${pkgs.lib.getExe pkgs.python3} ${toString ./src/manage.py} $@
|
exec ${pkgs.lib.getExe pkgs.python3} ${toString ./src/manage.py} $@
|
||||||
'';
|
'';
|
||||||
package = pkgs.callPackage ./nix/package.nix { };
|
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
shell = pkgs.mkShellNoCC {
|
shell = pkgs.mkShellNoCC {
|
||||||
inputsFrom = [ package ];
|
inputsFrom = [ (pkgs.callPackage ./nix/package.nix { }) ];
|
||||||
packages = [
|
packages = [
|
||||||
pkgs.npins
|
pkgs.npins
|
||||||
manage
|
manage
|
||||||
|
|
@ -34,10 +33,7 @@ in
|
||||||
REPO_DIR = toString ../.;
|
REPO_DIR = toString ../.;
|
||||||
};
|
};
|
||||||
shellHook = ''
|
shellHook = ''
|
||||||
${lib.concatStringsSep "\n" (
|
ln -sf ${sources.htmx}/dist/htmx.js src/panel/static/htmx.min.js
|
||||||
map (file: "ln -sf ${file.from} ${toString ./src/${file.to}}") package.generated
|
|
||||||
)}
|
|
||||||
|
|
||||||
# in production, secrets are passed via CREDENTIALS_DIRECTORY by systemd.
|
# in production, secrets are passed via CREDENTIALS_DIRECTORY by systemd.
|
||||||
# use this directory for testing with local secrets
|
# use this directory for testing with local secrets
|
||||||
mkdir -p $CREDENTIALS_DIRECTORY
|
mkdir -p $CREDENTIALS_DIRECTORY
|
||||||
|
|
|
||||||
|
|
@ -26,12 +26,6 @@ let
|
||||||
packages = [ "${name}" ]
|
packages = [ "${name}" ]
|
||||||
include-package-data = true
|
include-package-data = true
|
||||||
'';
|
'';
|
||||||
generated = [
|
|
||||||
{
|
|
||||||
from = "${sources.htmx}/dist/htmx.min.js";
|
|
||||||
to = "./panel/static/htmx.min.js";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
in
|
in
|
||||||
python3.pkgs.buildPythonPackage {
|
python3.pkgs.buildPythonPackage {
|
||||||
pname = name;
|
pname = name;
|
||||||
|
|
@ -61,10 +55,6 @@ python3.pkgs.buildPythonPackage {
|
||||||
]
|
]
|
||||||
++ pythonPackages;
|
++ pythonPackages;
|
||||||
|
|
||||||
passthru = {
|
|
||||||
inherit generated;
|
|
||||||
};
|
|
||||||
|
|
||||||
postInstall = ''
|
postInstall = ''
|
||||||
mkdir -p $out/bin
|
mkdir -p $out/bin
|
||||||
cp -v ${src}/manage.py $out/bin/manage.py
|
cp -v ${src}/manage.py $out/bin/manage.py
|
||||||
|
|
@ -72,8 +62,6 @@ python3.pkgs.buildPythonPackage {
|
||||||
wrapProgram $out/bin/manage.py \
|
wrapProgram $out/bin/manage.py \
|
||||||
--set REPO_DIR "${import ../../launch/tf-env.nix { inherit lib pkgs; }}" \
|
--set REPO_DIR "${import ../../launch/tf-env.nix { inherit lib pkgs; }}" \
|
||||||
--prefix PYTHONPATH : "$PYTHONPATH"
|
--prefix PYTHONPATH : "$PYTHONPATH"
|
||||||
${lib.concatStringsSep "\n" (
|
cp ${sources.htmx}/dist/htmx.min.js* $out/${python3.sitePackages}/panel/static/
|
||||||
map (file: "cp ${file.from} $out/${python3.sitePackages}/${file.to}") generated
|
|
||||||
)}
|
|
||||||
'';
|
'';
|
||||||
}
|
}
|
||||||
|
|
|
||||||
1
panel/src/panel/static/htmx.min.js
vendored
Symbolic link
1
panel/src/panel/static/htmx.min.js
vendored
Symbolic link
|
|
@ -0,0 +1 @@
|
||||||
|
/nix/store/mwqqk0qmldzvv4xj9kq2lbah2flhc44z-source/dist/htmx.js
|
||||||
|
|
@ -1,17 +1,17 @@
|
||||||
age-encryption.org/v1
|
age-encryption.org/v1
|
||||||
-> ssh-ed25519 Jpc21A 9edPaA2tT4SeYNTPzF0E157daC2o+JH/WQQCT+vLbFg
|
-> ssh-ed25519 Jpc21A JzLWMEH98I5/A8O55mKUMy5zo2kg3Qk8SfXnHvkjwT4
|
||||||
C48EtLdhB75TTzfEZTw1DypicHiVlSmFzjfbqfO9N/8
|
8f7zDHSp3AHoAQy0dVWMa1TurCBLnsHNtbNjaD++7ow
|
||||||
-> ssh-ed25519 BAs8QA T+kXpZg1v0XRkub5DWir7vYwO7KaOJLZBNYxxXiBUCw
|
-> ssh-ed25519 BAs8QA eCD3saYXdv1bjAoQghmyVqHjMBu/o2lWgu7grk1vgRs
|
||||||
zBRwMTDpyI7twEwUGsmJYyYPw9btBx5Kakj1yT+XY8U
|
//pOnkzqQTK3xmeCjruo46ju2X136KEt6DpsegMouFQ
|
||||||
-> ssh-ed25519 ofQnlg 4UoEDY/tdKz8LrX1BkBU1/cn+vSaYLUl7xX9YmzANBY
|
-> ssh-ed25519 ofQnlg ePjq7GmM36qaGxcJ0qnW8FdKDjwlXtFqOBK8OgWY3Co
|
||||||
8CACq1n3AJgD9IyPN23iRvThqsfQFF5+jmkKnhun24U
|
gVmsDP9rMcQD/B6BpNhCn+avdgjhyyohNUXlatXpXo0
|
||||||
-> ssh-ed25519 COspvA HxcbkqHL+LpVmwb+Fo5JuUU+C+Pxzdxtb0yZHixwuzM
|
-> ssh-ed25519 COspvA lrQB/NEmMUR2RWxfRzE2iTDkjMYsrIaiKn8thxZR+RA
|
||||||
7FIhxdbjHJlgQQgjrHHUK5cecqs5aT7X3I8TWf8c2gc
|
MU23Z28v+cNk2VxpAYaYoFb53js2Zr9/KAM9uMe6+EA
|
||||||
-> ssh-ed25519 2XrTgw R6Ia8MVIZKPnNZ0rspZ34EqoY8fOLeB9H7vnvNBLg1g
|
-> ssh-ed25519 2XrTgw z1ixx5dYCNbgw6wWV45b4wn69X/5/4MzesTomWa4WB4
|
||||||
55NUqz5Yygt6FKJ3bR5iHxQp8G7S2gyFwrJNX1Pb/2Y
|
eNSlP6+nUW9rpsGyzqOEQ+7IVpGeU3UcZpyfB9XT2/4
|
||||||
-> ssh-ed25519 awJeHA hJdTuAScoewVMt7HWiisSkL0zSeClFzYzzKL84G893o
|
-> ssh-ed25519 1MUEqQ c6ps9RB6Dw9JtR0+4eB1NDx44uUes8YjLrY7RCpD0jg
|
||||||
ou780VLrW1s4d6L+lEVu3kXaGn4dvtFPA31supwEL50
|
GwVRqR5t07ctbWhwH76T+SAe2Y6Vv1uY/AHkzd/gw/c
|
||||||
-> ssh-ed25519 Fa25Dw mJcqnXA3fQeoKrG7RJ7nVeLxPvrxqbj+lJdx6jQ9IR8
|
-> ssh-ed25519 Fa25Dw jTqtV2RWsXBH4zgWAYr9tBGC/BbXKBvr3uyL8IgmI1o
|
||||||
f5Q7mrQSSDsm1Z/uSAnvx66mgnRC3XaBLQrVL9f/Ijs
|
qBirnzIpi9hB61xwyS+5U6XBobAquEJrV3cleDtG8/4
|
||||||
--- W/KmboXTLV12X6WtVQKHNe+ZHvS2q9EHUZwofSgJSE8
|
--- j/vJgDV+47UmKokdvztXntBIhCLEyUm2aYoGJ2WMKbU
|
||||||
^kûÚ h©0ÔkÇ ¢¸_Ç·ûQÞm‘’7\òÖ}÷Áë?½qø‚<ÿm
|
¢¹ŽÀi‹±ËQõf §¥ÐÅ·DN§àB"—ÍvsëB6PùQžorF‡<46>Å
|
||||||
|
|
@ -1,18 +1,17 @@
|
||||||
age-encryption.org/v1
|
age-encryption.org/v1
|
||||||
-> ssh-ed25519 Jpc21A ZyJtpgzBrA3WFa1+uiNLZieP6GAqYzAtjmUkgbqKwyA
|
-> ssh-ed25519 Jpc21A l6Xwv4JBlTeRTC7RgjxY9gDrCk96atMUH/62P+u55Qs
|
||||||
TeO/ghRNVJQrdeFAvgQITC6MC7x7IHDtFYqHVloVfAQ
|
CrYsLZgDFAiR8up87lhGZqsbAEZtOXG+l5IzLh2uaqg
|
||||||
-> ssh-ed25519 BAs8QA zIfPuCmSZyosDfWvL6A5DstWeBORDkjqb6Hxjx2dYgE
|
-> ssh-ed25519 BAs8QA lgtmfoc4vKfRpI/XbIS258BMyIB4mTdquEx/Kxm5OTI
|
||||||
Nq/YU6oDlIC+ROtM2P5aBeF6iJsxUbrU2LnLDRux35Y
|
3gQL8Rnqc7JfqsRmKYU3rD0cWMKdnIeVXbY3eFM07RU
|
||||||
-> ssh-ed25519 ofQnlg dm1bj8BJxD1MpFqdDkfDL4wWV7mjmb51hVqkk2uRfwE
|
-> ssh-ed25519 ofQnlg 0vwuCrduMLjssA3CK3gfVPMSPYKO9cF7HH1JF/oJv18
|
||||||
N7Bwhw1agAbNGaF57VmFKwIWeUibaYRSu2Ke1ZlXPLQ
|
2KrZgQmpvw/tNDJrDArinnbEjopkkmuG8s7t6klBXcQ
|
||||||
-> ssh-ed25519 COspvA /DYoVVG4SOFgrIbMvEP0U7QpX6VK9otJVBYrj4I0dlo
|
-> ssh-ed25519 COspvA NT+/h2KsiZN2XbaWAlrTlDwyAPmHWrwgr6f0uhSbEGs
|
||||||
5EWys6IcMgrwW2p5fFeJEgDqandyiS1RzMvqGsN1X0I
|
QpoAd+69VYrZwAC0LwDm1m/zfslVgzxpVFihQWDcqzE
|
||||||
-> ssh-ed25519 2XrTgw YW5gzijsL1oRa5vQ3PY+8o3iNZIji1BZfB9dGcg9QHA
|
-> ssh-ed25519 2XrTgw QoJ/74FOqYFxHJYXJEkyzbGY0xptSjorNvnyUS1p6zk
|
||||||
0WWu3F1Rpo9mi4YU2r3Jydr6Fg7bqWMuTtMJOEOj3NU
|
0sJ2F6IFuTrRvXO5ND1QL4CZ2lr1BAU3iQffC6Uc3h4
|
||||||
-> ssh-ed25519 awJeHA 8xl0RpXAJ7X5pe6qzDKXHJvMnjYEN85BS+maFytsSDQ
|
-> ssh-ed25519 1MUEqQ xxgEUIhvWN/ZfRMGfu3fKQ+fWM5WSz8OexXPm6jaXDk
|
||||||
MQYrdbh7w7TwGk2Wivja8acQYkmYZ2YWMkE/YA/5K3g
|
RXe0JMZ0sYMdQvrbi+zAs9F3d98ocRFnsSGUuUWccRk
|
||||||
-> ssh-ed25519 Fa25Dw koR3KjKzS3Uei58I68qYkgxE0ifhIXKTblpD4cFAVhQ
|
-> ssh-ed25519 Fa25Dw tw4sqQcO86Gh0FGUD+O3bJ+8OcaN5rm8R6qocXvDbRg
|
||||||
X7mQgsMY02VHyxJUVN5ml/QRVTjBDm7BD4w0g3Jwmq4
|
7hiWa4qznHTV45kvC7ucj7j7FbPrqYK5OcCcByrcSxg
|
||||||
--- E6iHgNV3cjQrhNcZa6uqUwvGxf0ouNZpPXhet3Vicrw
|
--- kvZDYq5n/OXu7xe2Kf5vGN0zosl9fgH4CAf3K0Tq3U4
|
||||||
…ïò”F
Q/Gíù°Ê¤T]‘ns&[›ýëú&œæ
|
¤D!´Ój]2ï‹ÝƒT+•
ÃUó¬æcgÝoP”‰ ˆF.Þ¿_vbÕÓÔdª9
|
||||||
Q(6pòM$È™ü Çõ
|
|
||||||
|
|
@ -1,15 +1,16 @@
|
||||||
age-encryption.org/v1
|
age-encryption.org/v1
|
||||||
-> ssh-ed25519 Jpc21A N/T7HaInZ13IlJfzeli5nRz5pdBQETO6D1P8X42IHRw
|
-> ssh-ed25519 Jpc21A 7QzPABl0IuQlZ9nsqfdbmWT9zb6iHGEOQiJ5sBpuLWU
|
||||||
q431ZtsodQ9NgcWTjmS0Kx4ATwVFp2nkm+MHe7aXTZU
|
zusphKpt0yVxQj0zh4AGtYFORIhUoJHJBYfEAHb/VN0
|
||||||
-> ssh-ed25519 BAs8QA +VUHgmz2oNG6L1FgZy3uGVMs6qUGirFHK8Ts2ghNLHs
|
-> ssh-ed25519 BAs8QA PBfmSc0pag5zCqB/EKvirDXyleNi2sgMZ0xTAMiANFo
|
||||||
sjQu78xqM6KLmRiYd2o2uK/PjYLnyZihzVoCV7qKBX4
|
gugtjl9TSsGQuPypQiKZZqr7JfMKSdwVHGGKevyfF+k
|
||||||
-> ssh-ed25519 ofQnlg cBfd95Ir33ggt1J1P2TkFRULr2uYPVuyrQ5XpjBxEW0
|
-> ssh-ed25519 ofQnlg RQd9jPyn8nv1zCLbETa9/JB39fwX3X0X9gElcHWEfCA
|
||||||
TWFVHboXr95cFm5yjQ7gn7hjbSmVBfB/9dldsoga/9Q
|
7ZEBE4qaZUtrXLc0caZ/tfJFYT9UDYkVvuaBc0SVBhc
|
||||||
-> ssh-ed25519 COspvA RMW9FlDmiQUu7cg0fKir55VqrDRCoYVVZMOcMHyrMj8
|
-> ssh-ed25519 COspvA plM6PJykVR0NuSrOkRkA6ucOzUpijFaKbe99jaVrQSw
|
||||||
qeXkWdKFJN7APgYh7AjyJLeQI2CAEaGAcXiVaBaOJwY
|
7AkcdijjOSckx3GxXwXo1K34ReU3x0yWamlxdaA1FWA
|
||||||
-> ssh-ed25519 2XrTgw BRobowRWZ9giVL2dFyGvzzF7gyWUQd1ounMQBtsM/lM
|
-> ssh-ed25519 2XrTgw +2ZOwvZRUmnuHVV8poyMR6eIvPQoxWQRngKJdL2kVHc
|
||||||
dFyli2skTgzVWGVolLG2GuGNh/Xu3IaJsznOkcWqKGc
|
rzWJIuZUtuurvIdV/47N2CNu8x4T/vca8IeRqi+mk/I
|
||||||
-> ssh-ed25519 awJeHA Cu7fiv+SL71oho/xoJMw/Lztf4WkNKmImVS/8xyLiTo
|
-> ssh-ed25519 1MUEqQ 9U13b5LO4pSKhlvWEtkdrjTmVO5oGqcdT3Ime1AHjH4
|
||||||
3sB/t0squi1crjHFBaN6btrvGUeWaKfmGa7yxREvy2o
|
8wC87WZZYMZaR2YlG3oEt79QcZMA86TrUbvTekAUkqw
|
||||||
--- SqPDTJ/XV26nNG1ib5phNNRdQi5+Wk0cxhqUr1ygjGw
|
--- X8Szdu5EyyPKR6xaL/8uKdHRc/D7wVGizk5k0XanreQ
|
||||||
Æt”OÊá<C3A1>âåYöª¶^´Iõ×U<C397>j†ë!k‹Y.<2E>^<5E>}Xúôæ¡3¿ÖŽ"kE×íšú¾‹s¥,0l+¾ýn‡;fW®‹
|
¯<EFBFBD>欿Æj{Ò“¦!q-ò˜G:£ÂjQò[_Ä„=ò<>#ÇŸd¾(i@/f3º’n°¦ý
|
||||||
|
r :Ú‰ ¾×tx–ð¬|<<øX¡ÜºÊ¼™¨
|
||||||
|
|
@ -1,17 +1,17 @@
|
||||||
age-encryption.org/v1
|
age-encryption.org/v1
|
||||||
-> ssh-ed25519 Jpc21A 98RNGhrNW+Pg5EeQ6wOgRNaPqauBrI0hnUGDyCpFsQ4
|
-> ssh-ed25519 Jpc21A fBhVzGFs61K63QtA8RdOuuGfHFjMe/Dp0M6TXGLGWDU
|
||||||
5ZCq4vkp6N9/KR4Uf0e9MtNM1SHD3Pr97B31or6y8Xc
|
qppnUZ+LQCXhuMCFMYv2D2CkmEfjb7mpmJufIeVjjaM
|
||||||
-> ssh-ed25519 BAs8QA znlRV7zbTUMsnDY/TiNgeCaqzi87jL/r/5dhc7bJ7hw
|
-> ssh-ed25519 BAs8QA PNicZCWLkbvM4ih77/F4z6FzHomL9EsJCuSCjbdRTwA
|
||||||
9pwl5mcmbHaO39jmiuOkaC9mpyiS3xQSCd7q17gH6OU
|
qIpTl/v7Xl08qBB//dFeW9qQiZg10YrYLnfyQrgDRfQ
|
||||||
-> ssh-ed25519 ofQnlg Wr8M7IpBjvNatOlfmRodoHicPjSjyMVqkC+R+18SYjk
|
-> ssh-ed25519 ofQnlg 9/vSN3V25ysXBOvS4UJQEzm0734zqO0gXjhgzX63tTs
|
||||||
Th18PUYoo1TvP+d+6aXLvipsm3QPW+DKQSv8rJqeblk
|
AH9Q1lWr+RgICfW3h+D2SgCTFr+azI0x3J3eFnaz/XA
|
||||||
-> ssh-ed25519 COspvA spxBYfEWDeKhaSsufZ4GDtIMKz8XznD4kS7Zjb4BLFU
|
-> ssh-ed25519 COspvA IB1nWOMaVZVcvEog6UaqCak2fcKxIUN2yXvvRSTDxGw
|
||||||
B2wT7+bXgWezmUIj0mpVPPjKOoIj7cDH16uvW4ujbss
|
Ti7JuBgU6phlI+oXfDDvx42dRu95kTwesRUKu4QsXZ4
|
||||||
-> ssh-ed25519 2XrTgw lY+t4jvdSgZ5ZKMemAN0u32fPUAraaGu+ExMEsR/c0w
|
-> ssh-ed25519 2XrTgw 7S9ZhJvUFMw9tDCc0HvkRsRqjvmn47GFGVg/jkxIy1I
|
||||||
KfOBcGrhIztEnKKmsv6ZD6K9TleZRgIRWbOlG8Tcvaw
|
cj27gqqihSZG3Jcab9h9FyNJ1J8FjlUiyVlDot+sbWQ
|
||||||
-> ssh-ed25519 awJeHA 1VVLZa0l8LX79LqZqlYRfXmKVIi9zpLcoysi0NQ3L0o
|
-> ssh-ed25519 1MUEqQ l9mVTLD9rZXisBEz0sU2AdFNrJQ/+zuFTiIod5R/HCI
|
||||||
m79gHUkQ87zFoB8Awlcxt2GrCMrwr5KSfyiSqa6kEko
|
2q3csSEvMW5vtzqGHYTtZ1nZ0J1vT23bjhuj9HTsdWk
|
||||||
-> ssh-ed25519 kXy85Q uaEXsQeApgXqzWZRL0AtsPqjt5qOWxoQjN1Keiii1Ds
|
-> ssh-ed25519 kXy85Q BCrDvkPZLvx2Kvgapa3BT+AmpS6Fa5kpkgBnRVso2BE
|
||||||
LtHUNkV3n/jgeAcEIyq03z84KKa5qQoAo1aaJeK6Duk
|
ZBi+x/2ilJIzhzGipdZQJoGOjSqCuAttsqCDVFlYJ8Y
|
||||||
--- 6s4nA95ds+3slR3QtHQmAkTEBNlSOQusQzjaY/3M5Ds
|
--- iWtseKyfUMBkQTUl9QzwXXLQcodEJeZt1Wuj5sR18yY
|
||||||
tÑ:ƒX‚´¯=χ´ù8€OoùxþÔ;ì“ÀyIý²ˆµÌˆõêJ/oW0Ô¼; x–$£tŠœ‡,7£-aý
|
+2,エ ゚恝Jrメィ>ア<7F>z?ホi<EFBE8E><69>ェ<EFBFBD>x<EFBFBD>0z<30>ヤ智メ劬呱^ゥネコ食・濤礫+1」ァ<EFBDA3>
|
||||||
Binary file not shown.
|
|
@ -1,18 +1,18 @@
|
||||||
age-encryption.org/v1
|
age-encryption.org/v1
|
||||||
-> ssh-ed25519 Jpc21A EuMYAiZX+4A12eu19mIY7u+WYF7NJ9qJosQSVlxR6n8
|
-> ssh-ed25519 Jpc21A BfHJN3vILbsfY91kEjSQ+STrn6vQfn83Fx3cBCNshRQ
|
||||||
bK5CMXAmP23t1p9bgmqoVg4Qcu2qYKGc4t36v8e9eow
|
0O8GJYfF8WFS4Xsgj5v1cly4JP1MgSN40OgRdW/i0rA
|
||||||
-> ssh-ed25519 BAs8QA IwRyitDNTzUPzQAUbDNEKjFiF8WPD/OyztOZQeoTEzw
|
-> ssh-ed25519 BAs8QA Ue0NLMpmZDSTGvwZ8lhzes7pcmit9F6uwzeT4XhiwC0
|
||||||
OwiTWvk4NmUgExav0uH6HlThDNU5hsKXfR6KHsFOV3I
|
jsvvuOW344i8GR4B139SX0LwTqzKQEgBvsy8oRppqBU
|
||||||
-> ssh-ed25519 ofQnlg 3TcMbLX1JsQL8+Gqy7IFZwykZr2BspvPCuZT1SHtnQQ
|
-> ssh-ed25519 ofQnlg 9iSMQeTJn1OUqTF+M2sHpp69lblb8E6TVbgZs7vgD2U
|
||||||
Ci5OeBj2aiC8ut9jIEUMt3qfYH+cJrnVud6AH54Ndn8
|
uMQI1gTTMvYW7ea9xBAln118JEeNvv3nqbq32zJoat8
|
||||||
-> ssh-ed25519 COspvA 0t9f3Wu3ILv4QTJhwT619y+7XFrryCLbpIZC6aE+qQI
|
-> ssh-ed25519 COspvA YxCyfe0li23JoI2q4XFVUx4vrWApLwSnJD31PHXuPBg
|
||||||
oPQP48F6oO/tkqLZDdjkGtIap7KHiAknbpTNL6/yLaU
|
8xuT9+W2mnTag9tm6F6LXzHkIh2Nou/8lgxd64OpvWk
|
||||||
-> ssh-ed25519 2XrTgw YOZsaYQH9vMH0QqSXGh8GyhRV4MbcBGPFfFaKpo3Ckk
|
-> ssh-ed25519 2XrTgw jEzw0A9Wd1b1Zoryzp/W/QZ6bd99E7sySnr/W2xcnDs
|
||||||
kUShJbADA+6bpx2adxvzlI/0jSM5bIBfZfdSE/7Vm5Y
|
IyMrojJ3AChS6lhj599caNM+02i16qtpc6cocln14b4
|
||||||
-> ssh-ed25519 awJeHA dF3m0hQWX9c0EezDr56Kt/F4d1Uim7NwvIX6zRws0Eo
|
-> ssh-ed25519 1MUEqQ haiI/5EkuTZ2YHxsqSVlqfM0VVR24DIDrMS3RmXwAhU
|
||||||
pst243yrARODwrnyz8cJAzgDxdPOUsRbs7yPZePABFs
|
qVIAvLp2qG4A3f3OKUqAKqH1eOicJz54nfblPSUKrSw
|
||||||
-> ssh-ed25519 dgBsjw PUYHcP/tgNnKyvlIoJRcNcW3zabVV1iHXIWfKqgW9xc
|
-> ssh-ed25519 dgBsjw /vCnznu73U99onCWcM0aQlW0azscyUe4BB2kKeZvtHs
|
||||||
tXNjSuVH/g/oN5o75FPkFFpviF7SeFSN9kbqURvgMDE
|
MPnvXR/WVsl/tJ1YPoc7nk2Ls2x9bbtJdNp3CQTuuWI
|
||||||
--- wHgBAN9c6F6T5hFJGo8uH8zqDkQDwx3/jVNKUtQ3arE
|
--- OzkqKlw4xu3McMk20orQN0h+VPYfUUSDC+DsgRU1tSw
|
||||||
«Ñ¢Á
|
ü^@ÃmŽÚé`B˜³#{¡Ÿ‚ GUu´‹|¹Á œ¡ rÚïjb¥:Ô“d²ù] GØÎ©¦ú²-«Â–MÁ³ŸÜálÙ3mÌí)½š@¢—±e?¯ªêe¤üZ
|
||||||
ò@µú¡fÃ`m;ÕcæäU²€ùò£Íd…eS’èyfv¿»¡€J?ø `œfj£Äa}lÃó ¿Úxç²BÇt2èfìôm08ÓoÝtRál9˜èx¤¢ŒÅž›æ÷
|
Y}ÿ!fÐ
|
||||||
|
|
@ -1,17 +1,17 @@
|
||||||
age-encryption.org/v1
|
age-encryption.org/v1
|
||||||
-> ssh-ed25519 Jpc21A TUGMeCK5ZehSdtfH2xpEEvMp4jZxJ2fTogXSkcf6blg
|
-> ssh-ed25519 Jpc21A RFzPu3fD28STex7ND5lE9bfCxQq/xeHEb7h7BFt9pVA
|
||||||
BY6cKeB3MV84KvYThJsU0TSW5kMUJpbVVvccVtwtEIg
|
8K+ECDGs71V91jEVQjrRVQNbdTzBb6W9jkp0+K1trzw
|
||||||
-> ssh-ed25519 BAs8QA 9LgEP0N4MF4uEXLXGWRLgJzC9llYpKiP2lwAgN0ObxA
|
-> ssh-ed25519 BAs8QA F2L9Eh9OItaPfAcR4qNnOQnvCyTeGdR5lSu0WqXiuU0
|
||||||
cOI90Sc2ORgvFZD2I+oYcRa1Y47X2tuvFFqqKFo78nk
|
3jLlt4qAL3/VKyfbP7R0/7SUwwPpWf5YUWwzjDONEy8
|
||||||
-> ssh-ed25519 ofQnlg LYTsntB2zI1EJ8yyYOH6BvHXEOv+zX7QYrd7leXPeDA
|
-> ssh-ed25519 ofQnlg BLdBNuJExNlYED/XFU5zmYPtO1bxumuyPPgcs8qSLEY
|
||||||
uqhuPl2udjxDMIdMd88xpQuAZ/QMXSLgxOeOhHyTjW8
|
wIi31st4WS9O2a7VJmYpE8PimgzLvwU6zWkvHCy84yQ
|
||||||
-> ssh-ed25519 COspvA geel/7vCPHmBT6Sg0bTqeUV4rA/i6w0NvFjGk8rF/VA
|
-> ssh-ed25519 COspvA GmC8YZVv3ZwidaDKUkLhx0l8UOmRw5ZBiM8r4/Ub7xA
|
||||||
8eIF+oWuM+16j1n//ndImjTPxPYqZ56WA8K5uybMbTo
|
wK994Zs1aLspqY84Ik77qdMaEsjs0ZFNuKQDOGXsnmM
|
||||||
-> ssh-ed25519 2XrTgw uCKoYMidpNwfo2YDb2jyjONZvExK2wrZXXvv+ywrCCA
|
-> ssh-ed25519 2XrTgw s62q7KOHZRqimCTwazX9LUvnpcYuzxwflumXe6NVF38
|
||||||
X0E+2LuftCF3oAHp8z18WRZePAYt6tEYjnNAgMmfUNo
|
WnOpHI9ejvRrZrQuasTEYyqP8ny3Hx9Q9bJzbK0pOI4
|
||||||
-> ssh-ed25519 awJeHA 4cTdqU2X1gXyFxMHGHPgUq9g8XUM8sgbNa/NMl2GZmI
|
-> ssh-ed25519 1MUEqQ 9NLHR5OwOngiLRguTkf5KnUHrc80mambCw19dPPKPQ8
|
||||||
J7cWCuKrf+r/nE0FjGj/DQDv7hBqbn0NidjY2m1mwGw
|
GDg9yRoRUaP1KOa/pOCFiLCCAxuFsuCIiDP/ERl8YLA
|
||||||
-> ssh-ed25519 dgBsjw gyI/oiqvAzqxtism9yCygXYLZzCynTdAlPBcwZhryCw
|
-> ssh-ed25519 dgBsjw NulCMPtc2miJlHYpXMjQHUlc/HIaX4AqzxXZxt8cWkE
|
||||||
pKCMRUv6dsH/cS2Tm/gU0mxH6TsF6UGj0Fx4BNvYv9o
|
tCh3WD91A89258F8THeddXvab77tTIjNjGxYNDVoaBQ
|
||||||
--- MBLz1UcLi1SCQ2+tA1Zmv+2ZEiw0Ag2C4/gk7lzqJ0Q
|
--- oIUm35maOqmHL0nifKpyEvLpHSKmthxIT5DDueCVZDc
|
||||||
Ú<EFBFBD>©ËƒŽ£Ð Ó1–ÁÞ™òȲ=HK€Ÿ?G §g=R!Ì”2›t+Ü€!“ɈUGÞ¶±ïôM°?ö<02>OÉÀÅÊ
|
ÈaT~œú£Úôf4÷„Ô$\—ì;¿@Äý`¦<18>(<28>3{VWgM}#<1A>ï9aû6¢½ª^öúT6éÞ!Þ %¿
|
||||||
|
|
@ -1,17 +1,18 @@
|
||||||
age-encryption.org/v1
|
age-encryption.org/v1
|
||||||
-> ssh-ed25519 Jpc21A EvnCvH6ER6Pied87i9okxBLCx38fNP1fX3wMziJ5PXI
|
-> ssh-ed25519 Jpc21A yazxa1xfjFav7HWIvegBhcLIaYnQw4noH+2d9VqyCk8
|
||||||
b7vN/9pxRWuUrug/bkZIZD+2wSplAGLK+ayO+YYDlCs
|
LWgk9DdjH5ktQN0A9RVQN8PB2LlXsEVihwJpU4AFHDY
|
||||||
-> ssh-ed25519 BAs8QA I7dMk+pvKe/bNkIr98muyaOKqTdBitIdrRr5bVN3+DA
|
-> ssh-ed25519 BAs8QA XnRG+IYDe3WOBNeNXF4KGCHGVtZg3T2kXJtwmVABjVw
|
||||||
5D5IGeF6rqF+HNSdDZE/gj0DPHISR3Tzj3Fystm++04
|
dfJcTZmDfL/2KuE0XRgO2UYlssaY0T2beTqUTKinhos
|
||||||
-> ssh-ed25519 ofQnlg 3XMrmWBHw6+xfYIn8fZ44ryp1dHS7qVTK0cTJZGjXV0
|
-> ssh-ed25519 ofQnlg bVBe7VBynJr7wdVWajiKlVkAogJCsFE+NkVQcOFV3w0
|
||||||
PxuU0/w27wW/335mteby+kNTr83K6SrjvNEsxBFHOEI
|
AUnc6BwNS2YPz1qFBkDGaXlEp+VzlceGllLctHhq1HM
|
||||||
-> ssh-ed25519 COspvA 5yfMt71p+fx9aIT8ubgsHZa9XEJE6trsOOqgC0VxxBY
|
-> ssh-ed25519 COspvA dEY4MqMIfidzNBe9tUMZTpJNwYNlq+ngp+RLNEWN4Vg
|
||||||
dEIuIERcnw6dFb7IMmdzM5b4ySmdg7qtR50X5gQTd+8
|
P+Yf/6NAoIFCfKOd4ykDiY62G/3TTk4jtYJkrYY/SBk
|
||||||
-> ssh-ed25519 2XrTgw ZpXWuF2jRWpxlK9HuYZoZyN144cvaNZubVuLBUEq5kc
|
-> ssh-ed25519 2XrTgw +FkRMJR2M2KrnR9n8RMrt1m60h4piX4q6c2PuNaIyko
|
||||||
692sos5focQy0TnUfvz+cLktK2a6tyNS8AWbuDgb4/c
|
AdpWCLZ/zLdmYyeWAX3/lQJ6h2bMGwF84KJVLoxm4aA
|
||||||
-> ssh-ed25519 awJeHA ZXx69b4ZvWbwtwnSFjK031mIpK8lDN1nwxq0N+FgREY
|
-> ssh-ed25519 1MUEqQ mLU9wlidwicRLBbhSa9Adwn1t3PlMwnCVGZveFSWBEM
|
||||||
f7GrJm2N908qtPEYY8T22JGhfWHXbUTAdRuEFHGLOKo
|
1tiHDboRihGgz+xaylQAdbXQqyCVT0l3xYIbF6to0pE
|
||||||
-> ssh-ed25519 dgBsjw mD/FfN+J2djG/3hR98oPHznAhTyVz5Z8jnJNlQXzWSo
|
-> ssh-ed25519 dgBsjw 9t+XYjncpp7OPAo915xXHNfgnPsIuqL/RV1JyF/f/hk
|
||||||
KULWl9PeO3qwbUNQJix/Zr07l9lsBhPZTR6aeOiyx0M
|
GhuVPIyAcVy18vHG5LSREzCe/zLkZDXNNNuIwOsZ9Go
|
||||||
--- EUYAk4OeiL39nwZ7YIlLucUMfBghaegrtgqH+sOUEfI
|
--- 66KHbxaXGMDinv6CbC2dL5vHNzR9EJdAYdzoUzN5nKI
|
||||||
-È<>6Q‡äŸ‡7á·™B+Òpûµe³úµ({<ˆ8í‡My|³¿]˜Ãk¾h:žæZŒ§ãde#Äüúû>3„“€K‘<4B>b¨éÀ¬á®øq^uG
|
ìŠpH:rØkMµ¨¡mU:GiæÁL#%/©ÀuÌ<75>ÒílzÙ¶/Èí9¨ù|Ô
þûAѬ»2Aü{A 1Vc
|
||||||
|
ʚ€R¯€ájŒŸ‚SéÐ¥Ò
|
||||||
Loading…
Add table
Reference in a new issue