How can you use Beszel on FreeBSD?

I am applying hear ready-made beszel-agent and beszel-hub compiled by me, on freebsd 15 amd64, using go 1.26.1

How can you use Beszel on FreeBSD?

I hope you can run Beszel not only under freebsd 15, because of its ability to depend on almost no dynamic libraries. The problems I encountered when trying to compile the project using https://github.com/henrygd/beszel were due to the peculiarities of nodejs and its specific libraries used into project.

Unpack the archive ( attached to bottom ), and move the files you will use to the correct location on your file system. Here are the files you can expect to find in the archive.

a -rwxr-xr-x  1 root   wheel 8675603  8 март 11:29 usr/local/bin/beszel-agent
a -rwxr-xr-x  1 root   wheel 32629011  8 март 12:18 usr/local/bin/beszel-hub
a -rwxr-xr-x  1 root   wheel     1822  7 март 23:09 usr/local/etc/rc.d/beszel_agent
a -rwxr-xr-x  1 root   wheel     1482  7 март 23:31 usr/local/etc/rc.d/beszel_hub
a -rw-r--r--  1 root   wheel       74  7 март 23:10 usr/local/etc/newsyslog.conf.d/beszel_agent.conf
a -rw-r--r--  1 root   wheel       72 10 март 10:50 usr/local/etc/newsyslog.conf.d/beszel_hub.conf

If you are going to use both, then you will need to add first beszel-hub to your rc.d like this:

pw useradd beszel -d /nonexistent -s /usr/sbin/nologin -c "Beszel"

sysrc beszel_hub_enable=YES
service beszel_hub start

by default, bezel-hub starts at 127.0.0.1:8090. It's a good idea to use some sort of reverse proxy, I use caddy and my minimal configuration looks like this:

beszel.<your-sub-domain-here> {
    encode gzip zstd

    @dashboard {
        path /_/*
    }
    @api {
        path /api/*
    }

    reverse_proxy 127.0.0.1:8090

    log {
        output file /var/log/caddy/beszel.log {
            roll_size 10mb
            roll_keep 10
            roll_keep_for 720h
        }
        format console
    }
}
  • It is not mandatory to generate a separate log file of course.

access the web interface and after creating the superadmin account you will see a "+" button at the top where you can add the agents you want to visualize. The important thing here is to be careful when creating a new agent, to create/copy certain things into your configuration files located in /usr/local/etc/

The contents of the public key field should be placed in /usr/local/etc/beszel_agent_key.pub , and the contents of the token field in the file /usr/local/etc/beszel_agent.secret. Please fulfil correct host/ip for sure and name can be anything descriptive for you. For security reasons, it's a good idea for your files to have the following permissions:

-r--------  1 beszel wheel 81  7 март  23:04 /usr/local/etc/beszel_agent_key.pub
-r--------  1 beszel wheel 37  7 март  23:04 /usr/local/etc/beszel_agent.secret

Lets start beszel-agent then, it depends did you have already beszel uid created. Don't forget to configure the url of your beszel-hub:

pw useradd beszel -d /nonexistent -s /usr/sbin/nologin -c "Beszel"

sysrc beszel_agent_url="https://beszel.<your-sub-domain-here>"
sysrc beszel_agent_enable=YES
service beszel_agent start

*be careful because into /usr/local/etc/rc.d/beszel_agent it's hardcoded by default to use my own beszel-hub url.

Finally here is the my binary:

  • This program can only be run on AMD64 processors with v4 microarchitecture support.

I also add how you can build your own binary packages for your architecture and processor type. You must have go and git installed. You will need also prebuilded by me web interface ( nodejs ). It's here:

Execute commands in folder where you have space to build the binary:

fetch https://ostreff.info/content/files/2026/03/site-dist.tgz

git clone https://github.com/henrygd/beszel.git

cd beszel/internal/site ; tar zxvf ../../../site-dist.tgz

cd ../..

go build -ldflags "-w -s" -o build/beszel-hub ./internal/cmd/hub

go build -ldflags "-w -s" -o build/beszel-agent ./internal/cmd/agent

install -m 755 build/beszel-agent /usr/local/bin/beszel-agent

install -m 755 build/beszel-hub /usr/local/bin/beszel-hub