I work at Vegard IT as a senior consultant, focusing on collaboration software, Kubernetes, security, and automation. I primarily work with HCL Connections, WebSphere Application Server, Kubernetes, Ansible, Terraform, and Linux.
My daily work occasionally leads to technical talks and blog articles, which I share here more or less regularly. You can find my presentations in the main menu under Public Speaking.
I save links I want to read later or store because they are interesting in Linkding.
If you’re interested in my shared links, check this link in your browser.
On the weekend of 27–29 March 2026, I had the opportunity to attend the Chemnitz Linux Days for the third time. This year it felt like coming home, and I enjoyed every second — meeting friends, attending sessions, and talking to like-minded people. Around 3,800 visitors attended the conference over the two days.
If you use Apple push notifications with HCL Connections, please be aware that the certificates included in 8.0CR12 and earlier will expire on March 13th, 2026 at 15:32:47 CET.
HCL Connections heavily relies on HTML and JavaScript. When troubleshooting issues, administrators or support teams may struggle to reproduce problems. Providing console logs and HAR (HTTP Archive) files directly from your browser session can offer crucial insights, helping to diagnose and resolve issues more effectively.
During testing with Talos Kubernetes deployments on Libvirt, I encountered an issue where created virtual machines used fully provisioned disks, which consumed the complete configured disk size on the host system.
Over the last few days, I received several messages from Connections users reporting that their embedded YouTube videos could no longer load in Connections Blogs and instead displayed Error 153. This prompted me to investigate the issue.
Warning The is just a proof of concept and shouldn’t be used in production! I still have some issues with redirects to the new hostname.
In the series of encrypting network traffic within HCL Connections and Component Pack:
Encrypt IHS Proxypass Traffic To Component Pack Securing Redis Traffic in HCL Connections with SSH Tunnels the customizer part is missing. In a default configuration (or when you install as documented), the traffic from IHS and NGINX that is forwarded to the customizer (mw-proxy) and Ingress is unencrypted.
HCL published the Security Bulletin: HCL Connections is affected by an XML External Entity (XXE) vulnerability in Apache Tika (CVE-2025-54988) that Connections is also vulnerable for CVE-2025-54988!
I build a custom image for my notebooks based on Fedora Silverblue. About the why and how I spoke at several conferences. The last talk was: Gulasch Programmiernacht 2025. To build the image I use BlueBuild.
Some years ago Connections Files changed the catalog view from paginated view to continuous scrolling.
This had two caveats:
On large monitors (4k for example) only 10-20 files appear and the trigger to start loading more files to complete the list is not working Feed icon (Feed for these Files) to copy the RSS feed URL is hard to get on large file catalogs (scrolling starts, and you can’t right-click to copy)
This weekend I attended FrOSCon, an open source event in St. Augustin / Bonn, Germany. On Saturday around lunch time there was a new visitor record of 1200. I don’t know how many more came in the afternoon and on Sunday.
I’m still working on encrypting all network traffic between Connections and Component Pack servers. This time I checked the Ingress-Nginx Controller - TLS/HTTPS documentation.
The default configuration for connecting IHS with Component Pack uses the plain HTTP port 32080. All traffic like /social or the Tailored Experience wizard is routed from IHS to Kubernetes on port 32080.
Our target is to encrypt the traffic on port 32443.
At the moment I’m working with a customer to secure all traffic in HCL Connections. The target is to have only encrypted network traffic between servers.
Today I started enabling encryption to Redis. This is a documented process, but the documentation is outdated and incomplete.
Today I read the article KB0118248 and remembered my blog post from 2018. I also checked the attached aha idea where a comment states that you can use iframe for Youtube. Despite what KB0118248 incorrectly states, it is absolutely possible to embed videos in HCL Connections blogs and wikis using the HTML video tag as demonstrated in this post.
The HCL Connections documentation describes the process for configuring Windows desktop single-sign-on in a somewhat complicated way. Here are the necessary steps for setting up with the highest possible encryption.
I received several complaints from users who struggle to identify uploaded images in the File Uploads section of blogs. This happens because pasted images get cryptic filenames like editor_image_ + UUID, making it challenging to identify and delete unused images.
I use chezmoi for my dotfiles. To find out why and how to get started, check out my talk from Chemnitz Linux Days 2025.
Within chezmoi, you can use the file .chezmoiexternal.toml to download archives or git repositories during updates. This is particularly useful for managing external dependencies. Let me walk you through some common use cases.
I haven’t touched the Connections scripts for a long time, but I recently made some minor updates to fix compatibility issues with newer versions and added small scripts to speed up configuration. I also got the documentation script running from the menu.
Most of the LDAP connections from IBM WebSphere Application Server are configured with TLS. So you need to have the root certificate in the WebSphere truststore to connect.
For HCL Connections 8 CR9, it is mandatory to update MongoDB to version 7. During my first migrations, I encountered some issues and would like to provide workarounds and additional troubleshooting tips to help others with this process.
In late 2023, I started exploring immutable operating systems, specifically Fedora Silverblue and Bluefin. If you’re curious about why I made this switch and want more technical details, check out my Froscon Talk on ‘Next-Gen Desktops’ or watch the video presentation below.
I attended Chemnitz Linux Days 2025 from Friday, March 21st to Sunday, March 23rd. It was my second time at the event, and I enjoyed it even more than last year. This time, approximately 3,500 people attended in person, with up to 250 parallel viewers joining the live streaming of lectures. You can find more details in the official blog post.
The last weeks I had twice the issue of a huge homepage database with HCL Connections. Both systems weren’t installed by me, but I reviewed them.
So I know this issues quite well since I faced it the first time years ago. This always happens when you migrate Connections environments side-by-side, and you forget to remove the old search nodes.
I had some issues with PDF export functionality in HCL Connections the last weeks.
The server became unresponsive multiple times due to high load from PDF exports. To quickly address the issue, the simplest solution is to disable the PDF export feature by configuring the icxt.pdfexport.access.requiredrole property in the Resource Environment Entries.
This week, I investigated an issue with the advanced profiles search in HCL Connections. I had a system which did not show any results in the advanced search for the department number of Connections profiles.
HCL support tried for three months to reproduce the issue, and the users missed the option to search for their teammates with the advanced profiles search.
In the last blogpost I showed how I use an instance of changedetection.io on a Raspberry Pi to monitor and track changes in a ServiceNow portal.
Meanwhile, I tweaked this a bit more and found a way how I can monitor the RSS Feed of my blog to post a toot on mastodon when I created a new blog post.
The HCL Software knowledge base is built with ServiceNow. You can register and subscribe for channels and documents. You receive mails for new documents and changed documents you have subscribed for.
I showed, in several slides and sessions, how you can use the search-admin role in the search application of HCL Connections for troubleshooting and reviewing some key configurations.
In several environments, my user or other administrative users have this role, just to access the link to /search/serverStatus for example.
This year marked my inaugural attendance at the Chemnitz Linux Days. The experience was fantastic, and I had the pleasure of connecting with numerous intriguing individuals. Chemnitz Linux Days stands out as one of the premier events in the Linux and open-source community. With 3,200 attendees this year, participants had the opportunity to engage with a diverse array of topics through 94 talks and hands-on workshops.
Last week, I had three systems with issues displaying the Top Updates in the Orient Me. So I tried to find out which applications and containers are involved in generating the content for this view.
With HCL Connections 6.5 and later, we got the add-on HCL Connections Engagement Center (aka CEC, HCEC, ICEC or XCC) included in a normal HCL Connections deployment.
I had one Connections’ environment that I wanted to switch from OpenLDAP to Active Directory LDAP. The old OpenLDAP environment used LDAPS to connect, and so I assumed that the change was done quickly.
The first step was to make a copy of the tdisol folder I used for OpenLDAP and start changing the configuration files for the new LDAP server.
The official documentation, “Migrating data from MongoDB 3 to 5”, wants to dump the MongoDB databases in 3.6 and then restore this data into the newly deployed MongoDB 5.
One issue with this process is that we can’t run the two MongoDB versions in parallel on Kubernetes because the provided helm charts and container for MongoDB 3.6 stop running after Kubernetes 1.21. On the other side, the helm chart providing MongoDB 5 can’t be installed on those old Kubernetes versions. So the process to update is:
Last week I attended FrOSCon[https://froscon.org], a yearly conference about Free and Open-Source software, organized by the computer science department of the University of Applied Sciences Bonn-Rhein-Sieg.
After updating HCL Connections to 8CR3 and Tiny Editors to 4.9.2.24 the lines of tables are no longer visible during editing.
Here is the edit form with Tiny Editors 4.8.2.0:
To install the Component Pack for HCL Connections 8, you need to create a Mongodb5 image. The image sources can be found in the HCL MongoDB repository, and the process for creating the image is documented in Installing MongoDB5 for Component Pack 8. The process involves using Docker, so if you have it installed, you can follow the instructions provided.
This year, Engage took place at the Felix Meritis in Amsterdam. The Engage board (Hilde, Theo and Kris) did a great job and made this very special conference a great success.
I spend the entire day working on a very sizable 4k UHD display, and I frequently ran into the problem of wanting to share my screen with participants in various collaboration tools. Then, viewers claim that my screen is too small on the remote displays due to the display resolution of 3840x2160 pixels.
The last months I played around with Matrix, a secure and open collaboration system. The protocol looks very promising, it allows hosting your own server and federate it to other systems. So like SMTP, all these matrix users can communicate to each other.
Elasticsearch in HCL Connections Componentpack is secured with Searchguard and needs certificates to work properly. These certificates are generated by bootstrap during the initial container deployment with helm.
These certificates are valid for 10 years (chain_ca.pem) or 2 years (elasticsearch*.pem) and stored in the Kubernetes secrets elasticsearch-secret, elasticsearch-7-secret. So when your HCL Connections deployment is running for 2 years, the certficates stop working.
Last week I played around with the HCL Connections documentation to backup Elasticsearch in the article Backup Elasticsearch Indices in Component Pack.
In the end I found that I couldn’t get the snapshot restored and that I have to run a command outside of my Kubernetes cluster to get a snapshot on a daily basis. That’s not what I want.
During a migration from Cognos Metrics to Elasticsearch Metrics, I had some issues with the index. So I wanted to create a backup of the already migrated data and start over from scratch.
The official documentation has an article on the topic: Backing up and restoring data for Elasticsearch-based components, but I had to slightly adjust the commands to get a successful snapshot.
In the last few years, I have had issues with application servers using a large amount of CPU and even hanging application servers running the Tiny Spellchecking service. It ended with disabled spellchecking in the Tiny Editors’ config.js.
I created a git repository with some smaller CSS files to fix some annoyances within HCL Connections.
I started with this to prevent Orient Me to load fonts from external URLs or Elasticsearch Metrics to break the UI on larger screens. These issues are solved after the last updates I got from support, but Blogs and Tailored Experience Wizard can be improved with some simple rules.
The annual conference of DNUG took place in Constance from 22nd to 23rd of June 2022.
I attended the HCL Connections Roadmap session given by Rene Schimmer and David Strachan. They showed the updates for version 8 and beyond.
After rebooting the Kubernetes server for HCL Connections Componentpack, I sometimes see that Orient Me is not working and just shows:
{"error":{"statusCode":500,"message":"Internal Server Error"}}
CVE-2021-44228 was a very serious problem end of 2021, and we are still finding new occurrences, or security teams scan servers and find vulnerable log4j files. Don’t get me wrong most of these occurrences are not vulnerable any more, because the JVM is hardened like in the Elasticsearch 7 containers, or they use of the JVM parameter -Dlog4j2.formatMsgNoLookups=true.
Today I got the question of how to disable the highlights app in Connections 7. When you follow the documentation for Connections 6.0CR6 you get an error message (and the document is not available in Connections 7).
I commented out the widget definition in widgets-config.xml like described in the documentation for the former release.
Our users are often building Highlights and Overview pages within HCL Connections Communities, where they link from one description widget to RTE or from one RTE widget to another.
We found that these anchor links often disappear behind the top navigation bar and the users wonder what happened.
In late 2021 I had an HCL Connections environment starting swapping, because the AppCluster used more than 30 GB of memory.
The system has
two nodes is installed with the medium-sized deployment option About 7500 users with a high adoption rate, because Connections is also used as intranet
Yesterday I updated a Connections environment to the latest CFix. In other environments I found that PushNotification Cluster was not started after the update, like described in the knowledge base document PushNotification broken after upgrading to CFix.65CR1.2201. In this update the application and cluster were running, but not working at all. Browser console.log showed the error:
Error connecting to push auth sync service /servic/info: RequestError: Unable to load https://cnx-fqdn/push/service/info status: 500
When I test topics with the different Connections editors (CKEditor, Textbox.io and TinyMCE), I always used multiple users in my test environment, installed the editor selector ear and then gave each of the test users a different editor. That’s easy with the different j2ee roles, but I always had to use multiple browsers or sandboxes to see them next to each other.
I wrote about font loading from external CDN in the post Hiding The Create Community Button 2nd last year and hoped this is finally fixed for all Connections applications. A good summary on the reasons to not allow external font loading is Blocking Web Fonts for Speed and Privacy.
So I checked with a Connections 7 deployment with the latest CFix (CFix.70.2112) deployed, if this is still an issue with Connections.
In former Connections’ versions we found external fonts loaded in Orient Me (/social), Communities Catalog (/communities) and the Admin panel (/cnxadmin/).
I installed HCL Connections Docs 2.0.1 on top of an already installed HCL Connections 6.5CR1 with Docs Viewer. Usually a simple task, the installation was smooth, after the mandatory restart the Edit button in the files’ application appeared and all looked good, but when the users clicked on edit a white page was loaded.
Update 2021-12-13 2021-12-15
Elasticsearch: Apache Log4j2 Remote Code Execution (RCE) Vulnerability - CVE-2021-44228 - ESA-2021-31 HCL: CVE-2021-44228 : Security Advisory IBM: Security Bulletin: Vulnerability in Apache Log4j affects WebSphere Application Server (CVE-2021-44228) Security Bulletin: HCL Connections Security Update for Apache Log4j 2 Vulnerability (CVE-2021-44228) CVE-2021-45046: It was found that the fix to address CVE-2021-44228 in Apache Log4j 2.15.0 was incomplete in certain non-default configurations. So there is a fix for kc.war which updates the log4j 2.8 to 2.15, Elasticsearch in Component Pack has log4j 2.8 and 2.11 included but is not vulnerable because of additional security settings.
During troubleshooting of WebSphere Application Server it is necessary to enable traces and see more detailed log messages.
Enabling these traces is very annoying, because you need to follow long click paths within the Integrated Solution Console (ISC).
During the latest automated deployment of the HCL Connections Desktop Plug-ins for Microsoft™ Windows™, I had issues activating the Password Save Policy. We wanted to disable the option that users can save passwords.
The documentation tells us, that the registry key HKLM\SOFTWARE\Wow6432Node\IBM\Social Connectors\Settings\Password Save Policy needs to be set to 1 to achieve this.
Some time ago I got the tip from HCL Support, that the Create Community button will recognize the role community-creator only when the gatekeeper option CATALOG_CARD_UPDATED is set to false.
This is working, but I had to complain, that this option activates some code, which loads fonts from a CDN instead of the local Connections deployment.
Connections 7 creates the Community Highlights page automatically and sets it as the start page for new communities.
That’s configured in the highway service, which is available for administrative users on https://your_connections_url/connections/config/highway.main.gatekeeper.tiles
A long time ago, I wrote about the new implementation of allowlists in HCL Connections and that the documentation on customization and adding new rules was an absolute miracle for me.
In the post Create A Test Environment with Terraform and KVM I created the first three virtual machines, now we configure a DNS server so name resolution works as expected.
Since HCL Connections started to add Kubernetes to the stack, we need to use proper name resolution instead of just editing /etc/hosts. That’s a bit of an effort, but in the end it is way easier than checking several hosts if the hosts file is uptodate.
I create a lot of virtual machines during the week to test deployments, or try to digg into problems of deployments. In the past I used Vmware Workstation, Oracle VirtualBox or MS HyperV on my desktops, but I also used Vmware ESX. I tried to use Vagrant and Packer to prepare images and distribute them, but wasn’t satisfied at all.
The last days I analyzed an issue, that file uploads to HCL Connections via IBM HTTPServer stopped working on a fresh installed 6.5CR1.
Today I configured a Connections 7 and tried with it. I think that the official documentation is old in some important parts for the upload configuration.
First of all my IBM HTTPServer 8.5.5.18 is not 32-bit like the documentation tells us:
Since IBM Connections 6.0CR4 we can use a new newsletter format which needs still (now with HCL Connections 7) be activated separately in LotusConnections-config/notification-config.xml.
Today some users asked how they can add other users to their private communities (visible in Community catalog) without manually adding them. As we investigated the question I had a look at the old notification format.
Since the update to the new HCL Connections Community Card-Based Overview (Connections 6.0 CR4) I search for a way to hide the button “Create Community” from users without the role “Community-Creator”. This was always possible in the earlier versions of Connections, but the button was shown always since the update.
During the year I mostly forgot about it, but yesterday I opened a case with HCL Connections Support and got immediatly following answer:
I write most of my documents (blog posts, documentation, recipes and so on) with Asciidoctor. Everything is organized in Git repositories.
During GPN 19 (Gulaschprogrammiernacht) I showed how to build html and pdf with a Gitlab CI/CD pipeline. That’s quite handy, but lots of documents I build, I just need locally.
So today I played with WSL2 and a Makefile to build all Asciidoctor files in a directory.
Some weeks ago I wrote about an workaround to prevent TDI from deleting the touchpoint status in HCL Connections.
During some research on TDI I found Mapping fields manually in the HCL Connections documentations. This document describes how to add additional fields to the TDI synchronisation. On point 11 I found something new for me. You can add additional fields and then add the content with an Javascript function for example.
Last week I didn’t find very useful links to read or articles to share. This week I read more books, so a recommendation for a book this week and two articles with awk basics.
https://www.packtpub.com/product/the-kubernetes-workshop/9781838820756[The Kubernetes Workshop icon:external-link[], window=_blank]:: Still preparing for CKA, so I read a lot around Kubernetes. This book is brand new and the first chapters are already useful. I think it’s more detailled than the books I read about Kubernetes before.
https://mkaz.blog/working-with-vim/vimwiki/[VimWiki – Working with Vim – mkaz.blog icon:external-link[], window=_blank]:: I switched for daily notes and diary entries to Vimwiki. I like the fast access and combine it with gollum to display in the browser. In the article you find shortcuts and tipps for working with the todo function.
Another week is over, for a quite busy one. I’m still working on automating HCL Connections installation and think about creating pytests for these deployments. So here is the this weeks mix of my bookmarks, tools I used and articles I found interesting.
https://wizardzines.com/comics/bash-errors/[BASH errorhandling - wizard zines icon:external-link[], window=_blank]:: Good intro on Bash errorhandling from Julia Evans
Today I activated Elasticsearch Metrics and Typeahead Search on my demo HCL Connections cluster.
To my surprise the indices weren’t created and I got errors on the wsadmin.sh commands.
SearchService.createESQuickResultsIndex() I checked the Elasticsearch pods which showed a running state, but the logs showed following messages:
It is Linkdump time again. I fixed some things during the week, so my https://github.com/Shaarli/Shaarli[Shaarli instance] can use the API now. I do a lot of research and reading on mobile devices (tablet and phone). Now I can share important articles through https://stakali.toneiv.eu/[Stakali], add short notes and do followups on my other devices (tablet, computer). To automate the linkdump posts, I created a short https://gitlab.com/stoeps/shaarli2hugo[Python script to collect my saved bookmarks] (marked with the tag linkdump) and create an asccidoc document for my hugo instance. So I can do a quick review and post it.
I use Shaarli since ages to collect links, notes and bookmarks. I worked a little bit on that collection and started to share some as public lists.
On my mobile device I bought a license for Stakali, it fits perfectly into my workflows. I often search on my mobile and share the link through Stakali to my desktop. Stakali just needs the URL and the API Key of Shaarli, but I got errors. So I analyzed the source and app with:
HCL included some additional apps with HCL Connections 6.5CR1. One of them is Touchpoint, which can be used to present users the “Terms and Conditions” (or Privacy and Guidelines) of the environment and some help creating their profile, network and become member of their first communities.
Touchpoint writes some profile extension entries in the PEOPLEDB database in the table PROFILE_EXTENSIONS, most important:
I write most of my documentation with Asciidoctor, so saving some keystrokes is important.
You can add window=_blank to links in your Asciidoctor source.
This week I attended the DNUG Connections Day 2020 in Munich. First of all I need to thank the organization team which did a really good job (Thanks Andreas , Martti and Lara ). During the short breaks we had great conversations with parts of the HCL Developer team and other attendees.
Update
I completely forgot to mention Jörg Rafflenbeul ! He was responsible for beer steins, a great glass of quits jar, photos, videos and a ton more. Sorry Joerg and thank you!
Link to Vulnhub
DC Challenges
Original Description
DC-3 is another purposely built vulnerable lab with the intent of gaining experience in the world of penetration testing.
Link to Vulnhub
DC Challenges
Original Description
Much like DC-1, DC-2 is another purposely built vulnerable lab for the purpose of gaining experience in the world of penetration testing.
Link to Vulnhub
DC Challenges
Original Description
DC-1 is a purposely built vulnerable lab for the purpose of gaining experience in the world of penetration testing.
It was designed to be a challenge for beginners, but just how easy it is will depend on your skills and knowledge, and your ability to learn.
djinn:1 is the next machine I want to break in. Level: Beginner-Intermediate flags: user.txt and root.txt Format: Virtual Machine (Virtualbox - OVA) Operating System: Linux
Mid 2018 I switched my blog from Wordpress to Hugo. Main reason was performance and that I can use Asciidoctor to write the posts.
What happened the last 18 months? I stayed with the theme I selected 2018, but I tweaked it a little bit. So I added lunr to implement searching, changed all scripts and fonts from CDN to local (privacy and tracking), updated Bootstrap 3 to 4.
Working with Bootstrap was quite fun, I haven’t done a lot of HTML or CSS the last years, but the grid and css classes from Bootstrap are working without checking each change on all browsers and are responsive.
In my spare time I like doing CTF (Capture the flag) or solving machines posted at Vulnhub. This time I started Christmas vacation with Me and My Girlfriend: 1.
Extracting and importing into Vmware Workstation was straight forward, after the start we need to find the ip address of the vulnerable machine.
First linkdump 2019, it was a busy year until now, with a lot of new topics and tools. Here is a short list of posts and articles I have read the last weeks.
A quite interesting tool (basic css) for quick web pages: kognise/water.css
For GPN19 I prepared a second talk on Documentation with any Editor. The talk was based on a previous one from Froscon 13, but the pipeline tooling changed.
This time there was a technical issue during the recording and so there are only the slides available, but you can still watch the video of the Froscon talk: Froscon 13: Documentation with any Editor
In the first two parts of this little devops series, I showed build templates with Packer and deploying virtual-machines with Terraform.
Now we want to install some more packages on our new servers.
My last article showed how to build a server template with Packer.
Now we want to use this template to create some servers on VMware vSphere. DNS will be registered manually and all IP addresses will be defined as fixed in the config files.