1
1

Compare commits

...

39 Commits

Author SHA1 Message Date
888bff4ec8 WIP
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 5s
Gitea Actions Demo / build-site (push) Successful in 4s
2026-01-04 02:42:12 -05:00
ae7fee9e32 WIP
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 5s
Gitea Actions Demo / build-site (push) Successful in 5s
2026-01-04 02:30:35 -05:00
84a9bf8204 WIP
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 4s
Gitea Actions Demo / build-site (push) Successful in 4s
2026-01-04 02:25:49 -05:00
fb6d498ad5 Add emanotes flake part
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 5s
Gitea Actions Demo / build-site (push) Successful in 4s
2026-01-04 01:46:24 -05:00
203fad17d1 Update running/testing for deployment scripts
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 3s
Gitea Actions Demo / build-site (push) Successful in 4s
2026-01-04 01:09:31 -05:00
5cb2dce159 Switch to user services, for alice to run scripts,
and use systemctl --user cuteseal... to find services.
Runs much better
2026-01-04 01:08:57 -05:00
63224ce917 Downgrade to 25.11, more stable for server
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 3s
Gitea Actions Demo / build-site (push) Successful in 3s
2026-01-03 23:09:00 -05:00
2f233bab42 Trying out Lemmy.
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 3s
Gitea Actions Demo / build-site (push) Successful in 3s
Yes I read the comment, actually need to upgrade the version else it won't compile
2026-01-03 22:43:52 -05:00
9b77159110 Run 'nix fmt' on whole repo
All checks were successful
Gitea Actions Demo / build-site (push) Successful in 4s
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 3s
2026-01-03 20:47:42 -05:00
a1e8f6b69b Check in generated precommit file 2026-01-03 20:47:27 -05:00
4c7c4aa5e9 Rework gitignore 2026-01-03 20:47:14 -05:00
d58590ee6a Update spelling file for VSCode/Codium 2026-01-03 20:46:25 -05:00
951ef7f777 Switch to flake.parts 2026-01-03 20:46:01 -05:00
9d24e57147 Cleanup, fixes, about to switch to Flake.parts 2026-01-03 20:02:38 -05:00
5b58cc10ec Add in a demo Gitea runner task
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 3s
Gitea Actions Demo / build-site (push) Successful in 3s
2026-01-03 02:58:22 -05:00
e1add13d99 Create run script 2026-01-03 02:58:22 -05:00
80e0d346c6 Update Nix dependencies 2026-01-03 02:58:17 -05:00
d7a07ed0c7 Move to subdomain 2025-07-20 22:44:10 -04:00
76a14c35fc Formatting 2025-07-20 22:27:26 -04:00
705abf2189 Helpful utils 2025-07-20 22:22:54 -04:00
e89457874c Remove dead projects 2025-07-20 20:42:18 -04:00
c7a049b3c8 Enable fancytypist.dev 2025-07-20 20:28:48 -04:00
8d80823e1c Add note about flake-parts 2025-07-20 20:27:01 -04:00
92abe8b6cd Try adding flake-parts site 2025-07-20 17:12:03 -04:00
b7226bd567 Remove Hydra 2025-07-20 17:11:50 -04:00
f8cbde73b1 Formatting 2025-07-20 16:42:36 -04:00
5c9eabcebd Disable paperless 2025-07-20 16:41:43 -04:00
eaa03cc7e9 Add temp OSDS site 2024-05-21 17:48:58 -04:00
2b1738f5e9 Portfolio link 2024-01-25 11:45:57 -05:00
efa1aa3728 Update bio 2024-01-25 11:44:39 -05:00
fbf11fb58b Revert "Setup ERP software"
Couldn't get it to work quickly on Linode machin

This reverts commit 5a627ca0e3.
2024-01-25 10:02:58 -05:00
5a627ca0e3 Setup ERP software 2024-01-25 09:26:56 -05:00
597ac21390 Update submodule 2024-01-20 18:29:24 -05:00
7e565d40ca Add stylings and more details 2024-01-20 18:28:48 -05:00
f2c16167ca Trying Jitsi again 2024-01-20 18:00:46 -05:00
e1a243861e Can't get woodpecker to work 2024-01-20 17:17:43 -05:00
e4ac56d530 Try woodpecker CI/CD 2024-01-20 16:43:36 -05:00
b9532ad6e8 Disable fancyTypist.dev site 2024-01-20 16:43:13 -05:00
52ce8f5611 Add spelling dictionary 2024-01-15 14:56:45 -05:00
23 changed files with 642 additions and 287 deletions

1
.envrc Normal file
View File

@@ -0,0 +1 @@
use flake

View File

@@ -0,0 +1,28 @@
name: Gitea Actions Demo
run-name: ${{ gitea.actor }} is testing out Gitea Actions 🚀
on: [push]
jobs:
Explore-Gitea-Actions:
runs-on: debian-latest
container:
image: "node:23"
steps:
- run: echo "🎉 The job was automatically triggered by a ${{ gitea.event_name }} event."
- run: echo "🐧 This job is now running on a ${{ runner.os }} server hosted by Gitea!"
- run: echo "🔎 The name of your branch is ${{ gitea.ref }} and your repository is ${{ gitea.repository }}."
- name: Check out repository code
uses: actions/checkout@v4
- run: echo "💡 The ${{ gitea.repository }} repository has been cloned to the runner."
- run: echo "🖥️ The workflow is now ready to test your code on the runner."
- name: List files in the repository
run: |
ls ${{ gitea.workspace }}
- run: echo "🍏 This job's status is ${{ job.status }}."
build-site:
runs-on: debian-latest
container:
image: "node:23"
steps:
- name: checkout-code
uses: https://data.forgejo.org/actions/checkout@v4

5
.gitignore vendored
View File

@@ -1,2 +1,7 @@
# /* cSpell:disable */
.direnv/
linode-nixos.qcow2 linode-nixos.qcow2
result result

1
.pre-commit-config.yaml Symbolic link
View File

@@ -0,0 +1 @@
/nix/store/30f0pr8v6hd0qy799gvjx6vw1zha8v8w-pre-commit-config.json

