Welcome to my blog!

  • Hi! I’m Meghan, and I’m a 24yo trans fem poly lesbian anarchist that writes code by day and writes some more by night but people are what really makes me happy.
  • Here you’ll find some thoughts on things and obscure scripts that I helpful to me so I thought might be helpful to others.
  • The source of this blog, like many of my projects, is open and built with: my brain, Hugo, and hours of searching on Google and Stack Exchange to give you articles with all the answers I found. The source for this blob is available here https://github.com/nektro/mlog.
  • If you’d like more from me, I can be found in a variety of places around the Webz:
  • https://github.com/nektro
  • https://twitter.com/nektro
  • https://www.twitch.tv/nektro77
  • hello@nektro.net

Add Your PGP Key to Github for Verified Commits

This post assumes you’ve already read Generating a PGP key. I’ll be using my key for these examples but you’ll want to replace 95535225B55B5A9F39E29F5EDAB85EABB6014D3F with your own in the commands. For adding it to github run the following and copy the whole output. gpg --armor --export 95535225B55B5A9F39E29F5EDAB85EABB6014D3F That will generate a very long wall of text encapsulated by -----BEGIN PGP PUBLIC KEY BLOCK----- -----END PGP PUBLIC KEY BLOCK----- Then navigate to https://github....

March 21, 2021

Enable GPG Commit Signing in Git

This post assumes you’ve already read Generating a PGP key. I’ll be using my key for these examples but you’ll want to replace 95535225B55B5A9F39E29F5EDAB85EABB6014D3F with your own in the commands. git config --global user.signingkey 95535225B55B5A9F39E29F5EDAB85EABB6014D3F git config --global commit.gpgsign true This will automatically sign all of your commits with the key you added to user.signingkey....

March 21, 2021

Generating a PGP Key

For this we’ll be using GnuPG, aka GPG, which is a common implementation of the PGP spec. $ gpg --full-generate-key As this will be your master key, make sure to pick RSA and RSA, 4096 bits, and does not expire for the generation options. Once it is complete, it will print the details of it. Here’s what I got as an example. pub rsa4096 2021-03-21 [SC] 95535225B55B5A9F39E29F5EDAB85EABB6014D3F uid Meghan Denny <hello@nektro....

March 21, 2021

Install Vagrant on Debian

Vagrant is an application to enable you to programmatically control VM’s Hashicorp calls Vagrant Boxes. It’s hayday was before the rise of Docker and Kubernetes but still has great use cases. For instance, Docker Images have to be based on the Linux Kernel. So since Vagrant Boxes are full VM’s, they can contain a wider selection of operating systems for you to choose from. # install vagrant itself, it will use the libvirt provider by default $ sudo apt install vagrant # install the libvirt daemon and enable it sudo apt install qemu qemu-kvm libvirt-clients libvirt-daemon-system virtinst bridge-utils sudo systemctl enable libvirtd sudo systemctl start libvirtd # add yourself to the libvirt group sudo usermod -aG libvirt $USER # and you're all set!...

March 13, 2021

Self-Hosting milesmcc/shynet Analytics

First, services: analytics: image: milesmcc/shynet ports: - "8080" environment: DB_NAME: shynet_analytics DB_USER: postgres DB_PASSWORD: ${POSTGRES_PASSWORD} DB_HOST: postgres DB_PORT: "5432" ACCOUNT_EMAIL_VERIFICATION: none TIME_ZONE: America/Los_Angeles Then, docker-compose exec analytics ./manage.py registeradmin hi@my.domain.com This will print the password to the console. More users can be added by visiting https://example.com/admin/core/user/add/ or adding ACCOUNT_SIGNUPS_ENABLED: True docker-compose exec analytics ./manage.py hostname analytics.example.com docker-compose exec analytics ./manage.py whitelabel "My Shynet Analytics"...

March 11, 2021

Auto Domain Reverse Proxy and TLS with Nginx in Docker-Compose

services: nginx-proxy: image: jwilder/nginx-proxy:alpine volumes: - /var/run/docker.sock:/tmp/docker.sock:ro - ./data/nginx/etc/certs:/etc/nginx/certs - ./data/nginx/etc/vhost.d:/etc/nginx/vhost.d - ./data/nginx/usrshare/html:/usr/share/nginx/html ports: - "80:80" - "443:443" nginx-letsencrypt: image: jrcs/letsencrypt-nginx-proxy-companion volumes_from: - nginx-proxy volumes: - /var/run/docker.sock:/var/run/docker.sock:ro - ./data/nginx-le/acme.sh:/etc/acme.sh environment: DEFAULT_EMAIL: "${DEFAULT_EMAIL}" Local data that you would potentially want to backup in a prod environment is saved at ./data/nginx/. This configuration will automatically setup an nginx reverse proxy config for hosting a container at a specific domain and with TLS using Let’s Encrypt....

March 11, 2021

Find and Install Missing Firmware on Debian

Run $ sudo dmesg | grep 'firmware load for' | grep 'failed with error' $ sudo dmesg | grep 'firmware: failed to load' This will search your diagnostic kernel logs for failed firmware loads and will produce lines that look similar to the following [ 53.168802] bluetooth hci0: Direct firmware load for qca/rampatch_usb_00000200.bin failed with error -2 Take that file name and pass it to $ sudo apt-file search qca/rampatch_usb_00000200.bin Which in this case will yield...

March 11, 2021