There is no simple toggle to disable private one to one chat in the Odoo Discuss module. It can be achieved through a record rule though. TL;DR Add record rule [('channel_type', '!=', 'chat')] on the Discussion Channel model The Problem Very simply we want to disable one to one private chats in Odoo Discuss. The Solution The solution is to add a single record rule on the Discussion Channel model.…
In an INCUS container on a KVM guest, ping commands are successful when executed on the container, but not when the are executed from the host on the other end. TL;DR Change the libvirt virtual bridge forwarding mode to "open" The Problem Consider a scenario where there is a group of physical servers connected to a core router. On one of the servers a KVM guest is running, which in turn is a host…
A two month trip to Europe and the USA along with endless work on migration of existing services and applications to the new infrastructure has lead to their being very little headline news concerning the development of the public offering. Changelog CIX colo deployment Deployment of equipment to our colocation cabinet at CIX data center in Cork, Ireland occurred in September. With good…
When storing an SSH private key in GitLab CICD variables I encountered a strange error: "Unable to create masked variable because: The value cannot contain the following characters: whitespace characters." TL;DR Base64 encode the SSH private key and then decode when using it in .gitlab-ci.yml The Solution The solution is to base64 encode the SSH private key, store that in a GitLab variable and…
It's been a busy 8 weeks at Equinix in Melbourne and now the servers are finally online and running customer applications. Changelog Equinix ME2 colo deployment The deployment of equipment in the colocation space at Equinix ME2 in Melbourne continued these past two months. Racking the equipment was very speedy, however we encountered difficulty with our networking equipment/toplogy immediately…
Since 2018 I have been offering private cloud infrastructure to businesses around the globe. In the course of this work I have observed there is a lot of commonality to the technical and business challenges encountered by these customers. The outstanding deficiency in the majority of solutions offered by the market is a lack of sustainability and a strong tendency towards lock-in of one form or…
Since version 7, Mikrotik Router OS supports the WireGuard VPN. Wonderful. How do I connect multiple mobile or laptop clients to a Mikrotik router using WireGuard? TL;DR The Mikrotik documentation regarding a 'road warrior' setup is pretty good. It includes all the requisite steps, but misses a neccessary emphasis. On the client device, you MUST set the allowed address for the client to x.x.x.x/32…
You are running some LXC containers on a host and you use Firewalld to forward ports from the public internet to the containers. How do you enable access to the public IP of the LXD host from the LXC containers? TL;DR Ordinarily connections from containers to to services which are reached by port forwarding on Firewalld fail, because after outputting the packet to the public interface, it never…
I recently encountered a Laravel 'constraint violation' error related to JSON field. The logs were not revealing and the bug was intermittent. It took me some time, but fortunately the fix was easy. TL;DR Problem: In Laravel's Model class I had set the field to guarded and then provided an invalid default value. Solution: In Laravel make the default values of your model's JSON fields valid JSON…
When setting up an additional IPv4 subnet on a dedicated Hetzner server I learned that Firewalld is terrible at handling IP forwarding. TL;DR Until now, Firewalld has been bad at intra zone forwarding ( Firewalld project blog post ). A new feature solves the problem: firewall-cmd --zone=example --add-forward The feature is unavailable in versions <= 0.8.2. Migrate to CentOS Stream and upgrade to…
A box of electronics arrived the other day, amongst the components was a DFRobot FireBeetle v2 board (DFR0654). An exciting ESP-WROOM-32E MCU device, well made and well priced. However I had a few hiccups getting started, in particular the device was difficult to flash and the built-in RGB LED did not work with the FastLED Arduino library as suggested by the documentation. Information was thin…
While flashing a Raspberry Pi Pico (RP2040) from a Raspberry Pi 3 I got the error "No drive to deploy", there's a relatively simple fix if hard to find on the internet. Error Flashing the Device While using Earle Philhower's RP2040 board package in the arduino-cli to flash a Raspberry Pi Pico (RP2040) from a Raspberry Pi 3 (Raspberry Pi OS Lite, buster) I got the following error: Converting to…
I recently encountered an error on a database server when using dnf (yum) on CentOS 8 Stream. Dependencies for MariaDB and borgbackup created a problem and there was an unusual fix which I hadn't previously been aware of. TL;DR Set module_hotfixes=true in MariaDB repo definition Enabled powertools repository as recommended by Fedora EPEL team The Problem When I went to use the dnf package manager,…
I recently noticed a drive in my home NAS was pre-fail according to S.M.A.R.T. diagnostics, when I replaced the drive I found it difficult to mount the remaining drives in the LVM VG to recover data. TL;DR Use command lvchange -ay --partial example_logical_volume to bring a LVM LV with failed disks The Problem The LVM volume that the drive was a member of had three drives. The majority of the data…
This week I encountered the most bizzare support request: "Is it possible that our website would not load on iPhones?". Don't be silly, "that's not a thing" I told the customer ... It appears I was wrong. TL;DR Every browser on iOS behaved the same and gave vague feedback Curl gave the same error, but provided far better feedback The error was caused by a web server behind a reverse proxy sending…
Today I submitted a role to Ansible Galaxy "initialises MySQL/Percona/MariaDB Server software on a host". While not my first Ansible role, this was the first time I released a role on Ansible Galaxy. TL;DR The Ansible Galaxy has it's flaws, but I gave it a crack anyway The role is very basic and at the moment "installs MariaDB or MySQL community server, sets t he root password and creates…
Over the past few weeks I have been working to get this personal website and blog "on the indieweb" and in large part I have succeeded. Here is an account of my experience and the challenges I encountered. TL;DR IndieMark is a great roadmap and priority list for your IndieWeb-site development Using GravCMS I was able to quickly get my website to IndieMark Level 1 Multiple domains + 308 redirects +…
Welcome all. This blog has been a long time coming, I would say long-awaited, but at the moment I suspect I am speaking into the ether. The purpose of the blog is to provied a space to share things I've learned, heard, found, etc. Also a place for me to archive things important to me which is publcily accessible, so that those of you out there on the web with which I share an interest can also…