[{"content":"A batch of Windows Server 2025 machines, all deployed from the same image, started failing the latest cumulative update with 0x80073712. The network was fine and the update client was fine. DISM /RestoreHealth didn\u0026rsquo;t help, because the real problem was a corrupt en-gb language pack baked into the golden image. Finding that took far longer than it should have. So I built a toolset that works the problem in a fixed order and points at the actual cause instead of sending you round a blind repair loop.\ngithub.com/tobiastillstam/WU-Troubleshooter\nA PowerShell toolset for troubleshooting Windows Update on Windows Server 2025. It works the problem in the order that actually isolates it: wire → client → errors → repair.\nIt works with both online Windows Update and WSUS-managed servers. The update source is auto-detected from the policy registry keys, so a WSUS box reports a clean result instead of false connectivity failures.\nQuick start git clone https://github.com/tobiastillstam/WU-Troubleshooter.git cd WU-Troubleshooter Get-ChildItem *.ps1 | Unblock-File # from an elevated prompt – runs everything into .\\logs\\WUDiag_\u0026lt;timestamp\u0026gt;\\ .\\Invoke-WUDiagnostics.ps1 What\u0026rsquo;s in it Test-WUOnlineConnectivity.ps1 (the wire). It runs DNS, TCP, TLS and proxy-aware HTTP checks against the documented Microsoft endpoints, over both the direct and proxy paths. A non-Microsoft certificate issuer is flagged as likely SSL inspection, which breaks WU\u0026rsquo;s certificate pinning. Test-WULocalClient.ps1 (the client). It checks services, the SYSTEM-context proxy, the update source and policy, and common blockers such as a pending reboot, disk space, TLS and time. It also covers BITS, the datastore, update history and event logs, with an optional live scan. Get-WUErrors.ps1 (the errors). It decodes the WU ETL logs, filters out benign noise, groups failures by HRESULT and adds known-issue hints. It also has a per-update timeline mode and a CBS component-store corruption scan. Invoke-WUDiagnostics.ps1 (the orchestrator). It runs all three in order into one timestamped folder and writes a combined summary. Read-only by default. Repairs only run when you pass their switch: service fixes, the WinHTTP proxy import, the SoftwareDistribution reset and DISM/SFC. Every repair can be previewed with -WhatIf. Consistent output. Each check reports PASS, WARN, FAIL or INFO. Every script writes a transcript to a logs folder and returns objects you can capture for further processing. Requires Windows PowerShell 5.1 or later and an elevated session. It also runs on Windows 10, Server 2016+ and Windows 11 24H2. MIT licensed.\n","permalink":"https://tillnet.se/posts/wu-troubleshooter/","summary":"\u003cp\u003eA batch of Windows Server 2025 machines, all deployed from the same image, started failing the latest cumulative update with \u003ccode\u003e0x80073712\u003c/code\u003e. The network was fine and the update client was fine. \u003ccode\u003eDISM /RestoreHealth\u003c/code\u003e didn\u0026rsquo;t help, because the real problem was a corrupt en-gb language pack baked into the golden image. Finding that took far longer than it should have. So I built a toolset that works the problem in a fixed order and points at the actual cause instead of sending you round a blind repair loop.\u003c/p\u003e","title":"WU-Troubleshooter"},{"content":"Every new Ubuntu VM on the XCP-ng pool needed the same post-install housekeeping — updates, timezone, NTP, guest tools, a few baseline packages — done by hand, every time. Instead of repeating that checklist again, I put together a bash script that does it in one pass and only touches the system when told to.\nhttps://github.com/tobiastillstam/Ubuntu-vm-bootstrap\nPost-install housekeeping for a freshly installed Ubuntu VM. Detects current state and reports it; only changes anything when --fix is given (always previewable via --dry-run).\nBuilt for XCP-ng guests first, but it also detects and handles KVM/Proxmox, VMware, Hyper-V, and VirtualBox. Interactive with a terminal attached (a yes/no + confirm-the-default wizard), flag-driven and silent otherwise — including a straight curl | bash pipe.\ncurl -fsSL https://raw.githubusercontent.com/tobiastillstam/Ubuntu-vm-bootstrap/main/ubuntu-vm-bootstrap.sh | sudo bash Features Audit-first — a plain run only reports what it would do. Nothing changes until --fix is given, and --dry-run previews either way. Core housekeeping — full apt update/full-upgrade/autoremove/autoclean, timezone + NTP via systemd-timesyncd (or chrony on Ubuntu 25.10+), and a set of baseline CLI packages (curl, git, jq, htop, tmux, and the rest). Hypervisor-aware guest tools — auto-detects the hypervisor via systemd-detect-virt and installs the matching guest tools, or takes an override with --hypervisor. Interactive wizard or fully unattended — asks its way through the settings when a terminal is attached; runs silently under --yes, automation, or a piped install. Opt-in SSH hardening (--harden) — key-only SSH (root login and password auth disabled), plus UFW with an OpenSSH allow rule. Refuses to lock out password auth if no authorized_keys is found, unless forced. Opt-in swap, unattended-upgrades, and Zabbix Agent2 — each behind its own flag (--swap, --unattended-upgrades, --zabbix), with the generated Zabbix PSK printed once and never written to a log. Opt-in root disk growth (--extend-lvm) — if / is on a single-PV LVM volume group, grows the partition, PV, LV and filesystem into free disk space. Skips non-LVM or multi-PV setups instead of guessing. Idempotent — safe to run again on the same VM. Verified live on Ubuntu 26.04 LTS on XCP-ng across audit, dry-run, a full --fix with every optional category, and a second pass to confirm nothing changes twice. Requires Ubuntu 22.04/24.04/26.04 and Bash 4+. MIT licensed.\n","permalink":"https://tillnet.se/posts/ubuntu-vm-bootstrap/","summary":"\u003cp\u003eEvery new Ubuntu VM on the XCP-ng pool needed the same post-install housekeeping — updates, timezone, NTP, guest tools, a few baseline packages — done by hand, every time. Instead of repeating that checklist again, I put together a bash script that does it in one pass and only touches the system when told to.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/tobiastillstam/Ubuntu-vm-bootstrap\"\u003ehttps://github.com/tobiastillstam/Ubuntu-vm-bootstrap\u003c/a\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003ePost-install housekeeping for a freshly installed Ubuntu VM. Detects current state and reports it; only changes anything when \u003ccode\u003e--fix\u003c/code\u003e is given (always previewable via \u003ccode\u003e--dry-run\u003c/code\u003e).\u003c/p\u003e\n\u003c/blockquote\u003e","title":"Ubuntu-vm-bootstrap"},{"content":"First ever repo committed to Github. After troubleshooting Powershell scripts that upload and download with sftp as scheduled tasks over the years I decided to put together a toolset that would make creating and maintaining these scripts/tasks a lot easier.\nhttps://github.com/tobiastillstam/Sftp-Scheduled-Task-Toolset\nA PowerShell toolset for unattended SFTP file transfers on Windows, run as scheduled tasks. Includes a WinForms GUI for creating and managing transfer jobs.\nBuilt around the WinSCP .NET assembly. Designed for sysadmins who need reliable scheduled SFTP transfers (downloads, uploads with local archive, or both), without writing a one-off script per server.\n.\\Install-SftpTask.ps1 ` -HostName \u0026#39;sftp.example.com\u0026#39; ` -RemotePath \u0026#39;/home/user/outbound/\u0026#39; ` -LocalPath \u0026#39;C:\\Inbound\u0026#39; ` -FileMask \u0026#39;*.csv\u0026#39; ` -SshHostKeyFingerprint \u0026#39;ssh-ed25519 256 ab:cd:...\u0026#39; ` -DailyAt \u0026#39;03:00\u0026#39; ` -RunAsSystem -UseClearTextConfig ` -SmtpServer \u0026#39;relay.corp.local\u0026#39; -EmailTo \u0026#39;sftp-alerts@corp.local\u0026#39; ` -Test Features Bidirectional transfer — download from or upload to an SFTP server. Four authentication modes: DPAPI-encrypted credential file (default). Clear-text JSON config (ACL-restricted; for cross-account or SYSTEM use). SSH private key (.ppk). Direct PSCredential (for interactive testing). Run as the current user or SYSTEM, with safety checks for incompatible combinations. Per-task credentials and logs — each task gets its own files, named after the task, so multiple tasks never clash. GUI front-end with Create and Manage tabs (list, run, edit-in-place, remove). Email alerts on failure (or partial failure) via an unauthenticated SMTP relay. WhatIf/Confirm support, host-key fingerprint scanning, configurable log retention. Pure-ASCII source — no encoding gotchas with PowerShell 5.1. Requires PowerShell 5.1+ and the WinSCP .NET assembly. MIT licensed.\n","permalink":"https://tillnet.se/posts/sftp-scheduled-task-toolset/","summary":"\u003cp\u003eFirst ever repo committed to Github. After troubleshooting Powershell scripts that upload and download with sftp as scheduled tasks over the years I decided to put together a toolset that would make creating and maintaining these scripts/tasks a lot easier.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/tobiastillstam/Sftp-Scheduled-Task-Toolset\"\u003ehttps://github.com/tobiastillstam/Sftp-Scheduled-Task-Toolset\u003c/a\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eA PowerShell toolset for unattended SFTP file transfers on Windows, run as scheduled tasks. Includes a WinForms GUI for creating and managing transfer jobs.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eBuilt around the \u003ca href=\"https://winscp.net/\"\u003eWinSCP\u003c/a\u003e .NET assembly. Designed for sysadmins who need reliable scheduled SFTP transfers (downloads, uploads with local archive, or both), without writing a one-off script per server.\u003c/p\u003e","title":"Sftp-Scheduled-Task-Toolset (first repo on Github)"},{"content":"Background\nI wanted to try Omarchy and as per usual I installed it as a VM before committing to running it on my hardware. However I ran into some problems, it took me avail to figure it out. Thought I\u0026rsquo;d write it down for myself and perhaps for those with the same problem.\nRoot Cause\nThe root cause is that VMware dosen\u0026rsquo;t provide the grahics that Omarchy expects and can automatically handle. This gives you a desktop/GUI that\u0026rsquo;s non functional.\nSystem setup\nMy host system:\nWindows 11 Enterprise, 64-bit (Build 26100.6584) 10.0.26100\nVMware® Workstation 17 Pro 17.6.4 build-24832109\nVM created:\nMany different configurations will work.\nInstallation\nBoot Omarchy from ISO(https://omarchy.org) and install to disk.\nMy download was Omarchy 3.0.2, took about 8 min to install.\nProblem/symptom\nWhen installation is complete you reboot as per usual. After supplying the password you\u0026rsquo;re presented with the desktop. Perhaps Super+B works and some other but most shortcuts gives you nothing, this is because the display is to \u0026ldquo;small\u0026rdquo;.\nConfiguration changes\nOpen or back out into a new TTY terminal with Ctrl+Alt+F2. Supply your username and password, now we can start changing stuff.\nBONUS! Neovim is installed by default but if nano is more to your liking.\nsudo pacman -Sy nano\nStart by installing vm-tools:\nsudo pacman -S open-vm-tools\nsudo systemctl enable vmtoolsd\nTwo config files need to be edited.\nenvs.conf\nnano ~/.config/hypr/envs.conf\nor\nnvim ~/.config/hypr/envs.conf\nAdd this line to the config and save:\nenv = LIBGL_ALWAYS_SOFTWARE, 1\nmonitors.conf\nnano ~/.config/hypr/monitors.conf\nor\nnvim ~/.config/hypr/monitors.conf\nAdd(replace) these line to the config and save:\nenv = GDK_SCALE,1\nand this line for a set resolution of 1920x1080:monitor=,1920x1080@60,auto,1\nor this line if you run in maximized window:\nmonitor=,preferred,auto,1\nReboot system\nDone! Know it should work.\n","permalink":"https://tillnet.se/posts/omarchy-on-vmware/","summary":"\u003cp\u003e\u003cstrong\u003eBackground\u003c/strong\u003e\u003cbr\u003e\nI wanted to try Omarchy and as per usual I installed it as a VM before committing to running it on my hardware. However I ran into some problems, it took me avail to figure it out. Thought I\u0026rsquo;d write it down for myself and perhaps for those with the same problem.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eRoot Cause\u003c/strong\u003e\u003cbr\u003e\nThe root cause is that VMware dosen\u0026rsquo;t provide the grahics that Omarchy expects and can automatically handle. This gives you a desktop/GUI that\u0026rsquo;s non functional.\u003c/p\u003e","title":"Omarchy on VMware"},{"content":"This applies to different scenarios but perhaps most common is a virtual machine which needs more disk space. This guide assumes you have extended the disk in your hypervisor. This guide is for non LVM, if you\u0026rsquo;re running lvm check this post instead.\nCheck disk by listing them with:\nfdisk -l\nPartition size by running:\ndf -h\nIf the new size isn\u0026rsquo;t listed/shown, we have to scan for changes:\nls /sys/class/scsi_device/\nExample output could be:\n2:0:0:0 3:0:0:0 32:0:0:0\nThe scan all devices individually:\necho 1 \u0026gt; /sys/class/scsi_device/2\\:0\\:0\\:0/device/rescan\necho 1 \u0026gt; /sys/class/scsi_device/3\\:0\\:0\\:0/device/rescan\necho 1 \u0026gt; /sys/class/scsi_device/32\\:0\\:0\\:0/device/rescan\nAfter that we can use cfdisk to resize the root partition.\nWhen you run that cmd you will enter that utility, use arrows to navigate.\nSelect ex. /dev/sda3 or your device for root partition. Select \u0026ldquo;Resize\u0026rdquo;. Select \u0026ldquo;Write\u0026rdquo;. Type \u0026ldquo;Yes\u0026rdquo;. Select \u0026ldquo;Quit\u0026rdquo; to exit. Verify the changes by running:\nfdisk -l\nFinally, run resize2fs to apply the changes:\nresize2fs /dev/sda3\nWe are done. Verify free disk space with:\ndf -h\n","permalink":"https://tillnet.se/posts/extend-root-partition-ubuntu-24-04-lts/","summary":"\u003cp\u003eThis applies to different scenarios but perhaps most common is a virtual machine which needs more disk space. This guide assumes you have extended the disk in your hypervisor. This guide is for non LVM, if you\u0026rsquo;re running lvm check this \u003ca href=\"/posts/extend-root-partition-ubuntu-24-04-lts-lvm/\"\u003epost\u003c/a\u003e instead.\u003c/p\u003e\n\u003cp\u003eCheck disk by listing them with:\u003cbr\u003e\n\u003ccode\u003efdisk -l\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003ePartition size by running:\u003cbr\u003e\n\u003ccode\u003edf -h\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003eIf the new size isn\u0026rsquo;t listed/shown, we have to scan for changes:\u003cbr\u003e\n\u003ccode\u003els /sys/class/scsi_device/\u003c/code\u003e\u003c/p\u003e","title":"Extend root partition, Ubuntu 24.04 LTS"},{"content":"This applies to different scenarios but perhaps most common is a virtual machine which needs more disk space. This guide assumes you have extended the disk in your hypervisor.\nCheck disk by listing them with:\nfdisk -l\nPartition size by running:\ndf -h\nIf the new size isn\u0026rsquo;t listed/shown, we have to scan for changes:\nls /sys/class/scsi_device/\nExample output could be:\n2:0:0:0 3:0:0:0 32:0:0:0\nThe scan all devices individually:\necho 1 \u0026gt; /sys/class/scsi_device/2\\:0\\:0\\:0/device/rescan\necho 1 \u0026gt; /sys/class/scsi_device/3\\:0\\:0\\:0/device/rescan\necho 1 \u0026gt; /sys/class/scsi_device/32\\:0\\:0\\:0/device/rescan\nAfter that we can use cfdisk to resize the root partition.\nWhen you run that cmd you will enter that utility, use arrows to navigate.\nSelect ex. /dev/sda3 or your device for root partition. Select \u0026ldquo;Resize\u0026rdquo;. Select \u0026ldquo;Write\u0026rdquo;. Type \u0026ldquo;Yes\u0026rdquo;. Select \u0026ldquo;Quit\u0026rdquo; to exit. Verify the changes by running:\nfdisk -l\nThe disk is now ok and we can move onto resizing the partition. Start utility:\nparted\nType \u0026ldquo;print\u0026rdquo; and enter. This lists the partitions. Type \u0026ldquo;resizepart\u0026rdquo; and enter. It asks you for the partition number, in my ex. \u0026ldquo;3\u0026rdquo; and enter. Type \u0026ldquo;quit\u0026rdquo; and enter. Next, resize the physical volume:\npvresize /dev/sda3\nNow, extend the logical volume (remember to edit to match your system):\nlvextend -l +100%FREE /dev/mapper/ubuntu--vg-ubuntu--lv\nFinally, run resize2fs to apply the changes:\nresize2fs /dev/mapper/ubuntu--vg-ubuntu--lv\nWe are done. Verify free disk space with:\ndf -h\n","permalink":"https://tillnet.se/posts/extend-root-partition-ubuntu-24-04-lts-lvm/","summary":"\u003cp\u003eThis applies to different scenarios but perhaps most common is a virtual machine which needs more disk space. This guide assumes you have extended the disk in your hypervisor.\u003c/p\u003e\n\u003cp\u003eCheck disk by listing them with:\u003cbr\u003e\n\u003ccode\u003efdisk -l\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003ePartition size by running:\u003cbr\u003e\n\u003ccode\u003edf -h\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003eIf the new size isn\u0026rsquo;t listed/shown, we have to scan for changes:\u003cbr\u003e\n\u003ccode\u003els /sys/class/scsi_device/\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003eExample output could be:\u003cbr\u003e\n\u003ccode\u003e2:0:0:0  3:0:0:0  32:0:0:0\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003eThe scan all devices individually:\u003cbr\u003e\n\u003ccode\u003eecho 1 \u0026gt; /sys/class/scsi_device/2\\:0\\:0\\:0/device/rescan\u003c/code\u003e\u003cbr\u003e\n\u003ccode\u003eecho 1 \u0026gt; /sys/class/scsi_device/3\\:0\\:0\\:0/device/rescan\u003c/code\u003e\u003cbr\u003e\n\u003ccode\u003eecho 1 \u0026gt; /sys/class/scsi_device/32\\:0\\:0\\:0/device/rescan\u003c/code\u003e\u003c/p\u003e","title":"Extend root partition, Ubuntu 24.04 LTS, LVM"},{"content":"RHEL9\ndnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm -y dnf install xe-guest-utilities-latest -y systemctl enable --now xe-linux-distribution Ubuntu 24.04 LTS\napt install xe-guest-utilities systemctl start xe-daemon systemctl enable xe-daemon ","permalink":"https://tillnet.se/posts/xcp-ng-install-xe-quest-utilities-from-repo/","summary":"\u003cp\u003eRHEL9\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003ednf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm -y\ndnf install xe-guest-utilities-latest -y\nsystemctl enable --now xe-linux-distribution\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eUbuntu 24.04 LTS\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003eapt install xe-guest-utilities\nsystemctl start xe-daemon\nsystemctl enable xe-daemon\n\u003c/code\u003e\u003c/pre\u003e","title":"XCP-ng, install \"xe-guest-utilities\" from repo"},{"content":"Set TimeZone:\nsudo timedatectl set-timezone Europe/Stockholm Set NTP pool to be usesd. Edit /etc/chrony.conf.\nLook for and change the line \u0026ldquo;pool\u0026hellip;\u0026rdquo; to \u0026ldquo;pool ntp.se iburst\u0026rdquo;.\nsudo nano /etc/chrony.conf pool ntp.se iburst Control+O\nEnter\nControl+X\nRestart chrony service and check it\u0026rsquo;s status:\nsudo systemctl restart chronyd sudo systemctl status chronyd ","permalink":"https://tillnet.se/posts/rhel-9-5-ntp-timezone/","summary":"\u003cp\u003eSet TimeZone:\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003esudo timedatectl set-timezone Europe/Stockholm\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eSet NTP pool to be usesd. Edit /etc/chrony.conf.\u003cbr\u003e\nLook for and change the line \u0026ldquo;pool\u0026hellip;\u0026rdquo; to \u0026ldquo;pool ntp.se iburst\u0026rdquo;.\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003esudo nano /etc/chrony.conf\n\npool ntp.se iburst\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eControl+O\u003cbr\u003e\nEnter\u003cbr\u003e\nControl+X\u003c/p\u003e\n\u003cp\u003eRestart chrony service and check it\u0026rsquo;s status:\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003esudo systemctl restart chronyd\nsudo systemctl status chronyd\n\u003c/code\u003e\u003c/pre\u003e","title":"RHEL 9.5 NTP \u0026 TimeZone"},{"content":"This is how I added TimescaleDB to my PostgreSQL-server and enabled it on my existing Zabbix database. I found alot of helpful artikels and reference material at initMAX ( https://www.initmax.com/ ), which made everything easier.\nIn short this is my setup. Three servers running Ubuntu 24.04 LTS, one for Zabbix server, another for Zabbix frontend and lastly a PostgreSQL(v16) server.\nWe will be working almost exclusively on the Postgres server and the other two just to stop and start the services when we enable TimescaleDB.\nOpen a terminal or connect via SSH to your PostgreSQL server. For convenience you could run \u0026ldquo;sudo su -\u0026rdquo; or prefix all commands with \u0026ldquo;sudo\u0026rdquo;.\nMake temporary directory where we can download source code and store other files.\nmkdir /tmp/zabbix-db-migration/ \u0026amp;\u0026amp; cd $_ Check exact version of Zabbix server and download that source code. My Zabbix server version is 7.0.10.\nwget https://cdn.zabbix.com/zabbix/sources/stable/7.0/zabbix-7.0.10.tar.gz tar -zxvf zabbix-7.0.10.tar.gz Add TimescaleDB repo.\necho \u0026#34;deb https://packagecloud.io/timescale/timescaledb/ubuntu/ $(lsb_release -c -s) main\u0026#34; | sudo tee /etc/apt/sources.list.d/timescaledb.list wget --quiet -O - https://packagecloud.io/timescale/timescaledb/gpgkey | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/timescaledb.gpg Install TimeScaleDB. Check your PostgreSQL version first, mine is 16. Two different alternatives:\nAlt. 1 - install latest release, change config ( nano /etc/zabbix/zabbix_server.conf ) look for ( AllowUnsupportedDBVersions=1 ).\nAlt. 2 - install latest supported TimeScaleDB (2.18), no need to change Zabbix config.\napt update (Alt.1) apt install timescaledb-2-postgresql-16 timescaledb-2-loader-postgresql-16 postgresql-client-16 -y (Alt.2) apt install timescaledb-2-postgresql-16=\u0026#39;2.18.0*\u0026#39; timescaledb-2-loader-postgresql-16=\u0026#39;2.18.0*\u0026#39; postgresql-client-16 Run the tuning utility, if you like you can pass arguments like max connections. Also possible to edit the configuration file afterwards for further tuning. When running the utility it\u0026rsquo;s recommended to answer Yes on all questions.\ntimescaledb-tune --max-conns=125 Now we need to stop the Zabbix server. Go to that machine and run \u0026ldquo;systemctl stop zabbix-server\u0026rdquo;.\nRestart the service PostgreSQL.\nsystemctl restart postgresql Activate TimescaleDB for the Zabbix database.\necho \u0026#34;CREATE EXTENSION IF NOT EXISTS timescaledb CASCADE;\u0026#34; | sudo -u postgres psql --dbname=zabbix Now we need to load data from the extracted source code, the schema for TimescaleDB. Migration might take a while depending on the amount of data.\nsudo -u postgres psql --host=127.0.0.1 --dbname=zabbix --username=zabbix -f /tmp/zabbix-db-migration/zabbix-7.0.10/database/postgresql/timescaledb/schema.sql Now we can start the Zabbix server again. Go to that machine and run \u0026ldquo;systemctl start zabbix-server\u0026rdquo;.\nAll done. Remove the tmp files to clean up afterwards.\n","permalink":"https://tillnet.se/posts/timescaledb-add-to-existing-postgresql-zabbix-7-0-lts-and-ubuntu-24-04-lts/","summary":"\u003cp\u003eThis is how I added TimescaleDB to my PostgreSQL-server and enabled it on my existing Zabbix database. I found alot of helpful artikels and reference material at initMAX ( \u003ca href=\"https://www.initmax.com/\"\u003ehttps://www.initmax.com/\u003c/a\u003e ), which made everything easier.\u003c/p\u003e\n\u003cp\u003eIn short this is my setup. Three servers running Ubuntu 24.04 LTS, one for Zabbix server, another for Zabbix frontend and lastly a PostgreSQL(v16) server.\u003c/p\u003e\n\u003cp\u003eWe will be working almost exclusively on the Postgres server and the other two just to stop and start the services when we enable TimescaleDB.\u003c/p\u003e","title":"TimescaleDB add to existing PostgreSQL, Zabbix 7.0 LTS and Ubuntu 24.04 LTS"},{"content":"These instructions are for Ubuntu 24.04 LTS but would work on other versions and flavours with some modifications.\nWe\u0026rsquo;ll start on the client side. Open a terminal or connect via SSH. Either prefix all commands with sudo or run sudo su -, just remember to exit after you\u0026rsquo;re done.\nFirst install the agent, skip if it\u0026rsquo;s already installed.\nwget https://repo.zabbix.com/zabbix/7.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_latest_7.0+ubuntu24.04_all.deb dpkg -i zabbix-release_latest_7.0+ubuntu24.04_all.deb apt update apt install zabbix-agent2 zabbix-agent2-plugin-* systemctl enable zabbix-agent2 Generate PSK-key and write it to file.\nopenssl rand -hex 32 \u0026gt; /etc/zabbix/zabbix_agentd.psk Set correct owner and group on the PSK-file.\nchown zabbix /etc/zabbix/zabbix_agentd.psk chgrp zabbix /etc/zabbix/zabbix_agentd.psk Change access rights to the PSK-file.\nchmod 600 /etc/zabbix/zabbix_agentd.psk Edit the Zabbix Agent config-file.\nnano /etc/zabbix/zabbix_agent2.conf Add/edit the following lines (TLSPSKIdentity is unike for every client):\nTLSConnect=psk TLSAccept=psk TLSPSKIdentity=PSK001-STLLOSTSELLA001 TLSPSKFile=/etc/zabbix/zabbix_agentd.psk Also edit/add necessary information:\nServer=zabbix.domain.com ServerActive=zabbix.domain.com Hostname=stllostsella001 Save and exit nano:\nCtrl + O\nEnter\nCtrl + X\nStart the service.\nsystemctl start zabbix-agent2 Write out the PSK-key and copy it.\ncat /etc/zabbix/zabbix_agentd.psk We are now done on the client side and we can close the terminal or connection.\nGo to your Zabbix web-frontend ex.: https//zabbix.domain.com/zabbix\nLogin and go to Data Collection/Hosts.\nCreate host or click on a existing host.\nGo to the Encryption tab.\nSelect PSK and PSK, also supply the identity and paste the PSK-key. Hit Update.\nLook at the far right under \u0026ldquo;Agent encryption\u0026rdquo; it should look like this, PSK in green:\nAll done.\n","permalink":"https://tillnet.se/posts/encrypt-communication-between-zabbix-agent2-and-zabbix-server-7-0-lts-with-psk/","summary":"\u003cp\u003eThese instructions are for Ubuntu 24.04 LTS but would work on other versions and flavours with some modifications.\u003c/p\u003e\n\u003cp\u003eWe\u0026rsquo;ll start on the client side. Open a terminal or connect via SSH. Either prefix all commands with \u003ccode\u003esudo\u003c/code\u003e or run \u003ccode\u003esudo su -\u003c/code\u003e, just remember to exit after you\u0026rsquo;re done.\u003c/p\u003e\n\u003cp\u003eFirst install the agent, skip if it\u0026rsquo;s already installed.\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003ewget https://repo.zabbix.com/zabbix/7.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_latest_7.0+ubuntu24.04_all.deb\n\ndpkg -i zabbix-release_latest_7.0+ubuntu24.04_all.deb\n\napt update\n\napt install zabbix-agent2 zabbix-agent2-plugin-*\n\nsystemctl enable zabbix-agent2\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eGenerate PSK-key and write it to file.\u003c/p\u003e","title":"Encrypt communication between Zabbix Agent2 and Zabbix Server 7.0 LTS with PSK"},{"content":"Vi fick flyga 1h helikopter med Kallax Flyg, ägaren själv som flög. Riktigt fint väder hade vi också.\nTror vi alla tre gillade det lika mycket.\nPite-Långnäs -\u0026gt; Boden -\u0026gt; Luleå-\u0026gt; Piteå -\u0026gt; Pite-Långnäs\nhttps://youtu.be/ppNaGJbRQbc\n","permalink":"https://tillnet.se/posts/helicopter-2022/","summary":"\u003cp\u003eVi fick flyga 1h helikopter med Kallax Flyg, ägaren själv som flög. Riktigt fint väder hade vi också.\u003cbr\u003e\nTror vi alla tre gillade det lika mycket.\u003c/p\u003e\n\u003cp\u003ePite-Långnäs -\u0026gt; Boden -\u0026gt; Luleå-\u0026gt; Piteå -\u0026gt; Pite-Långnäs\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://youtu.be/ppNaGJbRQbc\"\u003ehttps://youtu.be/ppNaGJbRQbc\u003c/a\u003e\u003c/p\u003e","title":"Helicopter 2022"},{"content":"Short tutorial how to enable 2FA/OTP (ex. Google Authenticator) when logging in via SSH or in my case mainly ThinLinc Terminal Sessions.\nIf you haven\u0026rsquo;t set up NTP or some other time sync now is the \u0026ldquo;time\u0026rdquo;, since OTP is dependent on correct clocks.\n1. Install google-authenticator sudo apt install libpam-google-authenticator 2. Configure sshd Edit file /etc/ssh/sshd_config\n... # Change to yes to enable challenge-response passwords (beware issues with # some PAM modules and threads) KbdInteractiveAuthentication yes ... 3. Configure PAM Edit the file /etc/pam.d/common-auth and add these two lines at the bottom.\nauth required pam_google_authenticator.so secret=/home/${USER}/.ssh/.google_authenticator nullok auth required pam_permit.so 4. Enable OTP for user Every user needs to run google-authenticator by them self in order to set it up correctly.\nFirst copy the program to users home dir and run it.\ngoogle-authenticator -s $HOME/.ssh/.google_authenticator Then the user needs their mobile device ready with Google Authenticator or equivalent installed. Output with questions and answers:\nDo you want authentication tokens to be time-based (y/n) y ... Enter code from app (-1 to skip): \u0026lt;ENTER CODE FROM APP\u0026gt; Code confirmed Your emergency scratch codes are: ... Do you want me to update your \u0026#34;/home/\u0026lt;USERNAME\u0026gt;/.ssh/.google_authenticator\u0026#34; file (y/n) y Do you want to disallow multiple uses of the same authentication token? This restricts you to one login about every 30s, but it increases your chances to notice or even prevent man-in-the-middle attacks (y/n) n By default, a new token is generated every 30 seconds by the mobile app. In order to compensate for possible time-skew between the client and the server, we allow an extra token before and after the current time. This allows for a time skew of up to 30 seconds between authentication server and client. If you experience problems with poor time synchronization, you can increase the window from its default size of 3 permitted codes (one previous code, the current code, the next code) to 17 permitted codes (the 8 previous codes, the current code, and the 8 next codes). This will permit for a time skew of up to 4 minutes between client and server. Do you want to do so? (y/n) y If the computer that you are logging into isn\u0026#39;t hardened against brute-force login attempts, you can enable rate-limiting for the authentication module. By default, this limits attackers to no more than 3 login attempts every 30s. Do you want to enable rate-limiting? (y/n) y 5. Restart the ssh server daemon sudo systemctl restart sshd Done. Know when logging in you will be asked for your username, password and also OTP code. This applies to SSH connections and therefore also ThinLinc sessions.\n","permalink":"https://tillnet.se/posts/otp-challenge-ssh-thinlinc-on-ubuntu-22-04/","summary":"\u003cp\u003eShort tutorial how to enable 2FA/OTP (ex. Google Authenticator) when logging in via SSH or in my case mainly ThinLinc Terminal Sessions.\u003c/p\u003e\n\u003cp\u003eIf you haven\u0026rsquo;t set up NTP or some other time sync now is the \u0026ldquo;time\u0026rdquo;, since OTP is dependent on correct clocks.\u003c/p\u003e\n\u003ch3 id=\"1-install-google-authenticator\"\u003e1. Install google-authenticator\u003c/h3\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003esudo apt install libpam-google-authenticator\n\u003c/code\u003e\u003c/pre\u003e\u003ch3 id=\"2-configure-sshd\"\u003e2. Configure sshd\u003c/h3\u003e\n\u003cp\u003eEdit file \u003ccode\u003e/etc/ssh/sshd_config\u003c/code\u003e\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003e...\n# Change to yes to enable challenge-response passwords (beware issues with\n# some PAM modules and threads)\nKbdInteractiveAuthentication yes\n...\n\u003c/code\u003e\u003c/pre\u003e\u003ch3 id=\"3-configure-pam\"\u003e3. Configure PAM\u003c/h3\u003e\n\u003cp\u003eEdit the file \u003ccode\u003e/etc/pam.d/common-auth\u003c/code\u003e and add these two lines at the bottom.\u003c/p\u003e","title":"OTP challenge SSH/ThinLinc on Ubuntu 22.04"},{"content":"Ormberget/Serpent Hill - Kraiten\nI\u0026rsquo;m not comfortable when it comes to jumps, decided to session some small jumps.\nSmall progression, obviously more training is needed but happy there\u0026rsquo;s a difference.\nhttps://youtu.be/t7wsjptdArE\n","permalink":"https://tillnet.se/posts/mtb-progression-2022/","summary":"\u003cp\u003eOrmberget/Serpent Hill - Kraiten\u003cbr\u003e\nI\u0026rsquo;m not comfortable when it comes to jumps, decided to session some small jumps.\u003cbr\u003e\nSmall progression, obviously more training is needed but happy there\u0026rsquo;s a difference.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://youtu.be/t7wsjptdArE\"\u003ehttps://youtu.be/t7wsjptdArE\u003c/a\u003e\u003c/p\u003e","title":"MTB Progression 2022"},{"content":"Storforsen and the trails around the rapid and nature reserve.\nSome bits and pieces from that trip.\nhttps://youtu.be/i7gGryoq7OM\n","permalink":"https://tillnet.se/posts/mtb-storforsen-2022/","summary":"\u003cp\u003eStorforsen and the trails around the rapid and nature reserve.\u003cbr\u003e\nSome bits and pieces from that trip.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://youtu.be/i7gGryoq7OM\"\u003ehttps://youtu.be/i7gGryoq7OM\u003c/a\u003e\u003c/p\u003e","title":"MTB Storforsen 2022"},{"content":"Trying out different settings on GoPro Hero 10.\nMTB from Ormberget \u0026ldquo;Serpent Hill\u0026rdquo; in Luleå.\nNya Skogsmaskinen (Övre Skogsmaskinen + Nedre Skogsmaskinen)\nKraiten (I\u0026rsquo;m bad at these kind of trails)\nSome random trails on the way home.\nSettings I ended up with.\n4k 24fps SuperView\nHypersmooth - Boost\nBitrate - High\nShutter - Auto\nWB - 5500k\nISO min 100 max 6400\nEV Comp -0.5\nSharpness - Med\nColor - Natural\nRaw Audio - Off\nWind - Off\nhttps://youtu.be/Q47idkcL_fA\n","permalink":"https://tillnet.se/posts/mtb-gopro-test/","summary":"\u003cp\u003eTrying out different settings on GoPro Hero 10.\u003cbr\u003e\nMTB from Ormberget \u0026ldquo;Serpent Hill\u0026rdquo; in Luleå.\u003c/p\u003e\n\u003cp\u003eNya Skogsmaskinen (Övre Skogsmaskinen + Nedre Skogsmaskinen)\u003cbr\u003e\nKraiten (I\u0026rsquo;m bad at these kind of trails)\u003cbr\u003e\nSome random trails on the way home.\u003c/p\u003e\n\u003cp\u003eSettings I ended up with.\u003cbr\u003e\n4k 24fps SuperView\u003cbr\u003e\nHypersmooth - Boost\u003cbr\u003e\nBitrate - High\u003cbr\u003e\nShutter - Auto\u003cbr\u003e\nWB - 5500k\u003cbr\u003e\nISO min 100 max 6400\u003cbr\u003e\nEV Comp -0.5\u003cbr\u003e\nSharpness - Med\u003cbr\u003e\nColor - Natural\u003cbr\u003e\nRaw Audio - Off\u003cbr\u003e\nWind - Off\u003c/p\u003e","title":"MTB GoPro test"},{"content":"This short \u0026ldquo;guide\u0026rdquo; starts after a fairly default Ubuntu 20.04 LTS (server/headless) is setup. There are a lot of good guides but all the one\u0026rsquo;s I looked at missed one step that took me hours to figure out.\nStart by adding repo and key for future updates to work with apt.\necho deb https://downloads.plex.tv/repo/deb public main | sudo tee /etc/apt/sources.list.d/plexmediaserver.list curl https://downloads.plex.tv/plex-keys/PlexSign.key | sudo apt-key add - Download the latest .deb, check https://plex.tv to get correct url.\nwget https://downloads.plex.tv/plex-media-server-new/1.26.1.5772-872b93b91/debian/plexmediaserver_1.26.1.5772-872b93b91_amd64.deb Install the package.\nsudo dpkg -i plexmediaserver_1.26.1.5772-872b93b91_amd64.deb Start the service.\nsudo systemctl start plexmediaserver Now for the part that I spent hours before figuring out.\nYou need to access the web-UI from the localhost, which is a problem on a headless server. I didn\u0026rsquo;t find that in any of the guides I looked at.\nThe solution is simple, establish an ssh-tunnel to the server from a Linux-desktop.\nOn the desktop open a terminal-window and setup the tunnel.\nssh ip_of_server -L 8888:localhost:32400 Open a browser and go to http://localhost:8888/web.\nFollow the onscreen setup and your of to the races. After setup is done, you can now access the server and content from anywhere.\n","permalink":"https://tillnet.se/posts/plex-media-server-on-ubuntu-20-04-lts/","summary":"\u003cp\u003eThis short \u0026ldquo;guide\u0026rdquo; starts after a fairly default Ubuntu 20.04 LTS (server/headless) is setup. There are a lot of good guides but all the one\u0026rsquo;s I looked at missed one step that took me hours to figure out.\u003c/p\u003e\n\u003cp\u003eStart by adding repo and key for future updates to work with apt.\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003eecho deb https://downloads.plex.tv/repo/deb public main | sudo tee /etc/apt/sources.list.d/plexmediaserver.list\n\u003c/code\u003e\u003c/pre\u003e\u003cpre tabindex=\"0\"\u003e\u003ccode\u003ecurl https://downloads.plex.tv/plex-keys/PlexSign.key | sudo apt-key add -\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eDownload the latest .deb, check \u003ca href=\"https://plex.tv\"\u003ehttps://plex.tv\u003c/a\u003e to get correct url.\u003c/p\u003e","title":"Plex Media Server on Ubuntu 20.04 LTS"},{"content":"YouTube Video on HowTo make coffee and start your day.\nhttps://youtu.be/J7LENsbBfoI\n","permalink":"https://tillnet.se/posts/howto-coffee/","summary":"\u003cp\u003eYouTube Video on HowTo make coffee and start your day.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://youtu.be/J7LENsbBfoI\"\u003ehttps://youtu.be/J7LENsbBfoI\u003c/a\u003e\u003c/p\u003e","title":"HowTo-Coffee"},{"content":"Everyone needs a monitor system, right?\nDisclaimer or Scope/Intention This is how I did it. Short guide, more or less for myself so I won’t forget.\nIf Linux/Ubuntu/Apache/SSL-certs is new territory for you this isn’t the guide you were looking for, sorry. Some steps and detailed explanations are omitted.\nAlso never run cmds you don’t trust and know what they do.\nWhat I used Machine: VM in Vmware vSphere, 2vCPU, 4GB RAM, 32GB disk.\nOS: Ubuntu Server 20.04 LTS Free OpenSource (https://ubuntu.com/download/server)\nWebApp: Zabbix 6.0 Free OpenSource (https://zabbix.com)\nSSL cert: I used Let’s Encrypt for my cert and key.\nPreparation I downloaded the software from Ubuntu. Spun up a small VM and installed Ubuntu Server on it. Performed some housekeeping on the machine.\nSpun up a vm in vSphere.\nStep 1: Install LAMP Stack (Linux, Apache, MySQL, and PHP) On the newly setup Ubuntu machine install LAMP Stack and some extra pieces.\nsudo apt install tasksel sudo tasksel install lamp-server sudo apt install php-curl php-gd php-mbstring php-xml php-xmlrpc sudo apt install php-imap sudo phpenmod imap Step 2: Follow instructions on Zabbix homepage. https://www.zabbix.com/download?zabbix=6.0\u0026amp;os_distribution=ubuntu\u0026amp;os_version=20.04_focal\u0026amp;db=mysql\u0026amp;ws=apache\nJust a headsup, the step \u0026ldquo;zcat /usr/share/doc/zabbix-sql-scripts/mysql/server.sql.gz | mysql -uzabbix -p zabbix\u0026rdquo;. Will take a long time with low resource utilization, be patient.\nStep 3: Done, ish. Now it\u0026rsquo;s installed. Enter the FQDN or ip-adress + /zabbix in a web-browser.\nThis is the Zabbix welcome screen. Enter the user name Admin with password zabbix to log in.\nMore info, https://www.zabbix.com/documentation/6.0/en/manual/quickstart/login\nOptional to continue. Next steps will add SSL/https and force that.\nStep 4: Remove /zabbix/ from URL Configure Apache conf for website (this removes \u0026ldquo;zabbix\u0026rdquo; from the end of the URL), optional.\nsudo nano /etc/apache2/conf-enabled/zabbix.conf Comment the three lines at the top regarding alias.\nCtr+X, Y, Enter\nsudo cd /etc/apache2/sites-available sudo nano example.com.conf Paste into editor:\n\u0026lt;VirtualHost *:80\u0026gt; ServerAdmin webmaster@example.com ServerName example.com ServerAlias www.example.com DocumentRoot /usr/share/zabbix ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined \u0026lt;/VirtualHost\u0026gt; Then activate the site.\nsudo a2dissite 000-default.conf sudo a2ensite example.com.conf sudo systemctl reload apache2 Step 5: Get SSL cert and key All websites should use https now when there’s free and easy services like Let’s Encrypt (https://letsencrypt.org) or Cloudflare (https://cloudflare.com). There are good guides on their webpages and also a lot of specific howtos to find elsewhere. This is out of scope for this guide.\nGet your cert and key from source of your choosing.\nStep 6: Copy Cert and Key to Server Create a new directory where your Cert and Key will reside.\nsudo mkdir -p /etc/letsencrypt/ Using nano text editor, create a new file example.com.pem (where example.com is your own domain).\nsudo nano /etc/letsencrypt/example.com.pem Now paste in your Origin Certificate. Save file and exit. (Press CTRL + X, press Y and then press ENTER).\nCreate a new file example.com.key (where example.com is your own domain).\nsudo nano /etc/letsencrypt/example.com.key Paste in your Private Key. Save file and exit. (Press CTRL + X, press Y and then press ENTER).\nStep 7: Configure Apache for https Firstly, make sure you have the SSL module enabled for Apache by running:\nsudo a2enmod ssl Open the Apache configuration file for your domain.\nsudo nano /etc/apache2/sites-available/example.com.conf You need to add a new block underneath for SSL port 443. You can also add a rewrite condition in your port 80 block to redirect all requests to https. Paste example and modify for your domain.\n\u0026lt;VirtualHost *:80\u0026gt; ServerAdmin webmaster@example.com ServerName example.com ServerAlias www.example.com DocumentRoot /usr/share/zabbix ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined ReWriteEngine on ReWriteCond %{SERVER_NAME} =example.com ReWriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent] \u0026lt;/VirtualHost\u0026gt; \u0026lt;VirtualHost *:443\u0026gt; ServerAdmin webmaster@example.com ServerName example.com ServerAlias www.example.com DocumentRoot /usr/share/zabbix ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined SSLEngine on SSLCertificateFile /etc/letsencrypt/example.com.pem SSLCertificateKeyFile /etc/letsencrypt/example.com.key \u0026lt;/VirtualHost\u0026gt; Save file and exit. (Press CTRL + X, press Y and then press ENTER).\nEnable the RewriteEngine.\nsudo a2enmod rewrite Test the configuration syntax for errors.\nsudo apachectl configtest You can ignore any errors that say Could not reliably determine the server’s fully qualified domain name.\nIf you see Syntax OK, restart Apache.\nsudo systemctl restart apache2 Done. Now you have your own monitoring system.\n","permalink":"https://tillnet.se/posts/zabbix-on-ubuntu-with-ssl/","summary":"\u003cp\u003eEveryone needs a monitor system, right?\u003c/p\u003e\n\u003ch2 id=\"disclaimer-or-scopeintention\"\u003eDisclaimer or Scope/Intention\u003c/h2\u003e\n\u003cp\u003eThis is how I did it. Short guide, more or less for myself so I won’t forget.\u003cbr\u003e\nIf Linux/Ubuntu/Apache/SSL-certs is new territory for you this isn’t the guide you were looking for, sorry. Some steps and detailed explanations are omitted.\u003cbr\u003e\nAlso never run cmds you don’t trust and know what they do.\u003c/p\u003e\n\u003ch2 id=\"what-i-used\"\u003eWhat I used\u003c/h2\u003e\n\u003cp\u003eMachine: VM in Vmware vSphere, 2vCPU, 4GB RAM, 32GB disk.\u003cbr\u003e\nOS: Ubuntu Server 20.04 LTS Free OpenSource (\u003ca href=\"https://ubuntu.com/download/server\"\u003ehttps://ubuntu.com/download/server\u003c/a\u003e)\u003cbr\u003e\nWebApp: Zabbix 6.0 Free OpenSource (\u003ca href=\"https://zabbix.com\"\u003ehttps://zabbix.com\u003c/a\u003e)\u003cbr\u003e\nSSL cert: I used Let’s Encrypt for my cert and key.\u003c/p\u003e","title":"Zabbix on Ubuntu with SSL"},{"content":"The problem is that VMWare by default doesn\u0026rsquo;t provide information needed by udev to generate /dev/disk/by-id entries. Apart from ESX, VMWare Workstation is also affected.\nThe resolution is to put\ndisk.EnableUUID = \u0026quot;TRUE\u0026quot;\nto the virtual machine definition, i.e. into the *.vmx file or via\nEdit Settings -\u0026gt; Options tab -\u0026gt; General -\u0026gt; Configuration Parameters in ESX UI.\nAfter rebooting VM with this parameter set, the disk are visible in /dev/disk/by-id and multipathd doesn\u0026rsquo;t complain anymore.\nI had to power off the VM, and then go to Edit Settings -\u0026gt; VM Options -\u0026gt; Advanced -\u0026gt; EDIT CONFIGURATION.\n","permalink":"https://tillnet.se/posts/ubuntu-20-04-on-vsphere-log-error-sda-sgio/","summary":"\u003cp\u003eThe problem is that VMWare by default doesn\u0026rsquo;t provide information needed by udev to generate /dev/disk/by-id entries. Apart from ESX, VMWare Workstation is also affected.\u003c/p\u003e\n\u003cp\u003eThe resolution is to put\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003edisk.EnableUUID = \u0026quot;TRUE\u0026quot;\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003eto the virtual machine definition, i.e. into the *.vmx file or via\u003cbr\u003e\nEdit Settings -\u0026gt; Options tab -\u0026gt; General -\u0026gt; Configuration Parameters in ESX UI.\u003c/p\u003e\n\u003cp\u003eAfter rebooting VM with this parameter set, the disk are visible in /dev/disk/by-id and multipathd doesn\u0026rsquo;t complain anymore.\u003cbr\u003e\nI had to power off the VM, and then go to Edit Settings -\u0026gt; VM Options -\u0026gt; Advanced -\u0026gt; EDIT CONFIGURATION.\u003c/p\u003e","title":"Ubuntu 20.04 on vSphere 6.7, log error SDA/SGIO"},{"content":" Set TimeZone:\nsudo timedatectl set-timezone Europe/Stockholm Set NTP. Edit timesyncd.conf:\nsudo nano /etc/systemd/timesyncd.conf Add NTP-server(s):\nNTP=ntp.se Close and Save, Ctrl+X, Y, Enter. Restart service, check status:\nsudo systemctl restart systemd-timesyncd\nsudo systemctl status systemd-timesyncd ","permalink":"https://tillnet.se/posts/linux-ubuntu-20-04-ntp-timezone/","summary":"\u003col\u003e\n\u003cli\u003eSet TimeZone:\u003cbr\u003e\n\u003ccode\u003esudo timedatectl set-timezone Europe/Stockholm\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eSet NTP. Edit timesyncd.conf:\u003cbr\u003e\n\u003ccode\u003esudo nano /etc/systemd/timesyncd.conf\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd NTP-server(s):\u003cbr\u003e\n\u003ccode\u003eNTP=ntp.se\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eClose and Save, Ctrl+X, Y, Enter.\u003c/li\u003e\n\u003cli\u003eRestart service, check status:\u003cbr\u003e\n\u003ccode\u003esudo systemctl restart systemd-timesyncd\u003c/code\u003e\u003cbr\u003e\n\u003ccode\u003esudo systemctl status systemd-timesyncd\u003c/code\u003e\u003c/li\u003e\n\u003c/ol\u003e","title":"Linux Ubuntu 20.04 NTP \u0026 TimeZone"},{"content":"Send logs to a central syslog-server.\nSSH to the machine or directly at terminal. Install rsyslog\nsudo apt install rsyslog\nsudo systemctl start rsyslog Edit conf\nsudo nano /etc/rsyslog.conf Add this text (*.* @@ip/fqdn:portnr)\n*.* @@192.168.1.10:1514 Restart service\nsudo systemctl restart rsyslog ","permalink":"https://tillnet.se/posts/linux-ubuntu-20-04-logging-to-syslog-server/","summary":"\u003cp\u003eSend logs to a central syslog-server.\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eSSH to the machine or directly at terminal.\u003c/li\u003e\n\u003cli\u003eInstall rsyslog\u003cbr\u003e\n\u003ccode\u003esudo apt install rsyslog\u003c/code\u003e\u003cbr\u003e\n\u003ccode\u003esudo systemctl start rsyslog\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eEdit conf\u003cbr\u003e\n\u003ccode\u003esudo nano /etc/rsyslog.conf\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd this text (\u003cem\u003e*.*\u003c/em\u003e @@ip/fqdn:portnr)\u003cbr\u003e\n\u003ccode\u003e*.* @@192.168.1.10:1514\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eRestart service\u003cbr\u003e\n\u003ccode\u003esudo systemctl restart rsyslog\u003c/code\u003e\u003c/li\u003e\n\u003c/ol\u003e","title":"Linux Ubuntu 20.04 logging to syslog-server"},{"content":"Short edit, season of 2021.\nDesc:\nA summery of the season 2021, the first season ever but not the last.\nMy youngest kid (7yr) got a new bike, a hardtail. Then he started draging me out to MTB/XC/Trail tracks\nand I hade to get a new bike to keep up with him.\nMy older kid (9yr) also kept me busy but not as hilly tracks.\nhttps://youtu.be/f8cSfOCnGnQ\n","permalink":"https://tillnet.se/posts/mtb-2021-youtube/","summary":"\u003cp\u003eShort edit, season of 2021.\u003c/p\u003e\n\u003cp\u003eDesc:\u003cbr\u003e\nA summery of the season 2021, the first season ever but not the last.\u003cbr\u003e\nMy youngest kid (7yr) got a new bike, a hardtail. Then he started draging me out to MTB/XC/Trail tracks\u003cbr\u003e\nand I hade to get a new bike to keep up with him.\u003cbr\u003e\nMy older kid (9yr) also kept me busy but not as hilly tracks.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://youtu.be/f8cSfOCnGnQ\"\u003ehttps://youtu.be/f8cSfOCnGnQ\u003c/a\u003e\u003c/p\u003e","title":"MTB 2021 (YouTube)"},{"content":"Everyone needs a ticket system, right?\nDisclaimer or Scope/Intention This is how I did it. Short guide, more or less for myself so I won\u0026rsquo;t forget.\nIf Linux/Ubuntu/Apache/SSL-certs is new territory for you this isn\u0026rsquo;t the guide you were looking for, sorry. Some steps and detailed explanations are omitted.\nAlso never run cmds you don\u0026rsquo;t trust and know what they do.\nWhat I used Machine: VM in Vmware vSphere, 1vCPU, 2GB RAM, 40GB disk.\nOS: Ubuntu Server 20.04 LTS Free OpenSource (https://ubuntu.com/download/server)\nWebApp: osTicket 1.15.4 Free OpenSource (https://osticket.com/download/)\nSSL cert: I used Let\u0026rsquo;s Encrypt for my cert and key.\nPreparation I downloaded the software from Ubuntu and osTicket. Spun up a small VM and installed Ubuntu Server on it. Performed some housekeeping on the machine.\nStep 1: Install LAMP Stack (Linux, Apache, MySQL, and PHP) On the newly setup Ubuntu machine install LAMP Stack and some extra pieces.\nsudo apt install tasksel sudo tasksel install lamp-server sudo apt install php-curl php-gd php-mbstring php-xml php-xmlrpc Sudo apt install php-imap Sudo phpenmod imap Step 2: Configure Domain and Apache -Setup DNS\nGo to your web domain registrar and create A record pointing to your new server. Or your DNS-resolver if you only will access the system from your homelab or LAN.\n-Configure Apache conf for website\nsudo cd /etc/apache2/sites-available sudo nano example.com.conf Paste into editor:\n\u0026lt;Directory /var/www/example.com\u0026gt; Require all granted \u0026lt;/Directory\u0026gt; \u0026lt;VirtualHost *:80\u0026gt; ServerAdmin webmaster@example.com ServerName example.com ServerAlias www.example.com DocumentRoot /var/www/example.com ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined \u0026lt;/VirtualHost\u0026gt; Close and save. Ctrl+X, Y, Enter\n-Create folder for webpage content, enable the website and restart Apache.\nsudo mkdir -p /var/www/example.com sudo a2dissite 000-default.conf sudo a2ensite example.com.conf sudo systemctl reload apache2 Step 3: Prep Database -Create database and database-user, set secure password.\nsudo mysql -u root \u0026gt; CREATE DATABASE osTicket; \u0026gt; CREATE USER \u0026#39;osticketuser\u0026#39; IDENTIFIED BY \u0026#39;password\u0026#39;; \u0026gt; GRANT ALL ON osTicket.* TO \u0026#39;osticketuser\u0026#39;; \u0026gt; quit mysql_secure_installation Step 4: Upload osTicket an configure UnZip the file you downloaded from osticket.com.\nUpload the contents of the \u0026ldquo;upload\u0026rdquo; folder to your website folder on the server \u0026ldquo;/var/www/example.com\u0026rdquo;.\nFrom a web browser go to http://example.com/setup and follow the onscreen instructions. More commands and you\u0026rsquo;ll need the database-user credentials.\nAfter setup is complete you can start setting it up as you like.\nTip: If you configure mail-fetcher add line in crontab.\nnano /etc/crontab Paste into editor:\n*/5 * * * * www-data /usr/bin/php /var/www/example.com/api/cron.php Close and save. Ctrl+X, Y, Enter\nStep 5: Get SSL cert and key All websites should use https now when there\u0026rsquo;s free and easy services like Let\u0026rsquo;s Encrypt (https://letsencrypt.org) or Cloudflare (https://cloudflare.com). There are good guides on their webpages and also a lot of specific howtos to find elsewhere. This is out of scope for this guide.\nGet your cert and key from source of your choosing.\nStep 6: Copy Cert and Key to Server Create a new directory where yout Cert and Key will reside.\nsudo mkdir-p /etc/letsencrypt/ Using nano text editor, create a new file example.com.pem (where example.com is your own domain).\nsudo nano/etc/letsencrypt/example.com.pem Now paste in your Origin Certificate. Save file and exit. (Press CTRL + X, press Y and then press ENTER).\nCreate a new file example.com.key (where example.com is your own domain).\nsudo nano/etc/letsencrypt/example.com.key Paste in your Private Key. Save file and exit. (Press CTRL + X, press Y and then press ENTER).\nStep 7: Configure Apache for https Firstly, make sure you have the SSL module enabled for Apache by running:\nsudo a2enmod ssl Open the Apache configuration file for your domain.\nsudo nano/etc/apache2/sites-available/example.com.conf You need to add a new block underneath for SSL port 443. You can also add a rewrite condition in your port 80 block to redirect all requests to https. Paste example and modify for your domain.\n\u0026lt;Directory /var/www/example.com\u0026gt; Require all granted \u0026lt;/Directory\u0026gt; \u0026lt;VirtualHost *:80\u0026gt; ServerAdmin webmaster@example.com ServerName example.com ServerAlias www.example.com DocumentRoot /var/www/example.com ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined ReWriteEngine on ReWriteCond %{SERVER_NAME} =example.com ReWriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent] \u0026lt;/VirtualHost\u0026gt; \u0026lt;VirtualHost *:443\u0026gt; ServerAdmin webmaster@example.com ServerName example.com ServerAlias www.example.com DocumentRoot /var/www/example.com ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined SSLEngine on SSLCertificateFile /etc/letsencrypt/example.com.pem SSLCertificateKeyFile /etc/letsencrypt/example.com.key \u0026lt;/VirtualHost\u0026gt; Save file and exit. (Press CTRL + X, press Y and then press ENTER).\nEnable the RewriteEngine.\nsudo a2enmod rewrite Test the configuration syntax for errors.\nsudo apachectl configtest You can ignore any errors that say Could not reliably determine the server’s fully qualified domain name.\nIf you see Syntax OK, restart Apache.\nsudosystemctl restart apache2 Done. Now you have your own ticket system to handle and keep track of everything your other personality is doing =).\nTip: Piss them of by rejecting their Change Requests, just for the fun of it.\n","permalink":"https://tillnet.se/posts/osticket-on-ubuntu-with-ssl/","summary":"\u003cp\u003eEveryone needs a ticket system, right?\u003c/p\u003e\n\u003ch2 id=\"disclaimer-or-scopeintention\"\u003eDisclaimer or Scope/Intention\u003c/h2\u003e\n\u003cp\u003eThis is how I did it. Short guide, more or less for myself so I won\u0026rsquo;t forget.\u003cbr\u003e\nIf Linux/Ubuntu/Apache/SSL-certs is new territory for you this isn\u0026rsquo;t the guide you were looking for, sorry. Some steps and detailed explanations are omitted.\u003cbr\u003e\nAlso never run cmds you don\u0026rsquo;t trust and know what they do.\u003c/p\u003e\n\u003ch2 id=\"what-i-used\"\u003eWhat I used\u003c/h2\u003e\n\u003cp\u003eMachine: VM in Vmware vSphere, 1vCPU, 2GB RAM, 40GB disk.\u003cbr\u003e\nOS: Ubuntu Server 20.04 LTS Free OpenSource (\u003ca href=\"https://ubuntu.com/download/server\"\u003ehttps://ubuntu.com/download/server\u003c/a\u003e)\u003cbr\u003e\nWebApp: osTicket 1.15.4 Free OpenSource (\u003ca href=\"https://osticket.com/download/\"\u003ehttps://osticket.com/download/\u003c/a\u003e)\u003cbr\u003e\nSSL cert: I used Let\u0026rsquo;s Encrypt for my cert and key.\u003c/p\u003e","title":"osTicket on Ubuntu with SSL"},{"content":"Found an old video that I edited a long time ago.\nhttps://www.youtube.com/watch?v=-WJLCSmKTLc\n","permalink":"https://tillnet.se/posts/lost-files-snowy-adventures-2014/","summary":"\u003cp\u003eFound an old video that I edited a long time ago.\u003cbr\u003e\n\u003ca href=\"https://www.youtube.com/watch?v=-WJLCSmKTLc\"\u003ehttps://www.youtube.com/watch?v=-WJLCSmKTLc\u003c/a\u003e\u003c/p\u003e","title":"(LOST FILES) Snowy Adventures 2014"},{"content":"Uploaded an early video of some snowmobile adventures and also a short test of a new tool.\nhttps://www.youtube.com/watch?v=NcO96VItf_4\nhttps://www.youtube.com/watch?v=O2yERtmr1g0\n","permalink":"https://tillnet.se/posts/youtube-videos/","summary":"\u003cp\u003eUploaded an early video of some snowmobile adventures and also a short test of a new tool.\u003cbr\u003e\n\u003ca href=\"https://www.youtube.com/watch?v=NcO96VItf_4\"\u003ehttps://www.youtube.com/watch?v=NcO96VItf_4\u003c/a\u003e\u003cbr\u003e\n\u003ca href=\"https://www.youtube.com/watch?v=O2yERtmr1g0\"\u003ehttps://www.youtube.com/watch?v=O2yERtmr1g0\u003c/a\u003e\u003c/p\u003e","title":"YouTube -Videos"},{"content":"At least in our house this is our standard sourdough bread. Nothing fancy.\nNot exact measurement\n150g Sourdough starter\n1kg whet flour (stone milled, something with flavor and character)\n700g water\n20g salt\n50g water\nMix starter, water and flour.\nLet it rest for about 1 hour.\nMix water and salt. Then gently work it into the dough.\nNot necessary but easier if dough is now transferred to a bigger tub or similar.\nRest for about 1 hour.\nStretch and fold the dough. Rest 1 hour. Repeat 3-5 times.\nLightly flour a workbench or table. Empty the dough onto work surface.\nCut in half and shape round. Rest 1 hour.\nShape into bread and place in baskets. After 2-3 hours place in fridge over night.\nHeat oven to about 250C. Stone plate is good to have also something to raise the humidity.\nShallow cuts on top of the dough/bread before it goes into the oven.\nBake until core temp reaches 96-98C. Let cool down completely before slicing it.\\\n","permalink":"https://tillnet.se/posts/standard-sourdough/","summary":"\u003cp\u003eAt least in our house this is our standard sourdough bread. Nothing fancy.\u003c/p\u003e\n\u003cp\u003eNot exact measurement\u003cbr\u003e\n150g Sourdough starter\u003cbr\u003e\n1kg whet flour (stone milled, something with flavor and character)\u003cbr\u003e\n700g water\u003cbr\u003e\n20g salt\u003cbr\u003e\n50g water\u003c/p\u003e\n\u003cp\u003eMix starter, water and flour.\u003cbr\u003e\nLet it rest for about 1 hour.\u003cbr\u003e\n\u003cbr\u003e\nMix water and salt. Then gently work it into the dough.\u003cbr\u003e\nNot necessary but easier if dough is now transferred to a bigger tub or similar.\u003cbr\u003e\nRest for about 1 hour.\u003cbr\u003e\n\u003cbr\u003e\nStretch and fold the dough. Rest 1 hour. Repeat 3-5 times.\u003cbr\u003e\n\u003cbr\u003e\nLightly flour a workbench or table. Empty the dough onto work surface.\u003cbr\u003e\nCut in half and shape round. Rest 1 hour.\u003cbr\u003e\n\u003cbr\u003e\nShape into bread and place in baskets. After 2-3 hours place in fridge over night.\u003cbr\u003e\n\u003cbr\u003e\nHeat oven to about 250C. Stone plate is good to have also something to raise the humidity.\u003cbr\u003e\nShallow cuts on top of the dough/bread before it goes into the oven.\u003cbr\u003e\nBake until core temp reaches 96-98C. Let cool down completely before slicing it.\\\u003c/p\u003e","title":"Standard Sourdough"},{"content":"In the beginning of this summer I made an RC truck for my 6 yr old. Here are som pictures. 1/16 scale.\n","permalink":"https://tillnet.se/posts/rc-scania/","summary":"\u003cp\u003eIn the beginning of this summer I made an RC truck for my 6 yr old. Here are som pictures. 1/16 scale.\u003c/p\u003e\n\u003cp\u003e\u003cimg alt=\"Green WPL B-3 six-wheel RC military truck with a box body\" loading=\"lazy\" src=\"/posts/rc-scania/img_3969-1.jpg\"\u003e\u003c/p\u003e\n\u003cp\u003e\u003cimg alt=\"Cardboard Scania box marked Fragile on a kitchen table\" loading=\"lazy\" src=\"/posts/rc-scania/img_3435-scaled.jpg\"\u003e\u003c/p\u003e\n\u003cp\u003e\u003cimg alt=\"Bruder Scania timber truck with crane and logs, still in its box\" loading=\"lazy\" src=\"/posts/rc-scania/img_3436-2.jpg\"\u003e\u003c/p\u003e\n\u003cp\u003e\u003cimg alt=\"Green Bruder Scania timber truck unboxed on a table\" loading=\"lazy\" src=\"/posts/rc-scania/img_3437.jpg\"\u003e\u003c/p\u003e\n\u003cp\u003e\u003cimg alt=\"The Scania truck taken apart: chassis, cab, grille, doors and bumper laid out on a table\" loading=\"lazy\" src=\"/posts/rc-scania/img_3473-1-scaled.jpg\"\u003e\u003c/p\u003e","title":"RC Scania"},{"content":"Installed 12 ”drops” in the apartment. Took some time since this isn’t what I usually do. But pleasantly surprised that all passes test except one keystone where I switched to of the cables.\nThere will be more runs that needs punching. But that’s for another day.\n","permalink":"https://tillnet.se/posts/cat6-f-utp/","summary":"\u003cp\u003eInstalled 12 ”drops” in the apartment. Took some time since this isn’t what I usually do. But pleasantly surprised that all passes test except one keystone where I switched to of the cables.\u003c/p\u003e\n\u003cp\u003eThere will be more runs that needs punching. But that’s for another day.\u003c/p\u003e","title":"CAT6 F/UTP"},{"content":"Enabled https on tillnet.se and it was alot harder then I thought.\nDidn\u0026rsquo;t think that it should be but since I use Cloudflare and proxy it added a level I didn\u0026rsquo;t think about.\nFinally I started to realize what was going on and turned to Google for help.\nFound this guide that was exactly what I needed:\nhttps://devanswers.co/configure-cloudflare-origin-ca-apache/\nSo now all traffic to and from the website is secured. And I gained a little bit more knowledge.\n","permalink":"https://tillnet.se/posts/https-tillnet-se/","summary":"\u003cp\u003eEnabled https on tillnet.se and it was alot harder then I thought.\u003cbr\u003e\nDidn\u0026rsquo;t think that it should be but since I use Cloudflare and proxy it added a level I didn\u0026rsquo;t think about.\u003c/p\u003e\n\u003cp\u003eFinally I started to realize what was going on and turned to Google for help.\u003cbr\u003e\nFound this guide that was exactly what I needed:\u003cbr\u003e\n\u003ca href=\"https://devanswers.co/configure-cloudflare-origin-ca-apache/\"\u003ehttps://devanswers.co/configure-cloudflare-origin-ca-apache/\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eSo now all traffic to and from the website is secured. And I gained a little bit more knowledge.\u003c/p\u003e","title":"https - tillnet.se"},{"content":"Experimenting and updating my Server 2019 \u0026ldquo;skills\u0026rdquo;. We been running O365 and Azure for some time now, but haven\u0026rsquo;t used OnPrem Domain Controllers in my homelab.\nTo get some hands on training with the new server version I set up two DCs and three other servers. Servers for print, NVR and backups. Synced the forest with Azure and enabled SSO.\nEverything worked pretty smoothly with some problems requiring a little bit of reading through Microsoft\u0026rsquo;s Docs.\nThe most headache was getting TrueNAS to join the domain, some strange errors and sometimes nothing in logs to help.\nAlso setup some new clients and joined them to the domain. Currently experimenting with GPOs and there effect.\n","permalink":"https://tillnet.se/posts/windows-server-2019/","summary":"\u003cp\u003eExperimenting and updating my Server 2019 \u0026ldquo;skills\u0026rdquo;. We been running O365 and Azure for some time now, but haven\u0026rsquo;t used OnPrem Domain Controllers in my homelab.\u003c/p\u003e\n\u003cp\u003eTo get some hands on training with the new server version I set up two DCs and three other servers. Servers for print, NVR and backups. Synced the forest with Azure and enabled SSO.\u003c/p\u003e\n\u003cp\u003eEverything worked pretty smoothly with some problems requiring a little bit of reading through Microsoft\u0026rsquo;s Docs.\u003c/p\u003e","title":"Windows Server 2019"},{"content":"Setting up a homepage for our domain tillnet.se. Before this we had none except our intranet on Sharepoint. I don\u0026rsquo;t expect this page to contain a lot of information or receive frequent updates but another place for us to test new things.\nThis has also been a good opportunity to freshen up on LAMP-stack Linux servers as well, this time running i Googles Cloud Platform. This is the first VM instance I\u0026rsquo;ve spun up on there platform. Azure and our own OnPrem VMWare vSphere I\u0026rsquo;ve worked with before.\n","permalink":"https://tillnet.se/posts/new-site/","summary":"\u003cp\u003eSetting up a homepage for our domain tillnet.se. Before this we had none except our intranet on Sharepoint. I don\u0026rsquo;t expect this page to contain a lot of information or receive frequent updates but another place for us to test new things.\u003c/p\u003e\n\u003cp\u003eThis has also been a good opportunity to freshen up on LAMP-stack Linux servers as well, this time running i Googles Cloud Platform. This is the first VM instance I\u0026rsquo;ve spun up on there platform. Azure and our own OnPrem VMWare vSphere I\u0026rsquo;ve worked with before.\u003c/p\u003e","title":"New website"},{"content":"Torparbacken Productions Our YouTube-channel where we post videos from time to time. Could be of anything really.\nRC Toy and Hobby-grade RCs, mostly cars and trucks but some boats and drones too.\nSourdough Rye-Sourdough, bread making of different kinds.\nWood/Metall/etc. Only limited by our imagination (and limited funding).\n","permalink":"https://tillnet.se/projects/","summary":"\u003ch2 id=\"torparbacken-productions\"\u003eTorparbacken Productions\u003c/h2\u003e\n\u003cp\u003e\u003cimg alt=\"Torparbacken Productions logo: a bearded man in sunglasses with a coffee cup as a hat, 2013\" loading=\"lazy\" src=\"/projects/Torparbacken-Productions-Logo-WhiteCircle.png\"\u003e\u003c/p\u003e\n\u003cp\u003eOur YouTube-channel where we post videos from time to time. Could be of anything really.\u003c/p\u003e\n\u003ch2 id=\"rc\"\u003eRC\u003c/h2\u003e\n\u003cp\u003eToy and Hobby-grade RCs, mostly cars and trucks but some boats and drones too.\u003c/p\u003e\n\u003cp\u003e\u003cimg alt=\"Green WPL B-3 six-wheel RC military truck with a box body\" loading=\"lazy\" src=\"/projects/img_3969-1.jpg\"\u003e\u003c/p\u003e\n\u003ch2 id=\"sourdough\"\u003eSourdough\u003c/h2\u003e\n\u003cp\u003e\u003cimg alt=\"Floured sourdough loaf with a deep score on a cooling rack\" loading=\"lazy\" src=\"/projects/MicrosoftTeams-image-scaled.jpeg\"\u003e\u003c/p\u003e","title":"Areas of interest"},{"content":"Not important really, all over the northern parts of Sweden.\n","permalink":"https://tillnet.se/location/","summary":"\u003cp\u003eNot important really, all over the northern parts of Sweden.\u003c/p\u003e","title":"Location"},{"content":"Tillnet is just for fun: family and friends testing and trying out different projects.\n","permalink":"https://tillnet.se/about/","summary":"\u003cp\u003eTillnet is just for fun: family and friends testing and trying out different projects.\u003c/p\u003e","title":"About"},{"content":"Who we are Our website address is: https://tillnet.se.\nWhat personal data we collect and why we collect it Comments When visitors leave comments on the site we collect the data shown in the comments form, and also the visitor’s IP address and browser user agent string to help spam detection.\nAn anonymized string created from your email address (also called a hash) may be provided to the Gravatar service to see if you are using it. The Gravatar service privacy policy is available here: https://automattic.com/privacy/. After approval of your comment, your profile picture is visible to the public in the context of your comment.\nMedia If you upload images to the website, you should avoid uploading images with embedded location data (EXIF GPS) included. Visitors to the website can download and extract any location data from images on the website.\nContact forms Cookies If you leave a comment on our site you may opt-in to saving your name, email address and website in cookies. These are for your convenience so that you do not have to fill in your details again when you leave another comment. These cookies will last for one year.\nIf you visit our login page, we will set a temporary cookie to determine if your browser accepts cookies. This cookie contains no personal data and is discarded when you close your browser.\nWhen you log in, we will also set up several cookies to save your login information and your screen display choices. Login cookies last for two days, and screen options cookies last for a year. If you select \u0026ldquo;Remember Me\u0026rdquo;, your login will persist for two weeks. If you log out of your account, the login cookies will be removed.\nIf you edit or publish an article, an additional cookie will be saved in your browser. This cookie includes no personal data and simply indicates the post ID of the article you just edited. It expires after 1 day.\nEmbedded content from other websites Articles on this site may include embedded content (e.g. videos, images, articles, etc.). Embedded content from other websites behaves in the exact same way as if the visitor has visited the other website.\nThese websites may collect data about you, use cookies, embed additional third-party tracking, and monitor your interaction with that embedded content, including tracking your interaction with the embedded content if you have an account and are logged in to that website.\nAnalytics Who we share your data with How long we retain your data If you leave a comment, the comment and its metadata are retained indefinitely. This is so we can recognize and approve any follow-up comments automatically instead of holding them in a moderation queue.\nFor users that register on our website (if any), we also store the personal information they provide in their user profile. All users can see, edit, or delete their personal information at any time (except they cannot change their username). Website administrators can also see and edit that information.\nWhat rights you have over your data If you have an account on this site, or have left comments, you can request to receive an exported file of the personal data we hold about you, including any data you have provided to us. You can also request that we erase any personal data we hold about you. This does not include any data we are obliged to keep for administrative, legal, or security purposes.\nWhere we send your data Visitor comments may be checked through an automated spam detection service.\nYour contact information Additional information How we protect your data What data breach procedures we have in place What third parties we receive data from What automated decision making and/or profiling we do with user data Industry regulatory disclosure requirements ","permalink":"https://tillnet.se/privacy-policy/","summary":"\u003ch2 id=\"who-we-are\"\u003eWho we are\u003c/h2\u003e\n\u003cp\u003eOur website address is: \u003ca href=\"https://tillnet.se\"\u003ehttps://tillnet.se\u003c/a\u003e.\u003c/p\u003e\n\u003ch2 id=\"what-personal-data-we-collect-and-why-we-collect-it\"\u003eWhat personal data we collect and why we collect it\u003c/h2\u003e\n\u003ch3 id=\"comments\"\u003eComments\u003c/h3\u003e\n\u003cp\u003eWhen visitors leave comments on the site we collect the data shown in the comments form, and also the visitor’s IP address and browser user agent string to help spam detection.\u003c/p\u003e\n\u003cp\u003eAn anonymized string created from your email address (also called a hash) may be provided to the Gravatar service to see if you are using it. The Gravatar service privacy policy is available here: \u003ca href=\"https://automattic.com/privacy/\"\u003ehttps://automattic.com/privacy/\u003c/a\u003e. After approval of your comment, your profile picture is visible to the public in the context of your comment.\u003c/p\u003e","title":"Privacy Policy"}]