My Nix Infra
nix nixos
0
fork

Configure Feed

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

feat: podman based devcontainers

+210 -5
+9
.editorconfig
··· 1 + root = true 2 + 3 + [*] 4 + indent_style = tab 5 + tab_width = 2 6 + indent_size = 2 7 + end_of_line = lf 8 + insert_final_newline = true 9 + trim_trailing_whitespace = true
+1 -1
abbr.fish
··· 41 41 abbr -a ggr "git log --reverse --pretty=format:\"%C(bold red)%h%Creset -%C(bold yellow)%d%Creset %s %C(bold green)(%cr) %C(bold blue)<%an>%Creset %C(yellow)%ad%Creset\" --abbrev-commit --date=short" 42 42 43 43 # dotfiles 44 - abbr -a dot "cd ~/.dotfiles" 44 + abbr -a dot "cd $HOME/.dotfiles" 45 45 abbr -a rl "source $FISH_CONFIG" 46 46 47 47 # recursively delete .DS_Store
+1 -4
config.fish
··· 8 8 set -gx fish_color_command 00ff00 9 9 set -gx fish_greeting 10 10 11 - fish_add_path $HOME/.cargo/bin 12 - fish_add_path $HOME/.deno/bin 13 - fish_add_path $HOME/.config/composer/vendor/bin 14 - fish_add_path $HOME/.local/share/pnpm 11 + fish_add_path /root/.composer/vendor/bin 15 12 16 13 source $DOTFILES_PATH/abbr.fish 17 14
+56
containers/Containerfile-alpine-php
··· 1 + ARG ALPINE_VERSION 2 + FROM quay.io/toolbx-images/alpine-toolbox:${ALPINE_VERSION} 3 + 4 + # ARG gc after FROM 5 + ARG PHP_VERSION 6 + 7 + RUN apk add \ 8 + fish \ 9 + starship \ 10 + bat \ 11 + fzf \ 12 + curl \ 13 + ca-certificates \ 14 + # php & its family 15 + composer \ 16 + icu-data-full \ 17 + imagemagick-jpeg \ 18 + imagemagick-heic \ 19 + php${PHP_VERSION} \ 20 + php${PHP_VERSION}-phar \ 21 + php${PHP_VERSION}-curl \ 22 + php${PHP_VERSION}-iconv \ 23 + php${PHP_VERSION}-mbstring \ 24 + php${PHP_VERSION}-openssl \ 25 + php${PHP_VERSION}-zip \ 26 + php${PHP_VERSION} \ 27 + php${PHP_VERSION}-dom \ 28 + php${PHP_VERSION}-fileinfo \ 29 + php${PHP_VERSION}-json \ 30 + php${PHP_VERSION}-xml \ 31 + php${PHP_VERSION}-mbstring \ 32 + php${PHP_VERSION}-openssl \ 33 + php${PHP_VERSION}-tokenizer \ 34 + php${PHP_VERSION}-xmlwriter \ 35 + php${PHP_VERSION}-curl \ 36 + php${PHP_VERSION}-simplexml \ 37 + php${PHP_VERSION}-pecl-redis \ 38 + php${PHP_VERSION}-pdo_mysql \ 39 + php${PHP_VERSION}-session \ 40 + php${PHP_VERSION}-iconv \ 41 + php${PHP_VERSION}-sodium \ 42 + php${PHP_VERSION}-pecl-imagick \ 43 + php${PHP_VERSION}-gd \ 44 + php${PHP_VERSION}-ctype \ 45 + php${PHP_VERSION}-pdo \ 46 + php${PHP_VERSION}-xmlreader \ 47 + php${PHP_VERSION}-zlib \ 48 + php${PHP_VERSION}-intl \ 49 + php${PHP_VERSION}-ldap \ 50 + php${PHP_VERSION}-pecl-grpc \ 51 + php${PHP_VERSION}-pecl-opentelemetry 52 + 53 + RUN composer global require squizlabs/php_codesniffer laravel/pint 54 + 55 + ADD csrootca.crt /usr/local/share/ca-certificates/ 56 + RUN update-ca-certificates
+18
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 + shellcheck 16 + 17 + COPY install_common.sh . 18 + RUN KUBECTL_VERSION=${KUBECTL_VERSION} bash install_common.sh && rm -rf install_common.sh
+18
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 + shellcheck 16 + 17 + COPY install_common.sh . 18 + RUN KUBECTL_VERSION=${KUBECTL_VERSION} bash install_common.sh && rm -rf install_common.sh
+38
containers/csrootca.crt
··· 1 + -----BEGIN CERTIFICATE----- 2 + MIIGfTCCBGWgAwIBAgIJANtNHd4pchD1MA0GCSqGSIb3DQEBDQUAMIHUMQswCQYD 3 + VQQGEwJUVzEPMA0GA1UECAwGVGFpd2FuMRYwFAYDVQQHDA1Ic2luLUNodSBDaXR5 4 + MScwJQYDVQQKDB5OYXRpb25hbCBDaGlhby1UdW5nIFVuaXZlcnNpdHkxJzAlBgNV 5 + BAsMHkRlcGFydG1lbnQgb2YgQ29tcHV0ZXIgU2NpZW5jZTEmMCQGA1UEAwwdTkNU 6 + VSBDUyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkxIjAgBgkqhkiG9w0BCQEWE2hlbHBA 7 + Y3MubmN0dS5lZHUudHcwHhcNMTcxMjA2MTc0MzE2WhcNMjcxMjA0MTc0MzE2WjCB 8 + 1DELMAkGA1UEBhMCVFcxDzANBgNVBAgMBlRhaXdhbjEWMBQGA1UEBwwNSHNpbi1D 9 + aHUgQ2l0eTEnMCUGA1UECgweTmF0aW9uYWwgQ2hpYW8tVHVuZyBVbml2ZXJzaXR5 10 + MScwJQYDVQQLDB5EZXBhcnRtZW50IG9mIENvbXB1dGVyIFNjaWVuY2UxJjAkBgNV 11 + BAMMHU5DVFUgQ1MgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MSIwIAYJKoZIhvcNAQkB 12 + FhNoZWxwQGNzLm5jdHUuZWR1LnR3MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC 13 + CgKCAgEAvOZF59xipyzkRVbWTqMCf94ucr4ze6mTtctDnqpFFRfFC0ksXKVFZbhf 14 + /N9dSTw+i8WJQY/RZc5jHNx7E+fnNdURBQniyuiXBTTicoVYp1Uef56CAYbEZDfp 15 + VQmmovcGv8gEuZ4L/CFMwsFFFab2epS7A7u7wk0dnhFBpvC0RigqQIwtlBc/M0WA 16 + a8C9cwBzxpblpa0TY3pMbI3KPxLnflTrlPqCrlcWCuChen3Z1Lzu5C9EgavPJsYU 17 + bmGwOayP4cie59dVYzCrmi6/XHMsfWuJ4vAHVOJqV1JeKbS65MfOVE+UVNKAGaLO 18 + a6RaVcy0M5IAhTGSi+kZeBgVC0c5yoNZ7NHyG1EOOBg6CoNsWW4B8F2780s6ofRG 19 + Ukl2+HGf6nvqgUsU3cyyZ09OFk4gDTPAj24VSG5uAdCUst1aaTxwl2yr1jNHSy3R 20 + pxjGkx7DGWBveRwFl9sTxAyD+k/7eJ+ygJk4D5JxaMsOM334aBwsYoqhzwePL7SC 21 + LXcj92qj4DFasCmQSFUpKkT7YLJvTi16RwGM2qGklSTfxm5jWCI6XXNTkgyPZXZd 22 + 76QnyCkT3w224M/g5MziPFyMrHfYnJl2tX2AKq6qS32uk6UQw1FH4lpxPuLc5F// 23 + yXG4/5j3+apMm3jhFcIQ3vuqZV3kz88HeeuBPbRwajkrhPxS/BcCAwEAAaNQME4w 24 + HQYDVR0OBBYEFNPLn9RQJ0u6prsffVi3a0QGxSgjMB8GA1UdIwQYMBaAFNPLn9RQ 25 + J0u6prsffVi3a0QGxSgjMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQENBQADggIB 26 + AGd5PjBAeWqpAM7kaGrKHY/d+kS1tKPH/c9HJcIsrZGNImKyuJ0KXLhmwIBMrARQ 27 + 9Ly2km8FZEo1LKPd6EYzKzru/xUdY/vz2UO/4aouOyNn6rI9umXaahPKElSN6gka 28 + NIPY7DpGcaCmtMzE13e7wbh9IkqwWPrzRNwaZKybWyWp6/AJCSc6PoqqW0+3plBA 29 + XuCDlM6XJF8duqWcdJKBcdCwdYdrHtb0xcwEG4XF+G04R6uEA0AfCIylvwjOAKN/ 30 + 5AeiYJ+hz837XE3i1CZmsNR5uo1erijVuyMN8DD/9pr2QwYP/4b7nCSDMckTrHez 31 + um7gMtYIoy4OnLvSddjUboRpor/iaE1H/3LK1gvnMbII45EhUdPKIN2/nlfY0g5T 32 + jx9OW2UXl33WlZT7oA1II87CV2H6k72TnH6fDjGFepWPsnJQ+Fk7+zHSbJEIFJzr 33 + 49rK+dahSjt3C9GB7aJu/NOhGA1W8iaWEyYPO/FOfmvJZwMlZgbeN0utWyJ1zsi5 34 + DWaofN3JwjaAD4nJfIbTF1iINJ3NhjIRETTQ31G/AWhV8H8ZCK+4iE+rQ3OuWzYU 35 + vd5u4z/jaVcUnJKukM0e9VAgxEC7A8rRFgko5XjKXrCZgkzbhQWA0uzYvx0ghIMe 36 + x8AH/WxuNFhZq3OmgppgVaGeuOvN7xSEbLACAOekJWp1 37 + -----END CERTIFICATE----- 38 +
+17
containers/install_common.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 + install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl 10 + rm -rf kubectl.sha256 11 + echo "=> installed kubectl $KUBECTL_VERSION" 12 + echo 13 + 14 + curl -sS https://starship.rs/install.sh | sh -s -- -y 15 + curl -LsSf https://astral.sh/uv/install.sh | env UV_INSTALL_DIR=/usr/local/bin sh 16 + curl -fsSL https://get.pnpm.io/install.sh | env PNPM_HOME=/usr/local/bin sh 17 + # curl --proto '=https' --tlsv1.2 -L https://nixos.org/nix/install | sh -s -- --no-daemon
+52
containers/setup.sh
··· 1 + #!/usr/bin/env bash 2 + 3 + set -e 4 + 5 + DIRNAME=$(dirname $(realpath $0)) 6 + DISTRO=$(grep -i ^id /etc/os-release | cut -d= -f2) 7 + DEFAULT_ALPINE_VERSION=3.21 8 + DEFAULT_PHP_VERSION=83 9 + DEFAULT_KUBECTL_VERSION=$(curl -L -s https://dl.k8s.io/release/stable.txt | tr -d v) 10 + 11 + command -v podman > /dev/null || (echo "podman not found" && exit 1) 12 + command -v toolbox > /dev/null || (echo "podman not found" && exit 1) 13 + 14 + ##### cc www alpine backend PHP dev env 15 + TAG=cc-www-alpine${ALPINE_VERSION//./}-php$PHP_VERSION 16 + echo "=> init $TAG toolbox..." 17 + read -p "Alpine version ($DEFAULT_ALPINE_VERSION): " ALPINE_VERSION 18 + read -p "PHP version ($DEFAULT_PHP_VERSION): " PHP_VERSION 19 + ALPINE_VERSION=${ALPINE_VERSION:-$DEFAULT_ALPINE_VERSION} 20 + PHP_VERSION=${PHP_VERSION:-$DEFAULT_PHP_VERSION} 21 + 22 + TAG=cc-www-alpine${ALPINE_VERSION//./}-php$PHP_VERSION 23 + podman build -f $DIRNAME/Containerfile-alpine-php \ 24 + --build-arg ALPINE_VERSION=$ALPINE_VERSION \ 25 + --build-arg PHP_VERSION=$PHP_VERSION \ 26 + -t $TAG 27 + toolbox create -i $TAG $TAG 28 + 29 + if [[ $DISTRO == *"arch"* ]]; then 30 + ##### Common dev env w/ Arch Linux 31 + TAG=arch-devcontainer 32 + echo "=> init $TAG toolbox..." 33 + read -p "Kubectl version ($DEFAULT_KUBECTL_VERSION): " KUBECTL_VERSION 34 + KUBECTL_VERSION=${KUBECTL_VERSION:-$DEFAULT_KUBECTL_VERSION} 35 + podman build -f $DIRNAME/Containerfile-arch \ 36 + --build-arg KUBECTL_VERSION=$KUBECTL_VERSION \ 37 + -t $TAG 38 + toolbox create -i $TAG $TAG 39 + elif [[ $DISTRO == *"fedora"* ]]; then 40 + ##### common dev env w/ Fedora 41 + TAG=fedora-devcontainer 42 + echo "=> init $TAG toolbox..." 43 + read -p "Kubectl version ($DEFAULT_KUBECTL_VERSION): " KUBECTL_VERSION 44 + KUBECTL_VERSION=${KUBECTL_VERSION:-$DEFAULT_KUBECTL_VERSION} 45 + podman build -f $DIRNAME/Containerfile-fedora \ 46 + --build-arg KUBECTL_VERSION=$KUBECTL_VERSION \ 47 + -t $TAG 48 + toolbox create -i $TAG $TAG 49 + else 50 + echo "no Containerfile for distro id $DISTRO" 51 + exit 1 52 + fi