Epic Worlds

The official blog of Jonathan J. Snyder, the muse's bitch.

Finally, I got my #infosec #blog up and running again. It has been so long since I accidentally took it down by messing up the A records but that’s a story for another post. I wanted to write up tips and tricks of things that I ran into while attempting to install my own #peertube #instance that was not explained well in the documentation available on the main website.

To be clear, this isn’t any sort of knocking the people who make it, it’s just not mentioned and I don’t know if that’s because for people used to this stuff it’s common knowledge or it just hasn’t been updated. Here we go!

Before we begin, a few points about what I’m going to talk about. This is not going to be a full installation tutorial but a supplement to go along with the official documentation. This also assumes that the setup you are using is having one internet-facing server that is directing traffic upstream to other machines on the network so that they are not exposed.

The server this is written for is Ubuntu 22.04 and I am using the Nginx that comes with the apt-get command. At the time of this writing, it’s Nginx 1.18.1.

Issue #1 – Default NodeJS Version Is Not High Enough

The first part of the tutorial provided by PeerTube points you to the dependencies that you will need to initially install. Do not just use the copy-paste they have to install the default. The .deb files that are available are not the right version that it needs.

When I ran sudo apt-get install nodejs, the server installed version 12.x. You need at least 16.x to install. When you go manually install NodeJS yourself so that you can run Yarn, do not install the latest version 20.x. It is NOT compatible with Yarn when you get to the install process later. I installed the latest version to be up-to-date, and the Yarn prompt in terminal stated that it was expecting between 16.x to 19.x. I had to re-do my key ring and install 19.x to work.

Issue #2 – Created PeerTube User Not Set with Correct Permissions

The dependencies portion of the installation will create the user and group that you need but will not provide the correct permissions (chmod) on the folder. One time when I was running it, it didn’t give the folder to the group. It wants the folder to be drwxr-xr-x. You will not only need to set that yourself, but I recommend chown-ing the folder to the peertube user just to be safe. If you do not, it’ll throw errors later about not owning everything and could mess up your entire install (which happened to me the first time around).

Run the command:

sudo chmod 755 /var/www/peertube
sudo chown peertube:peertube /var/www/peertube

That way, you can be absolutely sure nothing is going to get messed up with the install. Proceed from that point with the rest of the install.

Issue #3 – Prepping the production.yaml Correctly for Reverse Proxy

When you get to the point where you are to edit the production.yaml file, there are a few steps you need to take to make sure it is ready for setup and the reverse proxy.

To understand what I have set up, we’re going to assume we have two servers: one named 192.168.1.1, which is our internet-facing machine, and 192.168.1.2, which is the machine hosting the PeerTube instance. You are going to want 192.168.1.1 to be able to send all the traffic to the other machine.

Setting Up for Reverse Proxy

You will want to make sure the following is in the webserver portion of the YAML file.

webserver:
  https: true
  hostname: 'yourpeertube.instance'
  port: 443

Though with many programs you can run behind a reverse proxy, the upstream machine doesn’t have to be on 443 as the SSL and security work is being handled on the machine taking the traffic. In the case of PeerTube, you must hand the traffic from 443 to 443 and have https set to true even though you do not have any certificates on the upstream location.

If you do not do this, you will get streaming errors with your HLS.js in the PeerTube log. They will look like:

HLS.js error: networkError - fatal: true - manifestLoadError

The other symptom is that your video will play in the browser you uploaded it to but not on any other machine or browser.

In the trust proxy: section, you want to add the line - '192.168.1.1' right under - 'loopback'. Pay attention to formatting as YAML needs the proper indentation.

The last part is to go to database: and make sure the correct password for your database you set up earlier is actually there. In my last three installation attempts, the instructions did not properly set the password. You can enter it manually.

Issue #4 – Proper Reverse Proxy with Nginx

This really isn’t an issue but more to save you time figuring out what needs to be proxy_pass to the upstream machine.

Upstream Machine

On the machine hosting, strip out all the SSL certificate markers and everything, but leave it listening to 443. (This includes the SSL and http2 after the port listening entry.)

It should look something like this:

server {
  listen 443;
  listen [::]:443;
  server_name yourpeertube.instance;
  # ... THE REST OF THE CONFIGURATION.
}

Do not worry about the SSL part. As a reminder, it’s going to be handled by the internet-facing machine. We are presently setting up the hosting machine.

Setting Up Internet-Facing Machine

This is a full example of the reverse proxy that has helped my server function. Please make sure to add your information where it says yourpeertube.instance.

server {
  if ($host = yourpeertube.instance) {
    return 301 https://$host$request_uri;
  }

  listen 80;
  listen [::]:80;
  server_name yourpeertube.instance;
  return 404;
}

