Werefox

A collection of self-hosted services and software

Alright! So!

Some schedule updates for y'all, hope you're prepared!


Werefox Isekai???

Since I'm fully COVID-19 vaccinated, I've been planning some trips to go see some friends that I've made over the months that I've been stuck at home quarantining! Right now it's just a few trips, but I'm hoping to get more of them done as time goes on. In any case, here's the schedule.

May 2021

This upcoming weekend, the 28th – 30th I'll be out of town visiting a friend!

June 2021

Once I get back, that Thursday I'll be heading out after my usual Twitch stream to visit another friend from the 3rd – 6th.

After I've come back I've got a couple days at home where I'll have to unfortunately cancel the stream due to some previously made appointments, and then I'll be taking a flight out to visit another friend that Tuesday for about a week from the 8th – 14th.

What about the stream?

In the meantime, I have some ideas on possibilities for streaming while I'm gone. I would hate to just stop streaming for a whole month, essentially. The new Pokemon Snap looks neat, and I've been wanting to do a nuzlocke of Pokemon Shield for a while... We'll see!

Also, I'm moving!

I'm gonna be finally moving out of my parent's place! Sometime at the end of July, hopefully. So that is going to disrupt streams again once that starts happening.


That's all I've got for y'all this time.

I love you, I miss you, I'll see you tomorrow, I promise. 💙

Disclaimer: These things might not and probably won't apply to all trans folks, but are mostly small things cis folks might want to have in the back of their minds.

Consider helping them when it's time to pay for something.

Why?

I haven't changed my name. I'm in the process, but it's not done yet. Many trans folks likely will be in positions where they haven't either. Especially when trying to present as our preferred gender, getting deadnamed at checkout is an quick way to get outed. For at least me personally, It bothers me more than I think cis folks would realize. My deadname not only isn't me, but signals the gender I was assigned at birth, and effectively outs me.

What can I do?

Offer to pay and have them pay you back. Offer for them to borrow your card if they need to. Remind them or lend them cash if they can use that to pay.

Comfort them when it's time to do something in public.

Why?

Many trans folks are still in the process of transitioning, and even when they are further along, the feelings of dysphoria, social anxiety, and presenting in general can be incredibly overwhelming. As a trans woman myself, it gets exhausting very quickly to go out and present in public. Remember that every instance of public presentation for us is an opportunity for being misgendered, being othered, and being outed. Those are all very real and unnerving fears, on top of a looming threat of general trans hate.

What can I do?

Make sure if you're going to do something in public with them that you ensure they are comfortable, and that it is okay to say they don't want to go. If it's something that's necessary for them to do, try your best to comfort them and ensure that you are around them. If they are going out alone, make sure to offer to go with them if they want you to. Ask them how they are doing, try to watch them for social cues.

Don't bring up transition stuff with them.

Why?

Transitioning is already a very long process and it looks different for everyone, and we have to deal with this as just a part of our life. It's always something that's weighing on us and isn't always something we're comfortable or in the mood to talk about. Transitioning is not a dinner table conversation to casually bring up.

What can I do?

Always, always let them bring up transitioning first. If they feel like talking about it, they will talk about it. Having a trans individual speak with you on their transition is something that you should treat as a sign of trust, not something you can speak with them openly.

Celebrate trans things with them and not for them.

Why?

Often I've had some folks close to me bring attention to things like someone using my preferred pronouns when addressing me for the first time, or using a gendered term properly. This is incorrect behavior because it passively reinforces the concept of cisnormativity in your mind and it invalidates what there was to celebrate in the first place. Please understand that you are bringing attention to something that we not only likely noticed already, but that bringing attention to it reinforces the idea that it is something that needs to be pointed out as “better than the normal” behavior rather than treated like it should be the normal behavior. Something as small as using correct pronouns or ignoring a deadname isn't something to be celebrated, but expected. When you celebrate it, you perpetuate the wrong idea of things.

What can I do?

