diff --git a/flake.lock b/flake.lock index cbcd26a..ff2f52d 100644 --- a/flake.lock +++ b/flake.lock @@ -18,7 +18,31 @@ }, "devshell": { "inputs": { - "flake-utils": "flake-utils_3", + "flake-utils": "flake-utils_2", + "nixpkgs": [ + "pic", + "ide", + "nixvim", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1717408969, + "narHash": "sha256-Q0OEFqe35fZbbRPPRdrjTUUChKVhhWXz3T9ZSKmaoVY=", + "owner": "numtide", + "repo": "devshell", + "rev": "1ebbe68d57457c8cae98145410b164b5477761f4", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "devshell", + "type": "github" + } + }, + "devshell_2": { + "inputs": { + "flake-utils": "flake-utils_5", "nixpkgs": [ "webshite", "ide", @@ -102,7 +126,138 @@ "type": "github" } }, + "flake-compat_5": { + "flake": false, + "locked": { + "lastModified": 1696426674, + "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-compat_6": { + "flake": false, + "locked": { + "lastModified": 1696426674, + "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-compat_7": { + "locked": { + "lastModified": 1696426674, + "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", + "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", + "revCount": 57, + "type": "tarball", + "url": "https://api.flakehub.com/f/pinned/edolstra/flake-compat/1.0.1/018afb31-abd1-7bff-a5e4-cff7e18efb7a/source.tar.gz" + }, + "original": { + "type": "tarball", + "url": "https://flakehub.com/f/edolstra/flake-compat/1.tar.gz" + } + }, + "flake-compat_8": { + "flake": false, + "locked": { + "lastModified": 1696426674, + "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, "flake-parts": { + "inputs": { + "nixpkgs-lib": [ + "pic", + "ide", + "neovim-nightly-overlay", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1717285511, + "narHash": "sha256-iKzJcpdXih14qYVcZ9QC9XuZYnPc6T8YImb6dX166kw=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "2a55567fcf15b1b1c7ed712a2c6fadaec7412ea8", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "flake-parts_2": { + "inputs": { + "nixpkgs-lib": [ + "pic", + "ide", + "neovim-nightly-overlay", + "hercules-ci-effects", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1712014858, + "narHash": "sha256-sB4SWl2lX95bExY2gMFG5HIzvva5AVMJd4Igm+GpZNw=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "9126214d0a59633752a136528f5f3b9aa8565b7d", + "type": "github" + }, + "original": { + "id": "flake-parts", + "type": "indirect" + } + }, + "flake-parts_3": { + "inputs": { + "nixpkgs-lib": [ + "pic", + "ide", + "nixvim", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1717285511, + "narHash": "sha256-iKzJcpdXih14qYVcZ9QC9XuZYnPc6T8YImb6dX166kw=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "2a55567fcf15b1b1c7ed712a2c6fadaec7412ea8", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "flake-parts_4": { "inputs": { "nixpkgs-lib": [ "webshite", @@ -125,7 +280,7 @@ "type": "github" } }, - "flake-parts_2": { + "flake-parts_5": { "inputs": { "nixpkgs-lib": [ "webshite", @@ -148,7 +303,7 @@ "type": "indirect" } }, - "flake-parts_3": { + "flake-parts_6": { "inputs": { "nixpkgs-lib": [ "webshite", @@ -189,7 +344,7 @@ "flake-utils": { "inputs": { "systems": [ - "webshite", + "pic", "ide", "systems" ] @@ -212,6 +367,28 @@ "inputs": { "systems": "systems" }, + "locked": { + "lastModified": 1701680307, + "narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "4022d587cbbfd70fe950c1e2083a02621806a725", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_3": { + "inputs": { + "systems": [ + "webshite", + "ide", + "systems" + ] + }, "locked": { "lastModified": 1710146030, "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", @@ -226,9 +403,27 @@ "type": "github" } }, - "flake-utils_3": { + "flake-utils_4": { "inputs": { - "systems": "systems_2" + "systems": "systems_3" + }, + "locked": { + "lastModified": 1710146030, + "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_5": { + "inputs": { + "systems": "systems_4" }, "locked": { "lastModified": 1701680307, @@ -244,7 +439,139 @@ "type": "github" } }, + "fnx": { + "inputs": { + "nixpkgs": [ + "pic", + "nixpkgs" + ], + "rust-analyzer-src": "rust-analyzer-src" + }, + "locked": { + "lastModified": 1720333712, + "narHash": "sha256-qZmpIPUe4mwdBGmKPBJ5KzvXH6GOCXheiusTAgNjAAA=", + "owner": "nix-community", + "repo": "fenix", + "rev": "b78c98c53a46e2a2d6479a920f98aa0aeae56281", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "fenix", + "type": "github" + } + }, + "git-hooks": { + "inputs": { + "flake-compat": "flake-compat_2", + "gitignore": "gitignore", + "nixpkgs": [ + "pic", + "ide", + "neovim-nightly-overlay", + "nixpkgs" + ], + "nixpkgs-stable": [ + "pic", + "ide", + "neovim-nightly-overlay", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1718879355, + "narHash": "sha256-RTyqP4fBX2MdhNuMP+fnR3lIwbdtXhyj7w7fwtvgspc=", + "owner": "cachix", + "repo": "git-hooks.nix", + "rev": "8cd35b9496d21a6c55164d8547d9d5280162b07a", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "git-hooks.nix", + "type": "github" + } + }, + "git-hooks_2": { + "inputs": { + "flake-compat": "flake-compat_4", + "gitignore": "gitignore_2", + "nixpkgs": [ + "pic", + "ide", + "nixvim", + "nixpkgs" + ], + "nixpkgs-stable": [ + "pic", + "ide", + "nixvim", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1718879355, + "narHash": "sha256-RTyqP4fBX2MdhNuMP+fnR3lIwbdtXhyj7w7fwtvgspc=", + "owner": "cachix", + "repo": "git-hooks.nix", + "rev": "8cd35b9496d21a6c55164d8547d9d5280162b07a", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "git-hooks.nix", + "type": "github" + } + }, "gitignore": { + "inputs": { + "nixpkgs": [ + "pic", + "ide", + "neovim-nightly-overlay", + "git-hooks", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1709087332, + "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=", + "owner": "hercules-ci", + "repo": "gitignore.nix", + "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "gitignore.nix", + "type": "github" + } + }, + "gitignore_2": { + "inputs": { + "nixpkgs": [ + "pic", + "ide", + "nixvim", + "git-hooks", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1709087332, + "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=", + "owner": "hercules-ci", + "repo": "gitignore.nix", + "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "gitignore.nix", + "type": "github" + } + }, + "gitignore_3": { "inputs": { "nixpkgs": [ "webshite", @@ -271,6 +598,30 @@ "hercules-ci-effects": { "inputs": { "flake-parts": "flake-parts_2", + "nixpkgs": [ + "pic", + "ide", + "neovim-nightly-overlay", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1718018037, + "narHash": "sha256-03rLBd/lKecgaKz0j5ESUf9lDn5R0SJatZTKLL5unWE=", + "owner": "hercules-ci", + "repo": "hercules-ci-effects", + "rev": "0ab08b23ce3c3f75fe9a5598756b6fb8bcf0b414", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "hercules-ci-effects", + "type": "github" + } + }, + "hercules-ci-effects_2": { + "inputs": { + "flake-parts": "flake-parts_5", "nixpkgs": [ "webshite", "ide", @@ -293,6 +644,29 @@ } }, "home-manager": { + "inputs": { + "nixpkgs": [ + "pic", + "ide", + "nixvim", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1719037157, + "narHash": "sha256-aOKd8+mhBsLQChCu1mn/W5ww79ta5cXVE59aJFrifM8=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "cd886711998fe5d9ff7979fdd4b4cbd17b1f1511", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "home-manager", + "type": "github" + } + }, + "home-manager_2": { "inputs": { "nixpkgs": [ "webshite", @@ -340,11 +714,36 @@ "flake-utils": "flake-utils", "neovim-nightly-overlay": "neovim-nightly-overlay", "nixpkgs": [ - "webshite", + "pic", "nixpkgs" ], "nixvim": "nixvim", - "systems": "systems_3" + "systems": "systems_2" + }, + "locked": { + "lastModified": 1720081265, + "narHash": "sha256-MQjLb0AhXlJM5icYj9KJ+FYV/dDGiGKvPQIGcDuceiM=", + "owner": "ivandimitrov8080", + "repo": "flake-ide", + "rev": "ede87ccb5225e562efb1be4c68b645c3b2c7dca6", + "type": "github" + }, + "original": { + "owner": "ivandimitrov8080", + "repo": "flake-ide", + "type": "github" + } + }, + "ide_2": { + "inputs": { + "flake-utils": "flake-utils_3", + "neovim-nightly-overlay": "neovim-nightly-overlay_2", + "nixpkgs": [ + "webshite", + "nixpkgs" + ], + "nixvim": "nixvim_2", + "systems": "systems_5" }, "locked": { "lastModified": 1716893760, @@ -362,7 +761,7 @@ }, "neovim-flake": { "inputs": { - "flake-utils": "flake-utils_2", + "flake-utils": "flake-utils_4", "nixpkgs": [ "webshite", "ide", @@ -388,9 +787,36 @@ }, "neovim-nightly-overlay": { "inputs": { - "flake-compat": "flake-compat_2", + "flake-compat": "flake-compat", "flake-parts": "flake-parts", + "git-hooks": "git-hooks", "hercules-ci-effects": "hercules-ci-effects", + "neovim-src": "neovim-src", + "nixpkgs": [ + "pic", + "ide", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1719211247, + "narHash": "sha256-GaEckCf2RaHzoEDj/j07BIV6eyDOT5wCFVSdbbkZ87U=", + "owner": "nix-community", + "repo": "neovim-nightly-overlay", + "rev": "820da0e6b6127df9ad05ef3af40d767577e21ba1", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "neovim-nightly-overlay", + "type": "github" + } + }, + "neovim-nightly-overlay_2": { + "inputs": { + "flake-compat": "flake-compat_6", + "flake-parts": "flake-parts_4", + "hercules-ci-effects": "hercules-ci-effects_2", "neovim-flake": "neovim-flake", "nixpkgs": [ "webshite", @@ -412,7 +838,46 @@ "type": "github" } }, + "neovim-src": { + "flake": false, + "locked": { + "lastModified": 1719138008, + "narHash": "sha256-+rM0RjvuW6/vzxdJxEU6KvQEF159NXrgB+irtS044Cc=", + "owner": "neovim", + "repo": "neovim", + "rev": "be999e6a0e5b251b2b37500d06636d4167334c6e", + "type": "github" + }, + "original": { + "owner": "neovim", + "repo": "neovim", + "type": "github" + } + }, "nix-darwin": { + "inputs": { + "nixpkgs": [ + "pic", + "ide", + "nixvim", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1719128254, + "narHash": "sha256-I7jMpq0CAOZA/i70+HDQO/ulLttyQu/K70cSESiMX7A=", + "owner": "lnl7", + "repo": "nix-darwin", + "rev": "50581970f37f06a4719001735828519925ef8310", + "type": "github" + }, + "original": { + "owner": "lnl7", + "repo": "nix-darwin", + "type": "github" + } + }, + "nix-darwin_2": { "inputs": { "nixpkgs": [ "webshite", @@ -471,16 +936,45 @@ "devshell": "devshell", "flake-compat": "flake-compat_3", "flake-parts": "flake-parts_3", - "flake-root": "flake-root", + "git-hooks": "git-hooks_2", "home-manager": "home-manager", "nix-darwin": "nix-darwin", + "nixpkgs": [ + "pic", + "ide", + "nixpkgs" + ], + "treefmt-nix": "treefmt-nix" + }, + "locked": { + "lastModified": 1719228487, + "narHash": "sha256-eJUcZAjOcGAoh97ZRsy+ls8IkHPMpDuh0IpRKSmoWs4=", + "owner": "nix-community", + "repo": "nixvim", + "rev": "66c8592b31845cb0a1335ecc31ea40e89bed1a38", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nixvim", + "type": "github" + } + }, + "nixvim_2": { + "inputs": { + "devshell": "devshell_2", + "flake-compat": "flake-compat_7", + "flake-parts": "flake-parts_6", + "flake-root": "flake-root", + "home-manager": "home-manager_2", + "nix-darwin": "nix-darwin_2", "nixpkgs": [ "webshite", "ide", "nixpkgs" ], "pre-commit-hooks": "pre-commit-hooks", - "treefmt-nix": "treefmt-nix" + "treefmt-nix": "treefmt-nix_2" }, "locked": { "lastModified": 1716326274, @@ -496,10 +990,32 @@ "type": "github" } }, + "pic": { + "inputs": { + "fnx": "fnx", + "ide": "ide", + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1720370679, + "narHash": "sha256-Ac3Pi3GUl0d2zf+//acge7p4mZEYq/CzpkH5nvVSvyQ=", + "owner": "ivandimitrov8080", + "repo": "pic.idimitrov.dev", + "rev": "a8a6c47be00f2c62640e6bd7302478bff252e579", + "type": "github" + }, + "original": { + "owner": "ivandimitrov8080", + "repo": "pic.idimitrov.dev", + "type": "github" + } + }, "pre-commit-hooks": { "inputs": { - "flake-compat": "flake-compat_4", - "gitignore": "gitignore", + "flake-compat": "flake-compat_8", + "gitignore": "gitignore_3", "nixpkgs": [ "webshite", "ide", @@ -531,15 +1047,33 @@ "inputs": { "hosts": "hosts", "nixpkgs": "nixpkgs", + "pic": "pic", "simple-nixos-mailserver": "simple-nixos-mailserver", "vpsadminos": "vpsadminos", "webshite": "webshite" } }, + "rust-analyzer-src": { + "flake": false, + "locked": { + "lastModified": 1720292183, + "narHash": "sha256-CPcdVpsgmNXYVsw4nKPrM23J5mYXtiotYMz2BjPDIKU=", + "owner": "rust-lang", + "repo": "rust-analyzer", + "rev": "058c88da66797eb588b47a4aac3e42847d1333d7", + "type": "github" + }, + "original": { + "owner": "rust-lang", + "ref": "nightly", + "repo": "rust-analyzer", + "type": "github" + } + }, "simple-nixos-mailserver": { "inputs": { "blobs": "blobs", - "flake-compat": "flake-compat", + "flake-compat": "flake-compat_5", "nixpkgs": [ "nixpkgs" ], @@ -575,6 +1109,21 @@ } }, "systems_2": { + "locked": { + "lastModified": 1680978846, + "narHash": "sha256-Gtqg8b/v49BFDpDetjclCYXm8mAnTrUzR0JnE2nv5aw=", + "owner": "nix-systems", + "repo": "x86_64-linux", + "rev": "2ecfcac5e15790ba6ce360ceccddb15ad16d08a8", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "x86_64-linux", + "type": "github" + } + }, + "systems_3": { "locked": { "lastModified": 1681028828, "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", @@ -589,7 +1138,22 @@ "type": "github" } }, - "systems_3": { + "systems_4": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_5": { "locked": { "lastModified": 1680978846, "narHash": "sha256-Gtqg8b/v49BFDpDetjclCYXm8mAnTrUzR0JnE2nv5aw=", @@ -605,6 +1169,29 @@ } }, "treefmt-nix": { + "inputs": { + "nixpkgs": [ + "pic", + "ide", + "nixvim", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1718522839, + "narHash": "sha256-ULzoKzEaBOiLRtjeY3YoGFJMwWSKRYOic6VNw2UyTls=", + "owner": "numtide", + "repo": "treefmt-nix", + "rev": "68eb1dc333ce82d0ab0c0357363ea17c31ea1f81", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "treefmt-nix", + "type": "github" + } + }, + "treefmt-nix_2": { "inputs": { "nixpkgs": [ "webshite", @@ -644,7 +1231,7 @@ }, "webshite": { "inputs": { - "ide": "ide", + "ide": "ide_2", "nixpkgs": [ "nixpkgs" ] diff --git a/flake.nix b/flake.nix index dc383a6..4130607 100644 --- a/flake.nix +++ b/flake.nix @@ -1,27 +1,20 @@ { inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-24.05"; - simple-nixos-mailserver = { - url = "gitlab:simple-nixos-mailserver/nixos-mailserver"; - inputs.nixpkgs.follows = "nixpkgs"; - }; - webshite = { - url = "github:ivandimitrov8080/idimitrov.dev"; - inputs.nixpkgs.follows = "nixpkgs"; - }; vpsadminos.url = "github:vpsfreecz/vpsadminos"; - hosts = { - url = "github:StevenBlack/hosts"; - inputs.nixpkgs.follows = "nixpkgs"; - }; + simple-nixos-mailserver = { url = "gitlab:simple-nixos-mailserver/nixos-mailserver"; inputs.nixpkgs.follows = "nixpkgs"; }; + hosts = { url = "github:StevenBlack/hosts"; inputs.nixpkgs.follows = "nixpkgs"; }; + webshite = { url = "github:ivandimitrov8080/idimitrov.dev"; inputs.nixpkgs.follows = "nixpkgs"; }; + pic = { url = "github:ivandimitrov8080/pic.idimitrov.dev"; inputs.nixpkgs.follows = "nixpkgs"; }; }; outputs = { nixpkgs - , simple-nixos-mailserver , vpsadminos - , webshite + , simple-nixos-mailserver , hosts + , webshite + , pic , ... }: let @@ -29,6 +22,11 @@ myOverlay = final: prev: { scripts = (final.buildEnv { name = "scripts"; paths = [ ./. ]; }); webshite = webshite.packages.${system}.default; + pic = pic.packages.${system}.default.overrideAttrs (prev: { + env = { + FILEPATH = "/var/pic"; + }; + }); }; in diff --git a/mailserver/nginx/default.nix b/mailserver/nginx/default.nix index 2b547a2..4c12a92 100644 --- a/mailserver/nginx/default.nix +++ b/mailserver/nginx/default.nix @@ -50,6 +50,13 @@ in proxyPass = "http://127.0.0.1:3001"; }; }; + "pic.idimitrov.dev" = { + enableACME = true; + forceSSL = true; + locations."/" = { + proxyPass = "http://127.0.0.1:8000"; + }; + }; "status.idimitrov.dev" = { enableACME = true; forceSSL = true; diff --git a/mailserver/webshite/default.nix b/mailserver/webshite/default.nix index a855d9d..2b63312 100644 --- a/mailserver/webshite/default.nix +++ b/mailserver/webshite/default.nix @@ -8,4 +8,12 @@ }; wantedBy = [ "multi-user.target" ]; }; + systemd.services.pic = { + enable = true; + serviceConfig = { + ExecStart = "${pkgs.pic}/bin/pic"; + Restart = "always"; + }; + wantedBy = [ "multi-user.target" ]; + }; }