diff --git a/configuration.nix b/configuration.nix index 813d4e4..1e426b7 100644 --- a/configuration.nix +++ b/configuration.nix @@ -2,13 +2,14 @@ { imports = lib.optional (builtins.pathExists ./do-userdata.nix) ./do-userdata.nix ++ [ (modulesPath + "/virtualisation/digital-ocean-config.nix") - #./o-caddy.nix - ./o-paste.nix + # ./o-caddy.nix + # ./o-paste.nix ./o-git-forgejo.nix - #./o-nocodb.nix + ./o-nocodb.nix ]; nix.settings.experimental-features = [ "nix-command" "flakes" ]; + time.timeZone = "America/Chicago"; environment.sessionVariables = { EDITOR = "nvim"; }; environment.systemPackages = with pkgs; [ diff --git a/flake.nix b/flake.nix index 2217f3b..315f8f4 100644 --- a/flake.nix +++ b/flake.nix @@ -1,15 +1,18 @@ { inputs = { nixpkgs.url = "nixpkgs/nixos-unstable"; + nocodb.url = "github:nocodb/nocodb"; }; - outputs = { self, nixpkgs }@attrs: { + outputs = { self, nixpkgs, nocodb }@attrs: { nixosConfigurations.matilda-gage = nixpkgs.lib.nixosSystem rec { pkgs = import nixpkgs { inherit system; config = { allowUnfree = true; };}; system = "x86_64-linux"; - modules = [ ./configuration.nix - # This fixes nixpkgs (for e.g. "nix shell") to match the system nixpkgs - ({ config, pkgs, options, ... }: { nix.registry.nixpkgs.flake = nixpkgs; }) - ]; + modules = [ + ./configuration.nix + nocodb.nixosModules.nocodb + # This fixes nixpkgs (for e.g. "nix shell") to match the system nixpkgs + ({ config, pkgs, options, ... }: { nix.registry.nixpkgs.flake = nixpkgs; }) + ]; }; }; } diff --git a/o-nocodb.nix b/o-nocodb.nix new file mode 100644 index 0000000..9319767 --- /dev/null +++ b/o-nocodb.nix @@ -0,0 +1,40 @@ +{ config, lib, pkgs, ... }: +{ + services.nocodb.enable = true; + services.nocodb.environment = { + DB_URL="postgres:///nocodb?host=/run/postgresql"; + }; + + services.postgresql = { + enable = true; + + ensureDatabases = [ "nocodb" ]; + ensureUsers = [{ + name = "nocodb"; + ensureDBOwnership = true; + }]; + + package = with pkgs; postgresql; + authentication = lib.mkForce '' + #type database DBuser origin-address auth-method + # unix socket + local all all trust + # ipv4 + host all all 127.0.0.1/32 trust + # ipv6 + host all all ::1/128 trust + ''; + + settings.log_timezone = config.time.timeZone; + }; + # virtualisation.oci-containers.containers."nocodb" = { + # image = "nocodb/nocodb:latest"; + # ports = [ "8080:8080" ]; + # volumes = [ "/home/ntm/nocodb:/usr/app/data/" ]; + # user = "ntm:ntm"; + # environment = { + # NC_DB="pg://"; + # NC_AUTH_JWT_SECRET=""; + # }; + # }; +}