{"id":112,"date":"2026-07-28T10:25:55","date_gmt":"2026-07-28T10:25:55","guid":{"rendered":"https:\/\/www.miniamju.com\/index.php\/home\/"},"modified":"2026-07-28T10:25:55","modified_gmt":"2026-07-28T10:25:55","slug":"home","status":"publish","type":"page","link":"https:\/\/www.miniamju.com\/","title":{"rendered":"Home"},"content":{"rendered":"\t<div class=\"miniamju-site\">\n\t\t<section\n\t\t\tclass=\"miniamju-hero\"\n\t\t\tstyle=\"--miniamju-hero-image:url('https:\/\/www.miniamju.com\/wp-content\/plugins\/miniamju-site\/assets\/lab-console.png')\"\n\t\t>\n\t\t\t<div class=\"miniamju-hero__content\">\n\t\t\t\t<h1>Miniamju Lab<\/h1>\n\t\t\t\t<p class=\"miniamju-kicker\">Personal projects, openly documented<\/p>\n\t\t\t<\/div>\n\t\t<\/section>\n\n\t\t<section class=\"miniamju-band\">\n\t\t\t<div class=\"miniamju-section-heading\">\n\t\t\t\t<div>\n\t\t\t\t\t<p class=\"miniamju-kicker\">Find a note<\/p>\n\t\t\t\t\t<h2>Search the lab notebook<\/h2>\n\t\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t\t\t<form class=\"miniamju-search\" method=\"get\" action=\"https:\/\/www.miniamju.com\/index.php\/blog\/\">\n\t\t<label>\n\t\t\t<span>Search articles<\/span>\n\t\t\t<input\n\t\t\t\ttype=\"search\"\n\t\t\t\tname=\"q\"\n\t\t\t\tvalue=\"\"\n\t\t\t\tplaceholder=\"Search practical notes...\"\n\t\t\t>\n\t\t<\/label>\n\t\t<label>\n\t\t\t<span>Topic<\/span>\n\t\t\t<select name=\"topic\">\n\t\t\t\t<option value=\"\">All topics<\/option>\n\t\t\t\t\t\t\t\t\t<option\n\t\t\t\t\t\tvalue=\"containers\"\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\tContainers\t\t\t\t\t<\/option>\n\t\t\t\t\t\t\t\t\t<option\n\t\t\t\t\t\tvalue=\"game-servers\"\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\tGame Servers\t\t\t\t\t<\/option>\n\t\t\t\t\t\t\t\t\t<option\n\t\t\t\t\t\tvalue=\"server-builds\"\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\tServer Builds\t\t\t\t\t<\/option>\n\t\t\t\t\t\t\t\t\t<option\n\t\t\t\t\t\tvalue=\"virtualisation\"\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\tVirtualisation\t\t\t\t\t<\/option>\n\t\t\t\t\t\t\t\t\t<option\n\t\t\t\t\t\tvalue=\"wordpress-web\"\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\tWordPress &amp; Web\t\t\t\t\t<\/option>\n\t\t\t\t\t\t\t<\/select>\n\t\t<\/label>\n\t\t<button class=\"miniamju-button\" type=\"submit\">\n\t\t\tSearch\t\t<\/button>\n\t<\/form>\n\t\t\t<\/section>\n\n\t\t<section class=\"miniamju-band\">\n\t\t\t<div class=\"miniamju-section-heading\">\n\t\t\t\t<div>\n\t\t\t\t\t<p class=\"miniamju-kicker\">Browse by subject<\/p>\n\t\t\t\t\t<h2>Technical topics<\/h2>\n\t\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t\t<div class=\"miniamju-topic-grid\">\n\t\t\t\t\t\t\t\t\t<a\n\t\t\t\t\t\tclass=\"miniamju-topic miniamju-tone-amber\"\n\t\t\t\t\t\thref=\"https:\/\/www.miniamju.com\/index.php\/blog\/?topic=containers\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<span class=\"miniamju-topic__bar\" aria-hidden=\"true\"><\/span>\n\t\t\t\t\t\t<strong>Containers<\/strong>\n\t\t\t\t\t\t<span>LXD and LXC services, application isolation, migration, and recovery.<\/span>\n\t\t\t\t\t\t<small>\n\t\t\t\t\t\t\t3 articles\t\t\t\t\t\t<\/small>\n\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t<a\n\t\t\t\t\t\tclass=\"miniamju-topic miniamju-tone-red\"\n\t\t\t\t\t\thref=\"https:\/\/www.miniamju.com\/index.php\/blog\/?topic=game-servers\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<span class=\"miniamju-topic__bar\" aria-hidden=\"true\"><\/span>\n\t\t\t\t\t\t<strong>Game Servers<\/strong>\n\t\t\t\t\t\t<span>SteamCMD deployments, dedicated servers, updates, and operational notes.<\/span>\n\t\t\t\t\t\t<small>\n\t\t\t\t\t\t\t0 articles\t\t\t\t\t\t<\/small>\n\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t<a\n\t\t\t\t\t\tclass=\"miniamju-topic miniamju-tone-green\"\n\t\t\t\t\t\thref=\"https:\/\/www.miniamju.com\/index.php\/blog\/?topic=server-builds\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<span class=\"miniamju-topic__bar\" aria-hidden=\"true\"><\/span>\n\t\t\t\t\t\t<strong>Server Builds<\/strong>\n\t\t\t\t\t\t<span>Hardware, Ubuntu Server, storage, networking, and operating-system setup.<\/span>\n\t\t\t\t\t\t<small>\n\t\t\t\t\t\t\t2 articles\t\t\t\t\t\t<\/small>\n\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t<a\n\t\t\t\t\t\tclass=\"miniamju-topic miniamju-tone-blue\"\n\t\t\t\t\t\thref=\"https:\/\/www.miniamju.com\/index.php\/blog\/?topic=virtualisation\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<span class=\"miniamju-topic__bar\" aria-hidden=\"true\"><\/span>\n\t\t\t\t\t\t<strong>Virtualisation<\/strong>\n\t\t\t\t\t\t<span>KVM, Windows gaming VMs, device passthrough, and virtual infrastructure.<\/span>\n\t\t\t\t\t\t<small>\n\t\t\t\t\t\t\t1 article\t\t\t\t\t\t<\/small>\n\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t<a\n\t\t\t\t\t\tclass=\"miniamju-topic miniamju-tone-magenta\"\n\t\t\t\t\t\thref=\"https:\/\/www.miniamju.com\/index.php\/blog\/?topic=wordpress-web\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<span class=\"miniamju-topic__bar\" aria-hidden=\"true\"><\/span>\n\t\t\t\t\t\t<strong>WordPress &amp; Web<\/strong>\n\t\t\t\t\t\t<span>WordPress, reverse proxies, PHP, access control, and practical web security.<\/span>\n\t\t\t\t\t\t<small>\n\t\t\t\t\t\t\t2 articles\t\t\t\t\t\t<\/small>\n\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t<\/div>\n\t\t<\/section>\n\n\t\t<section class=\"miniamju-band\">\n\t\t\t<div class=\"miniamju-section-heading\">\n\t\t\t\t<div>\n\t\t\t\t\t<p class=\"miniamju-kicker\">Recently documented<\/p>\n\t\t\t\t\t<h2>Latest articles<\/h2>\n\t\t\t\t<\/div>\n\t\t\t\t<a href=\"https:\/\/www.miniamju.com\/index.php\/blog\/\">\n\t\t\t\t\tView all articles\t\t\t\t<\/a>\n\t\t\t<\/div>\n\t\t\t<div class=\"miniamju-post-grid\">\n\t\t\t\t\t<article class=\"miniamju-post-card miniamju-tone-amber\">\n\t\t<div class=\"miniamju-post-card__visual\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t<span>Containers<\/span>\n\t\t\t\t\t<\/div>\n\t\t<div class=\"miniamju-post-card__body\">\n\t\t\t<div class=\"miniamju-post-card__meta\">\n\t\t\t\t\t\t\t\t\t<span>Containers<\/span>\n\t\t\t\t\t\t\t\t<time datetime=\"2026-07-28T06:16:47+00:00\">\n\t\t\t\t\t28 Jul 2026\t\t\t\t<\/time>\n\t\t\t<\/div>\n\t\t\t<h3>\n\t\t\t\t<a href=\"https:\/\/www.miniamju.com\/index.php\/apache-guacamole-part-1-building-the-remote-access-container\/\">\n\t\t\t\t\tApache Guacamole Part 1: Building the Remote Access Container\t\t\t\t<\/a>\n\t\t\t<\/h3>\n\t\t\t<p>Build an isolated Apache Guacamole gateway with Ubuntu 24.04, LXD, Docker Compose, PostgreSQL, TOTP, and controlled application networks.<\/p>\n\t\t\t<a class=\"miniamju-read-link\" href=\"https:\/\/www.miniamju.com\/index.php\/apache-guacamole-part-1-building-the-remote-access-container\/\">\n\t\t\t\tRead article\t\t\t<\/a>\n\t\t<\/div>\n\t<\/article>\n\t\t<article class=\"miniamju-post-card miniamju-tone-amber\">\n\t\t<div class=\"miniamju-post-card__visual\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t<span>Containers<\/span>\n\t\t\t\t\t<\/div>\n\t\t<div class=\"miniamju-post-card__body\">\n\t\t\t<div class=\"miniamju-post-card__meta\">\n\t\t\t\t\t\t\t\t\t<span>Containers<\/span>\n\t\t\t\t\t\t\t\t<time datetime=\"2026-07-28T06:16:47+00:00\">\n\t\t\t\t\t28 Jul 2026\t\t\t\t<\/time>\n\t\t\t<\/div>\n\t\t\t<h3>\n\t\t\t\t<a href=\"https:\/\/www.miniamju.com\/index.php\/apache-guacamole-part-2-publishing-the-gateway-through-nginx\/\">\n\t\t\t\t\tApache Guacamole Part 2: Publishing the Gateway through Nginx\t\t\t\t<\/a>\n\t\t\t<\/h3>\n\t\t\t<p>Publish Apache Guacamole through Nginx with TLS, WebSocket proxying, real-client addressing, and a backend restricted to the reverse proxy.<\/p>\n\t\t\t<a class=\"miniamju-read-link\" href=\"https:\/\/www.miniamju.com\/index.php\/apache-guacamole-part-2-publishing-the-gateway-through-nginx\/\">\n\t\t\t\tRead article\t\t\t<\/a>\n\t\t<\/div>\n\t<\/article>\n\t\t<article class=\"miniamju-post-card miniamju-tone-amber\">\n\t\t<div class=\"miniamju-post-card__visual\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t<span>Containers<\/span>\n\t\t\t\t\t<\/div>\n\t\t<div class=\"miniamju-post-card__body\">\n\t\t\t<div class=\"miniamju-post-card__meta\">\n\t\t\t\t\t\t\t\t\t<span>Containers<\/span>\n\t\t\t\t\t\t\t\t<time datetime=\"2026-07-28T06:16:47+00:00\">\n\t\t\t\t\t28 Jul 2026\t\t\t\t<\/time>\n\t\t\t<\/div>\n\t\t\t<h3>\n\t\t\t\t<a href=\"https:\/\/www.miniamju.com\/index.php\/apache-guacamole-part-3-connecting-private-virtual-machines\/\">\n\t\t\t\t\tApache Guacamole Part 3: Connecting Private Virtual Machines\t\t\t\t<\/a>\n\t\t\t<\/h3>\n\t\t\t<p>Connect a private Windows VM through a controlled guacd network, endpoint firewall allowlist, NLA, and a dedicated non-administrator RDP account.<\/p>\n\t\t\t<a class=\"miniamju-read-link\" href=\"https:\/\/www.miniamju.com\/index.php\/apache-guacamole-part-3-connecting-private-virtual-machines\/\">\n\t\t\t\tRead article\t\t\t<\/a>\n\t\t<\/div>\n\t<\/article>\n\t\t\t\t<\/div>\n\t\t<\/section>\n\n\t\t<section class=\"miniamju-band\">\n\t\t\t<div class=\"miniamju-section-heading\">\n\t\t\t\t<div>\n\t\t\t\t\t<p class=\"miniamju-kicker\">Article archive<\/p>\n\t\t\t\t\t<h2>Notes organised by content type<\/h2>\n\t\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t\t<div class=\"miniamju-archive-grid\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"miniamju-archive-group\">\n\t\t\t\t\t\t<h3>Containers<\/h3>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<ul>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t\t\t\t<a href=\"https:\/\/www.miniamju.com\/index.php\/apache-guacamole-part-1-building-the-remote-access-container\/\">\n\t\t\t\t\t\t\t\t\t\t\tApache Guacamole Part 1: Building the Remote Access Container\t\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t\t<time datetime=\"2026-07-28T06:16:47+00:00\">\n\t\t\t\t\t\t\t\t\t\t\t28 Jul 2026\t\t\t\t\t\t\t\t\t\t<\/time>\n\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t\t\t\t<a href=\"https:\/\/www.miniamju.com\/index.php\/apache-guacamole-part-2-publishing-the-gateway-through-nginx\/\">\n\t\t\t\t\t\t\t\t\t\t\tApache Guacamole Part 2: Publishing the Gateway through Nginx\t\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t\t<time datetime=\"2026-07-28T06:16:47+00:00\">\n\t\t\t\t\t\t\t\t\t\t\t28 Jul 2026\t\t\t\t\t\t\t\t\t\t<\/time>\n\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t\t\t\t<a href=\"https:\/\/www.miniamju.com\/index.php\/apache-guacamole-part-3-connecting-private-virtual-machines\/\">\n\t\t\t\t\t\t\t\t\t\t\tApache Guacamole Part 3: Connecting Private Virtual Machines\t\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t\t<time datetime=\"2026-07-28T06:16:47+00:00\">\n\t\t\t\t\t\t\t\t\t\t\t28 Jul 2026\t\t\t\t\t\t\t\t\t\t<\/time>\n\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/ul>\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"miniamju-archive-group\">\n\t\t\t\t\t\t<h3>Game Servers<\/h3>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<p>No published notes yet.<\/p>\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"miniamju-archive-group\">\n\t\t\t\t\t\t<h3>Server Builds<\/h3>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<ul>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t\t\t\t<a href=\"https:\/\/www.miniamju.com\/index.php\/apache-guacamole-part-1-building-the-remote-access-container\/\">\n\t\t\t\t\t\t\t\t\t\t\tApache Guacamole Part 1: Building the Remote Access Container\t\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t\t<time datetime=\"2026-07-28T06:16:47+00:00\">\n\t\t\t\t\t\t\t\t\t\t\t28 Jul 2026\t\t\t\t\t\t\t\t\t\t<\/time>\n\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t\t\t\t<a href=\"https:\/\/www.miniamju.com\/index.php\/when-apache-serves-wordpress-php-as-plain-text\/\">\n\t\t\t\t\t\t\t\t\t\t\tWhen Apache Serves WordPress PHP as Plain Text\t\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t\t<time datetime=\"2026-07-22T05:01:00+00:00\">\n\t\t\t\t\t\t\t\t\t\t\t22 Jul 2026\t\t\t\t\t\t\t\t\t\t<\/time>\n\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/ul>\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"miniamju-archive-group\">\n\t\t\t\t\t\t<h3>Virtualisation<\/h3>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<ul>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t\t\t\t<a href=\"https:\/\/www.miniamju.com\/index.php\/apache-guacamole-part-3-connecting-private-virtual-machines\/\">\n\t\t\t\t\t\t\t\t\t\t\tApache Guacamole Part 3: Connecting Private Virtual Machines\t\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t\t<time datetime=\"2026-07-28T06:16:47+00:00\">\n\t\t\t\t\t\t\t\t\t\t\t28 Jul 2026\t\t\t\t\t\t\t\t\t\t<\/time>\n\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/ul>\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"miniamju-archive-group\">\n\t\t\t\t\t\t<h3>WordPress &amp; Web<\/h3>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<ul>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t\t\t\t<a href=\"https:\/\/www.miniamju.com\/index.php\/apache-guacamole-part-2-publishing-the-gateway-through-nginx\/\">\n\t\t\t\t\t\t\t\t\t\t\tApache Guacamole Part 2: Publishing the Gateway through Nginx\t\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t\t<time datetime=\"2026-07-28T06:16:47+00:00\">\n\t\t\t\t\t\t\t\t\t\t\t28 Jul 2026\t\t\t\t\t\t\t\t\t\t<\/time>\n\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t\t\t\t<a href=\"https:\/\/www.miniamju.com\/index.php\/when-apache-serves-wordpress-php-as-plain-text\/\">\n\t\t\t\t\t\t\t\t\t\t\tWhen Apache Serves WordPress PHP as Plain Text\t\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t\t<time datetime=\"2026-07-22T05:01:00+00:00\">\n\t\t\t\t\t\t\t\t\t\t\t22 Jul 2026\t\t\t\t\t\t\t\t\t\t<\/time>\n\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/ul>\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t<\/div>\n\t\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"saved_in_kubio":false,"footnotes":""},"class_list":["post-112","page","type-page","status-publish","hentry"],"kubio_ai_page_context":{"short_desc":"","purpose":"general"},"_links":{"self":[{"href":"https:\/\/www.miniamju.com\/index.php\/wp-json\/wp\/v2\/pages\/112","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.miniamju.com\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.miniamju.com\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.miniamju.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.miniamju.com\/index.php\/wp-json\/wp\/v2\/comments?post=112"}],"version-history":[{"count":1,"href":"https:\/\/www.miniamju.com\/index.php\/wp-json\/wp\/v2\/pages\/112\/revisions"}],"predecessor-version":[{"id":121,"href":"https:\/\/www.miniamju.com\/index.php\/wp-json\/wp\/v2\/pages\/112\/revisions\/121"}],"wp:attachment":[{"href":"https:\/\/www.miniamju.com\/index.php\/wp-json\/wp\/v2\/media?parent=112"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}