If they want to celebrate something, they will bring it up. Let trans individuals be excited for their own victories in the way they want to be, because they will want to tell you when they're happy for something or proud of it. Instead of bringing attention to something, let them be the ones to do so, that way you can be happy with them.

Please don't record them without asking first.

Why?

First of all, taking pictures of anyone should always be done after consent is clearly given. Second, many trans folks (during their transition especially) can have unwanted pictures of them be a source of extreme dysphoria. Seeing unflattering angles of us or seeing ourselves in ways that we aren't quite comfortable with forces us to confront the reality of our situations in an instant. Additionally, for one reason or another, many folks are very uncomfortable with their own voice. Therefore, hearing it in a recording can also be a source of extreme dysphoria.

What can I do?

Ask for permission before taking any pictures, video, or audio recordings. It's that simple, and don't when they say no.

Closing Thoughts

I'm incredibly open to criticism or suggestions on any of this, so if you have any issues or want to make any suggestions on something to add, remove, or edit, please feel free to send me a message either on Mastodon at @shadow8t4@vulpine.club or any of the other contacts listed on my info site at info.werefox.dev/contacts. 💙

You all are incredibly valid.

Trans Rights Are Human Rights.

Black Trans Lives Matter.

Oh jeez oh man it has been a real long time since I posted anything on here, so I guess I should really give y'all a big update. This might be a long one, since it has been... checks watch 8 months since my last post on here. I've got a lot of things to say.

First of all, I want to really change the way I do posts on this blog.

When I first started this blog I had the idea of using it as a sort of combination life updates/tech article type blog. Since then a lot of things have changed in my personal life, and while I still do tech-y things every now and then, having this mindset made it feel like I needed to keep doing things worth making blog posts about. In order to avoid that, I'm going to stop limiting this blog to anything specific. It's just going to be anything I feel like posting about, rather than forcing myself to make a post about what I'm doing every month or keeping it specific to tech things.

Second of all, if you really want to know things about me and what I do, you can now periodically check info.werefox.dev! It's a nifty little site that I made with Next.js and Tailwind CSS to give folks an overview of who I am and what I do. If you'd like to see the source code, you can view it here.

Updates

I don't even really know where to start with all the things that have happened since then.

  • Some of you who have been seeing my posts may not know that I'm transgender, or that I have started my transition and have been on HRT for about 5 months now.

  • I've been writing poetry now and then over at write.as/a-letter-to-the-void, which has really helped me to get out some feelings and thoughts I've had over the past few months.

  • I've split up my Mastodon account (where I primarily post) so I have a public account and a more private one. If you want to follow me over there, please feel free to follow @shadow8t4@vulpine.club, since I don't allow many follow requests these days on my private account.

  • I swapped out one of the servers and am now running most things on the NUC and a few other things on a pair of Raspberry PIs. I also moved where to find information on both the servers I have and the services I run over to the info site.

  • I even put a separate page to list the private services I've been running on my local network to use for myself.

  • Twitch streams are still happening, I now stream Beat Saber on a daily basis over at twitch.tv/alexis_werefox. There's a page on my info site that lists out where to find my recorded streams are uploaded as well as other places to contact me.

  • I am fully COVID-19 vaccinated. I had the Pfizer vaccine's second dose a couple weeks ago!

  • I'm seeing two therapists now, one to help with transitioning and another to help with mental health and trauma related things.

  • I'm moving. After over two years of being in my hometown again, I'll be moving to another city soon. I don't want to give details where or when, and It may still be a few months until I look for a job after that, since I have quite a bit I have to get done regarding my transition and my own mental and personal health.

That seems like all the big things in bullet points that I wanna say. It has been a really wild ride, especially due to the pandemic throwing things into chaos. That along with quitting my job really threw me into a funk that I had a hard time getting out of for quite some time. I'm still focusing on myself right now, because it turns out I have a lot to go through! In the meantime, I still don't have a job, and I'm not really sure when I'm going to be actively looking for one again.

