Files
homelab/infrastructure/graduated/fedora/fedora-kinoite.md
ducoterra 463f3d142d
All checks were successful
Reese's Arch Toolbox / build-and-push-arch-toolbox (push) Successful in 6m29s
Streamline and consolidate arch toolbox containerfile
2024-11-27 11:01:22 -05:00

413 lines
7.6 KiB
Markdown

# Fedora Kinoite
- [Fedora Kinoite](#fedora-kinoite)
- [Podman](#podman)
- [Libvirt, Qemu, KVM](#libvirt-qemu-kvm)
- [Apps](#apps)
- [VSCode](#vscode)
- [Bitwarden](#bitwarden)
- [MPV](#mpv)
- [Nextcloud Desktop](#nextcloud-desktop)
- [Nextcloud Talk](#nextcloud-talk)
- [Discord](#discord)
- [Proton Mail](#proton-mail)
- [Gimp](#gimp)
- [Minecraft](#minecraft)
- [Moonlight](#moonlight)
- [Steam](#steam)
- [Marknote](#marknote)
- [Raspberry Pi Imager](#raspberry-pi-imager)
- [Fedora Media Writer](#fedora-media-writer)
- [Pods](#pods)
- [Bambu Studio](#bambu-studio)
- [Eyedropper](#eyedropper)
- [Mingle](#mingle)
- [Mission Center](#mission-center)
- [Obsidian](#obsidian)
- [Dev Toolbox](#dev-toolbox)
- [Junction](#junction)
- [Kdenlive](#kdenlive)
- [The Powder Toy](#the-powder-toy)
- [Pika](#pika)
- [Toolbox](#toolbox)
- [Reese's Arch Toolbox](#reeses-arch-toolbox)
- [Pipx/Poetry](#pipxpoetry)
- [Using Reese's Arch Toolbox](#using-reeses-arch-toolbox)
- [Updating Reese's Arch Toolbox](#updating-reeses-arch-toolbox)
- [Building Reese's Arch Toolbox](#building-reeses-arch-toolbox)
## 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`:
```bash
# Podman auth file
export REGISTRY_AUTH_FILE=$HOME/.podman-auth.json
```
Source that and then run `podman login` to create the file.
## Libvirt, Qemu, KVM
```bash
rpm-ostree install virt-manager
systemctl enable --now libvirtd
```
## Apps
Flatpak installs are from Flathub unless otherwise noted.
### VSCode
Write code.
```bash
flatpak install com.visualstudio.code
```
Add to settings.json so the host shell is spawned
```json
{
"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.
```bash
flatpak install com.bitwarden.desktop
```
### MPV
Video player (like VLC but can frame-by-frame in reverse).
```bash
flatpak install io.mpv.Mpv
```
### Nextcloud Desktop
Sync your files.
```bash
flatpak install com.nextcloud.desktopclient.nextcloud
```
### Nextcloud Talk
Talk to your friends.
Download nextcloud talk from:
<https://github.com/nextcloud-releases/talk-desktop/releases>
```bash
flatpak install ./Nextcloud.Talk-linux-x64.flatpak
```
### Discord
Talk to your enemies.
```bash
flatpak install com.discordapp.Discord
```
### Proton Mail
Talk to your business partners?
```bash
flatpak install me.proton.Mail
```
### Gimp
Photoshop for Linux.
```bash
flatpak install org.gimp.GIMP
```
### Minecraft
Mine. Craft.
```bash
flatpak install com.mojang.Minecraft
```
### Moonlight
Mine. Craft. But somewhere else.
```bash
flatpak install com.moonlight_stream.Moonlight
```
### Steam
Play games.
```bash
flatpak install com.valvesoftware.Steam
```
### Marknote
Take notes with Mark.
```bash
flatpak install org.kde.marknote
```
### Raspberry Pi Imager
Flash your pi.
```bash
flatpak install org.raspberrypi.rpi-imager
```
### Fedora Media Writer
Flash your stick.
```bash
flatpak install org.fedoraproject.MediaWriter
```
### Pods
Remember Docker Desktop? Pods is the new Docker Desktop.
```bash
flatpak install com.github.marhkb.Pods
```
### Bambu Studio
Benchy benchy benchy benchy
```bash
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:
(Do this with Bambu Studio closed, it'll overwrite if it's open.)
```json
{
"user_access_code": {
"printer serial number": "access code here"
},
...
}
```
### Eyedropper
Pick a color, any color (from your screen).
```bash
flatpak install com.github.finefindus.eyedropper
```
### Mingle
Create custom emojis.
```bash
flatpak install io.github.halfmexican.Mingle
```
### Mission Center
Literally Windows task manager but for linux and it's awesome
```bash
flatpak install io.missioncenter.MissionCenter
```
### Obsidian
Show your friends your massive graph
```bash
flatpak install md.obsidian.Obsidian
```
### Dev Toolbox
Format JSON, base64 encode, and color blindness simulator.
```bash
flatpak install me.iepure.devtoolbox
```
### Junction
Choose how to open links you click on
```bash
flatpak install re.sonny.Junction
```
### Kdenlive
Edit videos without Adobe
```bash
flatpak install org.kde.kdenlive
```
### The Powder Toy
I love sandboxes.
```bash
uk.co.powdertoy.tpt
```
### Pika
Backup with Borg.
```bash
flatpak install org.gnome.World.PikaBackup
```
## Toolbox
```bash
# 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
```bash
# 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
#### Pipx/Poetry
<https://python-poetry.org/docs/>
```bash
# pipx is already installed but the pathing won't work for installed apps
pipx ensurepath # then source ~/.zshrc or ~/.bashrc
pipx install poetry
# Now this should work.
poetry new test-project
```
### Using Reese's Arch Toolbox
```bash
toolbox create -i gitea.reeseapps.com/services/arch-toolbox:latest
SHELL=/bin/zsh toolbox enter arch-toolbox-latest
```
### Updating Reese's Arch Toolbox
```bash
# 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):
```bash
# Build latest image
podman build \
--no-cache \
-t gitea.reeseapps.com/services/arch-toolbox:latest \
-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
```
In vscode you can set this as your default build task for homelab and trigger it with
`ctrl shift B`
.vscode/tasks.json
```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
}
}
]
}
```