RSSAmplifier

Blog

TechSparx News

All postings on TechSparx

techsparx.comRSS feed ↗60 posts

Latest posts

Building affordable homelab Local AI workstations with AMD Ryzen, Ollama, and Docker

The local AI dream can be satisfied with GPUs other than expensive NVIDIA hardware. An AMD Ryzen MiniPC with integrated Radeon GPU and shared memory can run 30B parameter models at usable speeds, for under $1000.

Preventing Ubuntu's Out of Memory killer from crashing your login environment

The user environment on my Ubuntu laptop kept crashing, and I couldn't figure out why or find a solution. Turns out that high memory usage, coupled with an Ubuntu subsystem for reining in "memory pressure", was addressing the problem by killing every process in my login session. The cure is relatively simple.

Self-hosting Ollama, in Docker, to support Local AI features in other Docker services

Many applications of interest to Homelabbers use AI systems to add value. Since Ollama is a popular tool for running LLM AI software, let's look at it as a Docker service which can be used by other tools.

The Hidden Danger of Confident AI: When Wrong Feels Right

Claude confidently told me my phone's software (LineageOS for Pixel 6a) was fundamentally broken. The real problem? Claude incorrectly guessed the root cause, and didn't tell me.

Self-hosted photo gallery and backup using Immich in your homelab

Homelab architecture, how to safely expose home-based services to the Internet

In a homelab, we self-host Internet services on machines installed in our home. While it's easy to access those services at home, accessing them from the Internet takes some preparation. Let's talk about the architecture of publishing Internet services to the Internet from your home network.

Installing Caddy as a homelab reverse proxy, exposing home-based services to the Internet

Caddy is a popular, enterprise-ready web server, that can be easily use as a reverse proxy for a homelab. Homelabbers need a simple tool for hosting many services on a single IP address and easily provision Lets Encrypt SSL certificates. Caddy makes that easy.

Use DynamicDNS to give your homelab services on your home internet connection a domain name

A critical step to create a "homelab" is assigning a domain name to your home network connection. Dynamic DNS lets you do this even if your internet service provider changes your IP address from time to time.

Setting up Docker for an easy-to-configure self-hosting environment

Self-hosting is to host the equivalent of the big-tech Internet services, using open source software, on your own hardware. Docker is typically used for these kind of services since it simplifies administrative chores

How to install NextCloud 30.x using Docker Compose: a comprehensive guide

NextCloud is open source software implementing the equivalent to Google Drive, Dropbox, and the like. Beyond file sharing, it supports document editing, calendars, email, and is attempting to compete with the full breadth of Google Workspace services. It can be self-hosted on your own server, giving you privacy you don't get from commercial cloud services.

How to update a Git branch from the main or master branch

It's recommended to work on bugs or features in a separate Git branch from the main branch. In a long-running development task, the branch may fall behind the main branch. What we'll do in this article is learn how to bring the development branch up-to-date with the main branch to ease committing it to main.

Enabling WiFi Calling using a GL-SFT1200 (Opal) WiFi Travel Router

WiFi Calling is an excellent tool when traveling outside your home country. Curiously, WiFi Calling did not work with my GL-INET SFT-1200 router, but did work with my GL-X750V2 (Spitz) Router. The solution surprisingly requred an exploration of the Linux internals in the Opal router.

Multi-stage Docker image builds, minimizing final image size, supporting multi-architecture containers

Docker supports creating images/containers for (almost) every CPU architecture. But, the image build workflow differs based on the architecture. We discuss one way to handle building Docker images across platforms while minimizing the resulting image size.

Implementing OAuth2 Client Credentials Flow using self-hosted Ory tools

Client Credential Flow is a widely used best practice to authorize software to access APIs of other services. Another best practice is to not DIY implement cybersecurity but to rely on mature well-tested existing tools. Ory, and its open source Hydra component, can easily be used to any OAuth2 scenario, including Client Credential Flow.

Google willing to spend $1000 to get me to restart using Google Analytics

Google says it is worth $1000 for you to use Google Analytics, the free service for tracking website traffic, on your website. As they say, if the online service is free, then you are the product.

Hosting Drupal 7 with PHP 8.2 and MySQL 8.2 using Docker