server {
  listen 443 ssl http2;
  listen [::]:443 ssl http2;
  server_name yourpeertube.instance;

  add_header Access-Control-Allow-Origin "*";
  add_header Access-Control-Allow-Methods "*";

  ssl_certificate     /etc/letsencrypt/live/yourpeertube.instance/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/yourpeertube.instance/privkey.pem;

  location ~/ {
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_pass http://192.168.4.2:443; # Make sure to change this to your actual internal IP
    client_max_body_size 0;
  }
}

Ending

There you have it. After I got this all setup, I was able to communicate with my server, upload videos, and the #fediverse portion worked to perfection. If you have any questions, you can reach out to me at my social media.

Finally, I got my #infosec #blog up and running again. It has been so long since I accidentally took it down by messing up the A records but that’s a story for another post. I wanted to write up tips and tricks of things that I ran into while attempting to install my own #peertube #instance that was not explained well in the documentation available on the main website.

To be clear, this isn’t any sort of knocking the people who make it, it’s just not mentioned and I don’t know if that’s because for people used to this stuff it’s common knowledge or it just hasn’t been updated. Here we go!

Before we begin, a few points about what I’m going to talk about. This is not going to be a full installation tutorial but a supplement to go along with the official documentation. This also assumes that the setup you are using is having one internet-facing server that is directing traffic upstream to other machines on the network so that they are not exposed.

The server this is written for is Ubuntu 22.04 and I am using the Nginx that comes with the apt-get command. At the time of this writing, it’s Nginx 1.18.1.

Issue #1 – Default NodeJS Version Is Not High Enough

The first part of the tutorial provided by PeerTube points you to the dependencies that you will need to initially install. Do not just use the copy-paste they have to install the default. The .deb files that are available are not the right version that it needs.

When I ran sudo apt-get install nodejs, the server installed version 12.x. You need at least 16.x to install. When you go manually install NodeJS yourself so that you can run Yarn, do not install the latest version 20.x. It is NOT compatible with Yarn when you get to the install process later. I installed the latest version to be up-to-date, and the Yarn prompt in terminal stated that it was expecting between 16.x to 19.x. I had to re-do my key ring and install 19.x to work.

Issue #2 – Created PeerTube User Not Set with Correct Permissions

The dependencies portion of the installation will create the user and group that you need but will not provide the correct permissions (chmod) on the folder. One time when I was running it, it didn’t give the folder to the group. It wants the folder to be drwxr-xr-x. You will not only need to set that yourself, but I recommend chown-ing the folder to the peertube user just to be safe. If you do not, it’ll throw errors later about not owning everything and could mess up your entire install (which happened to me the first time around).

Run the command:

sudo chmod 755 /var/www/peertube
sudo chown peertube:peertube /var/www/peertube

That way, you can be absolutely sure nothing is going to get messed up with the install. Proceed from that point with the rest of the install.

Issue #3 – Prepping the production.yaml Correctly for Reverse Proxy

When you get to the point where you are to edit the production.yaml file, there are a few steps you need to take to make sure it is ready for setup and the reverse proxy.

To understand what I have set up, we’re going to assume we have two servers: one named 192.168.1.1, which is our internet-facing machine, and 192.168.1.2, which is the machine hosting the PeerTube instance. You are going to want 192.168.1.1 to be able to send all the traffic to the other machine.

Setting Up for Reverse Proxy

You will want to make sure the following is in the webserver portion of the YAML file.

webserver:
  https: true
  hostname: 'yourpeertube.instance'
  port: 443

Though with many programs you can run behind a reverse proxy, the upstream machine doesn’t have to be on 443 as the SSL and security work is being handled on the machine taking the traffic. In the case of PeerTube, you must hand the traffic from 443 to 443 and have https set to true even though you do not have any certificates on the upstream location.

If you do not do this, you will get streaming errors with your HLS.js in the PeerTube log. They will look like:

HLS.js error: networkError - fatal: true - manifestLoadError

The other symptom is that your video will play in the browser you uploaded it to but not on any other machine or browser.

In the trust proxy: section, you want to add the line - '192.168.1.1' right under - 'loopback'. Pay attention to formatting as YAML needs the proper indentation.

The last part is to go to database: and make sure the correct password for your database you set up earlier is actually there. In my last three installation attempts, the instructions did not properly set the password. You can enter it manually.

Issue #4 – Proper Reverse Proxy with Nginx

This really isn’t an issue but more to save you time figuring out what needs to be proxy_pass to the upstream machine.

Upstream Machine

On the machine hosting, strip out all the SSL certificate markers and everything, but leave it listening to 443. (This includes the SSL and http2 after the port listening entry.)

It should look something like this:

server {
  listen 443;
  listen [::]:443;
  server_name yourpeertube.instance;
  # ... THE REST OF THE CONFIGURATION.
}

Do not worry about the SSL part. As a reminder, it’s going to be handled by the internet-facing machine. We are presently setting up the hosting machine.

Setting Up Internet-Facing Machine

This is a full example of the reverse proxy that has helped my server function. Please make sure to add your information where it says yourpeertube.instance.

