41554 blogs · [ { "id": "01a087ea-c835-720f-a42c-301013f6e3de", "title": "Building affordable homelab Local AI workstations with AMD Ryzen, Ollama, and Docker", "url": "https://techsparx.com/homelab/services/ollama-ryzen-docker.html", "published_at": "2026-02-13T22:00:00+00:00" }, { "id": "01a087ea-c835-720f-a42c-301014f14a76", "title": "Preventing Ubuntu's Out of Memory killer from crashing your login environment", "url": "https://techsparx.com/linux/performance/linux-no-crash.html", "published_at": "2026-02-13T22:00:00+00:00" }, { "id": "01a087ea-c835-720f-a42c-3010157325e1", "title": "Self-hosting Ollama, in Docker, to support Local AI features in other Docker services", "url": "https://techsparx.com/homelab/services/ollama.html", "published_at": "2026-01-22T22:00:00+00:00" }, { "id": "01a087ea-c835-720f-a42c-30101598bc04", "title": "The Hidden Danger of Confident AI: When Wrong Feels Right", "url": "https://techsparx.com/software-development/ai/claude-hallucinates.html", "published_at": "2025-06-10T21:00:00+00:00" }, { "id": "01a087ea-c835-720f-a42c-30101667e79e", "title": "Self-hosted photo gallery and backup using Immich in your homelab", "url": "https://techsparx.com/homelab/applications/immich.html", "published_at": "2025-05-15T21:00:00+00:00" }, { "id": "01a087ea-c835-720f-a42c-301016fe7915", "title": "Homelab architecture, how to safely expose home-based services to the Internet", "url": "https://techsparx.com/homelab/architecture.html", "published_at": "2025-04-29T21:00:00+00:00" }, { "id": "01a087ea-c835-720f-a42c-3010175ecbd5", "title": "Installing Caddy as a homelab reverse proxy, exposing home-based services to the Internet", "url": "https://techsparx.com/homelab/reverse-proxy/caddy.html", "published_at": "2025-03-30T21:00:00+00:00" }, { "id": "01a087ea-c835-720f-a42c-3010185c911d", "title": "Use DynamicDNS to give your homelab services on your home internet connection a domain name", "url": "https://techsparx.com/homelab/dns/dynamic-dns.html", "published_at": "2025-03-14T22:00:00+00:00" }, { "id": "01a087ea-c835-720f-a42c-3010195928b8", "title": "Setting up Docker for an easy-to-configure self-hosting environment", "url": "https://techsparx.com/software-development/docker/self-hosting/docker-setup.html", "published_at": "2025-03-14T22:00:00+00:00" }, { "id": "01a087ea-c835-720f-a42c-30101999c296", "title": "How to install NextCloud 30.x using Docker Compose: a comprehensive guide", "url": "https://techsparx.com/software-development/docker/self-hosting/nextcloud.html", "published_at": "2025-03-01T22:00:00+00:00" }, { "id": "01a087ea-c835-720f-a42c-301019f6f244", "title": "How to update a Git branch from the main or master branch", "url": "https://techsparx.com/software-development/git/update-branch-from-main.html", "published_at": "2025-02-17T22:00:00+00:00" }, { "id": "01a087ea-c835-720f-a42c-30101a5a3cd0", "title": "Enabling WiFi Calling using a GL-SFT1200 (Opal) WiFi Travel Router", "url": "https://techsparx.com/linux/routers/wifi-calling.html", "published_at": "2024-12-23T22:00:00+00:00" }, { "id": "01a087ea-c835-720f-a42c-30101b17ab63", "title": "Multi-stage Docker image builds, minimizing final image size, supporting multi-architecture containers", "url": "https://techsparx.com/software-development/docker/tutorials/multi-stage-multi-platform.html", "published_at": "2024-10-19T21:00:00+00:00" }, { "id": "01a087ea-c835-720f-a42c-30101b5aea6b", "title": "Implementing OAuth2 Client Credentials Flow using self-hosted Ory tools", "url": "https://techsparx.com/software-development/oauth2/oauth2-client-credentials-ory.html", "published_at": "2024-09-19T21:00:00+00:00" }, { "id": "01a087ea-c835-720f-a42c-30101baec8c6", "title": "Google willing to spend $1000 to get me to restart using Google Analytics", "url": "https://techsparx.com/privacy/google/analytics-data-worth.html", "published_at": "2024-09-04T21:00:00+00:00" }, { "id": "01a087ea-c835-720f-a42c-30101c37883a", "title": "Hosting Drupal 7 with PHP 8.2 and MySQL 8.2 using Docker", "url": "https://techsparx.com/software-development/drupal/modern-drupal-7-hosting-docker.html", "published_at": "2024-07-24T21:00:00+00:00" }, { "id": "01a087ea-c835-720f-a42c-30101c91b2ca", "title": "Inspecting a Docker container filesystem without starting a container", "url": "https://techsparx.com/software-development/docker/internals/container-filesystem.html", "published_at": "2024-07-19T21:00:00+00:00" }, { "id": "01a087ea-c835-720f-a42c-30101d435e11", "title": "Using USA regular phone numbers while traveling abroad", "url": "https://techsparx.com/lifestyle/travel/cell-phones.html", "published_at": "2024-07-07T21:00:00+00:00" }, { "id": "01a087ea-c835-720f-a42c-30101d9dbc10", "title": "How to prevent smartphone apps from accessing the Contacts list", "url": "https://techsparx.com/lifestyle/own-data/contacts/secure.html", "published_at": "2024-06-05T21:00:00+00:00" }, { "id": "01a087ea-c835-720f-a42c-30101e1ad52a", "title": "How to import or export contacts data on Android and iPhone (iOS) devices", "url": "https://techsparx.com/lifestyle/own-data/contacts/import-export.html", "published_at": "2024-05-23T21:00:00+00:00" }, { "id": "01a087ea-c835-720f-a42c-30101ee0fcb7", "title": "How an American can prepare for life as a full-time traveler,\ninside or outside the USA", "url": "https://techsparx.com/lifestyle/travel/prepare-full-time-travel.html", "published_at": "2024-03-24T22:00:00+00:00" }, { "id": "01a087ea-c835-720f-a42c-30101f2bcfa4", "title": "Why avoid sharing smart phone Contacts using iCloud/Google/etc", "url": "https://techsparx.com/lifestyle/own-data/contacts/why.html", "published_at": "2024-03-23T22:00:00+00:00" }, { "id": "01a087ea-c835-720f-a42c-30102009f6c9", "title": "Maintaining accounts with USA banks etc, while traveling abroad, using virtual mailboxes and virtual phones", "url": "https://techsparx.com/lifestyle/travel/identity/us-financial-traveling.html", "published_at": "2024-03-04T22:00:00+00:00" }, { "id": "01a087ea-c835-720f-a42c-301020fca155", "title": "Using SSH or Rclone to mount remote directories on Ubuntu or macOS", "url": "https://techsparx.com/linux/filesystems/ssh-remote.html", "published_at": "2024-03-02T22:00:00+00:00" }, { "id": "01a087ea-c835-720f-a42c-301021c77801", "title": "How to self-host our Contacts list on NextCloud", "url": "https://techsparx.com/lifestyle/own-data/contacts/nextcloud-contacts.html", "published_at": "2024-02-23T22:00:00+00:00" }, { "id": "01a087ea-c835-720f-a42c-301021d2fe48", "title": "Using WEBDAV to mount a NextCloud account on Ubuntu or macOS", "url": "https://techsparx.com/linux/filesystems/davfs-nextcloud.html", "published_at": "2024-01-19T22:00:00+00:00" }, { "id": "01a087ea-c835-720f-a42c-3010225c9d31", "title": "Mounting S3 (compatible) buckets as a filesystem on Linux or macOS using S3FS or Rclone", "url": "https://techsparx.com/linux/filesystems/s3-filesystem.html", "published_at": "2024-01-19T22:00:00+00:00" }, { "id": "01a087ea-c835-720f-a42c-3010232f9028", "title": "Installing Dockge, a lightweight Docker management tool", "url": "https://techsparx.com/software-development/docker/self-hosting/dockge-setup.html", "published_at": "2024-01-14T22:00:00+00:00" }, { "id": "01a087ea-c835-720f-a42c-30102359b3be", "title": "Advanced setup tips for Multipass 1.12.x", "url": "https://techsparx.com/linux/multipass/advanced.html", "published_at": "2024-01-05T22:00:00+00:00" }, { "id": "01a087ea-c835-720f-a42c-30102418e42a", "title": "How to enable passwordless SSH login on Ubuntu inside Multipass", "url": "https://techsparx.com/linux/multipass/enable-ssh.html", "published_at": "2024-01-05T22:00:00+00:00" }, { "id": "01a087ea-c835-720f-a42c-30102486ce31", "title": "Installing Docker Engine or Desktop on Ubuntu, macOS or Windows", "url": "https://techsparx.com/software-development/docker/install-docker.html", "published_at": "2024-01-01T22:00:00+00:00" }, { "id": "01a087ea-c835-720f-a42c-3010252452c0", "title": "Autogenerating TypeScript types and data validation for OpenAPI Schemas", "url": "https://techsparx.com/nodejs/openapi/schema-types.html", "published_at": "2023-12-14T22:00:00+00:00" }, { "id": "01a087ea-c835-720f-a42c-3010256187df", "title": "How to get the maximum value of a field in MongoDB", "url": "https://techsparx.com/software-development/mongodb/sequential-id-numbers.html", "published_at": "2023-10-25T21:00:00+00:00" }, { "id": "01a087ea-c835-720f-a42c-301025af7545", "title": "Getting a South Dakota full time traveler ID using Traveling Mailbox", "url": "https://techsparx.com/lifestyle/travel/identity/traveling-mailbox-sd-nomad.html", "published_at": "2023-10-13T21:00:00+00:00" }, { "id": "01a087ea-c835-720f-a42c-301025e1767b", "title": "Mounting APFS file systems on Ubuntu 22.04", "url": "https://techsparx.com/linux/ubuntu/mount-apfs.html", "published_at": "2023-10-13T21:00:00+00:00" }, { "id": "01a087ea-c835-720f-a42c-301026a5a42a", "title": "Using Podman to run MongoDB on MacOS mounting data directory from MacOS host", "url": "https://techsparx.com/software-development/docker/podman/mongodb.html", "published_at": "2023-10-05T21:00:00+00:00" }, { "id": "01a087ea-c835-720f-a42c-30102785362d", "title": "TypeScript adds to programmer productivity and expressiveness, and is not dying", "url": "https://techsparx.com/nodejs/typescript/typescript-dying.html", "published_at": "2023-09-20T21:00:00+00:00" }, { "id": "01a087ea-c835-720f-a42c-301027a8371e", "title": "The Power of the Doctor and the near death experience", "url": "https://techsparx.com/doctor-who/2022-season/doctor-nde.html", "published_at": "2022-10-26T21:00:00+00:00" }, { "id": "01a087ea-c835-720f-a42c-301027ab158c", "title": "Doctor who going on 1 yr hiatus before 60th anniversary 3-specials blowout", "url": "https://techsparx.com/doctor-who/2023-season/2023-schedule.html", "published_at": "2022-10-24T21:00:00+00:00" }, { "id": "01a087ea-c835-720f-a42c-3010282be96a", "title": "Authenticating and encrypting MQTT to Mosquitto with SSL", "url": "https://techsparx.com/software-development/mqtt/mosquitto-ssl.html", "published_at": "2022-10-22T21:00:00+00:00" }, { "id": "01a087ea-c835-720f-a42c-3010291f1e09", "title": "Bring sanity to your desk by installing the Barrier KVM", "url": "https://techsparx.com/linux/tools/barrier.html", "published_at": "2022-10-12T21:00:00+00:00" }, { "id": "01a087ea-c835-720f-a42c-30102932f8ab", "title": "Deploying Mosquitto MQTT broker on Linux using Docker", "url": "https://techsparx.com/software-development/mqtt/mosquitto-docker.html", "published_at": "2022-10-12T21:00:00+00:00" }, { "id": "01a087ea-c835-720f-a42c-301029da3233", "title": "How to connect a digital camera by USB to Ubuntu/Linux", "url": "https://techsparx.com/linux/photography/digital-camera-interface.html", "published_at": "2022-10-11T21:00:00+00:00" }, { "id": "01a087ea-c835-720f-a42c-30102a2dce11", "title": "Google demonetizing YouTubers reporting on Russia's war on Ukraine", "url": "https://techsparx.com/lifestyle/content-creators/ukraine-demonetization.html", "published_at": "2022-10-07T21:00:00+00:00" }, { "id": "01a087ea-c835-720f-a42c-30102a6dafee", "title": "Details about USPS form 1583 the CMRA's don't tell you about", "url": "https://techsparx.com/lifestyle/virtual-mailboxes/usps-form-1583.html", "published_at": "2022-09-05T21:00:00+00:00" }, { "id": "01a087ea-c835-720f-a42c-30102b05c808", "title": "The new test framework built-in to Node.js 18.8.0", "url": "https://techsparx.com/nodejs/testing/node-test.html", "published_at": "2022-09-04T21:00:00+00:00" }, { "id": "01a087ea-c835-720f-a42c-30102b70d770", "title": "Using Protocol Buffers with Node.js applications", "url": "https://techsparx.com/nodejs/datastore/protocol-buffers.html", "published_at": "2022-08-21T21:00:00+00:00" }, { "id": "01a087ea-c835-720f-a42c-30102bee420c", "title": "Bun is baking its way towards Node.js compatibility", "url": "https://techsparx.com/nodejs/bun/test-2022-08-12.html", "published_at": "2022-08-17T21:00:00+00:00" }, { "id": "01a087ea-c835-720f-a42c-30102bfb80bb", "title": "Debugging Syntax Error Unexpected Reserved Word in Mocha on Modern Node.js", "url": "https://techsparx.com/nodejs/esnext/mocha-reserved-word.html", "published_at": "2022-08-06T21:00:00+00:00" }, { "id": "01a087ea-c835-720f-a42c-30102c218e4d", "title": "Power input and output limits on the Raspberry Pi 4B and 400", "url": "https://techsparx.com/linux-sbc/raspberry-pi/pi4-usb-power-limit.html", "published_at": "2022-07-28T21:00:00+00:00" }, { "id": "01a087ea-c835-720f-a42c-30102d0745e2", "title": "Use your iPhone or Android as webcam input to OBS on Linux, macOS, or Windows", "url": "https://techsparx.com/blogging/video/iphone-obs.html", "published_at": "2022-07-25T21:00:00+00:00" }, { "id": "01a087ea-c835-720f-a42c-30102d379a50", "title": "Deeper testing of Bun's performance and compatibility against Node.js", "url": "https://techsparx.com/nodejs/bun/speed-test.html", "published_at": "2022-07-21T21:00:00+00:00" }, { "id": "01a087ea-c835-720f-a42c-30102d609215", "title": "Using multiple USB disks on a Raspberry Pi OS on RPI 4", "url": "https://techsparx.com/linux-sbc/raspberry-pi/automount-usb.html", "published_at": "2022-07-15T21:00:00+00:00" }, { "id": "01a087ea-c835-720f-a42c-30102d7e2f1b", "title": "Self-hosted metasearch engine protects against tracking from Google, Bing, etc", "url": "https://techsparx.com/software-development/docker/tutorials/diy-search-engine.html", "published_at": "2022-07-12T21:00:00+00:00" }, { "id": "01a087ea-c835-720f-a42c-30102df09527", "title": "Self-hosted DMARC report viewer to aid your anti-SPAM effort", "url": "https://techsparx.com/software-development/docker/tutorials/dmarc-report.html", "published_at": "2022-07-11T21:00:00+00:00" }, { "id": "01a087ea-c835-720f-a42c-30102e85b3a6", "title": "Testing Bun's compatibility with Node.js and speed with a complex application", "url": "https://techsparx.com/nodejs/bun/1st-trial.html", "published_at": "2022-07-08T21:00:00+00:00" }, { "id": "01a087ea-c835-720f-a42c-30102f21e70a", "title": "A portable WiFI router/NAS/Docker using RaspAP on Raspberry Pi 4 with USB/SSD boot device", "url": "https://techsparx.com/linux-sbc/raspberry-pi/pi4-raspap.html", "published_at": "2022-07-07T21:00:00+00:00" }, { "id": "01a087ea-c835-720f-a42c-30102f423f9e", "title": "Manually build a portable WiFI router/NAS/Docker on Raspberry Pi 4", "url": "https://techsparx.com/linux-sbc/raspberry-pi/rpi4-manual-router.html", "published_at": "2022-07-07T21:00:00+00:00" }, { "id": "01a087ea-c835-720f-a42c-30102feb5207", "title": "Installing OpenWRT on Raspberry Pi 4 using USB boot device", "url": "https://techsparx.com/linux-sbc/raspberry-pi/pi4-openwrt.html", "published_at": "2022-07-05T21:00:00+00:00" }, { "id": "01a087ea-c835-720f-a42c-3010308895a3", "title": "How to Boot a Raspberry Pi 4 or 400 from a USB drive", "url": "https://techsparx.com/linux-sbc/raspberry-pi/pi4-boot-usb.html", "published_at": "2022-07-03T21:00:00+00:00" } ] posts Claim your blog
Back to TechSparx
Blog · corpus.blog/blogs/techsparx.com/posts

TechSparx

techsparx.com

2026

2025

2024

2023

2022