From 637f1fd7a5d00695e575f631cf0c4aeb0e9e87f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20Bori?= Date: Sun, 10 Mar 2024 19:31:17 +0000 Subject: [PATCH] feat: `chezmoi` post removed FOSS post for the moment --- posts/chezmoi.md | 56 +++++++++++++++++++++++ posts/teeworlds-utilities.md | 6 +-- {posts => posts_archives}/theoboricafe.md | 0 public_gemini/chezmoi.gmi | 53 +++++++++++++++++++++ public_gemini/index.gmi | 2 +- public_gemini/teeworlds-utilities.gmi | 2 +- public_gemini/tf-neuvector.gmi | 4 +- public_gemini/websites.gmi | 8 ++++ public_gopher/chezmoi.gph | 36 +++++++++++++++ public_gopher/index.gph | 2 +- public_gopher/teeworlds-utilities.gph | 2 +- public_gopher/tf-neuvector.gph | 2 + public_gopher/websites.gph | 12 +++++ 13 files changed, 177 insertions(+), 8 deletions(-) create mode 100644 posts/chezmoi.md rename {posts => posts_archives}/theoboricafe.md (100%) create mode 100644 public_gemini/chezmoi.gmi create mode 100644 public_gopher/chezmoi.gph diff --git a/posts/chezmoi.md b/posts/chezmoi.md new file mode 100644 index 0000000..125a316 --- /dev/null +++ b/posts/chezmoi.md @@ -0,0 +1,56 @@ +--- +title: Manage dotfiles with chezmoi +date: "2024-03-10" +--- + +To give a bit of context, I had automated the deployment of the configuration of my Linux environment with an Ansible playbook ([repository](https://github.com/theobori/self-config)). This setup is compatible with almost all Linux distributions (probably UNIX too) but I was looking for something lighter and simpler. + +  + +I found by chance [chezmoi](https://chezmoi.io) which is able to manage dotfiles as well as some other configurations which could be linked to these dotfiles. The tool allows you to update files on several different machines, it's very complete, simple and effective. + +Some people pair it with Ansible but I prefer to use the solution in a very simple way, with the tool's native features (scripting and templating). + +  + +Something interesting about [chezmoi](https://chezmoi.io) is that it supports file encryption with modern tools like [age](https://age-encryption.org). This is very useful for certain sensitive data such as SSH private keys. So you can add configuration so that the tool can encrypt and decrypt. + +My configuration template looks like this (below) in the `.chezmoi.yaml.tmpl` file. + +  + +{% raw %} +```jinja2 +{{ $has_age := false }} + +{{ if stdinIsATTY }} +{{ $has_age = promptBool "do you have age " }} +{{ end }} + +encryption: "age" +{{ if $has_age }} +age: + identity: "/home/nagi/.config/age/key.txt" + recipient: "age14m06fd3svs9neg2w97ccw3c8470hckl95qxr6jw8fgm4ex65352q6tun06" +{{ end }} +``` +{% endraw %} +  + +For the moment the repository is only compatible with Fedora only, however it is easy to implement other distributions. + +## Apply from a different machine +  + +To apply my configuration from another machine, simply run the following commands. + +```bash +chezmoi init https://github.com/theobori/dotfiles.git +chezmoi apply -v +``` + +## Links + +[https://github.com/theobori/dotfiles](https://github.com/theobori/dotfiles) + +  diff --git a/posts/teeworlds-utilities.md b/posts/teeworlds-utilities.md index ff2ab5c..4e85acf 100644 --- a/posts/teeworlds-utilities.md +++ b/posts/teeworlds-utilities.md @@ -31,7 +31,7 @@ Indirectly, other people use it, for example, to render skins in a Discord chann

  -## Use cases +## Use case examples   ### Teeworlds skin rendering @@ -72,8 +72,8 @@ try { ### Result (4K)

- - + +

  diff --git a/posts/theoboricafe.md b/posts_archives/theoboricafe.md similarity index 100% rename from posts/theoboricafe.md rename to posts_archives/theoboricafe.md diff --git a/public_gemini/chezmoi.gmi b/public_gemini/chezmoi.gmi new file mode 100644 index 0000000..4781131 --- /dev/null +++ b/public_gemini/chezmoi.gmi @@ -0,0 +1,53 @@ +# Manage dotfiles with chezmoi +## 2024-03-10 +To give a bit of context, I had automated the deployment of the configuration of my Linux environment with an Ansible playbook ( +=> https://github.com/theobori/self-config repository +). This setup is compatible with almost all Linux distributions (probably UNIX too) but I was looking for something lighter and simpler. + +I found by chance +=> https://chezmoi.io chezmoi +which is able to manage dotfiles as well as some other configurations which could be linked to these dotfiles. The tool allows you to update files on several different machines, it's very complete, simple and effective. + +Some people pair it with Ansible but I prefer to use the solution in a very simple way, with the tool's native features (scripting and templating). + +Something interesting about +=> https://chezmoi.io chezmoi +is that it supports file encryption with modern tools like +=> https://age-encryption.org age +. This is very useful for certain sensitive data such as SSH private keys. So you can add configuration so that the tool can encrypt and decrypt. + +My configuration template looks like this (below) in the .chezmoi.yaml.tmpl file. + +{% raw %} + +```jinja2 +{{ $has_age := false }} + +{{ if stdinIsATTY }} +{{ $has_age = promptBool "do you have age " }} +{{ end }} + +encryption: "age" +{{ if $has_age }} +age: + identity: "/home/nagi/.config/age/key.txt" + recipient: "age14m06fd3svs9neg2w97ccw3c8470hckl95qxr6jw8fgm4ex65352q6tun06" +{{ end }} +``` + +{% endraw %} + +For the moment the repository is only compatible with Fedora only, however it is easy to implement other distributions. + +## Apply from a different machine + +To apply my configuration from another machine, simply run the following commands. + +```bash +chezmoi init https://github.com/theobori/dotfiles.git +chezmoi apply -v +``` + +## Links + +=> https://github.com/theobori/dotfiles https://github.com/theobori/dotfiles diff --git a/public_gemini/index.gmi b/public_gemini/index.gmi index 1dd893c..660c13b 100644 --- a/public_gemini/index.gmi +++ b/public_gemini/index.gmi @@ -31,13 +31,13 @@ I can be reached via Discord (b0th) or via nagi@cock.li. => gopher://tilde.pink:70/1/~nagi Gopher ## Posts +=> /~nagi/chezmoi.gmi Manage dotfiles with chezmoi - mar 2024 => /~nagi/ebpf.gmi eBPF essentials - jan 2024 => /~nagi/pubnix.gmi Public access UNIX systems - oct 2023 => /~nagi/teeworlds.gmi Play Teeworlds through Docker - oct 2023 => /~nagi/mozilla.gmi NGINX for Mozilla HTTP Observatory - oct 2023 => /~nagi/tf-ovh.gmi Terraform OVH external DNS records - oct 2023 => /~nagi/knockd_ufw.gmi OpenSSH port knocking with UFW - oct 2023 -=> /~nagi/theoboricafe.gmi FOSS accessible services - sep 2023 => /~nagi/teeworlds-utilities.gmi Teeworlds utilities - jul 2023 => /~nagi/tf-neuvector.gmi Terraform NeuVector provider - jun 2023 => /~nagi/tf-doom.gmi Terraform chaos engineering - jun 2023 diff --git a/public_gemini/teeworlds-utilities.gmi b/public_gemini/teeworlds-utilities.gmi index ad0ae96..bc7feb9 100644 --- a/public_gemini/teeworlds-utilities.gmi +++ b/public_gemini/teeworlds-utilities.gmi @@ -13,7 +13,7 @@ Indirectly, other people use it, for example, to render skins in a Discord chann => https://teeassembler.developer.li/ TeeAssembler 2.0 that used some part of the **teeworlds-utilites** code. -## Use cases +## Use case examples ### Teeworlds skin rendering diff --git a/public_gemini/tf-neuvector.gmi b/public_gemini/tf-neuvector.gmi index f052ea9..1c059e0 100644 --- a/public_gemini/tf-neuvector.gmi +++ b/public_gemini/tf-neuvector.gmi @@ -79,4 +79,6 @@ resource "neuvector_service_config" "service_config_test" { ## Links -=> https://github.com/theobori/terraform-provider-neuvector https://github.com/theobori/terraform-provider-neuvector +=> https://github.com/theobori/terraform-provider-neuvector https://github.com/theobori/terraform-provider-neuvector + +=> https://registry.terraform.io/providers/theobori/neuvector/latest https://registry.terraform.io/providers/theobori/neuvector diff --git a/public_gemini/websites.gmi b/public_gemini/websites.gmi index 05b5e29..98cf479 100644 --- a/public_gemini/websites.gmi +++ b/public_gemini/websites.gmi @@ -84,6 +84,14 @@ By losing myself on the Internet, I find some very interesting things, most of t => https://tmpout.sh/ tmpout.sh * => https://n0.lol/ n0.lol +* +=> https://webzine.puffy.cafe/ webzine.puffy.cafe +* +=> https://www.analognowhere.com/ analognowhere.com +* +=> https://si3t.ch/ si3t.ch +* +=> https://why-openbsd.rocks/ why-openbsd.rocks ## Tor diff --git a/public_gopher/chezmoi.gph b/public_gopher/chezmoi.gph new file mode 100644 index 0000000..a480253 --- /dev/null +++ b/public_gopher/chezmoi.gph @@ -0,0 +1,36 @@ +Manage dotfiles with chezmoi +2024-03-10 +Last edit: 2024-03-10 +--------------------- + +To give a bit of context, I had automated the deployment of the configuration of my Linux environment with an Ansible playbook ( +[h|repository|URL:https://github.com/theobori/self-config|tilde.pink|70] +). This setup is compatible with almost all Linux distributions (probably UNIX too) but I was looking for something lighter and simpler. + +I found by chance +[h|chezmoi|URL:https://chezmoi.io|tilde.pink|70] + which is able to manage dotfiles as well as some other configurations which could be linked to these dotfiles. The tool allows you to update files on several different machines, it's very complete, simple and effective. + +Some people pair it with Ansible but I prefer to use the solution in a very simple way, with the tool's native features (scripting and templating). + +Something interesting about +[h|chezmoi|URL:https://chezmoi.io|tilde.pink|70] + is that it supports file encryption with modern tools like [age](https://age-encryption.org). This is very useful for certain sensitive data such as SSH private keys. So you can add configuration so that the tool can encrypt and decrypt. + +My configuration template looks like this (below) in the `.chezmoi.yaml.tmpl` file. + +For the moment the repository is only compatible with Fedora only, however it is easy to implement other distributions. + +## Apply from a different machine + +To apply my configuration from another machine, simply run the following commands. + +```bash +chezmoi init https://github.com/theobori/dotfiles.git +chezmoi apply -v +``` + +## Links + +[h|https://github.com/theobori/dotfiles|URL:https://github.com/theobori/dotfiles|tilde.pink|70] + diff --git a/public_gopher/index.gph b/public_gopher/index.gph index 0bbb628..a8b0c51 100644 --- a/public_gopher/index.gph +++ b/public_gopher/index.gph @@ -29,13 +29,13 @@ I can be reached via Discord (b0th) or via nagi@cock.li. gemini://tilde.pink/~nagi ## Posts +[1|Manage dotfiles with chezmoi - mar 2024|/~nagi/chezmoi.gph|70] [1|eBPF essentials - jan 2024|/~nagi/ebpf.gph|tilde.pink|70] [1|Public access UNIX systems - oct 2023|/~nagi/pubnix.gph|tilde.pink|70] [1|Play Teeworlds through Docker - oct 2023|/~nagi/teeworlds.gph|tilde.pink|70] [1|NGINX for Mozilla HTTP Observatory - oct 2023|/~nagi/mozilla.gph|tilde.pink|70] [1|Terraform OVH external DNS records - oct 2023|/~nagi/tf-ovh.gph|tilde.pink|70] [1|OpenSSH port knocking with UFW - oct 2023|/~nagi/knockd_ufw.gph|tilde.pink|70] -[1|FOSS accessible services - sep 2023|/~nagi/theoboricafe.gph|tilde.pink|70] [1|Teeworlds utilities - jul 2023|/~nagi/teeworlds-utilities.gph|tilde.pink|70] [1|Terraform NeuVector provider - jun 2023|/~nagi/tf-neuvector.gph|tilde.pink|70] [1|Terraform chaos engineering - jun 2023|/~nagi/tf-doom.gph|tilde.pink|70] diff --git a/public_gopher/teeworlds-utilities.gph b/public_gopher/teeworlds-utilities.gph index fde6140..4ed38d5 100644 --- a/public_gopher/teeworlds-utilities.gph +++ b/public_gopher/teeworlds-utilities.gph @@ -15,7 +15,7 @@ Indirectly, other people use it, for example, to render skins in a Discord chann [h|TeeAssembler 2.0|URL:https://teeassembler.developer.li/|tilde.pink|70] that used some part of the **`teeworlds-utilites`** code. -## Use cases +## Use case examples ### Teeworlds skin rendering diff --git a/public_gopher/tf-neuvector.gph b/public_gopher/tf-neuvector.gph index f33b839..70980d6 100644 --- a/public_gopher/tf-neuvector.gph +++ b/public_gopher/tf-neuvector.gph @@ -84,3 +84,5 @@ resource "neuvector_service_config" "service_config_test" { [h|https://github.com/theobori/terraform-provider-neuvector|URL:https://github.com/theobori/terraform-provider-neuvector|tilde.pink|70] +[h|https://registry.terraform.io/providers/theobori/neuvector|URL:https://registry.terraform.io/providers/theobori/neuvector/latest|tilde.pink|70] + diff --git a/public_gopher/websites.gph b/public_gopher/websites.gph index b18f7e4..e71df3f 100644 --- a/public_gopher/websites.gph +++ b/public_gopher/websites.gph @@ -125,6 +125,18 @@ By losing myself on the Internet, I find some very interesting things, most of t - [h|n0.lol|URL:https://n0.lol/|tilde.pink|70] +- +[h|webzine.puffy.cafe|URL:https://webzine.puffy.cafe/|tilde.pink|70] + +- +[h|analognowhere.com|URL:https://www.analognowhere.com/|tilde.pink|70] + +- +[h|si3t.ch|URL:https://si3t.ch/|tilde.pink|70] + +- +[h|why-openbsd.rocks|URL:https://why-openbsd.rocks/|tilde.pink|70] + ## Tor -