[mirror] Scalable static site server for Git forges (like GitHub Pages)
1{
2 inputs = {
3 nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
4 flake-utils.url = "github:numtide/flake-utils";
5 nix-filter.url = "github:numtide/nix-filter";
6 };
7
8 outputs =
9 {
10 self,
11 nixpkgs,
12 flake-utils,
13 nix-filter,
14 }:
15 flake-utils.lib.eachDefaultSystem (
16 system:
17 let
18 pkgs = nixpkgs.legacyPackages.${system};
19
20 git-pages = pkgs.buildGo125Module {
21 pname = "git-pages";
22 version = "0";
23
24 src = nix-filter {
25 root = self;
26
27 include = [
28 "go.mod"
29 "go.sum"
30 "main.go"
31
32 (nix-filter.lib.inDirectory "src")
33 ];
34 };
35
36 buildInputs = with pkgs; [
37 pkgsStatic.musl
38 ];
39
40 ldflags = [
41 "-linkmode external"
42 "-extldflags -static"
43 "-s -w"
44 ];
45
46 vendorHash = "sha256-wwsxHEwCySO2Ykttf6C+GZupMWczVYkAhSVwaVZHNko=";
47 };
48 in
49 {
50 formatter = pkgs.nixfmt-tree;
51
52 devShells.default = pkgs.mkShell {
53 inputsFrom = [
54 git-pages
55 ];
56
57 packages = with pkgs; [
58 caddy
59 ];
60 };
61
62 packages = {
63 inherit git-pages;
64 default = git-pages;
65 };
66 }
67 );
68}