57
.vscode/settings.json vendored
View File

@@ -1,6 +1,59 @@
{ {
"cSpell.words": [ "cSpell.words": [
"aeson",
"ahci",
"arithmoi",
"axios",
"cachix",
"caddy",
"coreutils",
"cowsay",
"crueltysquad",
"cutesealfanpage",
"dhall",
"emanote",
"Ewanick",
"fancytypist",
"ghcid",
"gitea",
"gnused",
"hakyll",
"helpme",
"hlint",
"hoogle",
"inetutils",
"jibri",
"jicofo",
"jitsi",
"jquery",
"keymap",
"lemmy",
"longview",
"maths",
"mdformat",
"networkd",
"networkmanager",
"nixos",
"nixpkgs",
"nodev",
"nohup",
"numtide",
"optimise",
"osds",
"pandoc", "pandoc",
"photoframe" "photoframe",
"pkgs",
"prejoin",
"redir",
"relude",
"srid",
"stdenv",
"swapcaps",
"swingottawa",
"sysstat",
"treefmt",
"unrecognised",
"videobridge",
"virtio"
] ]
} }

327
flake.lock generated
View File

@@ -3,53 +3,50 @@
"commonmark-simple": { "commonmark-simple": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1705078713, "lastModified": 1755566927,
"narHash": "sha256-YgDHJG8M47ZXGLWu8o7MhXbIrgQ0Ai32Gr8nKvZGGw8=", "narHash": "sha256-2WE5SjwgwjKdsHxDRfQIb2WRrVYoNPiCIyG4HZd8Znk=",
"owner": "srid", "owner": "srid",
"repo": "commonmark-simple", "repo": "commonmark-simple",
"rev": "fc106c94f781f6a35ef66900880edc08cbe3b034", "rev": "81dc7a66b2490a701bfc87e6e892307665e6336e",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "srid", "owner": "srid",
"ref": "0.2.0.0",
"repo": "commonmark-simple", "repo": "commonmark-simple",
"type": "github" "type": "github"
} }
}, },
"ema": { "commonmark-wikilink": {
"inputs": { "flake": false,
"flake-parts": [
"emanote",
"flake-parts"
],
"flake-root": [
"emanote",
"flake-root"
],
"haskell-flake": [
"emanote",
"haskell-flake"
],
"nixpkgs": [
"emanote",
"nixpkgs"
],
"treefmt-nix": [
"emanote",
"treefmt-nix"
]
},
"locked": { "locked": {
"lastModified": 1702334080, "lastModified": 1755567049,
"narHash": "sha256-zrtzyLrSORxtocLMji5U9p4pDicMulOqgsuiB4LCu1o=", "narHash": "sha256-MWOb0Ojc4EQd9fOnQEveRDdbH5Cr6kjUt04uWzBPLGQ=",
"owner": "srid", "owner": "srid",
"repo": "ema", "repo": "commonmark-wikilink",
"rev": "33f4cf31ace7e612e78ad25f5fc45089745ab644", "rev": "5ab01515939047b58943cc1234e7ee0cb82d1c22",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "srid", "owner": "srid",
"ref": "no-ws", "ref": "0.2.0.0",
"repo": "commonmark-wikilink",
"type": "github"
}
},
"ema": {
"flake": false,
"locked": {
"lastModified": 1753226458,
"narHash": "sha256-vDhjw+Cm7HniaiIHirwM0B2yzzLYLO3HHMaZsQRL3uw=",
"owner": "srid",
"repo": "ema",
"rev": "7ff434cf8f494c62de7fe6c1a36d8681929beb93",
"type": "github"
},
"original": {
"owner": "srid",
"ref": "0.12.0.0",
"repo": "ema", "repo": "ema",
"type": "github" "type": "github"
} }
@@ -57,23 +54,29 @@
"emanote": { "emanote": {
"inputs": { "inputs": {
"commonmark-simple": "commonmark-simple", "commonmark-simple": "commonmark-simple",
"commonmark-wikilink": "commonmark-wikilink",
"ema": "ema", "ema": "ema",
"emanote-template": [], "emanote-template": "emanote-template",
"flake-parts": "flake-parts", "flake-parts": [
"flake-root": "flake-root", "flake-parts"
],
"fourmolu-nix": "fourmolu-nix",
"git-hooks": "git-hooks",
"haskell-flake": "haskell-flake", "haskell-flake": "haskell-flake",
"heist-extra": "heist-extra", "heist-extra": "heist-extra",
"nixpkgs": "nixpkgs", "lvar": "lvar",
"systems": "systems", "nixos-unified": "nixos-unified",
"treefmt-nix": "treefmt-nix", "nixpkgs": [
"nixpkgs"
],
"unionmount": "unionmount" "unionmount": "unionmount"
}, },
"locked": { "locked": {
"lastModified": 1705141168, "lastModified": 1766432517,
"narHash": "sha256-uz6LGgOPuAGrVtPOlcEpgiSMA0Cp5G/uK3UwPhGP/AE=", "narHash": "sha256-2y58CyRlcPIQgVvPxsxKOp6aFO6S16CyYOJxFfBaKE8=",
"owner": "srid", "owner": "srid",
"repo": "emanote", "repo": "emanote",
"rev": "7e4b27223d299ad325f685c63fa0f267fe2d8a00", "rev": "6deb47e5db07221709d5214820ff4456e2bda92d",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -82,16 +85,48 @@
"type": "github" "type": "github"
} }
}, },
"emanote-template": {
"flake": false,
"locked": {
"lastModified": 1745726040,
"narHash": "sha256-cLL9ylGe1OoN/KSX7+FRW3j8rm5iPTCleOJGSdOfdE0=",
"owner": "srid",
"repo": "emanote-template",
"rev": "1475b182fc136fc5da3a3b3e2b9be90795af19bb",
"type": "github"
},
"original": {
"owner": "srid",
"repo": "emanote-template",
"type": "github"
}
},
"flake-compat": {
"flake": false,
"locked": {
"lastModified": 1767039857,
"narHash": "sha256-vNpUSpF5Nuw8xvDLj2KCwwksIbjua2LZCqhV1LNRDns=",
"owner": "NixOS",
"repo": "flake-compat",
"rev": "5edf11c44bc78a0d334f6334cdaf7d60d732daab",
"type": "github"
},
"original": {
"owner": "NixOS",
"repo": "flake-compat",
"type": "github"
}
},
"flake-parts": { "flake-parts": {
"inputs": { "inputs": {
"nixpkgs-lib": "nixpkgs-lib" "nixpkgs-lib": "nixpkgs-lib"
}, },
"locked": { "locked": {
"lastModified": 1704982712, "lastModified": 1765835352,
"narHash": "sha256-2Ptt+9h8dczgle2Oo6z5ni5rt/uLMG47UFTR1ry/wgg=", "narHash": "sha256-XswHlK/Qtjasvhd1nOa1e8MgZ8GS//jBoTqWtrS1Giw=",
"owner": "hercules-ci", "owner": "hercules-ci",
"repo": "flake-parts", "repo": "flake-parts",
"rev": "07f6395285469419cf9d078f59b5b49993198c00", "rev": "a34fae9c08a15ad73f295041fec82323541400a9",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -100,28 +135,87 @@
"type": "github" "type": "github"
} }
}, },
"flake-root": { "fourmolu-nix": {
"locked": { "locked": {
"lastModified": 1692742795, "lastModified": 1707266073,
"narHash": "sha256-f+Y0YhVCIJ06LemO+3Xx00lIcqQxSKJHXT/yk1RTKxw=", "narHash": "sha256-tCFzZQJicDdYjnuJiNK4hiiRAH7c2wQzMhOCdUMbVKE=",
"owner": "srid", "owner": "jedimahdi",
"repo": "flake-root", "repo": "fourmolu-nix",
"rev": "d9a70d9c7a5fd7f3258ccf48da9335e9b47c3937", "rev": "717f5a91b0d7b97b1be7ecc3a0fd42d37ffe1c9b",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "srid", "owner": "jedimahdi",
"repo": "flake-root", "repo": "fourmolu-nix",
"type": "github"
}
},
"git-hooks": {
"flake": false,
"locked": {
"lastModified": 1748731907,
"narHash": "sha256-KVgK2PB1h5RNhHJzGn090XcW1i9Mq0FVh6qTVKsg2RU=",
"owner": "bmrips",
"repo": "git-hooks.nix",
"rev": "2749fc9197fd12231746ef685225eaf85fe087fd",
"type": "github"
},
"original": {
"owner": "bmrips",
"repo": "git-hooks.nix",
"type": "github"
}
},
"git-hooks-nix": {
"inputs": {
"flake-compat": "flake-compat",
"gitignore": "gitignore",
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1767281941,
"narHash": "sha256-6MkqajPICgugsuZ92OMoQcgSHnD6sJHwk8AxvMcIgTE=",
"owner": "cachix",
"repo": "git-hooks.nix",
"rev": "f0927703b7b1c8d97511c4116eb9b4ec6645a0fa",
"type": "github"
},
"original": {
"owner": "cachix",
"repo": "git-hooks.nix",
"type": "github"
}
},
"gitignore": {
"inputs": {
"nixpkgs": [
"git-hooks-nix",
"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" "type": "github"
} }
}, },
"haskell-flake": { "haskell-flake": {
"locked": { "locked": {
"lastModified": 1705067885, "lastModified": 1752499668,
"narHash": "sha256-al2JqNIkXfLiVreqSJWly64Z6YVNphWBh4m3IxGIdYI=", "narHash": "sha256-Yif99ho8GNgXP0l9vxPHCKi7X16Cf7rwVd+HW1cMVeQ=",
"owner": "srid", "owner": "srid",
"repo": "haskell-flake", "repo": "haskell-flake",
"rev": "8a526aaf98cde6af6b2d1d368e9acb460ee34547", "rev": "39065472d2587af93a502423276bfb98c2c6fb09",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -133,11 +227,11 @@
"heist-extra": { "heist-extra": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1691619499, "lastModified": 1766109391,
"narHash": "sha256-4e8v5t4FM99pdcPhohP3dAeGtsFnirbfYGpbr2+qWxI=", "narHash": "sha256-ytHgIoRlkI5K0SDq33znlY0wjlqcwoQCe1z9JfHT/Fw=",
"owner": "srid", "owner": "srid",
"repo": "heist-extra", "repo": "heist-extra",
"rev": "54ff970f733dd45b5509d1c4c298927b6241041b", "rev": "81f1ea0cf1226215430171dbe613a2988c6cc46a",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -146,94 +240,90 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs": { "lvar": {
"flake": false,
"locked": { "locked": {
"lastModified": 1704842529, "lastModified": 1753226155,
"narHash": "sha256-OTeQA+F8d/Evad33JMfuXC89VMetQbsU4qcaePchGr4=", "narHash": "sha256-Uwg5s0SlxLp83bXHA+6TIQV+L+lu8lwMpBdNuiuk7hg=",
"owner": "nixos", "owner": "srid",
"repo": "nixpkgs", "repo": "lvar",
"rev": "eabe8d3eface69f5bb16c18f8662a702f50c20d5", "rev": "cd110d4823ee7b8bbbf115a47c79bc304c3309cd",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "nixos", "owner": "srid",
"ref": "nixpkgs-unstable", "ref": "0.2.0.0",
"repo": "lvar",
"type": "github"
}
},
"nixos-unified": {
"locked": {
"lastModified": 1751174231,
"narHash": "sha256-OLPo3ZI/gKH0C6P6l2W9RYm1ow/Jl4qBrasQ3rjAA0E=",
"owner": "srid",
"repo": "nixos-unified",
"rev": "05eb3d59d3b48460ea01c419702d4fc0c3210805",
"type": "github"
},
"original": {
"owner": "srid",
"repo": "nixos-unified",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1767325753,
"narHash": "sha256-yA/CuWyqm+AQo2ivGy6PlYrjZBQm7jfbe461+4HF2fo=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "64049ca74d63e971b627b5f3178d95642e61cedd",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-25.11",
"repo": "nixpkgs", "repo": "nixpkgs",
"type": "github" "type": "github"
} }
}, },
"nixpkgs-lib": { "nixpkgs-lib": {
"locked": { "locked": {
"dir": "lib", "lastModified": 1765674936,
"lastModified": 1703961334, "narHash": "sha256-k00uTP4JNfmejrCLJOwdObYC9jHRrr/5M/a/8L2EIdo=",
"narHash": "sha256-M1mV/Cq+pgjk0rt6VxoyyD+O8cOUiai8t9Q6Yyq4noY=", "owner": "nix-community",
"owner": "NixOS", "repo": "nixpkgs.lib",
"repo": "nixpkgs", "rev": "2075416fcb47225d9b68ac469a5c4801a9c4dd85",
"rev": "b0d36bd0a420ecee3bc916c91886caca87c894e9",
"type": "github" "type": "github"
}, },
"original": { "original": {
"dir": "lib", "owner": "nix-community",
"owner": "NixOS", "repo": "nixpkgs.lib",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1705183652,
"narHash": "sha256-rnfkyUH0x72oHfiSDhuCHDHg3gFgF+lF8zkkg5Zihsw=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "428544ae95eec077c7f823b422afae5f174dee4b",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-23.11",
"repo": "nixpkgs",
"type": "github" "type": "github"
} }
}, },
"root": { "root": {
"inputs": { "inputs": {
"emanote": "emanote", "emanote": "emanote",
"flake-parts": [ "flake-parts": "flake-parts",
"emanote", "git-hooks-nix": "git-hooks-nix",
"flake-parts" "nixpkgs": "nixpkgs",
], "treefmt-nix": "treefmt-nix"
"nixpkgs": "nixpkgs_2"
}
},
"systems": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
} }
}, },
"treefmt-nix": { "treefmt-nix": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
"emanote",
"nixpkgs" "nixpkgs"
] ]
}, },
"locked": { "locked": {
"lastModified": 1693468138, "lastModified": 1767468822,
"narHash": "sha256-DddblCahuTW8K0ncPOheTlG3igE8b15LJjafF1PWhOo=", "narHash": "sha256-MpffQxHxmjVKMiQd0Tg2IM/bSjjdQAM+NDcX6yxj7rE=",
"owner": "numtide", "owner": "numtide",
"repo": "treefmt-nix", "repo": "treefmt-nix",
"rev": "6930a5ba0a722385baf273885a03f561dcb1af67", "rev": "d56486eb9493ad9c4777c65932618e9c2d0468fc",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -245,15 +335,16 @@
"unionmount": { "unionmount": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1691619410, "lastModified": 1755566785,
"narHash": "sha256-V9/OcGu9cy4kV9jta12A6w5BEj8awSEVYrXPpg8YckQ=", "narHash": "sha256-1TBIhcgbQxBF48ET7Dy+PM3U2lCROBDVg5PhOtm2Q/M=",
"owner": "srid", "owner": "srid",
"repo": "unionmount", "repo": "unionmount",
"rev": "ed73b627f88c8f021f41ba4b518ba41beff9df42", "rev": "4387cdeca64d22ff02da318b1527ff8817123ced",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "srid", "owner": "srid",
"ref": "0.3.0.0",
"repo": "unionmount", "repo": "unionmount",
"type": "github" "type": "github"
} }

180
flake.nix
View File

@@ -1,35 +1,171 @@
{ {
description = "System flake for Linode NixOS server"; description = "Flake.parts System flake for Linode NixOS server";
nixConfig = {
extra-substituters = "https://srid.cachix.org";
extra-trusted-public-keys = "srid.cachix.org-1:3clnql5gjbJNEvhA/WQp7nrZlBptwpXnUk6JAv8aB2M=";
};
inputs = { inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-23.11"; nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.11";
flake-parts.url = "github:hercules-ci/flake-parts";
emanote.url = "github:srid/emanote"; emanote.url = "github:srid/emanote";
emanote.inputs.emanote-template.follows = ""; emanote.inputs.nixpkgs.follows = "nixpkgs";
flake-parts.follows = "emanote/flake-parts"; emanote.inputs.flake-parts.follows = "flake-parts";
# nixpkgs.follows = "emanote/nixpkgs"; git-hooks-nix.url = "github:cachix/git-hooks.nix";
git-hooks-nix.inputs.nixpkgs.follows = "nixpkgs";
treefmt-nix.url = "github:numtide/treefmt-nix";
treefmt-nix.inputs.nixpkgs.follows = "nixpkgs";
}; };
outputs = inputs@{ self, nixpkgs, emanote, ... }: nixConfig = {
{ trusted-substituters = "https://cache.garnix.io";
nixosConfigurations.linode-nixos = extra-trusted-public-keys = "cache.garnix.io:CTFPyKSLcx5RMJKfLo5EEPUObbA78b0YQ2DTCJXqr9g=";
nixpkgs.lib.nixosSystem { };
specialArgs = { inherit inputs emanote; };
modules = [
./server-config/configuration.nix
./nixos-apps outputs = inputs @ {flake-parts, ...}:
]; flake-parts.lib.mkFlake {inherit inputs;} {
imports = [
# To import a flake module
# 1. Add foo to inputs
# 2. Add foo as a parameter to the outputs function
# 3. Add here: foo.flakeModule
inputs.emanote.flakeModule
inputs.git-hooks-nix.flakeModule
inputs.treefmt-nix.flakeModule
];
systems = [
"x86_64-linux"
# "aarch64-linux"
# "aarch64-darwin"
# "x86_64-darwin"
];
flake = {
# The usual flake attributes can be defined here, including system-
# agnostic ones like nixosModule and system-enumerating ones, although
# those are more easily expressed in perSystem.
nixosConfigurations = {
linode-nixos = inputs.nixpkgs.lib.nixosSystem {
# system is not needed with freshly generated hardware-configuration.nix
# system = "x86_64-linux"; # or set nixpkgs.hostPlatform in a module.
specialArgs = {inherit inputs;};
modules = [
{
nixpkgs.config.permittedInsecurePackages = [
"jitsi-meet-1.0.8792"
];
}
./server-config/configuration.nix
./nixos-apps
];
};
};
};
perSystem = {
config,
self',
inputs',
pkgs,
system,
...
}: {
# Per-system attributes can be defined here. The self' and inputs'
# module parameters provide easy access to attributes of the same
# system.
emanote.sites = {
osds-site = {
layers = [
{
path = ./nixos-apps/ewanick.com;
pathString = "nixos-apps/ewanick.com";
}
];
port = 5567;
};
}; };
hydraJobs = { # Equivalent to inputs'.nixpkgs.legacyPackages.hello;
inherit (self) # packages.default = pkgs.hello;
nixosConfigurations;
devShells.default = let
# https://downloads.haskell.org/~ghc/9.10.3/docs/users_guide/index.html
ghc' = pkgs.haskell.packages.ghc9103.ghcWithHoogle (
self:
with self; [
relude
split
aeson
random
neat-interpolation
# maths
primes
arithmoi
parallel
# graphing libraries!
Chart
Chart-cairo
]
);
clean = pkgs.writeShellScriptBin "clean" ''
# Delete executables
find . -type f -executable -not -path '*/.git/*' -delete
# Delete all Haskell IR files
find . -type f -name '*.hi' -delete
find . -type f -name '*.o' -delete
# Delete any test graphs created
find . -type f -name '*.png' -delete
'';
in
pkgs.mkShell {
packages = with pkgs; [
cowsay
alejandra
ghc'
clean
haskell-language-server
ghcid
hlint
kotlin
];
shellHook = ''
${config.pre-commit.installationScript}
echo Hello alice
'';
};
pre-commit = {
settings.hooks = {
alejandra.enable = true;
mdformat.enable = true;
prettier.enable = true;
prettier.excludes = [".*\.md" "flake.lock"];
stylish-haskell.enable = true;
};
};
treefmt = {
programs = {
alejandra.enable = true;
mdformat.enable = true;
prettier.enable = true;
prettier.excludes = ["*.md"];
stylish-haskell.enable = true;
};
};
}; };
}; };
} }