server {
  if ($host = yourpeertube.instance) {
    return 301 https://$host$request_uri;
  }

  listen 80;
  listen [::]:80;
  server_name yourpeertube.instance;
  return 404;
}

server {
  listen 443 ssl http2;
  listen [::]:443 ssl http2;
  server_name yourpeertube.instance;

  add_header Access-Control-Allow-Origin "*";
  add_header Access-Control-Allow-Methods "*";

  ssl_certificate     /etc/letsencrypt/live/yourpeertube.instance/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/yourpeertube.instance/privkey.pem;

  location ~/ {
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_pass http://192.168.4.2:443; # Make sure to change this to your actual internal IP
    client_max_body_size 0;
  }
}

Ending

There you have it. After I got this all setup, I was able to communicate with my server, upload videos, and the #fediverse portion worked to perfection. If you have any questions, you can reach out to me at my social media.

openpgp4fpr:53CFEF0F79AE88D687BC1D6B307FA2726BCF24CF

Tags: #horror

The moment Kira stumbled upon the cave; she knew something was incredibly wrong. It took the blond-haired woman a few moments to realize that the forest had gone silent and the birds that were once singing hid among the branches. The way the wind seemed to die the moment she stepped near the jagged rock entrance sent chills up her spine. For some strange reason, the cave her eyes peered into felt ancient and unnerving, humming beneath the earth.

She had been hiking alone, a last-minute decision to clear her mind after a stressful week at work. The fact her boss hinted that she would be fired after the three day weekend did not help her mood.

“How the hell am I supposed to keep the numbers up if they keep raising the amount,” she grumbled to the trees around her.

Her friends often teased her about going off the beaten path, but Kira relished the isolation. Working at a call center, talking all the time made her want to avoid people. Solitude was a balm, a way to reconnect with herself after all the cynical noise from her customers. She hadn’t planned to stray this far. Kira was certain she had followed the trail, but when the trees thinned and the rocky outcropping appeared, the woman realized she was in a part of the forest she had never seen.

“Where am I?” Kira said looking around at the clearing she had stumbled into.

The cave beckoned her with its gaping mouth, a jagged crack in the earth that seemed to sink deeper than the eye could follow. The air spilling from it was cool, carrying a dampness that clung to her skin. Despite the growing unease crawling up her spine, Kira’s curiosity won over.

She had no flashlight, just her phone, but the battery was low. Still, the light was enough to make out the path ahead as she carefully picked her way into the cave, each step echoing in the suffocating silence. The deeper she went, the more the air changed. The crisp, natural scent of earth and moss gave way to something pungent, like stagnant water.

Kira knew she was being stupid, but something was drawing her in. An insatiable curiosity about what was at the end of the tunnel.

After what felt like an eternity of walking, she reached an expansive chamber. The walls glittered with moisture, and in the center had her frozen to the spot. A lagoon lay nestled in the middle of the cavern, its surface glowing with an ethereal, blue light. The water shimmered, casting soft reflections across the ceiling like dancing spirits. Kira stood at the edge, mesmerized. The glow seemed to pulse gently, as if the lagoon had a heartbeat of its own.

For a moment, the unease she had felt dissipated. It was beautiful—unnatural, yes, but undeniably captivating. Kira knelt, her hand hovering over the surface of the water. She wanted to touch it, to break the mirror surface but her hand did not move. Something about the way it shimmered seemed… wrong. The glow, though soft and inviting, felt like something grinning and trying not to show its teeth.

A sudden splash echoed through the cavern, sending ripples across the lagoon. Kira’s heart jumped, her gaze darting to the far side of the water. She saw nothing, just the stillness of the glowing lagoon and the jagged walls beyond. The water was undisturbed, but she had heard something hit it. The quiet wasn’t comforting anymore. An oppressive, weight wrapped around her lungs like thick fog trying to force her to the ground. She could not see it, but she knew.

Something was watching her.

Kira stood up quickly, backing away from the water’s edge. The light from her phone flickered, and she cursed under her breath. She needed to leave. Now. Desperately turning to find the path back, something in the water stirred again—this time closer.

She froze, her breath caught in her throat. Slowly, she turned her head back toward the lagoon, dread pooling in her stomach. Did she have time to run? Was it close to her? Was she about to die?

The glowing water began to churn, and from its depths, a dark shape started to rise. At first, it was nothing more than a vague shadow beneath the surface, but as it neared the top, Kira could make out more details. The figure was massive, its form serpentine, with limbs too long, too thin, stretching out like twisted branches. The glow of the water cast sickly reflections on its slimy, dark skin.

It had eyes—pale, milky orbs that seemed to bulge from its skull, locking onto her with an intensity that made her mind freeze in place. Its mouth, if that’s what it was, stretched open into a grotesque smile, filled with needle-like teeth that shimmered in the blue light.

Panic surged through Kira, every instinct screaming at her to run. She turned and bolted toward the tunnel she came through, but as her feet hit the rocky ground, the creature let out a sound—a low, giggling laugh like that of a child that echoed in the cavern, reverberating off the walls like a living thing. It was followed by a splash, and she knew without looking that it was following her.