Drupal 7 is an old release, which due to go end-of-life in January 2025, and which many of us are still using in production. I had set up Docker containers running PHP 7.1 and MySQL 5.7, back when those versions were what's required to host Drupal 7 sites. Since those PHP and MySQL versions are old, the Drupal team has since updated Drupal 7 to run on PHP 8.2 and MySQL 8. Before Drupal 7 goes…

Inspecting a Docker container filesystem without starting a container

Docker images contain instructions for building a filesystem one layer at a time. Sometimes we need to explore the layers to ensure the image is built correctly. Since it's non-obvious how to do that, let's explore several tools.

Using USA regular phone numbers while traveling abroad

A key to successful travel abroad is maintaining phone numbers in your home country. While many cell phone providers offer roaming services, this can be very expensive. WiFi Calling is the way to go.

How to prevent smartphone apps from accessing the Contacts list

The contacts list on your smartphone is routinely accessed by many applications. Here are some simple steps to limit such access.

How to import or export contacts data on Android and iPhone (iOS) devices

While we can synchronize contacts data through a cloud service, we have more control over our data by learning how to import and export the contacts data.

How an American can prepare for life as a full-time traveler, inside or outside the USA

Many Americans love to travel, and some hope to live full time traveling outside the USA. I wanted to try living outside the USA, and after several long-term trips abroad I'm on a super-long trip abroad. Each trip taught me a lot, from which I have some recommendations.

Why avoid sharing smart phone Contacts using iCloud/Google/etc

Smart phones conveniently hold, in the Contacts app, the personal information that used to be a paper phone and address book. The names, addresses, and phone numbers of your friends and associates is important private data that should not be shared freely. Why should services like iCloud or Google get ahold of that data?

Maintaining accounts with USA banks etc, while traveling abroad, using virtual mailboxes and virtual phones

Everyone needs a bank account and phone number for modern life. Anyone who doesn't have a physical address, whether forced by poverty or by lifestyle choice, faces the challenge of maintaining a bank account in the face of banking regulations which require a physical address. Three USA states offer a solution giving full time travelers residency without requiring a normal physical address.

Using SSH or Rclone to mount remote directories on Ubuntu or macOS

SSH is a multifaceted tool that can be used for more than terminal sessions to a remote server. With SSHFS, we can mount a remote filesystem.

How to self-host our Contacts list on NextCloud

Smart phones conveniently hold what used to be a paper phone and address book. The Contacts app stores names, addresses, phone numbers, and other data about our people or business contacts. NextCloud is a comprehensive open-source solution for sharing our data, including our contacts list, between multiple devices.

Using WEBDAV to mount a NextCloud account on Ubuntu or macOS

NextCloud, as an open source alternative to Google Drive, offers file storage on personally-owned cloud infrastructure. While we primarily access our files with the NextCoud web user interface, it supports the WEBDAV. That means we can easily mount a NextCloud account on our desktop computer as a filesystem.

Mounting S3 (compatible) buckets as a filesystem on Linux or macOS using S3FS or Rclone

Amazon's AWS S3 (Simple Storage Service) offers bulk data storage on "the cloud". With the correct software, we can access S3 services from AWS (or compatible providers), on Linux or macOS, using command-line tools, or mounting it as a filesystem.

Installing Dockge, a lightweight Docker management tool

Managing Docker infrastructure solely with command-line tools is powerful but full of geeky details which can be simplified with a GUI. Dockge is a web GUI offering a point-and-click approach to managing application stacks deployed with Docker Compose.

Advanced setup tips for Multipass 1.12.x

Multipass is an excellent tool for running Ubuntu on Linux, macOS or Windows laptops. It includes some advanced features for "power users".

How to enable passwordless SSH login on Ubuntu inside Multipass

Multipass is an excellent tool for running Ubuntu on macOS or Windows laptops. Out of the box it does not enable passwordless SSH access to the Ubuntu instance, and instead you use the multipass shell command. Sometimes you need passwordless SSH access, however.

Installing Docker Engine or Desktop on Ubuntu, macOS or Windows

Docker is a system for deploying containerized software on laptops, single board computers, server farms, or massive compute systems. It gives you a Linux environment in which to install software, that is packaged in a portable format, for execution on any system that can run Open Container Initiative (OCI) containers. It is easy to setup Docker on Linux hosts, and only slightly harder on Mac or…

Autogenerating TypeScript types and data validation for OpenAPI Schemas

