How to configure Roundcubemail for iCloud custom domain email address

So I’ve tried to configure a self-hosted Roundcube container and set up an iCloud account with a custom domain address. Something like what this guy wanted to do a couple of years ago. Unfortunately, there was no tutorial available on the internet, so here I am creating one for you :) I’m using docker compose in my local selfhosted lab, so the first thing to do was to get the correct docker-compose.yml file. For this I went to the official one and I took the vars from the official docker image. However, playing with variables was a pain. The official documentation from Apple offered the correct IMAP and SMTP servers and ports. However, later I found out that for a 3rd party application you need to create a special password: https://support.apple.com/en-us/102654 ...

October 25, 2024 · 2 min · 314 words · costin

How to automate testing webapps

For today’s post I will walk you through the process of setting up a web-app testing environment automatically using ansible. I will split this into 2 parts. First part will focus on creating the automation needed to deploy the containers on proxmox. Second part is about creating the tester tool solution. Assumption: you already have a proxmox server in place. your ansible controller has passwordless ssh access enabled to the proxmox server. you know what ansible is and how to use it. ok, so the first step is to install ansible. I recommend doing this in a virtual environment: ...

June 4, 2024 · 4 min · 647 words · costin

How to get display monitor serial number from PowerShell

This is a quick one, I had to get the SN of my external screens recently and I thought I should share the powershell command I used for this task. This works only on your local machine, for AD nodes there are other options out there on the internet. Get-WmiObject WmiMonitorID -Namespace root\wmi |Select-Object @{l="Manufacturer";e={[System.Text.Encoding]::ASCII.GetString($_.ManufacturerName)}},@{l="Model";e={[System.Text.Encoding]::ASCII.GetString($_.UserFriendlyName)}},@{l="SerialNumber";e={[System.Text.Encoding]::ASCII.GetString($_.SerialNumberID)}} This should return something like this: PS C:\Users\costin> Get-WmiObject WmiMonitorID -Namespace root\wmi |Select-Object @{l="Manufacturer";e={[System.Text.Encoding]::ASCII.GetString($_.ManufacturerName)}},@{l="Model";e={[System.Text.Encoding]::ASCII.GetString($_.UserFriendlyName)}},@{l="SerialNumber";e={[System.Text.Encoding]::ASCII.GetString($_.SerialNumberID)}} Manufacturer Model SerialNumber ------------ ----- ------------ HPN HP E243i 6CM90XXXX HPN HP E223 3CQXXXXX

April 24, 2024 · 1 min · 83 words · costin

PostgreSQL performance test script

In case you want to run a quick performance test (in simple terms of access to DB) on a PostgreSQL server, this can be done quickly through a python module called psycopg2. This is the python script I’ve used: #!/usr/bin/python3 import psycopg2 from psycopg2 import Error import time def create_connection(): """ create a database connection to a PostgreSQL database """ try: conn = psycopg2.connect( database="postgres", user="postgres", password="postgres", host="1.2.3.4", port="5432" ) print('Successfully Connected to PostgreSQL') return conn except Error as e: print(e) def check_table_exists(conn): """ check if a table exists in the PostgreSQL database """ cur = conn.cursor() cur.execute(f"SELECT 1;") def main(): # table_name = 'pg_auth_members' # create a database connection conn = create_connection() # check if table exists with conn: start_time = time.time() checks = 0 while True: check_table_exists(conn) checks += 1 elapsed_time = time.time() - start_time if elapsed_time > 0: tps = checks / elapsed_time print(f'Current TPS: {tps}') print (f'Current checks: {checks}') if __name__ == '__main__': main() In here you should update the database, user, password, host and port to something relevant to your environment. Everything else can stay the same. ...

April 24, 2024 · 2 min · 366 words · costin

How to fix "Could not connect to one or more vCenter Server"

Recently I had to fix a vCenter Server that was stopped working. The webpage displayed the following error, and the automated backup jobs stopped working. Could not connect to one or more vCenter Server systems: https://$VCENTER_FQDN:443/sdk The version is rather old and end of life (6.7), so VMware support was out of the question. Which means I had to do it all by myself. Great… After checking the logs for obvious errors, I’ve noticed that most services were stopped. And when I started them manually, the command hanged for a while and it returned this error after timeout expired: ...

September 28, 2023 · 6 min · 1088 words · costin