Her phone’s light flickered again, the battery draining faster now as if the very air was sucking the life from it. The woman stumbled, her foot catching on a loose stone. She hit the ground hard, the wind knocked from her lungs. For a terrifying moment, she lay there, gasping for breath, her lungs refusing to pull in the air that she desperately craved. The sound of water sloshing and something wet dragging across the stone floor was audible now. It was slow but certain.

Legs finally started cooperating and Kira pushed herself up. She ignored the pain in her ankle and the tremble in her legs. She had to get out. She had to get out now! The tunnel felt longer than what it had been when she came in. The scared customer service agent ran, her breath ragged and her chest tight with fear. Behind her, the sounds grew louder, the wet dragging noise now accompanied by something else—something like a giggling whisper.

“Kira…Where are you, Kira?” Her name was drug out in a long sentence.

The voice was low, wet, but the tenor of a child. It slithered into her ears, making her skin crawl. The woman glanced back, just for a second, and saw the creature’s pale eyes gleaming in the darkness, peering around a turn in the tunnel, it’s one eye visible and half of a toothy smile staring at her with glee.

Terror gripped her. She pushed herself harder, her legs burning as she raced toward the cave’s entrance. The blue light of the lagoon still reflected in the tunnel behind her, casting eerie shadows on the walls. Somehow feeling as if they were reaching for her itself. Kira could feel the creature’s breath—cold and damp—on the back of her neck as it closed.

Then, just as the darkness around her seemed ready to swallow her whole, Kira saw a faint glimmer of daylight ahead. Sprinting the last few yards, she threw herself out, rolled and faced the entrance terror filling her wondering if it had leapt out after her.

The entrance was dark and still, the lagoon and the creature hidden dep within the earth. But she knew it was still there, lurking, watching. The whisper echoed in her mind again.

“Kira…”

“Screw you,” she hissed back.

She sat on the forest floor, trembling, her breath still shallow. Her pulse pounded in her ears, and the sunlight shone on top of her. It was still daylight and she had time to get back to the car.

She couldn’t stay there, that was for sure. Gritting her teeth, Kira pulled herself to her feet, wincing as her weight shifted onto her injured leg. She needed to get far away from the cave. No more curiosity. No more exploring. Just survival.

As she limped through the forest, the trees around her seemed ominously still, as if the very world was holding its breath. She kept glancing back over her shoulder, half expecting to see those pale, bulging eyes staring at her from the shadows between the trees. But nothing followed her.

After a few minutes, Kira finally reached the familiar trailhead that marked the beginning of the hiking path. Relief washed over her. She knew her car was just a few more minutes awake but her ankle was screaming louder every step of the way.

Kira’s phone was nearly dead now, but she tapped the screen to check for a signal. Nothing. No bars.

“Shit,” She cursed under her breath, scanning the forest for any sign of other hikers, but she was alone. The growing dusk stretched the shadows longer, the daylight fading fast.

“Just keep moving,” she muttered to herself. “You’ll be fine once you get back to the car.”

As she hobbled along the path, a gnawing thought surfaced in her mind. The whisper. That thing in the cave had said her name. It knew who she was. How? A chill rippled down her spine as her mind raced through the possibilities. Maybe she had imagined it. Maybe her terror had twisted the sounds into something she could comprehend. But no matter how much she tried to reason with herself, the whisper had felt real. Too real.

The sun dipped below the horizon as she reached the edge of the parking lot. Her car sat where she had left it, the only vehicle in sight. She fumbled with her keys, her hands shaking as she unlocked the door and collapsed into the driver’s seat. Shutting the door with a slam, she exhaled a shaky breath, locking all the doors before slumping back against the headrest.

For a moment, Kira sat in the stillness of the car, her mind racing, replaying the events in the cave over and over. The creature, the glowing water, that voice—none of it made sense. It felt like a nightmare, but she knew it had been real. Her ankle’s sharp pain was proof enough.

With trembling fingers, she started the car. The engine’s rumble was a comforting reminder of normalcy, something familiar during everything she couldn’t explain. She put the car into gear, ready to speed down the narrow forest road and never look back.

As the tires crunched over gravel and dirt, Kira glanced into her rear view mirror. The entrance to the hiking trail slowly disappeared, swallowed by the thickening night.

Home. All she wanted to do was go home. She glanced in the rear view mirror and something caught her eye. Just barely visible in the dim twilight, she saw a faint glow. A soft, blue light shining through the trees. Her breath hitched, and she forced herself to focus on the road ahead. It was just her imagination. She was exhausted, shaken, her mind playing tricks on her. The highway was only a mile more.

The further she drove, the more her panic began to settle. The radio buzzed faintly as she turned it on, hoping the music would drown out her thoughts. But the signal was weak, crackling with static. She twisted the dial, trying to find a clear station, but all she got was more hissing and buzzing.

