IcedRaktajino

joined 1 year ago

I feel like this is the kind of joke Frasier would have told Freddy when he was a kid.

[–] IcedRaktajino@startrek.website 1 points 1 week ago (1 children)

Wait, what?? Those are a thing?

I've seen some rechargeable smoke detectors but never had a reason to trust those. Everything else has used the old school 9v.

[–] IcedRaktajino@startrek.website 41 points 1 week ago* (last edited 1 week ago) (3 children)

Twice a year I fill in as DBA when our lady graybeard Oracle DBA takes vacation. This month is one of those times. Yay me.

For my org, it's just the massive in-house developed line-of-business application that's tightly coupled to Oracle that keeps us chained to it. It's technical debt from top to bottom, and has been accumulating steadily since the early 2010s, but no one seems willing to start replacing it.

The new projects typically go with Postgres, MariaDB, or if all else fails, MSSQL. But the Oracle monster in the closet isn't likely to leave any time soon.

[–] IcedRaktajino@startrek.website 12 points 1 week ago (10 children)

If only 9 volts were that price, I'd stock up for the smoke detectors for the next 5 years.

For everything else, I bought a bunch of rechargeable AA and AAAs a while back and those have been great. Haven't used a D battery in years and a C battery for decades. I assumed they stopped making C's.

[–] IcedRaktajino@startrek.website 11 points 1 week ago (14 children)

Every time I play Skyrim:

"You are carrying too much to be able to run"

Inventory:

  • ...
  • 30 "Solution of Strength" potions

Me: But I might need those later.

[–] IcedRaktajino@startrek.website 3 points 2 weeks ago (1 children)

It's delicious.

[–] IcedRaktajino@startrek.website 48 points 2 weeks ago* (last edited 2 weeks ago) (13 children)

I like to mix whipped cream vodka with strawberry-watermelon flavored Mio, and it's distinctively red. I'm gonna start calling it "Health Potion".

Ask your doctor if it's right for you.

[–] IcedRaktajino@startrek.website 2 points 2 weeks ago* (last edited 2 weeks ago)

Oh, yeah. SSH from laptop or Termux on my phone.

Not sure if there's a CLI way to deal with captive portals or not. Maybe a text-based browser like Lynx/Links2 if the portal isn't super fancy, but I've used the MAC cloning method for ages and it's just my "go to" for dealing with that. Honestly, I don't deal with them very often since I just use a hotspot much of the time with it.

[–] IcedRaktajino@startrek.website 1 points 2 weeks ago (2 children)

I've only had to go through a captive portal once with it but MAC cloning was sufficient

[–] IcedRaktajino@startrek.website 1 points 2 weeks ago* (last edited 2 weeks ago) (1 children)

Security is pretty minimal, not gonna lie.

There's a 50 GB LUKS partition that stays locked unless I'm actively using it. It's got backup copies of my important/critical documents and password manager exports but the rest of it is just media and doesn't really merit encryption.

All applications have local accounts but I'm not using LDAP or any kind of SSO like I am with my main stack.

At home, I keep the firewall disabled on the interface configured as "WAN" so I can access its services directly via their hostname (I point its wildcard DNS record to its local "WAN" IP) but do enable firewall when I'm using it on an untrusted network. Granted, I have to manually remember to do that, so that's kind of a security risk if I forget. Generally, though, when I'm using it remotely, it's using my secondary phone as a USB-tethered uplink so even if I leave its internal services exposed to WAN, the NAT from the phone blocks that. One of my goals, eventually, is to automate some of the firewall rules depending on where I'm using it.

[–] IcedRaktajino@startrek.website -3 points 2 weeks ago (1 children)

Yeah, please accept my downvote. If I wanted political "humor" I would unblock one of the many, many, many political meme communities this could have been posted in.

387
submitted 3 weeks ago* (last edited 3 weeks ago) by IcedRaktajino@startrek.website to c/selfhosted@lemmy.world
 

By popular demand from this post, here's the write-up for my version of that travel server.

The travel server is shown with the, currently, bare 5V UPS board to its right. One day I hope to have a 3D printed case for both of those, but they're currently separate as my 3D modeling skills are basically non-existent. The power cable is wrapped in aluminum foil and then wrapped in electrical tape due to EMI from the wifi adapter causing random glitches. A ferrite bead would probably solve that more elegantly, but I didn't have any on hand so made due with what I have.

