summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--README.md56
1 files changed, 56 insertions, 0 deletions
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..933f462
--- /dev/null
+++ b/README.md
@@ -0,0 +1,56 @@
+# kops (krebs ops)
+
+kops is a lightweigt toolkit to deploy nixos systems, remotely or locally.
+
+fancy features include:
+- store your secrets in passwordstore
+- build your system remotely
+- minimal overhead
+- run from custom nixpkgs branch/checkout/fork
+
+minimal example:
+
+create a kops.nix somewhere
+```
+let
+ kops = (import <nixpkgs> {}).fetchgit {
+ url = https://cgit.krebsco.de/kops/;
+ rev = "3022582ade8049e6ccf18f358cedb996d6716945";
+ sha256 = "0wg8d80sxa46z4i7ir79sci2hwmv3qskzqdgksi64p6vazy8vckb";
+ };
+
+ lib = import "${kops}/lib";
+ pkgs = import "${kops}/pkgs" {};
+
+ source = lib.evalSource [{
+ nixpkgs.git = {
+ ref = "4b4bbce199d3b3a8001ee93495604289b01aaad3";
+ url = https://github.com/NixOS/nixpkgs;
+ };
+ nixos-config.file = pkgs.writeText "nixos-config" ''
+ { config, pkgs, ... }:
+ {
+ imports =
+ [ # Include the results of the hardware scan.
+ ./hardware-configuration.nix
+ ];
+
+ # Use the GRUB 2 boot loader.
+ boot.loader.grub.enable = true;
+ boot.loader.grub.version = 2;
+ # boot.loader.grub.efiSupport = true;
+ # boot.loader.grub.efiInstallAsRemovable = true;
+ # boot.loader.efi.efiSysMountPoint = "/boot/efi";
+ # Define on which hard drive you want to install Grub.
+ boot.loader.grub.device = "/dev/sda"; # or "nodev" for efi only
+ }
+ '';
+ }];
+in
+ pkgs.kops.writeDeploy "deploy" {
+ source = source;
+ target = "localhost";
+ }
+```
+
+and run `nix-build kops.nix`