From 84e5cdd587995e7d7bc7e4c785d6ef7f9b24d311 Mon Sep 17 00:00:00 2001 From: Per Stark Date: Thu, 19 Dec 2024 23:16:47 +0100 Subject: [PATCH] dev flake --- example_flake.nix | 72 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 example_flake.nix diff --git a/example_flake.nix b/example_flake.nix new file mode 100644 index 0000000..5e117a9 --- /dev/null +++ b/example_flake.nix @@ -0,0 +1,72 @@ +{ + inputs = { + nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; + systems.url = "github:nix-systems/default"; + devenv.url = "github:cachix/devenv"; + devenv.inputs.nixpkgs.follows = "nixpkgs"; + }; + + nixConfig = { + extra-trusted-public-keys = "devenv.cachix.org-1:w1cLUi8dv3hnoSPGAuibQv+f9TZLr6cv/Hm9XgU50cw="; + extra-substituters = "https://devenv.cachix.org"; + }; + + outputs = { + self, + nixpkgs, + devenv, + systems, + ... + } @ inputs: let + forEachSystem = nixpkgs.lib.genAttrs (import systems); + in { + packages = forEachSystem (system: { + devenv-up = self.devShells.${system}.default.config.procfileScript; + }); + + devShells = + forEachSystem + (system: let + pkgs = nixpkgs.legacyPackages.${system}; + in { + default = devenv.lib.mkShell { + inherit inputs pkgs; + modules = [ + { + # https://devenv.sh/reference/options/ + enterShell = '' + echo "Welcome to zettle_db project" + echo "----------------------------" + echo "run devenv up -d to start and monitor services" + ''; + + packages = [ + pkgs.vscode-langservers-extracted + pkgs.openssl + ]; + + languages.rust.enable = true; + + processes = { + surreal_db.exec = "docker run --rm --pull always -p 8000:8000 --user $(id -u) -v $(pwd)/database:/database surrealdb/surrealdb:latest-dev start rocksdb:/database/database.db --user root_user --pass root_password"; + # tailwind_css.exec = "npx tailwindcss --input src/server/assets/input.css --output src/server/assets/style.css -w"; + }; + + services = { + rabbitmq = { + enable = true; + # plugins = ["tracing"]; + }; + }; + + env = { + SMTP_RELAYER = "relay_address"; + SMTP_USERNAME = "relay_user"; + SMTP_PASSWORD = "relay_pass"; + }; + } + ]; + }; + }); + }; +}