“Kira…Where are you going? I want to play with you.”

She jerked the wheel, her heart slamming against her ribs as the whisper sounded by her ear. She looked in the mirror and saw no one in the back seat. The car swerved slightly before she regained control, her eyes wide and her hands gripping the steering wheel tight.

“No, no, no, no!” Kira whimpered.

The road stretched out before her, endless and dark, the trees pressing in from either side. She pressed her foot harder on the gas, the car speeding up as the headlights carved a narrow path through the night. Her heart pounded in her ears, drowning out every rational thought. She had to get out of there—get as far away from the forest, from the cave, from “It”.

But as the car sped down the winding road, the blue glow appeared again, flickering in the distance through the trees. It was following her. No matter how fast she went, no matter how far she tried to drive, the light was always there, faint but persistent.

“Come on, Kira. Let me play. I want to feel your sinew strain as we dance to Sarnithis’ song. Listen to the song your voice makes as we dig into your nerves.”

The whispers were coming from every direction now. It seeped into her mind, cold and wet, wrapping around her thoughts like the touch of something long buried in the depths. She slammed her hands over her ears, trying to block it out, but the voice only grew louder.

It was only in that instant before the crash that Kira realized that she had taken her hands off the wheel. The vehicle careened off the road and into the gully. The crunch of the brush and thud of hitting a stump silencing everything.

Dazed, she tried to force the door open and after a few pushes it popped open. Kira fell to her face and tried to force herself to stand. It was only now that she realized the blue light was around her that reality came rushing back. She had left the safety of the car!

Kira could not run, wet, sticky incredibly long fingers slid over her scalp from behind and she let out a cry as the sharp claws dug into her forehead to hold her. The woman felt herself being lifted off the ground so that her legs were dangling a good two feet from the forest floor. The searing pain swept through Kira’s lower back as the impossibly sharp claw pushed through her skin and nicked her spinal column causing her legs to go limp and useless.

“There, there, Kira,” it giggled in her ear, its breath smelling like rotting fish and earth. “Don’t fight it. I look forward to giving you the privilege of being twisted into perfection for Sarnithis. He enjoys such beauties as you.”

She did not know if it was the pain or something about the creature who was dragging her to a torturous fate, but she could see in her mind, the following morning where the wardens would find her car miraculously back to where it had been, undamaged and the keys sitting on the cushion. They would look for her. For two weeks nobody would find her. They would even search around the cave but never see it, but it did not matter, she would have had her limbs and bones snapped and re-arranged into something beautiful for ‘it who breaks the veil’.

One thing was for certain. No one would see Kira again.

(C) 2024 by Jonathan Snyder. All Rights Reserved.

##### Tags: #politics #essay

Fury. It's that ice cold feeling in the pit of your stomach that elicits no emotion and just simmers there? Yeah, that's how I have been for the last few days and the decision of the U.S. Supreme Court has made it even worse. Spoiler warning, I have nothing hopeful to say in this post. This authoritarian roller coaster is just getting started and there's no getting off. So, what has the response been since the courts decided to set us up for a dictator and a king?

Since the United States Supreme Court has declared Presidents are immune to official acts (and only lower courts can decide what is or is not an official act. They provided zero criteria), there have been steps to try to fix this but it is only theater and desk pounding that's going on.

Rep. Joe Morelle (D-N.Y.) says he's going to introduce a Constitutional amendment1. It's dead on arrival. You need 75% of the states to ratify an amendment which means you can't lose more than 13 states. There are 21 solid red states per 2022 election3. Even if they do pass it, who says the Supreme Court can't just declare the amendment unconstitutional? Rules? They're not following them now. Why would they later?

AOC says she's going to submit Articles of Impeachment2 on the justices. That's also dead on arrival because the Dems don't have the stomach to do it cause “it'll look political” and with the tenuous hold on the Senate with a chance of losing it, it ain't going to go anywhere. They want to pretend it's still the 90s where everyone was still pretending to have integrity.

I have had friends ask me when I think that it all truly began to go down hill (as we have flirted with authoritarianism and fascism for years. Think back to McCarthyism and the backlash to the 60s Civil Rights movement).

It really started to go down hill with 9/11 and when the Patriot Act was passed. It was the first glimpse of the direction we were going. The Patriot Act was sold as a temporary thing that was supposed to help us stop terrorists from striking at us again but has continually been renewed for twenty-three years. It was sold as a patriotic law but had stripped freedoms from Americans5. For example:

1. **Roving Wiretaps**: Allows surveillance on individuals without specifying the device or location being tapped, meaning a single warrant can cover multiple devices and locations.

2. **Sneak & Peek Warrants**: The Act allows law enforcement to conduct searches without immediately informing the target of the search. These “sneak and peek” warrants mean individuals may not know their property has been searched until much later, potentially compromising their ability to contest the search.

3. **Mandatory Detention:** Non-citizens can be detained without charge for extended periods if they are deemed a threat to national security.

