Add devenv with mognodb and clamav
diff --git a/.envrc b/.envrc
index 3550a30..cafb6e3 100644
--- a/.envrc
+++ b/.envrc
@@ -1 +1,3 @@
-use flake
+nix_direnv_watch_file flake.nix
+use flake --impure
+dotenv .env
diff --git a/.gitignore b/.gitignore
index 8be3b9b..07c1488 100644
--- a/.gitignore
+++ b/.gitignore
@@ -15,6 +15,7 @@
ClicksMigratingProblems/oldData copy/
.direnv/
+.devenv/
# Logs
logs
diff --git a/flake.lock b/flake.lock
index 93f2395..136c082 100644
--- a/flake.lock
+++ b/flake.lock
@@ -43,6 +43,27 @@
"type": "github"
}
},
+ "devenv": {
+ "inputs": {
+ "flake-compat": "flake-compat_2",
+ "nix": "nix",
+ "nixpkgs": "nixpkgs_3",
+ "pre-commit-hooks": "pre-commit-hooks"
+ },
+ "locked": {
+ "lastModified": 1686642933,
+ "narHash": "sha256-5Z4uitx27QtZIrG9sOSJlZRNcVQn/TI36nj7o70n5Dw=",
+ "owner": "cachix",
+ "repo": "devenv",
+ "rev": "f5278b5d56e39f86a299a2e1889906933a26f762",
+ "type": "github"
+ },
+ "original": {
+ "owner": "cachix",
+ "repo": "devenv",
+ "type": "github"
+ }
+ },
"flake-compat": {
"flake": false,
"locked": {
@@ -59,6 +80,22 @@
"type": "github"
}
},
+ "flake-compat_2": {
+ "flake": false,
+ "locked": {
+ "lastModified": 1673956053,
+ "narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=",
+ "owner": "edolstra",
+ "repo": "flake-compat",
+ "rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9",
+ "type": "github"
+ },
+ "original": {
+ "owner": "edolstra",
+ "repo": "flake-compat",
+ "type": "github"
+ }
+ },
"flake-utils": {
"inputs": {
"systems": "systems"
@@ -78,6 +115,21 @@
}
},
"flake-utils_2": {
+ "locked": {
+ "lastModified": 1667395993,
+ "narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=",
+ "owner": "numtide",
+ "repo": "flake-utils",
+ "rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f",
+ "type": "github"
+ },
+ "original": {
+ "owner": "numtide",
+ "repo": "flake-utils",
+ "type": "github"
+ }
+ },
+ "flake-utils_3": {
"inputs": {
"systems": "systems_2"
},
@@ -95,7 +147,7 @@
"type": "github"
}
},
- "flake-utils_3": {
+ "flake-utils_4": {
"inputs": {
"systems": "systems_3"
},
@@ -113,6 +165,28 @@
"type": "github"
}
},
+ "gitignore": {
+ "inputs": {
+ "nixpkgs": [
+ "devenv",
+ "pre-commit-hooks",
+ "nixpkgs"
+ ]
+ },
+ "locked": {
+ "lastModified": 1660459072,
+ "narHash": "sha256-8DFJjXG8zqoONA1vXtgeKXy68KdJL5UaXR8NtVMUbx8=",
+ "owner": "hercules-ci",
+ "repo": "gitignore.nix",
+ "rev": "a20de23b925fd8264fd7fad6454652e142fd7f73",
+ "type": "github"
+ },
+ "original": {
+ "owner": "hercules-ci",
+ "repo": "gitignore.nix",
+ "type": "github"
+ }
+ },
"home-manager": {
"inputs": {
"nixpkgs": [
@@ -135,6 +209,46 @@
"type": "github"
}
},
+ "lowdown-src": {
+ "flake": false,
+ "locked": {
+ "lastModified": 1633514407,
+ "narHash": "sha256-Dw32tiMjdK9t3ETl5fzGrutQTzh2rufgZV4A/BbxuD4=",
+ "owner": "kristapsdz",
+ "repo": "lowdown",
+ "rev": "d2c2b44ff6c27b936ec27358a2653caaef8f73b8",
+ "type": "github"
+ },
+ "original": {
+ "owner": "kristapsdz",
+ "repo": "lowdown",
+ "type": "github"
+ }
+ },
+ "nix": {
+ "inputs": {
+ "lowdown-src": "lowdown-src",
+ "nixpkgs": [
+ "devenv",
+ "nixpkgs"
+ ],
+ "nixpkgs-regression": "nixpkgs-regression"
+ },
+ "locked": {
+ "lastModified": 1676545802,
+ "narHash": "sha256-EK4rZ+Hd5hsvXnzSzk2ikhStJnD63odF7SzsQ8CuSPU=",
+ "owner": "domenkozar",
+ "repo": "nix",
+ "rev": "7c91803598ffbcfe4a55c44ac6d49b2cf07a527f",
+ "type": "github"
+ },
+ "original": {
+ "owner": "domenkozar",
+ "ref": "relaxed-flakes",
+ "repo": "nix",
+ "type": "github"
+ }
+ },
"nixpkgs": {
"locked": {
"lastModified": 1671417167,
@@ -151,6 +265,22 @@
"type": "github"
}
},
+ "nixpkgs-regression": {
+ "locked": {
+ "lastModified": 1643052045,
+ "narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=",
+ "owner": "NixOS",
+ "repo": "nixpkgs",
+ "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2",
+ "type": "github"
+ },
+ "original": {
+ "owner": "NixOS",
+ "repo": "nixpkgs",
+ "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2",
+ "type": "github"
+ }
+ },
"nixpkgs-stable": {
"locked": {
"lastModified": 1685758009,
@@ -167,6 +297,22 @@
"type": "github"
}
},
+ "nixpkgs-stable_2": {
+ "locked": {
+ "lastModified": 1678872516,
+ "narHash": "sha256-/E1YwtMtFAu2KUQKV/1+KFuReYPANM2Rzehk84VxVoc=",
+ "owner": "NixOS",
+ "repo": "nixpkgs",
+ "rev": "9b8e5abb18324c7fe9f07cb100c3cd4a29cda8b8",
+ "type": "github"
+ },
+ "original": {
+ "owner": "NixOS",
+ "ref": "nixos-22.11",
+ "repo": "nixpkgs",
+ "type": "github"
+ }
+ },
"nixpkgs_2": {
"locked": {
"lastModified": 1686059680,
@@ -183,9 +329,25 @@
"type": "github"
}
},
+ "nixpkgs_3": {
+ "locked": {
+ "lastModified": 1678875422,
+ "narHash": "sha256-T3o6NcQPwXjxJMn2shz86Chch4ljXgZn746c2caGxd8=",
+ "owner": "NixOS",
+ "repo": "nixpkgs",
+ "rev": "126f49a01de5b7e35a43fd43f891ecf6d3a51459",
+ "type": "github"
+ },
+ "original": {
+ "owner": "NixOS",
+ "ref": "nixpkgs-unstable",
+ "repo": "nixpkgs",
+ "type": "github"
+ }
+ },
"pnpm2nix": {
"inputs": {
- "flake-utils": "flake-utils_3",
+ "flake-utils": "flake-utils_4",
"nixpkgs": [
"nixpkgs"
]
@@ -204,10 +366,39 @@
"url": "ssh://git@github.com/clicksminuteper/pnpm2nix"
}
},
+ "pre-commit-hooks": {
+ "inputs": {
+ "flake-compat": [
+ "devenv",
+ "flake-compat"
+ ],
+ "flake-utils": "flake-utils_2",
+ "gitignore": "gitignore",
+ "nixpkgs": [
+ "devenv",
+ "nixpkgs"
+ ],
+ "nixpkgs-stable": "nixpkgs-stable_2"
+ },
+ "locked": {
+ "lastModified": 1686050334,
+ "narHash": "sha256-R0mczWjDzBpIvM3XXhO908X5e2CQqjyh/gFbwZk/7/Q=",
+ "owner": "cachix",
+ "repo": "pre-commit-hooks.nix",
+ "rev": "6881eb2ae5d8a3516e34714e7a90d9d95914c4dc",
+ "type": "github"
+ },
+ "original": {
+ "owner": "cachix",
+ "repo": "pre-commit-hooks.nix",
+ "type": "github"
+ }
+ },
"root": {
"inputs": {
"clicks-server": "clicks-server",
- "flake-utils": "flake-utils_2",
+ "devenv": "devenv",
+ "flake-utils": "flake-utils_3",
"nixpkgs": [
"clicks-server",
"nixpkgs"
diff --git a/flake.nix b/flake.nix
index 33d0698..b24354d 100644
--- a/flake.nix
+++ b/flake.nix
@@ -4,10 +4,11 @@
inputs.flake-utils.url = "github:numtide/flake-utils";
inputs.clicks-server.url = "git+ssh://git@github.com/clicksminuteper/nixfiles";
inputs.pnpm2nix.url = "git+ssh://git@github.com/clicksminuteper/pnpm2nix";
+ inputs.devenv.url = "github:cachix/devenv";
inputs.pnpm2nix.inputs.nixpkgs.follows = "nixpkgs";
- outputs = { self, nixpkgs, flake-utils, clicks-server, pnpm2nix }:
+ outputs = { self, devenv, nixpkgs, flake-utils, clicks-server, pnpm2nix, ... }@inputs:
flake-utils.lib.eachDefaultSystem
(system:
let
@@ -17,20 +18,51 @@
lib = pkgs.lib;
in
rec {
- devShells.default = pkgs.mkShell {
- packages = [ nodejs nodePackages.pnpm pkgs.pkg-config pkgs.fontconfig.dev ];
- shellHook = ''
- unset name
- export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:${lib.makeSearchPath "/lib/pkgconfig" [
- pkgs.pixman
- pkgs.cairo.dev
- pkgs.libpng.dev
- pkgs.gnome2.pango.dev
- pkgs.glib.dev
- pkgs.harfbuzz.dev
- pkgs.freetype.dev
- ]}
- '';
+ devShells.default = devenv.lib.mkShell {
+ inherit inputs pkgs;
+ modules = [
+ ({ pkgs, config, ... }: {
+ # This is your devenv configuration
+ packages = [ nodejs nodePackages.pnpm pkgs.pkg-config pkgs.fontconfig.dev pkgs.clamav ];
+
+ enterShell = ''
+ unset name
+ export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:${lib.makeSearchPath "/lib/pkgconfig" [
+ pkgs.pixman
+ pkgs.cairo.dev
+ pkgs.libpng.dev
+ pkgs.gnome2.pango.dev
+ pkgs.glib.dev
+ pkgs.harfbuzz.dev
+ pkgs.freetype.dev
+ ]}
+ '';
+
+ services.mongodb = {
+ enable = true;
+ package = pkgs.mongodb-6_0;
+ additionalArgs = [
+ "--port"
+ "27017"
+ "--noauth"
+ ];
+ };
+
+ processes.clamav.exec = let
+ clamd_config = pkgs.writeText "clamd.conf" ''
+ TCPSocket 3310
+ PidFile /tmp/clamav-nucleus.pid
+ DatabaseDirectory ${config.env.DEVENV_STATE}/clamav/db
+ TemporaryDirectory /tmp
+ Foreground true
+ '';
+ freshclam_config = pkgs.writeText "freshclam.conf" ''
+ DatabaseDirectory ${config.env.DEVENV_STATE}/clamav/db
+ DatabaseMirror database.clamav.net
+ '';
+ in "mkdir -p $DEVENV_STATE/clamav/db && ${pkgs.clamav}/bin/freshclam --config ${freshclam_config} || true; ${pkgs.clamav}/bin/clamd -c ${clamd_config}";
+ })
+ ];
};
}) // {
packages.x86_64-linux =