On that last note, I do have a fair amount of money saved up for myself, and the stimulus checks have helped a lot in keeping me afloat financially. However, if you'd like to support me I've set up a Patreon as well as a Ko-fi and Liberapay for donations. You can also find all of those links on my info site under “Support Me?”.

Future Updates?

I'm gonna stop doing this section. It ended up just setting up expectations for myself that I might not meet, and then I felt bad if I didn't get to it. Regardless, I will be posting here again, I'm sure. Eventually.

I sincerely appreciate if you have been following along with my blog posts since the beginning, and I hope you continue to stick around.

September 2020 Monthly Update – One More Year

It's my birthday! I've decided to kick it off with a birthday stream over on Twitch.

Other than that, there isn't a whole lot to say about the past month. It's been relatively calm lately. I essentially took the whole month just relaxing and doing some things for myself before I get back into the swing of things.

Like I said, there's really not much to say here. I haven't been working on the services much past keeping them live and updated.

Further Updates

I really want to get back into game development. I haven't realistically developed any games since before I was employed, and that means I'm extremely rusty. I've lately found that I just need to push myself to start, and keep pushing myself. Hopefully by next month, I can give an update on my progress with that.

Additionally, I'm starting to stream more. Since I'm not employed, it's much more realistic to spend hours doing streams on a regular basis. For now, my streams have just been variety casual gaming. In the future, I hope to expand that to speedrunning and game development. The goal is to continue gaining experience in game development while also streaming more regularly.

Only the future knows how things go from here. I'm anxious, but excited.

August 2020 Monthly Update – A New Direction

This month, I resigned from my position as a Test Automation Engineer.

It wasn't an easy decision, especially given the circumstances of the pandemic, but it's one I stick by. I've felt for a while now that the job I was hired for was not furthering me in a career path I wanted to go down, and that it was difficult to attempt to shift myself in the direction I wanted to go in. Ultimately, I landed on leaving being my best option in order to take some time to attempt to accomplish that.

Personal updates aside, I leave this in the post to say that there will be a shift in the amount of work I will be able to do and time I'll be able to set aside for both maintaining and adding to Werefox in the future. Since I have no current employment obligations, I'm dedicated full time to improving the services, adding to them, and creating some new projects in order to further my own experience with development. Additionally, I'll be looking to contribute where I can to other projects, as I feel that may be a good way to myself some experience without formal employment.

Updates

I'm still in the process of sending out stickers, international recipients should be having theirs sent out within the next week. Shipping is simply complicated, and it has taken me time to figure out what the best way to get things shipped out it, and what cost I'm able to incur this first time.

I've also taken down the Jitsi instance for the time being. It would seem it actually wasn't working properly, and I have some good theories as to why that might be.

Summary of the month

Most of the month was admittedly taken up attempting to get things together for my job before I left. I've deployed a Kanboard instance for myself in order to help manage the different tasks/projects that I have on my mind for the future. I'm hoping that will help me stay organized.

Xenia Stickers Arriving!

If you are a US recipient, you should have received (or hopefully will soon be receiving) your stickers! I'm going to include a few posts below of some users that have already received theirs and given me a shoutout.

@Sapphiricgiraffic says: “*notices package* OwO what's this?! @shadow8t4

werefox business card

xenia the linux fox stickers!

src: https://snouts.online/@Sapphicgiraffic/104570204558583049

@BestGirlGrace says: “Ayy, @shadow8t4's extremely good stickers came in. Thank you! <3”

My thinkpad, decorated with stickers, including one of noted linux fox Xenia hunched over a laptop. Next to a Queer Hacker AOL logo sticker and a defund and abolish the police sticker.

src: https://social.illegalpornography.com/@BestGirlGrace/104570369009818788

@david says: “...Thank you for the pretty sweet stickers @shadow8t4!”

linux fox stickers and Werefox business card

src: https://tech.lgbt/@david/104600216330729102

@lazyTechsupport says: Big thanks to @shadow8t4 and @iliana for some of the new additions to my laptop... I have gotten over 36 years of sticker anxiety and now I need more!”