Hardware

  • Banana Pi M4 Zero
    • 1.5 GHz Quad Core ARM64
    • 4 GB RAM
    • 32 GB eMMC
    • 1 TB Samsung PRO Plus SD Card (bought before prices went nuts)
  • Li-2B UPS Board + 2x 3,000 mAh 18650 batteries
  • USB-C to USB-A 90 degree angle adapter
  • USB Nano Wifi adapter

Note: Unlike the Pi Zero, these have two USB ports. One is configured in host mode and the other in peripheral mode.

Features and Capabilities

  • Multiple wifi clients can use this for network access
  • Multiple "WAN" options
  • Multiple VPN connections (OpenVPN, Wireguard, IPSEC) e.g.
    • Privacy VPN for general internet traffic
    • Wireguard to connect back to home network
  • Ad-blocking via PiHole
  • Local file sharing via Samba/SMB
  • Locally-hosted web applications with valid hostnames and valid SSL certs (via Let's Encrypt).
    • SearxNG
    • Jellyfin
    • Pairdrop
    • CodeServer
    • Snapcast Server
    • myMPD (MPD web UI)
    • Kiwix (including full Wikipedia dump with images)
    • NodeRED
    • CalibreWeb

Travel Router / Access Point

For internet uplink, there are multiple options depending on need. By default, the internal/bulit-in wi-fi is the internet uplink and the USB wi-fi adapter is the client-facing AP interface. This is how I normally keep it configured in my use-cases.

Alternatively, the built-in wi-fi can be used as the client-facing AP and the uplink to the internet can be provided by a USB-tethered smartphone or a USB ethernet adapter --OR-- the internet uplink can be omitted entirely and either the USB or built-in wifi adapters can serve clients (or both: one in 2.4 GHz mode and the other in 5 GHz mode). Fortunately, the built-in wifi chip in the Banana Pi works well in AP mode but that's not always the case (cough Orange Pi Zero W2 cough).

If a PC is connected to USB0 (the OTG port), the device will act as an ethernet gadget. The travel server will add its end of the usb0 interface into the LAN bridge along with the client-side AP. This means the connected PC will be on the same LAN as the wireless clients.

It's also possible to add a USB ethernet adapter and bridge it into the LAN side as well.

Depending on configuration, a small USB-C hub may be needed. I've got one that includes a USB A port, ethernet port, and additional USB C port.

VPNs can also be configured as needed. I've got a privacy one that can route all traffic as well as a Wireguard one that connects back to my home LAN when I'm using it remotely.

DHCP and DNS are both provided by PiHole

Reverse Proxy

All applications hosted on the travel server are fronted by Nginx and use valid Let's Encrypt certificates. This eliminates the need to install a custom CA cert in end devices or have the clients accept an untrusted self-signed cert.

This also ensures all applications are protected by TLS which is required for full functionality of some applications.

How does that work?

The hostname of the travel server (mobile) is a subdomain of my personal, project domain (mydomain.xyz). All applications are a subdomain of that (e.g. jellyfin.mobile.mydomain.xyz), and I simply request a wildcard cert from Let's Encrypt for *.mobile.mydomain.xyz. Currently, Let's Encrypt requires the use of DNS validation when requesting wildcard certificates.

Movies/TV

Movies and TV shows are provided by Jellyfin and are stored on the 1 TB SD card. I've tested 4 simultaneous streams, and the travel server didn't even break a sweat. Granted, it's not transcoding anything so I believe I'm mostly limited by USB, wifi, and/or SD card bandwidth in that regard.

For reliability, the Jellyfin database is stored on the internal 32 GB eMMC rather than the SD card. This both reduces wear and tear on the card as well as proves to be faster and more reliable.

CPU transoding is a non-starter, and the GPU drivers for these boards isn't exactly well supported. The GPU drivers also rely on V4L which Jellyfin has deprecated for hardware transcoding, so I opted to forego transcoding entirely.

To load movies/TV shows on here, I pre-process them with ffmpeg in the following way:

  • Scale to 720p to save space
  • Encode to H.264 in an MP4 container (including subtitles as mov_text if available) in yuv420p pixel format to avoid the need for remuxing or transcoding
  • Map only the primary English audio and subtitle streams to further save space
  • Downmix multi-channel audio to two-channel stereo

Music

Music is provided by a combination of MPD and Snapcast and the library is also stored on the 1TB SD card.

MPD manages the music collection while Snapcast allows synchronized multi-room audio and connecting receivers via wifi.

For local playback, I use myMPD web UI and use its streaming feed or use the MPD and Snapcast clients on the end device. There's also a Snapcast client installed on the travel server itself, so if you add a USB speaker it can playback music directly.

Books

It runs Calibre-Web to manage my book collection which is also stored on the 1 TB SD card. When my phone is connected to its wifi, it can use my FBReader app to connect to the Calibre library over OPDS to download books.

Development

The travel server runs CodeServer which is an un-Microsofted web-based version of VSCode. You can set that up however you want, but I've got it setup for:

  • React / NextJS development
  • Python development
  • ESP8266/ESP32 development with Platform.io

Other services it runs to facilitate development include:

  • NodeJS and Bun
  • Postgres (via Docker)
  • Mosquitto MQTT
  • Redis
  • CouchDB
  • NodeRED

Offline Knowledge

Kiwix is installed with a large selection of ZIMS for offline reference.

  • DevDocs for React, Bun, NodeJS, ExpressJS, NextJS, etc. Pretty much every major libarary and framework I work with has offline docs
  • Full text Wikipedia dump with images (approx 130GB)

Search

I installed SearxNG so I always have an ad-free, AI-free, no BS search engine available.

File Sharing

The travel server has a few different ways to share files:

  • Samba (SMB) shared folder
  • PairDrop for quick and easy one-to-one local sharing in the browser or phone app
  • SSHFS (alternative method of accessing the SMB shares

Future Plans / Not Yet Implemented

  • Add data passthrough to the UPS board so a host PC can charge the UPS/power the travel server while also enumerating it as a USB ethernet device. Currently the UPS board only passes power and plugs into the peripheral USB port.
  • Add some kind of tile server and map viewer. Inspired by this project.
  • Set up captive portal so Android (and probably Apple, too) devices don't freak out if there's no internet uplink. Currently requires an annoying "Stay connected to this network" and enabling airplane mode so that DNS will work over the wifi connection if there's no internet uplink available.
  • Make a web UI to manage services/configs. Currently, config changes require SSH-ing in and modifying the config directly. I do have preset configs for different "modes" but you still have to swap them around by hand.
  • Design and 3D print a case that can hold the UPS board and the travel server itself while allowing the travel server to be "ejected" (basically I imagine it slotting into it from the outside and connecting to fixed USB and mini HDMI connectors embedded in the case).
 

The lone exception is Pudding in a Cloud because it's delicious.

 
 
 

Just came across this site collecting the pettiest complaints from around the world and figured it'd be right up Lemmy's alley considering, well, how every 3rd post/comment is complaining about something. So channel your embitteredness and share what petty thing is currently annoying you.

It's got a leaderboard by country, so let's see who the whiniest country is.


Note I'm not affiliated with this site, just saw a few articles about it and had a good laugh after seeing some of the petty complaints.

 

Edit: Here's a compilation of all the Cleveland bath gags.

Once I got the first set of rails mounted, it was a bit easier since I could anchor them to that. But the first set, whew, it was all I could do to hang onto my tools and/or parts. This is despite anchoring my backpack full of tools/materials. Backpack was just not reachable when I was doing the bottom and middle mounts.

Only got one rail (5 panels) installed today. Spent a lot of time going up/down retrieving dropped tools, getting random stuff I didn't think I'd need, and struggling to not fall off the roof myself. I get vertigo easily, so this is proving to be more challenging than I thought. Two more rails (10 panels) left to install, but that's a tomorrow problem.

Yes, they're intentionally off-center on the mounts for spacing reasons. Also, yes, I blurred out my house because apparently you can just feed these to a tool that can identify my location. God I hate the internet.

 
 

Dough everywhere: all over me, the counters, my phone when someone calls, you name it, it's got dough on it.

Edit: Reuploaded video since the re-encoding was choppy.

 

Screenshot/lyrics from an old CollegeHumor parody of Ke$ha's "Tik Tok" called "Sing Talk" that lambasts the autotune trend back in 2010.

I've been noticing lately that emails from coworkers are all starting to sound like they were written by the same "person", and this old parody song popped into my head.

27
Say it fast (startrek.website)
submitted 2 months ago* (last edited 2 months ago) by IcedRaktajino@startrek.website to c/dadjokes@lemmy.world
 

Knock knock.

Who's there?

I eat mop.

I eat mop who?

Eww, that's gross.

 

Courtesy of Rose and The Golden Girls.

view more: next ›