Thank you for visiting!
My little window on internet allowing me to share several of my passions
Categories:
- FreeBSD
- OpenBSD
- VM
- High Availability
- vdcron
- My Sysupgrade
- FreeBSD
- Nas
- DragonflyBSD
- fapws
- Alpine Linux
- Openbox
- Desktop
- Security
- nvim
- yabitrot
- nmctl
- Tint2
- Firewall
- VPN
- Project Management
- Hifi
- Alarm
Most Popular Articles:
Last Articles:

Install immich on Docker, on RockyLinux, on Bhyve, on FreeBSD on Odroid ;)
Posted on 2025-06-17 20:57:00 from Vincent in FreeBSD
I would show how easy it is to install a docker app on a FreeBSD host. I've taken the choice of the Image viewer called Immich which is not available on BSD systems.
Introduction
immich is a photo and video which is mainly running inside a docker container.
This post will mainly show how simple it is to install it on a FreeBSD host.
It's not possible to execute Docker directly on the Linux emulation present on FreeBSD because this emulator does not provide all features Docker needs to have. So, to have a docker ecosystem, we must have a complete Linux distro running on inside a Bhyve VM
In this blog post, I'll show how to install RockyLinux, but we could use several other Linux distro compliant with Docker.
Finally, I will show how to install Immich on this docker environment.
Create a RocklyLinux VM
I suppose you already know how to build a Bhyve ecosystem based on vm utilities which are now part of the FreeBSD repository.
In very short, you have to do:
# pkg install vm-bhyve
in /etc/loader.conf:
vm_enable="YES"
vm_dir="/vm"
# zfs create -o mountpoint=/vm zroot/vm
# vm init
Now we can start specific tasks for this setup:
# vm iso https://download.rockylinux.org/pub/rocky/10/isos/x86_64/Rocky-10.0-x86_64-minimal.iso
(This is the last version available at this date)
Build a config file which look like this:
# cat .templates/rockylinux.conf
loader="uefi"
cpu=2
memory=4G
graphics="yes"
xhci_mouse="yes"
graphics_listen="192.168.1.51" #put here the IP of hour FreeBSD host
graphics_port="5900"
network0_type="virtio-net"
network0_switch="public"
disk0_type="virtio-blk"
disk0_name="disk0.img"
loader, graphics and mouse parameters are require for the VNC viewer. Please adapt the "listen" and "port" to your specific needs.
Then we can create the VM:
#vm create -t rockylinux -s 80G immich
Now, if it does not exist, we must create the Network bridge:
# vm switch create public
# vm switch add public em0 # Replace em0 with your real NIC
Now, we can install RockyLinux:
# VM install rockylinux Rocky-10.0-x86_64-minimal.iso
Now the rest must be done via the VNC viewer on 192.168.1.51 port 5900
On my FreeBSD laptop, I'm using Tiger VNC
During this install, be careful to:
- select the correct default keyboard
- select the virtual disk
- define a root password
- define a standard user
This VM must have his own fixed IP address. As root on the VM, we must execute the following commands:
# nmcli connection modify enp0s5 ipv4.addresses 192.168.1.52/24
# nmcli connection modify enp0s5 ipv4.gateway 192.168.1.1
# nmcli connection modify enp0s5 ipv4.dns "8.8.8.8"
# nmcli connection modify enp0s5 ipv4.method manual
# nmcli connection down enp0s5
# nmcli connection up enp0s5
We can reboot the VM and check that everything is working as it should.
Install docker
To have docker on a RockyLinux, we have to add docker as valid repo, then we can install it.
As root on the VM, perform this:
# dnf -y install dnf-utils
# dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# dnf install -y docker-ce docker-ce-cli containerd.io
Install Immich
With our standard user, we can do this:
$ mkdir immich
$ cd immich/
$ sudo dnf install wget
$ 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
$ sudo docker compose up -d
Details and specific parameters are available on the immich website.
Now you should see your immich website on http://192.168.1.52:2283 (IP of your VM)
Personnal remarks
Filesystem allocation, like organized by install of RockyLinux is not optimum for the usage of Immich. Indeed, for a virtual disk of 100GB, the installer has given 56GB to / and 30GB to /home.
Small investigation are required to put maximum storage to either / or either /home, the place where we will store pictures and video.
Conclusion
It's amazing the few commands we need to have access to a totally different world as BSD.
This setup is running fine since several days. Combined with a simple WireGard VPN running inside my home (on OpenBSD), I can upload photos and video from my phone to my home's immich repository.
I hope you can see that it's not that complex to keep control of your own data when you use the good tools ;)
If after this blog, I've convinced you to give a try to bhyve, thanks to let me know it ;)
1. From VoilĂ on Mon Jun 23 19:22:30 2025
Thanks for the guide, but you should have used podman instead of docker...
2. From Vincent on Mon Jun 23 21:55:38 2025
Thanks VoilĂ . Podman... maybe for another blog's post ;)