A photo of a laptop with stickers. Xenia the fox furry Linux mascot using a laptop is covering the logo. An ice-type vulpix pokémon sits to her left. Pixel Alexis is top left. One for the NASA "Space Place" kids site is next to the words "Fuck Cloudflare" in the bottom left. A Chocobo plus rider is bottom right. A transport themed trans flag is top right. A pink cat with three eyes is top centre. It sits on a scratchy blue woolen throw. The vulpix looks like it saw something funny on Xenia's laptop.

src: https://cybre.space/@LazyTechsupport/104628030430789648

Further Updates

The main things I've taken out of my backlog to focus on this month (hopefully, seeing as I seldom actually complete the things in this section the month I put them out there) are to finish migrating things to containers in preparation for wiping the last server that I still haven't wiped, write this update (mission accomplished), and look into starting something for GatsbyJS. With any luck, that last one will put me on the path to setting up a storefront for the Xenia stickers (and more). The last thing I want to do is make them so limited that people who want them in the future have no idea how to obtain them.

I'm still working on getting an email server set up, but it's a work in progress. I've backlogged it for now, as it's proving to be quite the daunting task.

July 2020 Monthly Update – We're Halfway There

I'm thoroughly convinced that blog posts like this are going to act as a bit of a time capsule for America and the world during this pandemic. My state attempted to open back up, but it looks like things are going to be most likely closing a bit in the near future, as we've become one of the peak states for case growth as of late. Regardless, a lot happened in the two months since my last update.

Updates

In support of BLM, I decided not to post an update last month. However, there were a few things that happened since then that are likely worth mentioning. Because of this, I'll be adding a second “Summary of the month” section titled “Summary of the month: May-June”, and I'll append this first one to “Summary of the month: June-July”.

Summary of the month: May-June

Xenia, the Linux Fox

One of the biggest things I worked on from this month was commissioning out some art for Xenia, a potential Linux mascot that lost a competition back in 1996.

A screenshot of the original announcement I made for the art.

Once again, big shoutout to all three artists that helped me out. Here are each of the pieces individually with some links to the original artists:

This was done by \@FirstProgenitor\@mastodon.art

@FirstProgenitor@mastodon.art

This was done by \@heyheather\@snouts.online

@heyheather@snouts.online

This was done by \@Marbles\@snouts.online

@Marbles@snouts.online

Here's also a link to the original announcement post: https://masto.werefox.dev/@shadow8t4/104235712891251159

Overall, this was a bit of an empty month in the first place. I focused quite a bit more on playing games in my spare time.

Summary of the month: June-July

Xenia, the Linux Fox – Stickers!

With the help of @WildePrints, I've managed to order some sticker prints of the designs mentioned above!

Here are the phyiscal stickers of each of the designs!

I also put out a form for anyone who wants one to fill out, and I'll be sending them out over the next month as I gather input and start putting together all the letters. It might take some time (especially since many of the form responses are from people outside of the country), but it will happen!

I'm hesitant to post a link to the form here, but please feel free to reach out to me if you're interested in them! If this first batch goes really well, I may consider ordering a second set, or setting up a more professional storefront with proceeds going to the original artists if I gain their permission in the future (these stickers will be free of charge for the time being, though).

Small Contributions to Pinafore

In the past few months, if you've been following me, it's no secret that I've been dabbling more and more into understanding and utilizing Docker's container tehcnology. It has been interesting to take almost any project I have access to and see what it would take to conver it to a container microservice or just a container image in general. I feel like over my time I've gotten to understand the process and some of the best practices, and have now been able to translate that knowledge into a couple contributions here and there to the Pinafore project. It's not much, just updating an existing Dockerfile for the NodeJS project and contributing a docker-compose.yml for easier management, but I felt like it's worth noting here.

Brutaldon

Brutaldon is a brutalist, Web 1.0 web interface for Mastodon and Pleroma. It has options to disable all Javascript for the front-end, and is designed to be able to work in terminal web browsers, such as Lynx and w3m.

