Tuesday, January 13, 2026

Enable PDF previews in Windows Explorer

Open Powershell

Get-ChildItem -Path 'D:\Users\My Folder' -Filter *.pdf -Recurse -File -ErrorAction SilentlyContinue | Unblock-File

 

Ref: 

- https://learn.microsoft.com/en-us/answers/questions/5585306/file-explorer-not-previewing-pdf-files-since-25h2?page=2#answers 

Sunday, January 11, 2026

Kubuntu 25.10 Customizations

System Settings -> Mouse & Touchpad

  • Screen Edges -> Maximize [uncheck] windows dragged to top edge
  •  Screen Edges -> Tile [uncheck] windows dragged to left or right edge

System Settings -> Window Management

  • Titlebar Actions -> Double-click -> Do nothing
  • Virtual Desktops -> Rows [1] // Add 4 desktops 
  • Virtual Desktops -> [Y] Navigation wraps around 
  • Desktop Effects -> [Y] Cube // Decided not to enable this

 System Settings -> Keyboard -> Shortcuts

  • Window Management -> Quick Tile Window to the Bottom [uncheck]
  • Window Management -> Quick Tile Window to the Left [uncheck]
  • Window Management -> Quick Tile Window to the Right [uncheck]
  • Window Management -> Quick Tile Window to the Top [uncheck] 
  • Plasma Workspace -> Activate Task Manager Entry 1:  [unbind]  // Repeat for all 10
  • Window Management -> Switch One Desktop to the Left [Meta-Left] 
  • Window Management -> Switch One Desktop to the Left [Meta-Right] 
  • Window Management -> Switch to Desktop 1 [Meta-1] // Repeat for all 4
  • Window Management -> Window to Desktop 1 [Meta+Shift+1] // = Meta+!
  • Window Management -> Window to Desktop 2 [Meta+Shift+2] // = Meta+@
  • Window Management -> Window to Desktop 3 [Meta+Shift+3] // = Meta+#
  • Window Management -> Window to Desktop 4 [Meta+Shift+4] // = Meta+$

Sunday, September 7, 2025

How to enable Tailscale on Unifi Cloud Gateway Ultra

Enable Debug Tools in Unifi Cloud Gateway Ultra

 Cog -> System -> Debug Tools -> Enable


 

Open Terminal to UCG Ultra

Network -> UCG Ultra -> Advanced -> Debug
 

A small terminal will open:



Install and configure Tailscale 

Type the following:

curl -sSLq https://raw.github.com/SierraSoftworks/tailscale-udm/main/install.sh | sh

tailscale up --advertise-routes=192.168.15.0/24 --advertise-exit-node 

tailscale status 


References:

Saturday, June 28, 2025

Thursday, June 26, 2025

QNAP home folder not mounted after reboot

Open Control Panel

Users

Click on "Edit Shared Folder Permission" next to your account

Click Apply

Sunday, June 22, 2025

Immich on QNAP TVS-671

Hardware

  • Model: TVS-671
  • CPU: Intel(R) Core(TM) i3-4150 CPU, up to 3500 MHz (2 cores, 4 threads)
  • Total memory 16 GB (16 GB usable)
  • Firmware version: QTS 5.2.5.3145

Software

QNAP pre-configuration

  1. Enable SSH in QNAP
  2. Enable Container Station in QNAP
  3. Volumes
    1. Containers - Thick volume. RAID1. Where docker will be install. Also, it will be where immich-app folder will be placed.
    2. Storage - RAID5. Where immich library will be stored


  4. Shares
    1. Containers - Whrere immich-app folder will be located






    2. PhotosImmich - Where immich library will be located




Install Immich

Connect into machine

> ssh marky@192.168.26.60

Create immich-app folder in Containers volume

> cd /shares/Containers
> mkdir immich-app
> cd immich-app

Download docker-compose.yml  and .env files

> wget -O docker-compose.yml https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml

> wget -O .env https://github.com/immich-app/immich/releases/latest/download/example.env

Edit environment file

> vi example.env
> mv example.env .env

Install Immich 

> docker compose up -d 

Using Immich

Configure Immich

1. Storage Template 




2. External Libraries

> vi docker-compose.yml

Add the lines in blue to docker-compose.yml:

 volumes:
     # Do not edit the next line. If you want to change the media storage location on your system, edit the value of UPLOAD_LOCATION in the .env file
     - ${UPLOAD_LOCATION}:/usr/src/app/upload
     - /share/PhotosVol1:/share/PhotosVol1:ro
     - /share/PhotosVol2:/share/PhotosVol2:ro
     - /share/PhotosVol3:/share/PhotosVol3:ro

     - /etc/localtime:/etc/localtime:ro

docker compose up -d

Add to external library path via web interface



Upgrading Immich

> docker compose pull && docker compose up -d
> docker image prune

Backup immich's postgres database

docker exec -t immich_postgres pg_dumpall --clean --if-exists --username=postgres | gzip > "/share/PhotosImmich/immich-library/backups/dump.sql.gz"


Restore immich's postgres database [WARNING!]

> docker compose down -v 
> docker compose pull
> docker compose create
> docker start immich_postgres
> sleep 10

> gunzip -c "/share/PhotosImmich/immich-library/backups/dump.sql.gz" | sed "s/SELECT pg_catalog.set_config('search_path', '', false);/SELECT pg_catalog.set_config('search_path', 'public, pg_catalog', true);/g" | docker exec -i immich_postgres psql --dbname=postgres --username=postgres

> docker compose up -d


Materials

Immich installation files

  • .env
  • docker-compose.yml

Scripts 

  • status.sh

docker ps

  • start.sh

docker compose up -d

  • stop.sh

docker stop immich_server immich_machine_learning immich_postgres immich_redis

  • upgrade.sh

docker compose pull && docker compose up -d
> docker image prune

  • backup_db.sh

docker exec -t immich_postgres pg_dumpall --clean --if-exists --username=postgres | gzip > "/share/PhotosImmich/immich-library/backups/dump.sql.gz"

  • delete.sh

docker compose down -v
> rm -rf postgres

  • restore_db.sh

docker compose down -v  # CAUTION! Deletes all Immich data to start from scratch
## Uncomment the next line and replace DB_DATA_LOCATION with your Postgres path to permanently reset the Postgres database
# rm -rf DB_DATA_LOCATION # CAUTION! Deletes all Immich data to start from scratch
docker compose pull             # Update to latest version of Immich (if desired)
docker compose create           # Create Docker containers for Immich apps without running them
docker start immich_postgres    # Start Postgres server
sleep 10                        # Wait for Postgres server to start up
# Check the database user if you deviated from the default
gunzip -c "/share/PhotosImmich/immich-library/backups/dump.sql.gz" | sed "s/SELECT pg_catalog.set_config('search_path', '', false);/SELECT pg_catalog.set_config('search_path', 'public, pg_catalog', true)
;/g" | docker exec -i immich_postgres psql --dbname=postgres --username=postgres  # Restore Backup
docker compose up -d            # Start remainder of Immich apps

References