My Nix Infra
nix nixos
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

use git cli to set gitconfig, rm unused containerfiles, add csrootca

ydcjeff 97a9b8ad 4939420a

+66 -194
-20
config/.gitconfig
··· 1 - [color] 2 - ui = true 3 - [push] 4 - default = simple 5 - [fetch] 6 - prune = true 7 - [pull] 8 - rebase = true 9 - [user] 10 - name = ydcjeff 11 - email = n2ya@duck.com 12 - [core] 13 - editor = nvim 14 - [init] 15 - defaultBranch = main 16 - [includeIf "gitdir/i:/home/ydcjeff/cc/"] 17 - path = /home/ydcjeff/.config/git/gitconfig-cc 18 - [credential "https://gitlab.it.cs.nycu.edu.tw"] 19 - helper = 20 - helper = !/usr/bin/glab auth git-credential
+4
config/fish/config.fish
··· 39 39 if type -q uvx 40 40 uvx --generate-shell-completion fish | source 41 41 end 42 + 43 + if type -q zoxide 44 + zoxide init fish | source 45 + end
-4
containers/Containerfile-alpine-php
··· 65 65 RUN groupadd -g ${GID} ${USER} && useradd -G wheel -u ${UID} -g ${GID} -M ${USER} 66 66 67 67 RUN composer global require squizlabs/php_codesniffer laravel/pint 68 - 69 - COPY . .dotfiles/ 70 - RUN bash .dotfiles/install/dotconfig.sh && \ 71 - chown -R ${USER}:${USER} /home/${HOME_DIR}
-30
containers/Containerfile-arch
··· 1 - FROM quay.io/toolbx/arch-toolbox 2 - 3 - # ARG gc after FROM 4 - ARG KUBECTL_VERSION 5 - 6 - RUN pacman -Syu --noconfirm 7 - RUN pacman -S --noconfirm \ 8 - fastfetch \ 9 - fish \ 10 - bat \ 11 - fzf \ 12 - neovim \ 13 - curl \ 14 - glab \ 15 - go \ 16 - shellcheck 17 - 18 - ARG USER 19 - ARG UID 20 - ARG GID 21 - ARG HOME_DIR 22 - ENV HOME=/home/${HOME_DIR} 23 - WORKDIR /home/${HOME_DIR} 24 - RUN groupadd -g ${GID} ${USER} && useradd -G wheel -u ${UID} -g ${GID} -M ${USER} 25 - 26 - COPY ./containers/install_local_bins.sh . 27 - RUN KUBECTL_VERSION=${KUBECTL_VERSION} bash install_local_bins.sh 28 - COPY ./*.fish ./*.sh ./*.toml ./gitconfig* .dotfiles/ 29 - RUN .dotfiles/setup.sh && \ 30 - chown -R ${USER}:${USER} /home/${HOME_DIR}
-30
containers/Containerfile-fedora
··· 1 - FROM quay.io/fedora/fedora-toolbox 2 - 3 - # ARG gc after FROM 4 - ARG KUBECTL_VERSION 5 - 6 - RUN sudo dnf up -y 7 - RUN sudo dnf install -y \ 8 - fastfetch \ 9 - fish \ 10 - bat \ 11 - fzf \ 12 - neovim \ 13 - curl \ 14 - glab \ 15 - golang \ 16 - shellcheck 17 - 18 - ARG USER 19 - ARG UID 20 - ARG GID 21 - ARG HOME_DIR 22 - ENV HOME=/home/${HOME_DIR} 23 - WORKDIR /home/${HOME_DIR} 24 - RUN groupadd -g ${GID} ${USER} && useradd -G wheel -u ${UID} -g ${GID} -M ${USER} 25 - 26 - COPY ./containers/install_local_bins.sh . 27 - RUN KUBECTL_VERSION=${KUBECTL_VERSION} bash install_local_bins.sh 28 - COPY ./*.fish ./*.sh ./*.toml ./gitconfig* .dotfiles/ 29 - RUN .dotfiles/setup.sh && \ 30 - chown -R ${USER}:${USER} /home/${HOME_DIR}
-31
containers/install_local_bins.sh
··· 1 - #!/usr/bin/env bash 2 - # Install common tools via compiled binaries 3 - 4 - set -e 5 - 6 - curl -LO "https://dl.k8s.io/release/v$KUBECTL_VERSION/bin/linux/amd64/kubectl" 7 - curl -LO "https://dl.k8s.io/release/v$KUBECTL_VERSION/bin/linux/amd64/kubectl.sha256" 8 - echo "$(cat kubectl.sha256) kubectl" | sha256sum --check 9 - sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl && rm -rf kubectl.sha256 kubectl 10 - echo "=> installed kubectl $KUBECTL_VERSION" 11 - 12 - go install github.com/google/go-jsonnet/cmd/jsonnet@latest 13 - go install github.com/google/go-jsonnet/cmd/jsonnetfmt@latest 14 - go install github.com/google/go-jsonnet/cmd/jsonnet-lint@latest 15 - echo "=> install go-jsonnet (jsonnet)" 16 - 17 - go install -a github.com/jsonnet-bundler/jsonnet-bundler/cmd/jb@latest 18 - echo "=> install jsonnet-bundler (jb)" 19 - 20 - curl -sS https://starship.rs/install.sh | sh -s -- -y 21 - curl -LsSf https://astral.sh/uv/install.sh | sh 22 - curl -fsSL https://get.pnpm.io/install.sh | sh 23 - 24 - source ~/.bashrc 25 - pnpm env use --global lts 26 - 27 - # shell completions 28 - mkdir -p ~/.config/fish/completions 29 - pnpm completion fish > ~/.config/fish/completions/pnpm.fish 30 - echo 'uv generate-shell-completion fish | source' > ~/.config/fish/completions/uv.fish 31 - echo 'uvx --generate-shell-completion fish | source' > ~/.config/fish/completions/uvx.fish
-79
containers/setup.sh
··· 1 - #!/usr/bin/env bash 2 - 3 - set -e 4 - 5 - DIRNAME=$(dirname "$(realpath "$0")") 6 - CONTEXT_DIR=$(dirname "$DIRNAME") 7 - DISTRO=$(grep -i ^id /etc/os-release | cut -d= -f2) 8 - DEFAULT_ALPINE_VERSION=3.21 9 - DEFAULT_PHP_VERSION=83 10 - DEFAULT_KUBECTL_VERSION=$(curl -L -s https://dl.k8s.io/release/stable.txt | tr -d v) 11 - USER=$(whoami) 12 - USER_ID=$(id -u) 13 - GID=$(id -g) 14 - 15 - command -v podman >/dev/null || (echo "podman not found" && exit 1) 16 - command -v toolbox >/dev/null || (echo "toolbox not found" && exit 1) 17 - 18 - ##### cc www alpine backend PHP dev env 19 - TAG=cc-www-alpine${ALPINE_VERSION//./}-php$PHP_VERSION 20 - echo "=> init $TAG toolbox..." 21 - read -rp "Alpine version ($DEFAULT_ALPINE_VERSION): " ALPINE_VERSION 22 - read -rp "PHP version ($DEFAULT_PHP_VERSION): " PHP_VERSION 23 - ALPINE_VERSION=${ALPINE_VERSION:-$DEFAULT_ALPINE_VERSION} 24 - PHP_VERSION=${PHP_VERSION:-$DEFAULT_PHP_VERSION} 25 - 26 - TAG=cc-www-alpine${ALPINE_VERSION//./}-php$PHP_VERSION 27 - podman build -f "$DIRNAME"/Containerfile-alpine-php \ 28 - --build-arg ALPINE_VERSION="$ALPINE_VERSION" \ 29 - --build-arg PHP_VERSION="$PHP_VERSION" \ 30 - --build-arg HOME_DIR="$USER" \ 31 - --build-arg USER="$USER" \ 32 - --build-arg UID="$USER_ID" \ 33 - --build-arg GID="$GID" \ 34 - -t "$TAG" \ 35 - "$CONTEXT_DIR" 36 - toolbox create -i "$TAG" "$TAG" || echo 37 - 38 - if [[ "$DISTRO" == *"arch"* ]]; then 39 - ##### Common dev env w/ Arch Linux 40 - TAG=arch-devcontainer 41 - echo "=> init $TAG toolbox..." 42 - read -rp "Kubectl version ($DEFAULT_KUBECTL_VERSION): " KUBECTL_VERSION 43 - KUBECTL_VERSION=${KUBECTL_VERSION:-$DEFAULT_KUBECTL_VERSION} 44 - podman build -f "$DIRNAME"/Containerfile-arch \ 45 - --build-arg KUBECTL_VERSION="$KUBECTL_VERSION" \ 46 - --build-arg HOME_DIR="$TAG" \ 47 - --build-arg USER="$USER" \ 48 - --build-arg UID="$USER_ID" \ 49 - --build-arg GID="$GID" \ 50 - -t "$TAG" \ 51 - "$CONTEXT_DIR" 52 - toolbox create -i "$TAG" "$TAG" || echo 53 - podman start "$TAG" 54 - podman exec -u "$USER" "$TAG" curl --proto '=https' --tlsv1.2 -L https://nixos.org/nix/install -o nix.sh 55 - podman exec -u "$USER" "$TAG" sh nix.sh --no-daemon 56 - elif [[ "$DISTRO" == *"fedora"* ]]; then 57 - ##### common dev env w/ Fedora 58 - TAG=fedora-devcontainer 59 - echo "=> init $TAG toolbox..." 60 - read -rp "Kubectl version ($DEFAULT_KUBECTL_VERSION): " KUBECTL_VERSION 61 - KUBECTL_VERSION=${KUBECTL_VERSION:-$DEFAULT_KUBECTL_VERSION} 62 - podman build -f "$DIRNAME"/Containerfile-fedora \ 63 - --build-arg KUBECTL_VERSION="$KUBECTL_VERSION" \ 64 - --build-arg HOME_DIR="$TAG" \ 65 - --build-arg USER="$USER" \ 66 - --build-arg UID="$USER_ID" \ 67 - --build-arg GID="$GID" \ 68 - -t "$TAG" \ 69 - "$CONTEXT_DIR" 70 - toolbox create -i "$TAG" "$TAG" || echo 71 - podman start "$TAG" 72 - podman exec -u "$USER" "$TAG" curl --proto '=https' --tlsv1.2 -L https://nixos.org/nix/install -o nix.sh 73 - podman exec -u "$USER" "$TAG" sh nix.sh --no-daemon 74 - else 75 - echo "no Containerfile for distro id $DISTRO" 76 - exit 1 77 - fi 78 - 79 - podman image prune -f
+4
flake.nix
··· 47 47 nodejs_24 48 48 phpEnv 49 49 phpEnv.packages.composer 50 + kubelogin-oidc 51 + redis 52 + go-jsonnet 53 + jsonnet-bundler 50 54 ]; 51 55 }; 52 56 }
+43
modules/nixos.nix
··· 228 228 229 229 # https://discourse.nixos.org/t/slow-build-at-building-man-cache/52365/3 230 230 documentation.man.generateCaches = false; 231 + 232 + security.pki.certificates = [ 233 + # csrootca 234 + '' 235 + -----BEGIN CERTIFICATE----- 236 + MIIGfTCCBGWgAwIBAgIJANtNHd4pchD1MA0GCSqGSIb3DQEBDQUAMIHUMQswCQYD 237 + VQQGEwJUVzEPMA0GA1UECAwGVGFpd2FuMRYwFAYDVQQHDA1Ic2luLUNodSBDaXR5 238 + MScwJQYDVQQKDB5OYXRpb25hbCBDaGlhby1UdW5nIFVuaXZlcnNpdHkxJzAlBgNV 239 + BAsMHkRlcGFydG1lbnQgb2YgQ29tcHV0ZXIgU2NpZW5jZTEmMCQGA1UEAwwdTkNU 240 + VSBDUyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkxIjAgBgkqhkiG9w0BCQEWE2hlbHBA 241 + Y3MubmN0dS5lZHUudHcwHhcNMTcxMjA2MTc0MzE2WhcNMjcxMjA0MTc0MzE2WjCB 242 + 1DELMAkGA1UEBhMCVFcxDzANBgNVBAgMBlRhaXdhbjEWMBQGA1UEBwwNSHNpbi1D 243 + aHUgQ2l0eTEnMCUGA1UECgweTmF0aW9uYWwgQ2hpYW8tVHVuZyBVbml2ZXJzaXR5 244 + MScwJQYDVQQLDB5EZXBhcnRtZW50IG9mIENvbXB1dGVyIFNjaWVuY2UxJjAkBgNV 245 + BAMMHU5DVFUgQ1MgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MSIwIAYJKoZIhvcNAQkB 246 + FhNoZWxwQGNzLm5jdHUuZWR1LnR3MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC 247 + CgKCAgEAvOZF59xipyzkRVbWTqMCf94ucr4ze6mTtctDnqpFFRfFC0ksXKVFZbhf 248 + /N9dSTw+i8WJQY/RZc5jHNx7E+fnNdURBQniyuiXBTTicoVYp1Uef56CAYbEZDfp 249 + VQmmovcGv8gEuZ4L/CFMwsFFFab2epS7A7u7wk0dnhFBpvC0RigqQIwtlBc/M0WA 250 + a8C9cwBzxpblpa0TY3pMbI3KPxLnflTrlPqCrlcWCuChen3Z1Lzu5C9EgavPJsYU 251 + bmGwOayP4cie59dVYzCrmi6/XHMsfWuJ4vAHVOJqV1JeKbS65MfOVE+UVNKAGaLO 252 + a6RaVcy0M5IAhTGSi+kZeBgVC0c5yoNZ7NHyG1EOOBg6CoNsWW4B8F2780s6ofRG 253 + Ukl2+HGf6nvqgUsU3cyyZ09OFk4gDTPAj24VSG5uAdCUst1aaTxwl2yr1jNHSy3R 254 + pxjGkx7DGWBveRwFl9sTxAyD+k/7eJ+ygJk4D5JxaMsOM334aBwsYoqhzwePL7SC 255 + LXcj92qj4DFasCmQSFUpKkT7YLJvTi16RwGM2qGklSTfxm5jWCI6XXNTkgyPZXZd 256 + 76QnyCkT3w224M/g5MziPFyMrHfYnJl2tX2AKq6qS32uk6UQw1FH4lpxPuLc5F// 257 + yXG4/5j3+apMm3jhFcIQ3vuqZV3kz88HeeuBPbRwajkrhPxS/BcCAwEAAaNQME4w 258 + HQYDVR0OBBYEFNPLn9RQJ0u6prsffVi3a0QGxSgjMB8GA1UdIwQYMBaAFNPLn9RQ 259 + J0u6prsffVi3a0QGxSgjMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQENBQADggIB 260 + AGd5PjBAeWqpAM7kaGrKHY/d+kS1tKPH/c9HJcIsrZGNImKyuJ0KXLhmwIBMrARQ 261 + 9Ly2km8FZEo1LKPd6EYzKzru/xUdY/vz2UO/4aouOyNn6rI9umXaahPKElSN6gka 262 + NIPY7DpGcaCmtMzE13e7wbh9IkqwWPrzRNwaZKybWyWp6/AJCSc6PoqqW0+3plBA 263 + XuCDlM6XJF8duqWcdJKBcdCwdYdrHtb0xcwEG4XF+G04R6uEA0AfCIylvwjOAKN/ 264 + 5AeiYJ+hz837XE3i1CZmsNR5uo1erijVuyMN8DD/9pr2QwYP/4b7nCSDMckTrHez 265 + um7gMtYIoy4OnLvSddjUboRpor/iaE1H/3LK1gvnMbII45EhUdPKIN2/nlfY0g5T 266 + jx9OW2UXl33WlZT7oA1II87CV2H6k72TnH6fDjGFepWPsnJQ+Fk7+zHSbJEIFJzr 267 + 49rK+dahSjt3C9GB7aJu/NOhGA1W8iaWEyYPO/FOfmvJZwMlZgbeN0utWyJ1zsi5 268 + DWaofN3JwjaAD4nJfIbTF1iINJ3NhjIRETTQ31G/AWhV8H8ZCK+4iE+rQ3OuWzYU 269 + vd5u4z/jaVcUnJKukM0e9VAgxEC7A8rRFgko5XjKXrCZgkzbhQWA0uzYvx0ghIMe 270 + x8AH/WxuNFhZq3OmgppgVaGeuOvN7xSEbLACAOekJWp1 271 + -----END CERTIFICATE----- 272 + '' 273 + ]; 231 274 }
+4
modules/pkgs.nix
··· 64 64 # nix 65 65 nixfmt-tree 66 66 67 + # k8s 68 + kubectl 69 + k9s 70 + 67 71 pnpm 68 72 uv 69 73 ]
+11
scripts/cp-config.sh
··· 8 8 if [[ ! -d "$HOME"/.config/nvim ]]; then 9 9 git clone https://github.com/LazyVim/starter "$HOME"/.config/nvim 10 10 fi 11 + 12 + # git defaults 13 + git config --global color.ui true 14 + git config --global push.default simple 15 + git config --global fetch.prune true 16 + git config --global pull.rebase true 17 + git config --global user.name "ydcjeff" 18 + git config --global user.email "n2ya@duck.com" 19 + git config --global core.editor "nvim" 20 + git config --global init.defaultBranch main 21 + git config --global includeIf.gitdir/i:"$HOME"/cc/.path "$HOME"/.config/git/gitconfig-cc