Although the project itself seems to have been largely abandoned, the interface still works just fine, and I've been hosting it inside a container for a while now. I'm pleased to say that I've experienced no issues thus far, and so I've updated the services page to reflect this new addition.

If you would like to see the source code for the containerized version I'm using, you can view it at https://gitea.werefox.dev/shadow8t4/brutaldon-docker

Matrix & Riot Updates – Jitsi Video Conferencing

Riot users that utilize the Riot client I've hosted on https://riot.werefox.dev will now be able to initiate video conferences through a Jitsi server I've begun hosting. Additionally, I've created a post on the blog that's now pinned which outlines with some screenshots how a new user can register for an account on https://matrix.werefox.dev or other custom instances. These small updates will hopefully make it more user-friendly to new potential users to start using these chat services over others.

Shameless plug reminder – Werefox Software does have a public open Matrix chat that anyone can join at #chat:matrix.werefox.dev

Server Maintenance

Last week I finally took the time to test out the backups system I have had set up for the servers, and completely wiped the NUC with a fresh install of Ubuntu Server 20.04. While there were some hiccups here and there, things seems to be back up and running just as they were before. One big difference being that nearly every service being hosted currently is now being hosted in a container or set of containers managed by docker-compose. This has the advantage of essentially being able to run a clean install of Ubuntu 20.04 with only docker, docker-compose, and nginx installed, meaning I can focus development efforts, or other local network services, on other devices that don't have public ports exposed. As an added bonus on top of that, this will enhace security as the only ports exposed are those that are inside containerized subnets.

I'm sure someone may be quick to correct me on that last statement, but regardless, this is something that needed to happen at some point to ensure that I can continue to provide a reliable self-hosted experience.

Further Updates

Even with how long this post was, there are still future updates to list out. I've still put off setting up a full CI/CD for now, as the server currently running my Gitea instance needs to also have a fresh install performed on it, as I explained above. Once that has been completed, I can focus my efforts on getting that pipeline set up.

Additionally, I've been actively working behind the scenes to set up a mail server for this domain. I've been using an account that was graciously provided to me by a kind fellow at vcity.network, however, as you may have noticed, that domain is currently down. Emails are still working for now, but I'm a bit anxious about the possibility that they will stop working at some point. Therefore, I feel like this initiative is quite necessary. Hopefully I can post some progress about it soon.

Specifically, this will be a guide outlining how to make an account on the Matrix instance at https://matrix.werefox.dev, but the same general instructions should work for any instance of Matrix.

Open the Client App

This can be any of the different variations of clients for Matrix. In this example, I'll be showing the process for the Riot web client.

This is how the "Create Account" screen should generally look.

Set the Instance URL

