-
I built a simple app for adding images to my blog
Quick Deets I built a simple fastAPI app called "shotput" that I run locally inside a git repo where I save images for my blog. The app is simple: upl
-
Double check your CIDR blocks!
I use tailscale at home and generally love it. One thing I use it for is whitelisting - so I have some apps publically available and my homelab ones have DNS wi
-
homelab-journey-part-1
Introduction I want to start writing about my homelab and this first post can be a short introduction to how I got into homelabbing and a review of my current h
-
Autopost in Postiz
Testing if the autopost feature in postiz will work
-
Backups interrupted by full disk usage
I just got a message from HCIO that my primary backup script is late... This happens every now and then but I decided to check on it... Quickly `ssh` in and I n
-
Windows Update Broke Wifi
Windows Update Behind My Back After an unapproved windows update on a machine I help administer for my church, the wifi became super finnicky. I had installed a
-
Backups are dope
I accidently chown'd -R an app directory and it totally screwed up the database folder. Luckily I zfs replicate my docker volumes to another drive even on
-
Aurora U-Blue ZRAM Config
I keep running out of space with my swap getting maxxed out... I don't know why but U-Blue uses Zram already and apparently I can easily override the defau
-
Pandas.DataFrame info always answers and is sometimes right
TIL Today I learned that the `.info()` of a `pandas.DataFrame` will always give you an answer, but it is wildly difficult to know how accurate it is, because it
-
SearXNG
I heard about [SearXNG](https://searxng.org) on a couple podcasts and saw it trending on GitHub several times before I finally decided to stand it up. I used i
-
My MCP Configuration
My MCP The Tools Docker RAGDocs Sequential Thinking Git Not Tried Yet https://github.com/modelcontextprotocol/servers/tree/main/src/sqlite The Config
-
I was wrecked by a weird combo of >> and -e
TL;DR If state matters then check it in the beginning or handle it on a failure... Let me explain I ran into some trouble recently _almost_ losing some encrypte
-
Grafana + Gotify for push notifications
It's easy to configure push notifications through Gotify from Grafana by setting up a generic `Webhook` Alerting Contact Point... The parameters are: HTTP
-
SMB with ZFS on Ubuntu
sudo apt-get install -y samba \\ then set sharesmb=on \\ chown the user \\ smbpasswd <user> -a \\ then mount with user/password from other machine
-
Recovering from zpool corruption when you're short a drive
can only mount tank RO so casn't rename also can't detach which is what I'd want Could import pool witn -N to not mount any datasets detach and a
-
The Importance of Nostr According to ChatGPT
Disclaimer This was written by ChatGPT with zero oversight from me. There are a few things that are not 100% accurate, but the main idea is there... I am hoping
-
Deployments are not StatefulSets
I was debugging some ArgoCD stuff earlier today and I love using k9s to explore my k8s resources. The TLDR is that I put some bad env vars in the `global` value
-
docker context (and an issue to question your sanity)
docker contexts are great, would recommend putting them in your prompt though (via starship or something else)... here's why I like to manage my containers
-
Add a healthcheck to your FastAPI app
I'm building a few FastAPI apps to throw in docker and run on my homelab... I wanted to add healthchecks and here's a simple way to do it Make sure to
-
statically.io to help me out
[statically.io](https://statically.io) offers a CDN that I'm going to try to lean into for images in my blog. My hope is that the builds get and stay fast,
-
D and uninterruptable sleep
Htop I recently have been having significant home server issues, and that's not the point of this - today I learned what `D` state is when looking at htop.
-
Stylus for custom webpage themes
the Logos web app is DISGUSTINGY bright/white - enough to actually ruin your morning... Thankfully there's an extension called [stylus](https://addons.mozi
-
DNS Broke After Reboot - Ubuntu 22.04
I rebooted by server and DNS broke randomly. I have no idea if it was from a kernel update or what but that's the issue with Ubuntu I guess... After much t
-
OPNSense Bootstrap Recovery
enabling DHCP WAN port (`dhclient <iface>`)- running the bootstrap script - `sh /usr/local/sbin/opnsense-bootstrap`
-
Docker copy and chown
COPY --chown=myuser:mygroup source-file target-file
-
docker-remote-add
Add from url?? ADD http://example.com/cars.csv /tmp/cars.csv Unpack automatically!? (.tar, .tar.gz, .tgz, .bz2, .tbz2, .txz, .zip) ADD myapp.tar.gz /opt/myapp/
-
Switching from AltaCV to RenderCV for my Resume
I was using a fun LaTex-based project for managing my resume called [AltaCV](https://github.com/liantze/AltaCV). I loved the customization and was familiar with
-
Interesting IPs between Jellyfin clients and server depending on tailscale and server address
When connecting from my phone to jellyfin I'm seeing some interesting patterns. Scenarios Tailscale IP of phone is listed as local network to jellyfin Wifi
-
Upgrading your kernel can F you up... whoops
https://forum.proxmox.com/threads/update-error-with-coral-tpu-drivers.136888/#post-608975 I lost TPU for frigate, this saved me ass
-
Customize K9s
To customize k9s use the skins from catppuccin or the ones k9s supplies Then edit your k9s config Other k9s skins are available [here](https://github.com/derail
-
Kanboard to keep me focused on my own ideas
TL;DR I've been using kanboard as a self-hosted kanban board. It's keeping me focused on [Digital Harbor](https://myditialharbor.com) when I'd ra
-
DHCP Restart to Save Ubuntu 22.04 Server Networking
I moved a computer to a remote location for an off-site backup but when it was powered on it wouldn't show up on any networks. A solution that got me back
-
Simple Port Forwarding OPNSense
https://forum.opnsense.org/index.php?topic=8783.0
-
Refresh Nextcloud Groupfolders after messing around on the filesystem
Exec in as www-data and run ./occ groupfolders:scan folder_id -v (the -v to see what it's doing)
-
lsof to find what's using your filesystem
lsof | grep /tank/nas shows me what is using my nas at any time!
-
Changing ZFS key for child datasets of encrypted dataset after migration
➜ pihole sudo zfs load-key -L file:///path/to/.zfs.tank.key tank/encrypted/vms/arch-sandbox ➜ pihole sudo zfs change-key -o keylocation=file:///path/to/.zfs.tan
-
Convert Word Doc to PDF with Headless Libreoffice
I've been using paperless-ngx to manage all my documents, but every once in a while I'll get a `.docx` file to deal with... Turns out Libreoffice has
-
Stable Diffusion Notes
ChatGPT Prompt: Stable Diffusion is an AI art generation model similar to DALLE-2. Here are some prompts for generating art with Stable Diffusion. Example: A gh
-
FFMPEG 10-bit videos to 8-bit
`ffmpeg -i input.mp4 -map 0 -c:v libx264 -vf format=yuv420p -c:a copy output.mp4`
-
i3-Like keyboard mapping in Pop_OS
I was introduced to tiling window managers through i3, which I use heavily on one of my machines. I have switched to Pop_OS! at home though, which has a tiling
-
Use non-standard named ssh keys with github
I was getting `(publickey denied)` when trying to push to GH using ssh. When I tested the connection I saw that a bunch of keys in ``~/.ssh/ were being attempte
-
Nextcloud Docker Upgrade Error
https://nicolasbouliane.com/blog/nextcloud-docker-upgrade-error
-
Modal Labs
Playing around with Modal Labs One of the first things I tried was a regular cron job... This can get deployed with `modal deploy --name <app name> <pa
-
Reminder about ssh-copy-id for SSH and Ansible
`ssh-copy-id -i my.key.pub <hostname probably from tailscale>` this makes sure I can run ansible from my desktop against VMs on my server easily if they
-
Systemd timer for syncoid
I have a bash script called `syncoid-job` which boils down to a barebones - I want to run this script hourly but as my user (notice the no-privilege-elevation f
-
Adding docker daemon.json broke docker
in /lib/systemd/system/docker.service there is an ExecStart command that got placed there when I setup Docker with Ansible - it threw the -H flag which told the
-
suda.vim for sudo access to files
I regularly need to edit system config files - take /etc/sanoid/sanoid.conf as an example... I'll want to play with something but if I don't start Neo
-
Cron for Nextcloud in Docker
AJAX wasn't cutting it, traditional crontab in containers doesn't make much sense to me, webcron is recommended but I don't want to register with
-
Call basicConfig to get Python log messages in iPython
Logging instead of printing I am trying to adopt `logger.debug` instead of `print` but ran into a confusing thing in ipython during Advent of Code... I riddled
-
New lines in Markdown tables
I wanted to break down some long lines in a Markdown table cell to make it look nicer on my blog but \n didn't do anything for me... turns out <br/>
-
Description of my proposed vimconf 2022 talk
Switching to Vim opened a whole new world to me for interacting with a computer and for getting things done. Before I adopted Vim I used GUIs for everything bec
-
Make a series of directories fast!
mkdir s{1..10} will make directories s1, s2, ... s10 in one command!
-
Case-insensitive search in Vim
/mysearch\c will match mysearch, MYSEARCH, mYSeArCh...
-
Limit zfs list to avoid docker vomit
zfs list has a flag -r, but if you use zfs driver for docker then you'll get flooded with every docker volume in the world. zfs list -r -d N will limit the
-
Don't forget to load XMP!
Bought some DDR4-3600 speed RAM but only seeing 2666? Load up the BIOS, find DRAM config or something similar, and make sure to load the XMP profile to get that
-
You can embed gifs?!
I learned you can embed gifs and stuch in things other than GH personal pages! So here I'll keep ones I like and might use later
-
My PassMark Scores
!!! note "Babyblue v2" !!! note "Venus " !!! note "Hogwarts" !!! note "Server 2 ... Change the name" !!! note "Serv
-
Suddenly SSH requires a password
ssh -v -i ~/.ssh/id_rsa nic@hogwarts THen we can look at print outs cat /var/log/auth.log also showed me that I had too wide permissions on files in ~/.ssh -&g
-
Quick setup of ZFS encrytped datasets with sane permissions
Assuming you have a pool called `tank`... And assuming you have an encrypted dataset (See [Jim Saltar's short intro](https://arstechnica.com/gadgets/2021/0
-
Check Your BIOS Version On Ubuntu
sudo dmidecode -s bios-version
-
Destroying Tmux sessions with fzf
I use Tmux and Vim for most of my workflow, but I end up with a lot of dangling tmux sessions that dont' really need to persist... but killing them one at
-
Trick to login to web server on another box on lan
TODO: change title - add --listen or --host or something as 0.0.0.0... that way it listens not on localhost or 127.0.0.1, but on all addresses!
-
Check your SMART status with smartctl
https://www.simplified.guide/linux/disk-health-check Install For ubuntu/debian based distros (which is what I primarly use presently) `sudo apt update -y &&
-
Benchmark your disks with fio
Intro I use ZFS at home in my homelab for basically all of my storage... Docker uses ZFS backend, all my VMs have their `.qcow2` images in their own zfs dataset
-
Playing with mdformat
-
Paperless-NGX filtering on IDs instead of values
To filter for saved views from the admin console you have to use the `id` of the tag you are using to filter on... Ex: filtering for tags "Inbox" does
-
Mounting exFAT USB in Linux
Steps `sudo fdisk -l` then look for the device and partition get the Type column mount Example
-
Xrdp-Authentication-Required-To-Create-Managed-Color-Device
I just need to RDP into an Ubuntu box via Remmina and everytime I login I have to authenticate to create a color managed device... which I don't even know
-
Self-hosted Docker registry with proxy pull through
I decided that I want to self-host all my docker images for the purposes of regularly rebuilding and security scanning. The first step is to set up a registry,
-
Setup KVM to boot from local PXE server
Assuming you have a PXE server running you only need small edits to the virt-manager config
-
Adding IP Camera to motionEye on Home Assistant OS
Dropdown menue in upper left - doesn't look like one but just click the name of the current device. URL will be `rtsp://<ip address>` <- this was
-
kvm-network-interface-via-nat-ubuntu-20
I have started using VMs more and more in my development workflow and it's impossible to work in a VM without an internet connection for me most of the tim
-
cheat on your man
`man` can be a pain to read... and there's lots of alternatives out there and one I've just started playing with is [cheat](https://github.com/cheat/c
-
Add colored indicators to your dataframes html representation
[Mike Driscoll](https://twitter.com/driscollis) recently tweeted about making colored out with pandas DataFrames and I just had to try it for myself Use Case Fi
-
Samba on Ubuntu 22 needs "inherit permissions" set
see samba config on hogwarts
-
Filtering emails with core utils
-
Reindex Nextcloud After Adding Data via CLI
My Nextcloud woes I wrote [here]("nextcloud-permissions-with-zfs-and-ansible-nas") about setting up `www-data` as the owner of any directories you wan
-
arr client config
TIL that when setting up download clients for radarr/sonarr/lidarr/readarr/bazarr/prowlarr that you can utilize internal DNS and instead of hardcoding an IP add
-
Add space to your LVM on Ubuntu
I ran out of space on the SSD in my server when doing some file transfers but only 100GB was used of a 256 GB SSD? LVM When installing Ubuntu live server the de
-
Tdarr worker nodes share the cache!
When working with tdarr remote nodes, they need to have access not only to the same libraries but also the same transcode cache as the server otherwise the tran
-
One click to dockerized app from Portainer!
I use portainer to monitor my docker applications at home. I like that it shows me which ports are mapped where for every container all in one view but every ti
-
Initial Proxmox Setup
`apt-get` by default wil go to the pve.enterprise repos so we need to point it to the non-enterprise ones.
-
Local DNS with Pi-hole
I get https URLs and domain resolution at home with pihole's DNS/CNAME records
-
Configure bridge network on Ubuntu 22.04 with Netplan
See 02-....yaml in ansible-nas
-
Netplan change from Focal to Jammy
I am revamping my home server and bumped myself early up to Jammy Jellyfish... however to my peril I reused my netplan config and after hitting my server with t
-
How I use Nextcloud for safe central storage
Setup admin External Storage extension Add my nas zfs dataset chown -R www-data:www-data on anything nextcloud uploads to.
-
Deleting files on remote storage from Ubuntu might not do what you think
From my daily driver Ubuntu machine I often open nautilus, dolphin, etc. and delete a file here or there on my NAS... turns out Ubuntu sends thse file to `.Tras
-
Nextcloud permissions with ZFS and Ansible-NAS
TL;DR As the nextcloud docs say... if you want to write to an external volume that location has to be writeable by the user/group `www-data` on the host system.
-
See ZFS snapshot disk usage
As I was cleaning up my NAS recently I noticed that I ran out of storage even though my disk usage looked pretty low... turns out I was keeping a mega-ton of ZF
-
Subset a list based on values in another list with itertools.compress
I have list [True, False, False, True] and another list [1, 2, 3, 4] and a use case where I want to filter list 2 based on list 1 to remove values that line up
-
Plug Snapshot!
:PlugSnapshot, :w ~/dotfiles/nvim/snapshot.vim... keep your config safe with git!
-
Filepath Completion in Neovim
I've had `Plug 'hrsh7th/cmp-path'` in my plugins for ever but didn't notice until recently that I wasn't getting any filepath completio
-
Dynamic-Form-Values-With-Jinja-And-Fastapi
I'm currently working on a self-hostable wish list app using FastAPI so we can finally drop Amazon forever. (The lists funcionality has been super handy fo
-
Forms with FastAPI and Jinja
I just started using FastAPI for a home project and needed to pass back a dynamic number of values from a form rendered with jinja... Dynamic Values The jinja t
-
Plug-Snapshot-To-Save-Your-Life
If you use vim-plug for managing your vim plugins, do yourself a favor and snapshot your plugins before upgrading! `:PlugSnapshot` creates a vim.snapshot file
-
Python-Eval
TODO
-
Dataframe-To-Styled-Html
I wrote up a little on exporting DataFrames to markdown and html [here](/dataframe-to-markdown) But I've been playing with a web app for with lists and whi
-
Dataframe-To-Markdown
Pandas `pandas.DataFrame`s are pretty sweet data structures in Python. I do a lot of work with tabular data and one thing I have incorporated into some of that
-
Wish-List-With-Fastapi
Amazon has crossed the line with me just one too many times now so we are looking to drop them like every other Big Tech provider.... However, one key feature o
-
Git-Bisect
I try to commit a lot, and I also try to write useful tests appropriate for the scope of work I'm focusing on, but sometimes I drop the ball... Whether by
-
Pandas-String-Contains
TL;DR `pandas.Series.str.contains` accepts regular expressions and this is turned on by __default__! Use case We often need to filter pandas DataFrames based on
-
Tdarr
-
Unpack-Anywhere-With-Star
Unpacking iterables in python with `*` is a pretty handy trick for writing code that is just a tiny bit more pythonic than not. But [@Ned Batchelder](https://tw
-
Htop
`htop` is a common command line tool for seeing interactive output of your system resource utilization, running processes, etc. I've always been super conf
-
Pipx
`pipx` is a tool I've been using to solve a few problems of mine... pinning formatting tools like `black`, `flake8`, `isort`, etc. to the same version for
-
Fx-Json
[fx](https://github.com/antonmedv/fx) is an interactaive JSON viewer for the terminal. It's a simple tool built with Charmcli's Bubble Tea. Installati
-
Jellyfin-Media-Players
I use Jellyfin at home for serving up most of our media - movies and shows etc. My dream is to have a GPU capable of transcoding any and all of our media for sm
-
Caps-Lock-Polybar
My moonlander is great, and I just recently added CAPS LOCK back to my keymapping but I've moved it... At present it is where the ESC kep usually is howeve
-
Terraform-01
I've started using [Terraform](https://www.terraform.io/) to manage Snowflake infrastructure at work. I'm still a noobie but I've got a workflow
-
Typeddict
Type hinting has helped me write code almost as much, if not more, than unit testing. One thing I love is that with complete type hinting you get a lot more out
-
Home-Server-Refactor
My current homelab setup is not great but it works... Proxmox on PowerEdge R610 I boot off an SD card and have 1 SSD and 5 HDDs configured as a JBOD array using
-
And-vs-&
I often struggle to remember the correct way to do `and` type comparisons when working in pandas. I remember learning long long ago that `and` and `&` are d
-
File-Length
I have a specific need for counting the number of lines in a file quickly. At work we use S3 for data storage during our Kedro pipeline development, and in the
-
Ipython-Prompt
I have a [post on starship](/starship) where I have some notes on how I use starship to make my zsh experience great with a sweet terminal prompt. Now... I spen
-
Polybar-01
[polybar](https://github.com/polybar/polybar) is an awesome and super customizable status bar for your desktop environment. I use it with i3-gaps on Ubuntu for
-
Vim-Spell-Check
__Did you know you can spell check in Vim?!__ What is this magic??? `set: spell spelllang=en_us` Custom words? Sometimes there's things that are words to y
-
Plotly-And-Streamlit
Streamlit I use `streamlit` for any EDA I ever have to do at work. It's super easy to spin up a small dashboard to filter and view dataframes in, live, wit
-
Deques
I am working on a project to create a small system monitoring dashboard using the python `psutil` library. The repo is [here](https://github.com/nicpayne713/not
-
Starship
If you spend time in the terminal then you'll want it to look somewhat pleasing to the eye. I used to ssh into servers with no customization, use `vi` to
-
self-hosted-media
Self-hosting 1 or several media servers is another common homelab use-case. Getting content for your media servers is up to you, but I'll show a few ways h
-
Truenas-And-Wireguard
NAS One of the most common use cases for self-hosting anything is a file share system. I have been a fan of [TrueNAS](https://www.truenas.com/) for a while. I
-
Skimpy
EDA I work with data a lot, but the nature of my job isn't to dive super deep into a small amount of datasets, I'm often jumping between several proje
-
Pyclean
I like to keep my workspace clean and one thing that I don't personally love looking at is the `__pycache__` directory that pops up after running some code
-
Psutil-01
[Mike Driscoll](https://twitter.com/driscollis) has been posting some awesome posts about `psutil` lately. I'm interested in making my own system monitorin
-
Mu
If you work with a template for several projects then you might sometimes need to do the same action across all repos. A good example of this is updating a pack
-
Wireguard
VPN Virtual Private Networks are a big deal, and this shouldn't be considered anything even close to a guide on using them. Here are just my notes and some
-
Git-Worktrees-01
Git Hopefully if you write code you are using git, if not go learn the basics of `commit`, `pull`, `push`, and `pull request`/`merge request` like... right now.
-
Abstract-Base-Class
ABCMeta I don't do a lot of OOP currently, but I have been on a few heavy OOP projects and this `ABCMeta` and `abstractmethod` from `abc` would've bee
-
Python-Builtin-Calendar
Being lazy I almost exclusively use Python for my job and have been eye-balls deep in it for almost 5 years but I really lack in-depth knowledge of builtins. I
-
Python-F-String-Align
I am personally trying to use `logger` instead of `print` in all of my code, however I learned from [@Python-Hub] that you can align printouts using `print` wi
-
Adblock-Coverage
I run pi-hole at home for ad blocking and some internal DNS/DHCP handling. __pi hole posts on the way__ One thing I've never put too much thought in is ask
-
Dataframe-Memory-Usage
I have often wanted to dive into memory usage for pandas DataFrames when it comes to cloud deployment. If I have a python process running on a server at home I
-
Traefik-01
Traefik If you don't know about [traefik](https://doc.traefik.io/traefik/) and you need a reverse-proxy then you might want to check it out. I used to use
-
Webservers-And-Indexes
I host a lot of services in my homelab, but they're mostly dockerized applications so I have never had to care much about how content gets served up. Today
-
Tree
I wanted a quick way to generate an `index.html` for a directory of html files that grows by 1 or 2 files a week. I don't know any html (the files are expo
-
Tiddly-Wiki
[Tiddly Wiki](https://tiddlywiki.com/) is a great note taking utility for organizing non-linear notes. I used it to replace my OneNote workflow and my only comp
-
Pandas-Select-Dtypes
On my team we often have to change data types of columns in a `pandas.DataFrame` for a variety of reasons. The main one is it tends to be an artifact of EDA whe
-
Vim-Auto-Space
I ran into an issue where I had some copy-pasta markdown tables in a docstring but the generator I used to make the table gave me tabs instead of spaces in odd
-
Stow-Target
Check out [stow](/stow) for a brief introduction to `stow` What if I want to stow a package somewhere else? Boom, that's where `-t` comes in... Maybe I don
-
Git ammend to a commit
After carefully staging only lines related to a specific change and comitting I suddenly realized I missed one... darn, what do I do? Old me would have soft res
-
Stow
Stow is a great tool for managing dotfiles. My usage looks like cloning my dotfiles to my home directory, setting some environment variables via a script, then