From there, we have slowly descended into a government that goes behind our backs to get information and uses mega-corps to do their bidding.

It was 2016 when the facade fell off and the christo-fascist regime attacked our capital and attempted to stop the peaceful transfer of power believing that their lie that the 2020 election was stolen would cover them.

Many of them were found guilty of crimes around January 6th insurrection and even their leader Donald Trump was found guilty for Campaign Finance violations.

But they already had a plan for that. They had the scum bag McConnel block the appointment of an Obama supreme court judge by saying: “The American people should have a voice in the selection of their next Supreme Court Justice. Therefore, this vacancy should not be filled until we have a new president.”6 and even Lindsey Graham went and said: “I want you to use my words against me. If there’s a Republican president in 2016 and a vacancy occurs in the last year of the first term, you can say Lindsey Graham said let’s let the next president, whoever it might be, make that nomination.”6

What happened when there were two seats come open in Donald Trump's term. Both senators pushed through two extremely conservative (and questionable) candidates in the last year of Trump's presidency. Building a conservative court to do their bidding. When challenged on it McConnel's response was “In the last midterm election before Justice Scalia’s death in 2016, Americans elected a Republican Senate majority because we pledged to check and balance the last days of a lame-duck president’s second term, We kept our promise. Since the 1880s, no Senate has confirmed an opposite-party president’s Supreme Court nominee in a presidential election year.”7

In short...it's important to have the public choose when you're not the party in power but if you're the party in power, it's okay to continue and appoint someone without the public having a say.

Since the court has swung hard right they have.

* Raised the bar so that the Justice Department can't use Obstruction charges against the insurrectionists 8

* Declare Presidential immunity for President official acts which now throw his conviction in state court into contention4

And I'm not even getting into Justice Thomas' wife being an insurrectionist who helped plan out some parts of the insurrection.

I have heard many say that we are at a crossroads this election but they are wrong. That crossroad was 2016 and we are now well along our way towards a faux democracy run by christian fascists who think their beliefs in God outweigh any other sort of consideration and we need to bow to them for guidance.

I have no hope to share right now. I've studied history long enough to see where this is going and like a train wreck, there's no stopping it. Even if Biden is elected president, each and every election cycle will be Christian fascists trying to take win so that they can force their beliefs down our throat.

If anything, I think Justice Jackson phrased it the best in her dissent to the majority opinion. She said: “The majority of my colleagues seems to have put their trust in our Court’s ability to prevent Presidents from becoming Kings through case-by-case application of the indeterminate standards of their new Presidential accountability paradigm. I fear that they are wrong. But, for all our sakes, I hope that they are right.”3

### References

1 Nazzaro, M. (2024, July 2). *New York DEM will introduce amendment to reverse Supreme Court immunity ruling*. The Hill. https://thehill.com/homenews/house/4750735-joe-morelle-amendment-supreme-court-immunity-ruling/mlite/?nxs-test=mlite

2 Lillis, M. (2024, July 2). *Ocasio-Cortez vows to file impeachment articles against Supreme Court justices. The Hill*. https://thehill.com/homenews/house/4750034-ocasio-cortez-impeachment-articles-supreme-court-justices-trump-immunity/?nxs-test=mobile

3 Wikimedia Foundation. (2004, November 4). Red States and Blue States. Wikipedia. https://en.wikipedia.org/wiki/Red_states_and_blue_states Last edit was 18 June 2024