Once you open your client of choice, you should generally be presented with this screen. If you're attempting to create an account on a specific instance other than the default “matrix.org”, you will want to select “Other” in Riot, for instance, to be given the option to change the instance you're creating an account on. (If you're using https://riot.werefox.dev, you will not need to do this step)

Fill out Registration Form

Once you change the instance to the desired URL, fill in the credential information as normal.

After you have the registration form connected to the correct instance, you should fill in the necessary registration info.

Recovery Passcode / Recovery Codes

After you successfully create an account, you will be prompted to create a recovery passcode, and you should certainly copy the resulting recovery codes.

If you are using Riot, you will be prompted to create a recovery passcode. This and the recovery codes will be used to recover your encrypted messages should you lose access to your account.

Done!

A sample image of the Riot web client after a successful login.

Once you've copied the recovery codes, you should be successfully logged in with your new account. Congratulations!

Using Matrix

These instructions will be made later... In general, if you have questions you can ask me directly. I'm available at:

  • @shadow8t4:matrix.werefox.dev
  • @shadow8t4 on Mastodon at masto.werefox.dev

I'm gonna be honest, I kinda didn't realize it had already been a month. With the current state of things in quarantine, time kinda passes without you really thinking about it. However, a few things were definitely accomplished this past month, so let me get into that.

Updates

Since it's kind the end of April and I never gave an April update, this will pretty much serve as a summary for that as well. I'm still working from home at this point, and things are going relatively smoothly for the most part. Overall, I've been really thankful to have my friends on the fediverse and close friends that keep up with me to help me feel less alone (along with my family, of course).

Summary of the month

Development Server Get!

I was able to purchase the parts for a set up a build server for myself, finally. I've been using a really old Dell Optiplex as a NAS/Gitea server and an Intel NUC as more of a “production” server for my various bots/projects/other services. Now I have an ASUS MINIPC to add to that server setup.

Here's a picture of the box it came in

I don't intend to have it do anything other than be a sandbox for development of projects, but it has already become a welcome addition so far!

Here's a picture of the device opened up, with all the additional internals already added

This will likely be used for when I set up a CI/CD with the Gitea instance. That way the “production” server doesn't have to handle building the projects when updates are pushed.

COVID-19 Discord Bot

While I've been quarantined, a friend of mine has been trying to track the numbers of new cases, deaths, etc. for a while and sending us updates in our friend group's Discord server. I thought I'd take the opportunity to make something useful, and wrote a simple bot that sends reports on a timed basis, and on command, with selections available to a specified channel or in response to that command. If you want to see more about that or take a look at the code, it's being hosted on my gitea instance, here.

Twitter Media Tool

Additionally, I got pretty tired of manually updating my various social media platforms and archiving the media uploads from my Nintendo Switch since Animal Crossing New Horizons came out. In order to remedy that, I decided to write a tool that would use Tweepy's streaming API to listen for new Tweets on my account, download any new media posts, and echo them to various services.

Currently, I have the implementation set up to echo posts to Mastodon and a Nextcloud instance I host for myself. However, I intend on having it echo to Discord and maybe other platforms in the future as well.

EB Games Guy

I started an account over on gamestop.store, a new instance that started up this past month full of users that are making pretty awesome parody accounts. I have an upcoming project that I've been working really hard on and hope to release soon. Once I get that out, I also plan on writing an article on the blog talking about the process and some of my ideas and thought process behind it.

Migration to Linode VPS

This last week I also migrated VPS providers from Vultr VPS to Linode VPS. Vultr had been experiencing some weird issues, and I have been meaning to move to a closer VPS solution (the current one was hosted in New Jersey), so I asked for suggestions and settled on Linode. Now, the round time trip for network connections to these services should be much shorter.

Previously, connections would roughly have to travel like this:

[Origin] -> New Jersey -> Texas -> New Jersey -> [Origin]

With the current VPS location, it's closer to this:

[Origin] -> Texas -> [Origin]

Sysadmin Updates to Mastodon

Finally, after quite a while of fumbling about, I was able to give my own account Admin access to the Mastodon instance, and prompty set up a list of instances that we will no longer federate with. Additionally, using the power of the Wayback Machine, I was able to recover the /about/more blurbs from my previous setup of the instance! Hooray!

Further Updates

In addition to setting up the CI/CD pipeline for my Gitea instance, I'm planning on expanding the Twitter Media Tool's functionality a bit more. Past that, plans are a bit up in the air. I'm really glad with how productive I've been able to be the past month, all things considered.

Werefox Software's collection of services run on two server machines currently, hosted through a reverse SSH connection on a Linode VPS.

System: Intel NUC
Model: 8i5BEH
CPU: Intel i5 8529U eight-core @2.3-3.8Ghz
GPU: Intel Iris Plus Graphics 655
RAM: 16 Gb @2400Mhz
OS: Ubuntu Server 20.04

Note: I have two of these set up, but only one handles services that are outward facing at the time of writing.

System: Raspberry Pi 4 (x2)
Model: B Rev 1.4
CPU: BCM2835 four-core @1.5Ghz
RAM: 8 Gb
OS: Ubuntu Server 20.04