View File

@@ -3,7 +3,7 @@
enable = true; enable = true;
virtualHosts = { virtualHosts = {
"crueltysquad.com" = { "crueltysquad.com" = {
serverAliases = [ "www.crueltysquad.com" ]; serverAliases = ["www.crueltysquad.com"];
extraConfig = '' extraConfig = ''
redir https://store.steampowered.com/app/1388770/Cruelty_Squad/ redir https://store.steampowered.com/app/1388770/Cruelty_Squad/
''; '';

View File

@@ -1,14 +1,11 @@
{ pkgs, ... }: {pkgs, ...}: let
let
PROJECT_ROOT = "/workspace/deployed-nixos-server-and-apps/nixos-apps/cutesealfanpage.love"; PROJECT_ROOT = "/workspace/deployed-nixos-server-and-apps/nixos-apps/cutesealfanpage.love";
in in {
{
services.caddy = { services.caddy = {
enable = true; enable = true;
virtualHosts = { virtualHosts = {
"cutesealfanpage.love" = { "cutesealfanpage.love" = {
serverAliases = [ "www.cutesealfanpage.love" ]; serverAliases = ["www.cutesealfanpage.love"];
extraConfig = '' extraConfig = ''
root * ${PROJECT_ROOT}/_site root * ${PROJECT_ROOT}/_site
file_server file_server
@@ -21,7 +18,7 @@ in
cutesealfanpage-hakyll-site = { cutesealfanpage-hakyll-site = {
enable = true; enable = true;
description = "The hakyll executable that rebuilds the site when a new blog post is created."; description = "The hakyll executable that rebuilds the site when a new blog post is created.";
path = with pkgs; [ nix git ]; path = with pkgs; [nix git];
script = '' script = ''
cd ${PROJECT_ROOT} cd ${PROJECT_ROOT}
nix run .#hakyll-site -- watch --no-server nix run .#hakyll-site -- watch --no-server
@@ -32,7 +29,7 @@ in
enable = true; enable = true;
description = "The haskell script that creates the new post of the day."; description = "The haskell script that creates the new post of the day.";
startAt = "08:12:42"; startAt = "08:12:42";
path = with pkgs; [ nix git ]; path = with pkgs; [nix git];
script = '' script = ''
cd ${PROJECT_ROOT} cd ${PROJECT_ROOT}
nix run .#generateSealPosts nix run .#generateSealPosts

View File

@@ -7,10 +7,10 @@
./ewanick.com.nix ./ewanick.com.nix
./git.ewanick.com.nix ./git.ewanick.com.nix
./paperless.ewanick.com.nix
./fancytypist.com.nix ./fancytypist.com.nix
./hydra.fancyTypist.com.nix
# ./paperless.ewanick.com.nix
]; ];
# when in doubt, clear away the certs with # when in doubt, clear away the certs with
@@ -20,5 +20,8 @@
# uncomment this to use the staging server # uncomment this to use the staging server
# security.acme.server = "https://acme-staging-v02.api.letsencrypt.org/directory"; # security.acme.server = "https://acme-staging-v02.api.letsencrypt.org/directory";
networking.firewall.allowedTCPPorts = [ 80 443 ]; networking.firewall.allowedTCPPorts = [
80
443
];
} }

View File

@@ -1,19 +1,17 @@
{ pkgs, ... }: {pkgs, ...}: let
description = "A blog powered by Emanote running solely on Markdown files.";
let
PROJECT_ROOT = "/workspace/deployed-nixos-server-and-apps/nixos-apps/ewanick.com"; PROJECT_ROOT = "/workspace/deployed-nixos-server-and-apps/nixos-apps/ewanick.com";
PORT = "5567";
HOST = "localhost"; HOST = "localhost";
emanote-version = "1.2.0"; PORT = 5567;
in emanote-version = "1.4.0.0";
{ in {
services.caddy = { services.caddy = {
enable = true; enable = true;
virtualHosts = { virtualHosts = {
"ewanick.com" = { "ewanick.com" = {
serverAliases = [ "www.ewanick.com" ]; serverAliases = ["www.ewanick.com"];
extraConfig = '' extraConfig = ''
reverse_proxy ${HOST}:${PORT} reverse_proxy ${HOST}:${toString PORT}
''; '';
}; };
}; };
@@ -23,10 +21,14 @@ in
ewanick-site = { ewanick-site = {
enable = true; enable = true;
description = "A blog powered by Emanote running solely on Markdown files."; description = "A blog powered by Emanote running solely on Markdown files.";
path = with pkgs; [ nix git ]; path = with pkgs; [nix git];
wantedBy = ["multi-user.target"];
script = '' script = ''
cd ${PROJECT_ROOT} cd ${PROJECT_ROOT}
nix run github:srid/emanote/${emanote-version} -- run --port ${PORT} --host ${HOST} nix run github:srid/emanote/${emanote-version} \
-- run \
--port ${toString PORT} \
--host ${HOST}
''; '';
}; };
}; };

View File

@@ -1,8 +1,17 @@
# Bill Ewanick # Bill Ewanick
A Nix evangelist and Haskell enthusiast. :::{.flex}
Software developer for hire, professional experience in all things JavaScript.
Contact me for contract work at `<firstName>@<lastName>.com` - Senior Software Developer
- Nix evangelist
- Haskell disciple
- Polyglot programmer familiar with everything, from Ada to Zig.
Software developer for hire.\
Contact me for contract work at `<firstName>@<lastName>.com`\
See what I'm currently tinkering with at:\
<https://git.ewanick.com/bill>
:::{.photoframe-center} :::{.photoframe-center}
![[profile.jpg]]
!\[[profile.jpg]\]

View File

@@ -26,7 +26,7 @@ pandoc:
prose: max-w-prose mx-auto prose: max-w-prose mx-auto
# Centered photo # Centered photo
photoframe-center: sm:w-3/4 md:w-1/2 mx-auto flex items-center justify-center photoframe-center: flex-initial
# Photo floating to right # Photo floating to right
photoframe: w-full sm:w-64 float-right sm:ml-2 mb-2 sm:mb-0 border-2 p-1 bg-gray-50 photoframe: w-full sm:w-64 float-right sm:ml-2 mb-2 sm:mb-0 border-2 p-1 bg-gray-50
@@ -35,4 +35,4 @@ pandoc:
photoframe-below: clear-right photoframe-below: clear-right
page-note: text-sm text-gray-600 flex items-center justify-center my-4 italic page-note: text-sm text-gray-600 flex items-center justify-center my-4 italic
editor-note: text-gray-500 text-sm editor-note: text-gray-500 text-sm

View File

@@ -1,23 +1,20 @@
{ pkgs, ... }: {pkgs, ...}: let
let
PROJECT_ROOT = "/workspace/deployed-nixos-server-and-apps/nixos-apps/fancyTypist.dev"; PROJECT_ROOT = "/workspace/deployed-nixos-server-and-apps/nixos-apps/fancyTypist.dev";
HOST = "localhost"; HOST = "localhost";
PORT = 12513; PORT = 12513;
in in {
{
services.caddy = { services.caddy = {
enable = true; enable = true;
virtualHosts = { virtualHosts = {
"fancytypist.com" = { "fancytypist.com" = {
serverAliases = [ "www.fancytypist.com" ]; serverAliases = ["www.fancytypist.com"];
extraConfig = '' extraConfig = ''
respond "Hello, world! fancytypist.com" respond "Hello, world! fancytypist.com"
''; '';
}; };
"fancytypist.ca" = { "fancytypist.ca" = {
serverAliases = [ "www.fancytypist.ca" ]; serverAliases = ["www.fancytypist.ca"];
extraConfig = '' extraConfig = ''
respond "Hello, world! fancytypist.ca" respond "Hello, world! fancytypist.ca"
''; '';
@@ -29,14 +26,8 @@ in
''; '';
}; };
"helpme.fancytypist.ca" = { "osds.fancytypist.dev" = {
extraConfig = '' serverAliases = ["osds.fancytypist.dev"];
respond "Welcome to only other subdomain...helpme!"
'';
};
"fancytypist.dev" = {
serverAliases = [ "www.fancytypist.dev" ];
extraConfig = '' extraConfig = ''
reverse_proxy ${HOST}:${toString PORT} reverse_proxy ${HOST}:${toString PORT}
''; '';
@@ -46,23 +37,25 @@ in
systemd.services = { systemd.services = {
fancyTypistDotDev-site = { fancyTypistDotDev-site = {
enable = true; enable = false;
description = "The Haskell Servant executable server that hosts my FancyTypist.dev site."; description = "The Haskell Servant executable server that hosts my FancyTypist.dev site.";
path = with pkgs; [ nix git ]; path = with pkgs; [
nix
git
];
script = '' script = ''
cd ${PROJECT_ROOT} cd ${PROJECT_ROOT}
nix run .#fancyTypistDotDev-site nix run .#fancyTypistDotDev-site
''; '';
}; };
};
osdsFancyTypistSubdomain-site = { services.lemmy = {
enable = true; enable = true;
description = "Emanote site running the OSDS content."; settings = {
path = with pkgs; [ nix git ]; hostname = "helpme.fancytypist.ca";
script = '' database.createLocally = true;
cd ${PROJECT_ROOT}
nix run .#osdsFancyTypistSubdomain-site
'';
}; };
caddy.enable = true;
}; };
} }

View File

@@ -1,46 +1,47 @@
{ pkgs, ... }: {pkgs, ...}: let
let baseUrl = "git.ewanick.com"; baseUrl = "git.ewanick.com";
in PROJECT_ROOT = "/workspace/deployed-nixos-server-and-apps/nixos-apps/git.ewanick.com";
{ in {
services.gitea = { services.gitea = {
enable = true; enable = true;
appName = "Bill's Gitea server, hosted on Linode using NixOS"; appName = "Bill's Gitea server, hosted on Linode using NixOS";
lfs.enable = true;
settings = { settings = {
server = { server = {
DOMAIN = baseUrl; DOMAIN = baseUrl;
ROOT_URL = "https://${baseUrl}/"; ROOT_URL = "https://${baseUrl}/";
HTTP_PORT = 3000; HTTP_PORT = 3000;
}; };
service = { service.DISABLE_REGISTRATION = true;
DISABLE_REGISTRATION = true;
actions = {
ENABLED = true;
DEFAULT_ACTIONS_URL = "github";
}; };
# actions = {
# ENABLED = true;
# DEFAULT_ACTIONS_URL = "self";
# };
}; };
}; };
# services.gitea-actions-runner.instances = { services.gitea-actions-runner = {
# "first-runner" = { instances.default = {
# enable = true; enable = true;
# url = baseUrl; name = "linode-nixos";
# tokenFile = ./git.ewanick.com/tokenFile; url = "https://${baseUrl}/";
# hostPackages = with pkgs; [ tokenFile = "${PROJECT_ROOT}/tokenFile";
# bash hostPackages = with pkgs; [
# coreutils bash
# curl coreutils
# gawk curl
# gitMinimal gawk
# gnused gitMinimal
# wget gnused
# ]; wget
# name = "linode-nixos"; ];
# labels = [ labels = [
# "native:host" "debian-latest:docker://node:23-bookworm"
# ]; "native:host"
# }; ];
# }; };
};
services.caddy = { services.caddy = {
enable = true; enable = true;
@@ -52,18 +53,19 @@ in
}; };
}; };
}; };
virtualisation.docker.enable = true;
} }
/* /*
# README # README
## View users and use the command line ## View users and use the command line
Do something like this, preferably as the gitea user Do something like this, preferably as the gitea user
```bash ```bash
$ sudo su gitea $ sudo su gitea
$ /nix/store/5xwh7m7252m9ljvr3lyilcza1q699r2c-gitea-1.17.4/bin/gitea -c /var/lib/gitea/custom/conf/app.ini admin user list $ /nix/store/5xwh7m7252m9ljvr3lyilcza1q699r2c-gitea-1.17.4/bin/gitea -c /var/lib/gitea/custom/conf/app.ini admin user list
``` ```
*/ */

View File

@@ -2,14 +2,13 @@ let
baseUrl = "hydra.fancyTypist.com"; baseUrl = "hydra.fancyTypist.com";
HOST = "localhost"; HOST = "localhost";
PORT = 8246; PORT = 8246;
in in {
{
services.hydra = { services.hydra = {
enable = false; enable = false;
port = PORT; port = PORT;
hydraURL = "https://${HOST}:${toString PORT}"; hydraURL = "https://${HOST}:${toString PORT}";
notificationSender = "hydra@fancyTypist.com"; notificationSender = "hydra@fancyTypist.com";
buildMachinesFiles = [ ]; buildMachinesFiles = [];
useSubstitutes = true; useSubstitutes = true;
}; };

View File

@@ -1,6 +1,6 @@
{ {
services.jitsi-meet = { services.jitsi-meet = {
enable = false; enable = true;
hostName = "jitsi.crueltysquad.com"; hostName = "jitsi.crueltysquad.com";
config = { config = {
enableWelcomePage = false; enableWelcomePage = false;

View File

@@ -1,19 +1,18 @@
{ pkgs, ... }: # Currently disabled, having issues starting
let {pkgs, ...}: let
baseUrl = "paperless.ewanick.com"; baseUrl = "paperless.ewanick.com";
HOST = "localhost"; HOST = "localhost";
PORT = 28981; PORT = 28981;
in in {
{
services.paperless = { services.paperless = {
enable = true; enable = true;
address = HOST; address = HOST;
port = PORT; port = PORT;
passwordFile = "/run/keys/paperless-password"; passwordFile = "/run/keys/paperless-password";
}; };
systemd.services.paperless-scheduler.after = [ "var-lib-paperless.mount" ]; systemd.services.paperless-scheduler.after = ["var-lib-paperless.mount"];
systemd.services.paperless-consumer.after = [ "var-lib-paperless.mount" ]; systemd.services.paperless-consumer.after = ["var-lib-paperless.mount"];
systemd.services.paperless-web.after = [ "var-lib-paperless.mount" ]; systemd.services.paperless-web.after = ["var-lib-paperless.mount"];
services.caddy = { services.caddy = {
enable = true; enable = true;

6
run.sh Executable file
View File

@@ -0,0 +1,6 @@
#! /usr/bin/env nix-shell
#! nix-shell -i bash -p bash
sudo \
nixos-rebuild switch \
--option eval-cache false \
--flake /workspace/deployed-nixos-server-and-apps#linode-nixos

View File

@@ -1,15 +1,17 @@
# Edit this configuration file to define what should be installed on # Edit this configuration file to define what should be installed on
# your system. Help is available in the configuration.nix(5) man page # your system. Help is available in the configuration.nix(5) man page
# and in the NixOS manual (accessible by running nixos-help). # and in the NixOS manual (accessible by running nixos-help).
{ inputs, config, pkgs, lib, ... }:
{ {
imports = inputs,
[ config,
# Include the results of the hardware scan. pkgs,
./hardware-configuration.nix lib,
]; ...
}: {
imports = [
# Include the results of the hardware scan.
./hardware-configuration.nix
];
# Use the GRUB 2 boot loader. # Use the GRUB 2 boot loader.
boot.loader.grub.enable = true; boot.loader.grub.enable = true;
@@ -25,7 +27,7 @@
# This will add each flake input as a registry # This will add each flake input as a registry
# To make nix3 commands consistent with your flake # To make nix3 commands consistent with your flake
registry = lib.mapAttrs (_: value: { flake = value; }) inputs; registry = lib.mapAttrs (_: value: {flake = value;}) inputs;
# This will additionally add your inputs to the system's legacy channels # This will additionally add your inputs to the system's legacy channels
# Making legacy nix commands consistent as well, awesome! # Making legacy nix commands consistent as well, awesome!
@@ -36,15 +38,23 @@
auto-optimise-store = true; auto-optimise-store = true;
# Required by Cachix to be used as non-root user # Required by Cachix to be used as non-root user
trusted-users = [ "root" "alice" ]; trusted-users = [
"root"
"alice"
];
experimental-features = [ "nix-command" "flakes" ]; experimental-features = [
"nix-command"
"flakes"
];
}; };
extraOptions = '' extraOptions = ''
# https://github.com/nix-community/nix-direnv#home-manager # https://github.com/nix-community/nix-direnv#home-manager
keep-outputs = true keep-outputs = true
keep-derivations = true keep-derivations = true
accept-flake-config = true
''; '';
# Automate garbage collection # Automate garbage collection
@@ -56,29 +66,35 @@
}; };
# Configure keymap in X11 # Configure keymap in X11
services.xserver.layout = "us"; services.xserver.xkb.layout = "us";
services.xserver.xkbOptions = "ctrl:swapcaps"; services.xserver.xkb.options = "ctrl:swapcaps";
# Define a user account. Don't forget to set a password with passwd. # Define a user account. Don't forget to set a password with passwd.
users.users.alice = { users.users.alice = {
isNormalUser = true; isNormalUser = true;
home = "/home/alice"; home = "/home/alice";
description = "Alice Foobar"; description = "Alice Foobar";
extraGroups = [ "wheel" "networkmanager" ]; extraGroups = [
"wheel"
"networkmanager"
];
packages = with pkgs; [ packages = with pkgs; [
tldr tldr
]; ];
hashedPassword = "$y$j9T$7AufeqRXQaD9CxeBmwBUt0$.qNf/QdO5BGc0peHvHzDQqs1B48D0pYw9PhIDzcYAK8"; hashedPassword = "$y$j9T$7AufeqRXQaD9CxeBmwBUt0$.qNf/QdO5BGc0peHvHzDQqs1B48D0pYw9PhIDzcYAK8"; # cspell:disable-line
openssh.authorizedKeys.keys = [ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGzXqcOu6/EjS60Ke55w4hj//lY6u3S1DYPoSd7yjdR3 alice@foobar" ]; openssh.authorizedKeys.keys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGzXqcOu6/EjS60Ke55w4hj//lY6u3S1DYPoSd7yjdR3 alice@foobar" # cspell:disable-line
];
}; };
# List packages installed in system profile. To search, run: # List packages installed in system profile. To search, run:
# $ nix search wget # $ nix search wget
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
wget busybox # nohup specifically
git git
kitty kitty
screen
wget
# Linode tools # Linode tools
inetutils inetutils
@@ -89,9 +105,11 @@
# Enable Nix-ld for remote VSCode SSH to work # Enable Nix-ld for remote VSCode SSH to work
programs.nix-ld.enable = true; programs.nix-ld.enable = true;
environment.variables = { environment.variables = {
NIX_LD_LIBRARY_PATH = lib.mkDefault (lib.makeLibraryPath [ NIX_LD_LIBRARY_PATH = lib.mkDefault (
pkgs.stdenv.cc.cc lib.makeLibraryPath [
]); pkgs.stdenv.cc.cc
]
);
NIX_LD = lib.mkDefault (lib.fileContents "${pkgs.stdenv.cc}/nix-support/dynamic-linker"); NIX_LD = lib.mkDefault (lib.fileContents "${pkgs.stdenv.cc}/nix-support/dynamic-linker");
}; };
@@ -104,7 +122,10 @@
}; };
# Open ports in the firewall. # Open ports in the firewall.
networking.firewall.allowedTCPPorts = [ 80 443 ]; networking.firewall.allowedTCPPorts = [
80
443
];
networking.useDHCP = false; networking.useDHCP = false;
networking.interfaces.eth0.useDHCP = true; networking.interfaces.eth0.useDHCP = true;
@@ -120,5 +141,5 @@
# this value at the release version of the first install of this system. # this value at the release version of the first install of this system.
# Before changing this value read the documentation for this option # Before changing this value read the documentation for this option
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html). # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
system.stateVersion = "23.05"; # Did you read the comment? system.stateVersion = "25.11"; # Did you read the comment?
} }

View File

@@ -1,19 +1,23 @@
# Do not modify this file! It was generated by nixos-generate-config # Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes # and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead. # to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{ {
imports = config,
[ (modulesPath + "/profiles/qemu-guest.nix") lib,
]; pkgs,
modulesPath,
...
}: {
imports = [
(modulesPath + "/profiles/qemu-guest.nix")
];
boot.initrd.availableKernelModules = [ "virtio_pci" "virtio_scsi" "ahci" "sd_mod" ]; boot.initrd.availableKernelModules = ["virtio_pci" "virtio_scsi" "ahci" "sd_mod"];
boot.initrd.kernelModules = [ ]; boot.initrd.kernelModules = [];
boot.kernelModules = [ ]; boot.kernelModules = [];
boot.extraModulePackages = [ ]; boot.extraModulePackages = [];
boot.kernelParams = [ "console=ttyS0,19200n8" ]; boot.kernelParams = ["console=ttyS0,19200n8"];
boot.loader.grub.extraConfig = '' boot.loader.grub.extraConfig = ''
serial --speed-19200 --unit=0 --word=8 --parity=no --stop=1; serial --speed-19200 --unit=0 --word=8 --parity=no --stop=1;
terminal_input serial; terminal_input serial;
@@ -24,14 +28,14 @@
boot.loader.grub.device = "nodev"; boot.loader.grub.device = "nodev";
boot.loader.timeout = 10; boot.loader.timeout = 10;
fileSystems."/" = fileSystems."/" = {
{ device = "/dev/sda"; device = "/dev/sda";
fsType = "ext4"; fsType = "ext4";
}; };
swapDevices = swapDevices = [
[ { device = "/dev/sdb"; } {device = "/dev/sdb";}
]; ];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking # Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's # (the default) this is the recommended approach. When using systemd-networkd it's

5
test.sh Executable file
View File

@@ -0,0 +1,5 @@
#! /usr/bin/env nix-shell
#! nix-shell -i bash -p bash
nixos-rebuild test \
--option eval-cache false \
--flake /workspace/deployed-nixos-server-and-apps#linode-nixos