OpenAPI lets one describe web API methods and data types in a language-neutral format. While we can manually write code matching the schema, automatic code generation is more agile. This article focuses on autogeneration of data types and data validation for TypeScript on Node.js.

How to get the maximum value of a field in MongoDB

The task of generating a sequence of integers, such as identifiers for documents in a MongoDB collection, is conceptually. But, like many seemingly simple coding tasks, it's easy to end up confronting an obtuse error message like "RangeError: Maximum call stack size exceeded".

Getting a South Dakota full time traveler ID using Traveling Mailbox

South Dakota offers folks who are full time travelers and do not have a fixed residence, to get a drivers license or ID card. One option is using a Traveling Mailbox mail forwarding account as a residence address. While a prominent YouTube channel ran into trouble with using Traveling Mailbox for this purpose, I had success.

Mounting APFS file systems on Ubuntu 22.04

The Linux ecosystem includes filesystem support for disks from many operating sytems. Apples APFS is very nice with powerful features. Setting up APFS support on Linux/Ubuntu is tricky, however.

Using Podman to run MongoDB on MacOS mounting data directory from MacOS host

Podman, the Docker alternative for running Docker containers, runs great on MacOS. But, some scenarios can be tricky, such as mounting macOS host directories into a container.

TypeScript adds to programmer productivity and expressiveness, and is not dying

Recently the teams for a couple front-end libraries abandoned using TypeScript and returned to vanilla JavaScript. That leads some to claim TypeScript is dying, and anyway that it doesn't provide useful productivity advantages to developers. While I do not have data on software development trends, I do find TypeScript adds significantly to my development work, without costing significant time.

The Power of the Doctor and the near death experience

The Master of course snarfed up everything he could carry from Gallifrey and in his eternal quest against The Doctor, he used the "forced regeneration machine". That sent The Doctor into a near death experience that was extremely unlike real NDEs.

Doctor who going on 1 yr hiatus before 60th anniversary 3-specials blowout

Surprise, David Tennant is the 14th Doctor, and the schedule says no new episodes until November 2023. And, that new logo looks awfully familiar.

Authenticating and encrypting MQTT to Mosquitto with SSL

A huge part of modern Internet security is SSL/TLS, which encrypts data and authenticates connections. This is the technology behind HTTPS, and can be used to securely run MQTT on the Internet.

Bring sanity to your desk by installing the Barrier KVM

Having multiple computers is great except for dealing with multiple keyboards and mice. Barrier is easy-to-use-and-install a software pseudo-KVM to control multiple computers from one keyboard/mouse.

Deploying Mosquitto MQTT broker on Linux using Docker

Getting started with Mosquitto is deceptively easy. We show you how to avoid the pitfalls.

How to connect a digital camera by USB to Ubuntu/Linux

Connecting to digital cameras via USB lets you easily browse the images or videos like any other disc. Installing a couple things we can do this as easily on Linux as on Mac or Windows.

Google demonetizing YouTubers reporting on Russia's war on Ukraine

While YouTube is fighting a real problem of misinformation regarding Russia's war on Ukraine, some YouTubers who report on the war have been demonetized.

Details about USPS form 1583 the CMRA's don't tell you about

Signing up with a mail forwarding or virtual mailbox service requires filling out USPS form 1583. While the form looks to be simple, there are many details that can trip you up.

The new test framework built-in to Node.js 18.8.0

New in Node.js v18.8.0 is a test framework highly remniscient of Mocha. It is marked as experimental , but points to a future where our unit tests will not require an external dependency like Mocha.

Using Protocol Buffers with Node.js applications

Protocol Buffers is a Google-developed toolchain for binary encoding of data and objects that works between programming languages. It is the basis of gRPC, a cross-language remote procedure call system, but can be used separately.

Bun is baking its way towards Node.js compatibility

Following up on earlier Bun testing, as of v0.1.8, it is improving rapidly, but is still missing important functionality.

Debugging Syntax Error Unexpected Reserved Word in Mocha on Modern Node.js

The error Unexpected Reserved Word usually means you're using await in a non-async function. But what if Mocha throws this error, citing a test suite file that's clean of such problems? To save spending fruitless hours, read this short article.

Power input and output limits on the Raspberry Pi 4B and 400

The Raspberry Pi can power devices attached to the GPIO pins, or to the USB bus. But it's easy to accidently overload its power system.