What to do if you lose your Mastodon instance's environment variables file

One of the most important files loaded when running a Mastodon instance is your environment variables file commonly named .env.production. This file includes several secrets that if lost will break your ability to easily migrate your instance (assuming you have a recent files/database backup). This post explains how to recover your instance so you don’t have to start over and upset your users. Follow all of the normal steps to migrate over to a new server I’m assuming that if you’ve lost this file you are restoring from backups....

November 9, 2020 · 2 min · Catgirl

When to use React’s built-in state management or a state management library

When writing data in React, state must be passed from the top downwards, with methods passed down if you need to change data above a component. This approach can become difficult when you need to pass data several components down, often through components that don’t need them. This post contains my thoughts on state management and state management libraries in React. React’s built-in state management is often all you need Before using a statement management library you should carefully consider whether you need one....

October 17, 2020 · 3 min · Catgirl

How to setup a private Tor Bridge with OBFS4Proxy

The Tor Network is a powerful tool for browsing the internet anonymously and evading online censorship and web filters. Unfortunately some organizations have developed technology that makes it difficult to access the Tor Network. This tutorial explains how to create your own private Tor Bridge to bypass these restrictions. This tutorial focuses on configuring a tor bridge server, it does not explain the basics of running a Linux Server and it assumes that you have basic Linux shell knowledge....

May 19, 2020 · 8 min · Catgirl

How to read encrypted Google Chrome cookies in C#

Recently at work I needed to write a few bots/scrapers for websites that do not have an official API or bot support. Emulating browser-based logins without triggering anti-bot checks is challenging, to get around this issue, we login from a web browser on the Windows Server and copy its cookies from the SQLite Database storing them. This blog post explains how to read encrypted Google Chrome cookies in C# programs....

April 18, 2020 · 5 min · Catgirl

Easily paginating your EntityFramework Core Queries with C# Generics

Recently I had the challenge of paginating a web application I wrote as the tables displaying data were getting quite long and I needed a way to display things more cleanly. This post details how I solved the problem using C# Generics. It includes plenty of code snippets so you can follow along in your own application. The code shown in this post was written for my client Universal Layer and is released by them under a BSD 3-Clause License....

April 8, 2020 · 6 min · Catgirl

How to use Tor as your System DNS Resolver

Recently I posted criticism of Mozilla’s new DNS over HTTPS feature given they disabled they primary security functionality of it. The user isn’t even warned and can be secretly spied on. This blog post details how to use Tor as your System DNS resolver and has instructions for each operating system plus instructions for disabling Firefox’s dangerous DNS over HTTPS implementation. If you’d like to read why Firefox’s implementation of DNS over HTTPS is harmful, you may read my previous blog post....

April 2, 2020 · 5 min · Catgirl

Mozilla's implementation of DNS over HTTPS in Firefox and their claims are misleading at best...

Recently Mozilla finalized their implementation of DNS over HTTPS in Firefox. This protocol would improve internet users’ privacy and security while using Firefox. A change in their implementation means that many of the privacy and security benefits of DNS over HTTPS go away for Firefox users. A history of DNS over HTTPS March 2018: Mozilla begins testing an implementation of DNS over HTTPS. October 2018: RFC8484 was published by the IETF to describe the encrypted DNS System known as DNS over HTTPS....

February 27, 2020 · 6 min · Catgirl

How to automate your own backups with rclone and crontab on any Unix/Linux based computer

I’ve been migrating away from Google’s cloud based software. I have concerns related to the security of my data as well as want access to my documents when the Google Cloud or my internet connection is having issues. I was able to download all of my data from Google Drive easily although this creates a new problem. I’m now responsible again for my own backups. Without a backups solution you risk losing your important documents....

February 21, 2020 · 4 min · Catgirl

How to use Wasabi Object Storage with Mastodon's Amazon S3 Adapter

Wasabi is a cost effective alternative to Amazon S3. With it you can use existing tools built for Amazon S3 at low cost. Wasabi is great for instance owners like me who don’t have a small fortune to spent on cloud services. This blog post discusses the configuration I used for LGBTQIA.is using Mastodon v3.0.1 Catgirl Edition (the S3 Adapter is to the best of my knowledge identical to that of Vanilla Mastodon) to use Wasabi Object Storage....

January 9, 2020 · 2 min · Catgirl

What is Zsh and why you should use it instead of Bash

Zsh (short for Z-Shell) is, in technical terms, a UNIX Command Interpreter (often nicknamed shell by the community) , and in more simple terms a command prompt for UNIX and Linux based computer systems. Yesterday, Software Engineer Ali Spittel announced on Twitter that Apple’s macOS Operating System will be changing its default shell to Zsh from Bash. https://twitter.com/ASpittel/status/1135718054556569600 I have been a long-term Zsh user, and I learned about Zsh from Thoughtbot’s laptop-setup-script on GitHub about a year or two ago....

June 5, 2019 · 5 min · Catgirl