Friedrich Ewald My Personal Website

Recent Posts


  • Immich on QNAP

    I installed Immich on my QNAP NAS with the following Docker configuration, based on this Reddit post:

    name: immich
    services:
      
      database:
        container_name: immich_postgres
        image: ghcr.io/immich-app/postgres:14-vectorchord0.4.3-pgvectors0.2.0@sha256:bcf63357191b76a916ae5eb93464d65c07511da41e3bf7a8416db519b40b1c23
        environment:
          POSTGRES_PASSWORD: immich #this has to be same what's on row 47
          POSTGRES_USER: postgres
          POSTGRES_DB: immich
          POSTGRES_INITDB_ARGS: '--data-checksums'
        volumes:
          - ./postgres:/var/lib/postgresql/data
        shm_size: 128mb
        restart: always
      
      redis:
        container_name: immich_redis
        image: docker.io/valkey/valkey:9@sha256:fb8d272e529ea567b9bf1302245796f21a2672b8368ca3fcb938ac334e613c8f
        healthcheck:
          test: redis-cli ping || exit 1
        restart: always
      
      immich-machine-learning:
        container_name: immich_machine_learning
        image: ghcr.io/immich-app/immich-machine-learning:v2
        environment:
        - TZ=America/Los_Angeles
        - OPENVINO_DEVICE=AUTO
        volumes:
          - ./model-cache:/cache
        restart: always
        healthcheck:
          disable: false
      
      immich-server:
        container_name: immich_server
        image: ghcr.io/immich-app/immich-server:v2
        devices:
          - /dev/dri:/dev/dri
        environment:
          - TZ=America/Los_Angeles
          - LIBVA_DRIVER_NAME=iHD
          - DB_HOST=database
          - DB_PORT=5432
          - DB_USERNAME=postgres
          - DB_PASSWORD=immich
          - DB_DATABASE_NAME=immich
          - REDIS_HOST=redis               
          - REDIS_PORT=6379
        volumes:
          - /share/Photos/Freddy:/home/user/photos1:ro #this is how to map folder from your NAS to immich, in this example my photos are located on the NAS at /share/CACHEDEV1_DATA/Multimedia/Photo, which is mapped to this in immich: /home/user/photos1
          - ./library:/data
          - /etc/localtime:/etc/localtime:ro
        ports:
          - '2283:2283'
        depends_on:
          - redis
          - database
        restart: always
        healthcheck:
          disable: false
    
    The important thing: The library needs to be added to have read only access to shared data so that data doesn’t need to live twice on the NAS. Read-only access ensures that the data doesn’t get modified.

  • Conflicting dependencies in Ruby

    I installed two different Ruby projects on my local system which both depended on different versions of bigdecimal. One project required bigdecimal version 4.0.1, while the other needed version 3.3.1. When I tried to run the second project after installing the first, I encountered a conflict because both projects were trying to use different versions of the same gem. Finding the different versions of bigdecimal can be done via

     gem list bigdecimal
    
    *** LOCAL GEMS ***
    
    bigdecimal (4.0.1, 3.3.1, 3.1.9, 3.1.8)
    
    Then remove the conflicting version using
    gem uninstall bigdecimal -v 4.0.1
    
    The cleanest fix is to set bundler to use a specific folder for dependencies for each project. This way, each project can have its own set of gems without conflicts. You can do this by running:
    bundle config set path 'vendor/bundle'
    
    This command tells Bundler to install gems in the vendor/bundle directory within each project, allowing each project to maintain its own dependencies without interfering with each other. After running this command, you can run bundle install in each project, and it will install the required gems in their respective directories. This approach ensures that each project can use the specific version of bigdecimal it requires without any conflicts, and you can switch between projects without worrying about dependency issues.

  • MariaDB error logs on Linux

    To access the MariaDB error logs on a Linux system, you follow the system journal and follow the events in real time:

    sudo journalctl -u mariadb -f
    

  • Happy 2026

    Time flies - Happy 2026!

  • Mass remove git branches

    To mass remove git branches from a git repository, you can use the following commands:

    git branch | grep 'fewald' | xargs git branch -D
    
    This command does the following:
    1. git branch: Lists all local branches in the repository.
    2. grep 'fewald': Filters the list of branches to only include those that contain the string ‘fewald’.
    3. xargs git branch -D: Passes the filtered list of branches to the git branch -D command, which forcefully deletes each branch.

Previous Page: 1 of 34