4 *Trump v. United States, 23-939, slip op. at 118-119 (Supreme Court of the United States). Retrieved from [https://www.supremecourt.gov/opinions/23pdf/23-939_e2pg.pdf](https://www.supremecourt.gov/opinions/23pdf/23-939_e2pg.pdf)*

5 Johnson, C. (2011, October 26). *As it turns 10, patriot act remains controversial.* NPR. https://www.npr.org/2011/10/26/141699537/as-it-turns-10-patriot-act-remains-controversial

6 Silverstein, J. (2020, September 19). Here’s what Mitch McConnell said about not filing a Supreme Court vacancy in an election year. https://www.cbsnews.com/news/mitch-mcconnell-supreme-court-vacancy-election-year-senate/

7 Louis Jacobson, K. S., & Jacobson, L. (2020, September 22). Flip-O-meter: McConnell’s reversal on Supreme Court nominees. @politifact. https://www.politifact.com/factchecks/2020/sep/22/mitch-mcconnell/mitch-mcconnell-flip-flops-considering-supreme-cou/

8 Kruzel, J. (2024, June 29). *US Supreme Court raises bar for obstruction charge against Trump, Jan. 6 rioters | reuters.* Reueters. https://www.reuters.com/legal/us-supreme-court-boosts-jan-6-rioters-bid-challenge-obstruction-charge-2024-06-28/

9 Davies, D. (2022, January 27). *How Ginni Thomas, wife of justice Clarence Thomas, influences the Supreme Court.* NPR. https://www.npr.org/2022/01/27/1076097533/how-ginni-thomas-wife-of-justice-clarence-thomas-influences-the-supreme-court

It has been awhile since I have had the opportunity to sit down and write a blog post. Things have been hectic and some projects just fall by the wayside. One of the things I promised to do is write a blog post about my experiences running a single user instance.

 You’re all on your Own

After spending about a month on Infosec.exchange and learning the ups and downs of mastodon, I decided that the biggest thing I wanted to do was own my own instance where I could control my entire social media presence. Instead of existing on someone’s server, I wanted my own. So, I set up a single user interface.

One of the biggest challenges is not federation but re-connecting to everyone and seeing all the posts again. One of the major things that helped me is that I had already followed 100+ people so when I migrated my account, I was able to automatically re-follow all of them allowing my feed to fill up.

One of the impacts that never crossed my mind is that you immediately lose the use of the local feed portion of mastodon. If you were on a different instance, you could use that to see what was being talked about on the instance you inhabited but if you exist as a Single User Instance, all that page has is your own toots. You lose a major portion of finding new content to engage with.

What this does is make more effort required to explore other instances and follow people so that you can get a varied feed.

 If you don’t engage, you don’t exist.

Engaging and communicating becomes even more important because nobody can use their local feed button to find you and you will more than likely be drowned out in the federated feed. To engage and to be found and to talk with other people requires much more exploration and actually responding to posts with your thoughts and opinions so that more people see your handle.

I’m not saying that one should go and spam for attention or participate in clout chasing. I am simply pointing out the fact that the ability for someone to stumble on to you is much harder. You can join a relay but sometimes what you post is outweighed by the flood of what is sent to you.

This also means that the use of hashtags becomes critical. I have discovered it’s a fine line between two little hashtags and too much. 

Actively Managing your server is a Must

There is no one else on your instance that is blocking inappropriate or illegal servers, cleaning out the databases and media folders using the tootctl CLI. All the day to day managing to keep yourself up and running will be handled entirely by you.

(This won’t really apply if you are hosting with a site that promises to take care of that for you but many SUIs I have seen are hosted on their own machines).

It got so bad that I had to write a bash script to automate a lot of the cleaning for me weekly and still have to check on it to make sure it ran correctly, I don’t have to adjust the speed, etc.

This can become doubly worse if you follow a large relay and that relay can swamp your server, run you out of space, and when that happens, your instance goes down.

The safety and security of your server and your feed is one hundred percent on you.

 Need a Script?

I’ve actually offered the script I use for any Ubuntu servers on my public git. I’m still working on it but might give you a good place to start cleaning!

 https://gitlab.com/JonathanS223/mastocleaner

 Until next time!

 

While perusing the internet trying to decide on what I want to put on this blog (besides the one that was just a basic), I realized there is A LOT of tutorials on how to setup mastodon, what the point of decentralized social media is and so forth.

It was a post on the instance I’m residing that gave me what to write. The nuances of living in this form of social media both as a user and as an admin. So, the first part will be for those who are looking for more information about being a user then for newbie admins, the things that I learned.

For ease as you read the first post, I am going to refer to Mastodon, Friendica, and other platforms as the “Decentralized Platforms” or “Fediverse platforms” and Twitter, Facebook, etc as the “Centralized Platforms” or “corporate controlled”. That way I’m not typing each one out all the time. If I need to make a note of a specific difference, I will then call the platform out by name.

Alright! Let’s get this show on the road!

Decentralized Services ARE NOT clones of the Centralized Services

One of the hardest things I have learned is that the decentralized services aren’t just knock-offs or clones of the major corporate controlled platforms that are available to everyone. The only thing that they share in common is their basic concept. To serve users data and information in a social way that promotes community.

If you are coming from one of the centralized platforms, you are used to having your friends, following the people you want to read and having the company serve you a daily list of interesting things they found for you based on search information you have done. It’s normal for you to be able to login, see what’s going on, and then posting a link or comment and keep going.

It’s great in a way that you don’t have to do the leg work to find new and interesting information but the trade off is that centralized platform keeps tabs on what you are doing. At minimum, they keep a profile on you and their users to help feed their computer program and at most, they then use the data to sell advertising space to other companies to target you with ads.

In short, a centralized social media needs money to run and decided that it uses your data to fund itself and then continue to sell it to make a profit for it’s shareholders. The one that comes first is the company.

A decentralized platform is, for the most part, opposite. Instead of taking care of shareholders and doing business, the fediverse services are designed around the concept of interoperability and being able to work with each other. The basic foundations the internet was built on. Down to the most basic of things, a fediverse server like Mastodon, is built to be run by someone but other things can communicate with it. The basics of interconnected computers.

This type of platform sacrifices one singular location and a helpful algorithm to find stuff and trade it that the user needs to do a lot of the work themselves.

In this vast planet of people, there are those who support either methodology to different amount of extremes. The question you should ask yourself is “What do you want?”

If you want a centralized system, there is no judgment from me and you do not have to keep reading this blog post. If you want to continue towards your exploration of the fediverse, then please keep on reading.

Don’t give up. I threw a lot at you but I felt it was important for you to understand the fundamental difference between the two. This isn’t a “run to alternate Twitter because of what Elon Musk is doing.” This is leaving one ecosystem for a brand new one.

So, you’re here and want to be part of the fediverse. What do you do?

That’s a very good question and you are not stupid in asking yourself. It’s actually one of the first key things as a newcomer you should consider. What do you want to do? Are you looking to make/share videos? Are you looking for a micro-blogging platform to share your thoughts? Are you someone who loves computers and want to get involved?

Those are questions you should answer before you move forward. In my case, I wanted to support decentralization so I’ve delved into creating my own instance and continue researching everything so that I can contribute and provide blog articles like this.

For ease of this post, I’m going to assume that you are looking to find a place to continue your social media experience. It’s the easiest to get started.

I’m going to assume you have found a home for your account. If not, check out this blog article for that sort of information.

So what do you do now? Here are a few things you should know about.

Golden Rule: Treat others as you wish to be treated

This might sound stupid to say out loud but the fediverse is built upon the concept of mutual respect and understanding. Rage culture is unacceptable and trolls are frowned upon. I would never give this advice anywhere else but when you get feedback, actually consider it before you ignore it. It could be a courtesy to help you. You’ll want to think it’s a troll but in this case, take a few moments, and then decide.

Nuance 1: Add context to your links (and use the content warnings)

On a centralized platform, it’s common to throw a link on there because the program would find all the info and display it in a nifty, little card. One of the best things you can do for yourself is to break that habit and add context to any link. Even if your fediverse service you are on has the ability, the ones that may be getting the information or the app viewing it may not.

One of the best things you can do is take the time to provide a small bit of information on what the link is about to give viewers an idea what they’re actually going to be clicking on.

Also, you can put content warnings on your posts. Be considerate. If you think someone may be offended or see something that is triggering, throw the content warning on there. Those who want to see it will click on it.

Nuance 2: Hashtags are not cringy; Hashtags are the backbone.

If you’ve been on social media long enough like I have, you have heard that hashtags are cringy and “they’ve ruined social media”.

In the case of a fediverse service, hashtags are actually the glue that sticks things together. In most every decentralized platform you can join has the ability to search through hashtags or even subscribe to them. The way for you to find new content you are interested in and new people to follow is through those hashtags. They are seen everywhere!

Now, do not go and hashtag every single word but keywords of your post so others who are interested in the same thing can find you.

Nuance 3 – You are your own Algorithm.

Are you not seeing anything in your feed? If not, there is a good chance you haven’t followed anyone because your feed is built of people you follow and in cases those who follow them. You are the one who curates what you can see and what shows up in your feed. Subscribing to hashtags, following users with ideas and thoughts like you are great ways to start filling up that feed with information to your liking.

You should follow indiscriminately and unfollow indiscriminately because that’s the only way you’re going to control what you see.

Nuance 4 – And follower and following count isn’t worth anything.

This is going to be the hardest thing to understand, especially if you are coming from a capitalistic platform where you have built a following.

The ratio of followers to following doesn’t mean shit here on the fediverse and that’s because of what we have talked about. People curate their own stuff so following and unfollowing is the way to get your feed the way you like. There is no value to how many followers you have except to understand that whatever your posting about has their interest. If you move on to a different number and your numbers shift, that’s just people adjusting their feed.

Don’t invest in your follower count. Invest in the engagement across the platform. You have to put emphasis on the social of social media, not the last word.

Ending

There is probably a lot that I am missing and that’s because I am still on this journey too. I have had the advantage of a wonderful group of people engaging with me and helping me make these adjustments and I wanted to pass on and provide that to anyone reading this too.

Until next time!

I cannot remember where I saw it (though I know it was on my Mastodon social feed), someone had said that an aspiring infosec specialist should consider creating a blog to document their dive into the world of computers and IT. Over the next few days I thought about it and realized that, not only was that a good idea, it could possibly help someone in the future who is struggling with the exact same issue as you were.

So, here I am, writing a blog post to document it and start of my adventure. Now, I have been an writer for a long period of time and consider myself more of an author than actually in information security. For anyone reading this blog, you’re going to find a wide variety of posts about all sorts of subjects but I’ll try to make sure that the subjects are clear enough for easy parsing for future searchers.

This blog post is short. I just wanted to get something posted while I work on designing the other posts including the issues I have had with my pursuit of decentralizing my presence on the internet.

If any of this looks interesting to you or you want to follow along, feel free to subscribe or if you are part of any social media like mastodon, you can also follow the blog as it has been federalized!

Until next time!

openpgp4fpr:53CFEF0F79AE88D687BC1D6B307FA2726BCF24CF

openpgp4fpr:53CFEF0F79AE88D687BC1D6B307FA2726BCF24CF

Enter your email to subscribe to updates.