about summary refs log tree commit diff
path: root/flake.nix (follow)
Commit message (Collapse)AuthorAgeFilesLines
* add x509-info back to the list of toolsFranck Cuny2023-07-051-0/+4
|
* update nixos and home-manager to 23.05Franck Cuny2023-07-051-3/+2
|
* ops: remove everything under opsFranck Cuny2023-05-121-2/+0
| | | | | I don't use terraform anymore and GCP services, so I can get rid of everything there.
* tools/dnsmasq-leases-html: create a HTML page with leases from dnsmasqFranck Cuny2023-04-061-1/+1
| | | | | | | Parse the file that contains all the leases assigned by dnsmasq, and create a static HTML page from it. This can be served by nginx to make it easy to see what IP is assigned to a machine, and which machines are currently on the network.
* flake: fix URL for sendsmsFranck Cuny2023-04-021-1/+1
|
* modules/sendsms: gate the unit with a fileFranck Cuny2023-03-271-0/+4
| | | | | | | | | | To prevent the unit to be triggered multiple times if the host has already rebooted, we create a gate file when we're done running, and before running, we check if the file exists. Enable the service on tahoe. Don't restart the unit when its definition has changed.
* secrets: use homeage to manage secrets for home-managerFranck Cuny2023-03-111-0/+5
| | | | | | | | | | | | | Instead of using agenix for all the secrets, I can use homeage for secrets that are related to my user sessions. Secrets by default will be store under `~/.secrets'. They are encrypted using `age' and to decrypt them, a key is expected to be located under `~/.age/key.txt'. The last place where I was using `pass' (and so GPG too) was for the secrets for `mbsync': this change adds a secret for fastmail to the repository and update `mbsync' configuration to use it.
* ref: don't use my custom tools for nowFranck Cuny2023-03-041-32/+0
| | | | I'm rewriting them in go and they are not ready to be used yet.
* ref(flake): let's stay on stableFranck Cuny2023-01-091-1/+1
| | | | | There's no need to be on unstable, I prefer break things only twice a year instead of every time I run an update ...
* ref(flake): use latest version for nixosFranck Cuny2023-01-071-4/+15
| | | | Don't pin, just use latest.
* feat(home/packages): add tool masked-emailsFranck Cuny2023-01-071-0/+8
|
* feat: update to nix 22.11Franck Cuny2023-01-031-2/+2
|
* feat(modules/sensdms): a module to send an SMSFranck Cuny2022-11-301-0/+8
| | | | | | A new module `sendsms` is added to send SMS when the host reboots. It's triggered by systemd when the host boots and once the network is available.
* fix(flake): add extra argument for the `check-yaml' hookFranck Cuny2022-11-151-1/+1
| | | | | | | Drone's CI configuration is in YAML and can contain multiple configurations (documents). By default the check does not allow this, so let's update the configuration by adding the flag `--allow-multiple-documents`.
* ref: update url for some inputs to the flakeFranck Cuny2022-11-071-2/+2
|
* fix(flake): remove unstable URL for nixpkgsFranck Cuny2022-10-221-1/+0
| | | | I was not using it.
* feat(home/packages): install the tool x509-infoFranck Cuny2022-10-221-0/+8
|
* feat(templates): add a template for rustFranck Cuny2022-10-221-0/+2
| | | | | | | To use it, run: ``` nix flake init -t github:fcuny/world#rust ```
* fix(flake): set the correct path for various pre-commit binariesFranck Cuny2022-10-071-4/+4
|
* feat(home/packages): install gh-ssh-keysFranck Cuny2022-10-031-0/+8
| | | | Add a new input to the flake configuration to install `gh-ssh-keys`.
* feat(naersk): use naersk to build packages with rustFranck Cuny2022-09-261-2/+2
| | | | | | | | | | | | | naersk makes it simple to build rust project in nix. For this to work, `mkSystem` and `mkHomeManagerConfiguration` needs to pass naersk to my overlays. I dropped the support to run the tools with `nix run .#tools...`: I don't use this in practice and it's not making things simpler. I dropped `nix-linter` from the check, it's reporting many errors without helping me to fix them.
* fix(flake): call some programs with `nix run .#tools.<name>`Franck Cuny2022-09-251-12/+10
|
* feat(flake): add nix-linter to the checksFranck Cuny2022-09-221-0/+1
|
* ref(home-manager): don't use home-manager when building the hostFranck Cuny2022-09-221-42/+107
| | | | | | | | | | | | | | | | | | | When rebuilding the host (through `nixos-rebuild switch --flake`) I don't want to rebuild also my home-manager configuration. I want these to be two different steps. I rebuild the home-manager configuration more frequently and it's a waste of time and CPU to rebuild the world every time. This is a pretty large refactoring: - move checks back into the flake: if I modify a check, the configuration for `pre-commits` is not regenerated, as the file with the checks is not monitored with `direnv` (I could probably configure it for it, but not now) - remove `home.nix` from the host level configuration - introduce a `mkHomeManagerConfiguration` function to manage the different user@host - fix a warning with the rust overlay
* ref(flake): move all the checks to external moduleFranck Cuny2022-09-181-33/+3
| | | | | This improve the readability of the flake configuration, the check can be in their own module.
* ref(flake): drop naersk for nowFranck Cuny2022-09-181-17/+9
| | | | | I'll go and refactor correctly and properly the support for rust packages, this is not working and I'm doing something stupid.
* ref(flake): remove pre-commit for golangFranck Cuny2022-09-181-34/+1
| | | | | There has to be a nicer way, and I might just completely drop golang support anyway in this repo.
* feat(flake): use naersk to build rust projectsFranck Cuny2022-09-071-1/+4
| | | | | | The flake naersk is used to build rust crates with nix. Change-Id: Ia1c95de34fe802ae6a6b623dc169ca502fa72f12
* feat(rust): add an overlay to install rustFranck Cuny2022-08-221-0/+5
| | | | | | | | Installing the rust overlay to get the various tools installed. This is done by a new module for home-manager, and is installed only on my laptop at the moment. Change-Id: I80c1633ca04da82f4321a0687a05d1df7c523702
* ci(pre-commit): add a few more checksFranck Cuny2022-08-151-2/+40
| | | | | | | | | | | | Add a mechanism to run checks for go (fmt/mod tidy) and one for terraform. Fix the configuration for shellcheck (it was not checking the files). Change-Id: I1d250b96bd22838eddf624fda6b4d78d5da3e39f Reviewed-on: https://cl.fcuny.net/c/world/+/715 Tested-by: CI Reviewed-by: Franck Cuny <franck@fcuny.net>
* feat(ops/buildkite): use terraform to manage buildkiteFranck Cuny2022-08-071-1/+1
| | | | | | | Change-Id: I63fc8fd81679457f7dbeafc2bd10c0eded0de991 Reviewed-on: https://cl.fcuny.net/c/world/+/707 Tested-by: CI Reviewed-by: Franck Cuny <franck@fcuny.net>
* ref(flake): tools and users packages are managed the same wayFranck Cuny2022-08-061-5/+1
| | | | | | | | | | Configure the way we import these packages the same way, that way it's consistent and easy to use. Change-Id: I0e218f8fe9dd4cd2045bfee11c80de84ff769fe1 Reviewed-on: https://cl.fcuny.net/c/world/+/703 Tested-by: CI Reviewed-by: Franck Cuny <franck@fcuny.net>
* ref(ci): delete custom scripts for formattingFranck Cuny2022-08-061-6/+0
| | | | | | | | | | Since I have configured the pre-commit hooks, I can use them instead of my custom scripts: less things to maintain and easier to read output. Change-Id: Ic833ec88ed9fbcbe52b1b1680f978da3a5a08b31 Reviewed-on: https://cl.fcuny.net/c/world/+/681 Tested-by: CI Reviewed-by: Franck Cuny <franck@fcuny.net>
* feat(flake): add more pre-commit hooksFranck Cuny2022-07-021-0/+12
| | | | | | | | | | | Add pre-commit hooks for: - trailing white spaces - new lines at the end of files Change-Id: I02b5c125064b1cc43e3dfcd7504f60df50846c36 Reviewed-on: https://cl.fcuny.net/c/world/+/593 Tested-by: CI Reviewed-by: Franck Cuny <franck@fcuny.net>
* feat(flake): add pre-commit hooksFranck Cuny2022-06-281-0/+29
| | | | | | | | | And configure them to run nixpkgs-fmt and shellcheck. Change-Id: I0aa2025e368b80c5e7d90a4dc05448494525e31e Reviewed-on: https://cl.fcuny.net/c/world/+/590 Reviewed-by: Franck Cuny <franck@fcuny.net> Tested-by: CI
* ref(flake): import tools top-level moduleFranck Cuny2022-06-281-6/+1
| | | | | | | Change-Id: I22fad8e0dcdc7c678ea4d7b9235fa5fe4fcdd84d Reviewed-on: https://cl.fcuny.net/c/world/+/589 Reviewed-by: Franck Cuny <franck@fcuny.net> Tested-by: CI
* ref(flake): move `nixosConfigurations` at the bottomFranck Cuny2022-06-281-43/+48
| | | | | | | | | This is more readable. Change-Id: Ibdb6cf2f880f8fe3be80f9049bdf18b2d9120b91 Reviewed-on: https://cl.fcuny.net/c/world/+/587 Reviewed-by: Franck Cuny <franck@fcuny.net> Tested-by: CI
* ref(flake): be specific about which systems we supportFranck Cuny2022-06-281-2/+8
| | | | | | | | | For now the only system we support with nix is linux on x86. Change-Id: Ia7d6173ab0be674e9be706f9c0eb02937aa87ac6 Reviewed-on: https://cl.fcuny.net/c/world/+/586 Reviewed-by: Franck Cuny <franck@fcuny.net> Tested-by: CI
* ref(flake): rename utils to futilsFranck Cuny2022-06-281-2/+2
| | | | | | | | | This name is more specific (f is for flake in this case). Change-Id: Iaad98d8325b81cfe1af8b692ef7cd13586f251e6 Reviewed-on: https://cl.fcuny.net/c/world/+/585 Reviewed-by: Franck Cuny <franck@fcuny.net> Tested-by: CI
* fix(flake): remove duplicated definition of flake-utilsFranck Cuny2022-06-281-2/+0
| | | | | | | Change-Id: I8cb6cfcc89fd2c4167a99a27f8e50d954bacdf6a Reviewed-on: https://cl.fcuny.net/c/world/+/584 Tested-by: CI Reviewed-by: Franck Cuny <franck@fcuny.net>
* feat(tools/git-blame-stats): add the tool to nix configurationFranck Cuny2022-06-181-0/+1
| | | | | | | Change-Id: Iea045c74a32dc26b9a39da79f49308a85ec237cc Reviewed-on: https://cl.fcuny.net/c/world/+/446 Tested-by: CI Reviewed-by: Franck Cuny <franck@fcuny.net>
* feat(ipconverter): add the tool to nixFranck Cuny2022-06-181-0/+1
| | | | | | | Change-Id: Ie98ad07ac4de61fc25f9a9821fb5617d12ea5f70 Reviewed-on: https://cl.fcuny.net/c/world/+/442 Tested-by: CI Reviewed-by: Franck Cuny <franck@fcuny.net>
* ci(default): add `apps.ci.shellcheck` to flake.nixFranck Cuny2022-06-101-2/+5
| | | | | | | | | | | | I can now run `nix run .#ci.shellcheck` to validate the shell scripts with shellcheck in the repository. The pipeline in buildKite will need to be updated. Change-Id: Ia52ede86adfa58c9615b0f9e290ef5d5b8adb303 Reviewed-on: https://cl.fcuny.net/c/world/+/409 Tested-by: CI Reviewed-by: Franck Cuny <franck@fcuny.net>
* fix(flake): install nixpkgs-fmt by defaultFranck Cuny2022-06-101-0/+1
| | | | | | | Change-Id: Ifc199c19e80f0c4f6beb5d04d981580c8edaadf6 Reviewed-on: https://cl.fcuny.net/c/world/+/405 Tested-by: CI Reviewed-by: Franck Cuny <franck@fcuny.net>
* ci(fmt): add a script to check the formattingFranck Cuny2022-06-101-2/+7
| | | | | | | | | | | | | | | | Add a script for CI to check that all the files are formatted correctly. This is done by using `treefmt' with a configuration for go and nix files (for now). Running `nix run .#ci.fmt' in the repository will check all the files, and fail if there's any problems. It will not modify any files. The pipeline in builKite needs to be updated to run that command. Change-Id: Iec91163f1ab56ceb0cfff6db8f8ce93367ebeefe Reviewed-on: https://cl.fcuny.net/c/world/+/403 Tested-by: CI Reviewed-by: Franck Cuny <franck@fcuny.net>
* fix(fmt): correct formatting for all nix filesFranck Cuny2022-06-101-1/+2
| | | | | | | | | This was done by running `nixpkgs-fmt .'. Change-Id: I4ea6c1e759bf468d08074be2111cbc7af72df295 Reviewed-on: https://cl.fcuny.net/c/world/+/404 Tested-by: CI Reviewed-by: Franck Cuny <franck@fcuny.net>
* feat(nix): update nix to version 22.05Franck Cuny2022-06-091-2/+2
| | | | | | | | | | | | | NixOS 22.05 was released last month. Bump the versions for both nixos and home-manager. I also need to make a few changes for this update work (packages were renamed, options were addded to tailscale, ...) Change-Id: I84ed9f21915b769c9f7b8e21988b2b021715c982 Reviewed-on: https://cl.fcuny.net/c/world/+/365 Tested-by: CI Reviewed-by: Franck Cuny <franck@fcuny.net>
* ref(nix): move the mkSystem function to its own fileFranck Cuny2022-06-091-12/+3
| | | | | | | | Make the default system be x86-linux. Change-Id: I13e00e4d4cb8b7c49cc549509e37a6d0f022a051 Reviewed-on: https://cl.fcuny.net/c/world/+/299 Reviewed-by: Franck Cuny <franck@fcuny.net>
* ref(nix): rename lib/ to nix/Franck Cuny2022-06-091-1/+1
| | | | | | Change-Id: If1e608b89b39bd5a53a37b873833a7ea881cb418 Reviewed-on: https://cl.fcuny.net/c/world/+/298 Reviewed-by: Franck Cuny <franck@fcuny.net>
* meta: remove pre-commit checksFranck Cuny2022-05-301-10/+0
| | | | | | | | This is not working as I want. Change-Id: I5c2a96c77585b84fb68bcd661773a3056a0288f4 Reviewed-on: https://cl.fcuny.net/c/world/+/170 Reviewed-by: Franck Cuny <franck@fcuny.net>
* tools(govanity): add the tool to flake.nixFranck Cuny2022-05-291-1/+4
| | | | Change-Id: Ib2792fa8c3f861d290f2495a10672cdfd11c48d9
* ref(dnsupdate): move under toolsFranck Cuny2022-05-251-7/+1
| | | | | | | | | Integrate properly the tool `dnsupdate` with flake.nix, by adding a default.nix inside its directory. Having all the tools under a directory named `tools` is easier to reason about. I don't need a go.mod at the top level directory either, each tool will have its own.
* ref(notes): drop flake.nixFranck Cuny2022-05-251-0/+1
| | | | | | | There's no need to have a flake.nix for the notes, we can use the same mechanism as for the blog and resume. Add a README so I remember how to use this in the future.
* ref(resume): remove flake.nixFranck Cuny2022-05-251-1/+4
| | | | | | | Integrate the resume with the rest of the repository, as I did for the blog in the previous commit. Added a script to copy the resume in the static directory of the blog.
* ref(blog): drop the flake configurationFranck Cuny2022-05-251-0/+2
| | | | | | There's no need to have multiple `flake.nix` in the repository. Make the blog part of the flake configuration at the root level of the repository, delete the one in the blog, and update the documentation.
* nix: add a command `dnsupdate` to update the DNSFranck Cuny2022-05-071-1/+13
| | | | | Running `nix run .#dnsupdate` will execute the program to ensure the configuration is correct.
* flake: add checksFranck Cuny2022-04-131-0/+12
| | | | This is not working great so far.
* remove `mkHome` from libFranck Cuny2022-04-091-22/+0
| | | | | home-manager configuration is used as a module, we don't have two different ways to configure the host anymore.
* home-manager: add `isTrusted`Franck Cuny2022-04-031-0/+2
| | | | | | | | | | Install and configure some programs only on trusted machines. On trusted machines, my mails, GPG and a few other things are configured. A machine where this is not needed on a regular basis to get things done don't need that much information. Also rename `desktop/trust` to `trusted`, in case we want these packages on a host that is not a desktop, and `trusted` is a better description.
* rename `desktop` to `isDesktop`Franck Cuny2022-04-031-2/+2
| | | | | | | | The variable is used to define the kind of machine we're managing. `isDesktop` is a bit more descriptive. We import `devel` for all machines, and we fine tune which packages we want to install based on the value of `isDesktop`.
* remove mytoolsFranck Cuny2022-04-031-7/+0
| | | | I don't need this for now, as I've replace music-organizer with beets.
* nas: install music-organizer from the main branchFranck Cuny2022-03-271-1/+1
|
* nas: install music-organizerFranck Cuny2022-03-271-5/+16
|
* flake: add new overlay: NURFranck Cuny2022-02-271-0/+2
| | | | NUR is the nux user repository, which provides additional packages.
* hosts: add tahoe, the new NASFranck Cuny2022-02-271-0/+9
|
* agenix: add flake for agenixFranck Cuny2022-02-211-0/+5
| | | | This will be used to store secrets in the repository.
* hosts: add aptosFranck Cuny2022-02-211-0/+10
| | | | | aptos is my laptop (dell xps 13'). This adds the initial configuration for it.
* emacs: pull community's overlayFranck Cuny2022-02-131-0/+2
| | | | We need the community overlay to get the pure GTK port of Emacs for now.
* fix a few errorsFranck Cuny2022-02-101-1/+0
|
* nix: fix a bunch of stuffFranck Cuny2022-02-101-2/+5
|
* home-manager: split the configurationFranck Cuny2022-02-101-16/+31
|
* home-manager: simplify the configurationFranck Cuny2022-02-091-4/+1
| | | | | | | | | | | | | I'm still struggling with documentation, and I'd rather have something simple that works rather than smart and does not work. The configuration for the host imports the modules that are relevant to that host (in the case of carmel, desktop and systems). For the home-manager, I create a profile "desktop" that contains stuff related to a desktop (i3, etc), and it includes the module "common" that contains stuff that I want on any machines (so that in the future, for a machine that is a server, the home manager will only import "common").
* i3: separate configuration for xserver and i3Franck Cuny2022-02-081-5/+1
| | | | | Let's first configure the xserver in the desktop module, then we can have a configuration for i3 in the home-manager.
* home-manager: fix initial configurationFranck Cuny2022-02-081-0/+9
| | | | | This configuration is working, and I'm still unclear of how this is supposed to be done correctly. Might need to iterate a few more times.
* carmel: apply systems and desktop modulesFranck Cuny2022-02-081-0/+2
|
* flake: pull home-manager and unstableFranck Cuny2022-02-071-1/+10
|
* flake: install my user on carmelFranck Cuny2022-02-071-0/+1
|
* carmel: initial host configurationFranck Cuny2022-02-071-0/+21
Initial configuration for the desktop (carmel).