Files
homelab/infrastructure/graduated/fedora/fedora-kinoite.md
2024-11-25 23:17:25 -05:00

6.2 KiB

Fedora Kinoite

Podman

Since you'll be using podman for most container-based services, you'll want to set the the podman auth file to somewhere persistent, otherwise it'll get deleted every time you reboot.

Add this to your .bashrc:

# Podman auth file
export REGISTRY_AUTH_FILE=$HOME/.podman-auth.json

Source that and then run podman login to create the file.

Apps

Flatpak installs are from Flathub unless otherwise noted.

VSCode

Write code.

flatpak install com.visualstudio.code

Add to settings.json so the host shell is spawned

{
    "terminal.integrated.defaultProfile.linux": "bash",
    "terminal.integrated.profiles.linux": {
        "bash": {
            "path": "/app/bin/host-spawn",
            "args": ["bash"],
            "icon": "terminal-bash",
            "overrideName": true
        }
    }
}

Bitwarden

Password manager.

flatpak install com.bitwarden.desktop

MPV

Video player (like VLC but can frame-by-frame in reverse).

flatpak install io.mpv.Mpv

Nextcloud Desktop

Sync your files.

flatpak install com.nextcloud.desktopclient.nextcloud

Nextcloud Talk

Talk to your friends.

Download nextcloud talk from:

https://github.com/nextcloud-releases/talk-desktop/releases

flatpak install ./Nextcloud.Talk-linux-x64.flatpak

Discord

Talk to your enemies.

flatpak install com.discordapp.Discord

Proton Mail

Talk to your business partners?

flatpak install me.proton.Mail

Gimp

Photoshop for Linux.

flatpak install org.gimp.GIMP

Minecraft

Mine. Craft.

flatpak install com.mojang.Minecraft

Moonlight

Mine. Craft. But somewhere else.

flatpak install com.moonlight_stream.Moonlight

Steam

Play games.

flatpak install com.valvesoftware.Steam

Marknote

Take notes with Mark.

flatpak install org.kde.marknote

Raspberry Pi Imager

Flash your pi.

flatpak install org.raspberrypi.rpi-imager

Fedora Media Writer

Flash your stick.

flatpak install org.fedoraproject.MediaWriter

Pods

Remember Docker Desktop? Pods is the new Docker Desktop.

flatpak install com.github.marhkb.Pods

Bambu Studio

Benchy benchy benchy benchy

flatpak install com.bambulab.BambuStudio

The config is located at ~/.var/app/com.bambulab.BambuStudio/config/BambuStudio/BambuStudio.conf

At the very top of the config you can add a pin for a printer permanently with:

{
    "user_access_code": {
        "printer serial number": "access code here"
    },
    ...
}

Toolbox

# Create and use an Arch Toolbox
toolbox create --distro arch
toolbox enter arch-toolbox-latest

I'd recommend adding this alias to your .bashrc to make things easier

# Toolbox quick enter
alias tbox='SHELL=zsh toolbox enter arch-toolbox-latest'

Reese's Arch Toolbox

I have a custom arch image based on the default arch-toolbox image. It offers:

  • zsh with many completions installed/enabled
  • vim
  • nslookup
  • iperf3
  • kubectl
  • helm
  • nethogs
  • python, pip, and pipx
  • ansible
  • aws cli
  • ollama (add export OLLAMA_HOST=my.ollama.host to your .zshrc to use a remote host)
  • podman (connected automatically to the host machine via the unix socket)
  • tmux

Using Reese's Arch Toolbox

toolbox create -i gitea.reeseapps.com/services/arch-toolbox:latest
SHELL=/bin/zsh toolbox enter arch-toolbox-latest

Updating Reese's Arch Toolbox

# Stop the current arch toolbox
podman container stop arch-toolbox-latest
# Remove the old container
podman container rm arch-toolbox-latest
# Pull the new image
podman pull gitea.reeseapps.com/services/arch-toolbox:latest
# Start with the new image
toolbox create -i gitea.reeseapps.com/services/arch-toolbox:latest

Building Reese's Arch Toolbox

You can build and run the image wit this (See Containerfile in this directory):

# Build latest image
podman build \
    -t gitea.reeseapps.com/services/arch-toolbox:latest \
    -t gitea.reeseapps.com/services/arch-toolbox:$(date +%s) \
    -f ./infrastructure/graduated/fedora/Containerfile

# Test with podman
podman run -it --rm gitea.reeseapps.com/services/arch-toolbox:latest

# Stop the current arch toolbox
podman container stop arch-toolbox-latest
# Remove the old container
podman container rm arch-toolbox-latest
# Start with the new image
toolbox create -i gitea.reeseapps.com/services/arch-toolbox:latest
SHELL=/bin/zsh toolbox enter

You can push the image up to your registry like normal:

# Push all tags for the "latest" image
podman image ls \
    -f 'reference=gitea.reeseapps.com/services/arch-toolbox:latest' \
    -n --no-trunc --format '{{ .Repository }}:{{ .Tag }}' \
    | xargs -I {} podman push {}

In vscode you can set this as your default build task for homelab and trigger it with ctrl shift B

.vscode/tasks.json

{
    // See https://go.microsoft.com/fwlink/?LinkId=733558
    // for the documentation about the tasks.json format
    "version": "2.0.0",
    "tasks": [
        {
            "label": "Build arch-toolbox",
            "type": "shell",
            "command": "./infrastructure/graduated/fedora/arch-build.sh",
            "problemMatcher": [],
            "group": {
                "kind": "build",
                "isDefault": true
            }
        }
    ]
}