doasu.dev is a Fediverse instance that uses the ActivityPub protocol. In other words, users at this host can communicate with people that use software like Mastodon, Pleroma, Friendica, etc. all around the world.
This server runs the snac software and there is no automatic sign-up process.
Happening today!
Anne Dickison, Deputy Director of the FreeBSD Foundation, joins Katie Steen-James (Open Source Initiative ) and Margaret Tucker (GitHub) for a GitHub Maintainer Month panel on age assurance laws and what they mean for open-source maintainers.
The FreeBSD Foundation is participating to ensure open-source realities are represented and that maintainers are not navigating regulatory shifts alone.
๐ LinkedIn Live
Join here: https://bit.ly/3Ra8QOY
RE: https://mastodon.social/@h4ckernews/116614446311174258
Migrated from Ubuntu to Caddy inside Bastille on FreeBSD.
We forked the #KDE Plasma Login Manager. It now runs on #X11, drops privileges after init, and supports #systemd-free too. We tested it on Artix Linux with OpenRC, CachyOS with systemd, and on the #FreeBSD-based GhostBSD. https://www.youtube.com/watch?v=rTnV7-nfgX4 https://github.com/Sonic-DE/sonic-login-manager
The install description for a KDE Wayland session on FreeBSD has been updated with some additional software choices. The page on Codeberg is up to date also.
#freebsd #kde
https://thesaigoneer.bearblog.dev/freebsdkdeplasma6wayland/
The new freebsd.org is live.
The updated FreeBSD website delivers a cleaner design, improved navigation, and a stronger foundation for the Projectโs future.
The new site makes it easier to:
โข Get started with FreeBSD
โข Access documentation and downloads
โข Explore core technologies like ZFS, bhyve, and Jails
โข Connect with the FreeBSD community
Congratulations to everyone who contributed to making this happen.
Explore the new site:
https://bit.ly/4eY0ofG
Still far away but not to far away from now in a country close, close by....
The European *BSD event of 2026! ๐โณ๐ก
Registration is open!! ๐
๐๏ธ https://tickets.eurobsdcon.org/eurobsdcon/brussels/
Sign up early and sign up lots!
While you're at it, don't forget to drop your abstract like it's hot! ๐ฅ
https://events.eurobsdcon.org/
We are still and always looking for first-time *BSD speakers.
Whether you are just starting out or have a unique perspective to share, your voice matters!
The schedule will be published on ๐๏ธ 2026-07-15
For everything else, peek at https://2026.eurobsdcon.org/
More information is added all the time.
EuroBSDCon 2026 in Brussels, Belgium ๐ง๐ช
September 09-13, 2026
#RUNBSD #FreeBSD #NetBSD #OpenBSD #EuroBSDCon #EuroBSDCon2026 #BSD #CFP #Conference #Register
IT Notes - https://it-notes.dragas.net ยป 🤖 🌐
@itnotes@snac.it-notes.dragas.net
When I wrote about FediMeteo (https://it-notes.dragas.net/2025/02/26/fedimeteo-how-a-tiny-freebsd-vps-became-a-global-weather-service-for-thousands/) for the first time, I told the story from the beginning: the idea born almost by chance while checking the weather for a holiday, the memory of my grandfather, who for years had been my personal meteorologist, the decision to build something small and useful, and then the surprise of seeing people actually use it. What began as a personal experiment quickly became a small global service, still running with the same philosophy: FreeBSD, jails, simple scripts, snac, text, emoji, and a lot of small pieces doing their work quietly.
That article was mostly about the birth and growth of the project. This one is about one of the less romantic parts of the same story, although I have to admit that I find a certain beauty in it too: keeping the service light as it grows.
FediMeteo (https://fedimeteo.com) is still intentionally simple from the outside. A homepage, some numbers, a list of countries, and many ActivityPub accounts publishing weather forecasts. The posts are text and emoji. There is no JavaScript requirement to read the pages, no heavy frontend, no unnecessary media attached to every forecast, and no dynamic homepage recalculated at every visit just to show the same numbers. This is not accidental. It is the way I wanted the service to behave from the beginning.
But the more the service is used, the more the small details matter. A request that looks harmless when there are ten followers may become a repeated request when there are thousands of followers, remote instances, crawlers, previews, and other servers fetching the same public objects. In the Fediverse, the same small thing can be asked many times by many different places, each one with a perfectly legitimate reason. The backend doesn't care: it just needs to deal with the requests.
And in FediMeteo, the backend is snac (https://codeberg.org/grunfink/snac2).
I like snac very much precisely because it is small, clear, and efficient. It is not a giant application that tries to be everything. It does a focused job and does it well. But this also means that I want to respect its shape. I do not want to waste its threads on work that the reverse proxy can safely do. A snac thread serving the same public avatar again and again is not a tragedy, but it is still a waste. A snac thread answering the same public ActivityPub object several times in the same minute is doing real work, but often not necessary work.
This is the reason behind the HAProxy (https://www.haproxy.org) tuning I am currently using in front of FediMeteo.
It is not about making the configuration look clever. It is about keeping snac quiet.
This is especially important because snac uses a limited number of threads. I like that. Limits are healthy. They force us to understand what the service is doing, and they prevent a small program from pretending to be an infinite resource. But limits also make waste visible. If a few threads are busy serving files that could have been served from cache, those threads are not available for something more useful.
With FediMeteo the implementation is different because the reverse proxy is HAProxy, but the reasoning is the same. I have many small snac instances, each one in its own FreeBSD (Bastille (https://github.com/BastilleBSD/bastille)) jail, and one public entry point that has to route, terminate TLS, compress, cache, and generally remove as much repetitive work as possible from the backends.
This is, in a way, the natural continuation of the original FediMeteo design. In the first article I wrote that I wanted to manage everything according to the Unix philosophy: small pieces working together. This is another piece of that same puzzle. HAProxy does the edge work. snac does the ActivityPub work. Scripts generate forecasts. cron launches updates. ZFS gives me snapshots. FreeBSD jails keep countries separated. Nothing is particularly heroic by itself, but the whole system becomes pleasant because each part has a clear responsibility.
FediMeteo does not use media in its forecasts.
No images attached to the posts, no generated weather cards, no maps for each city, no decorative banners. The forecasts are text and emoji. This was a deliberate decision. Weather information does not become more useful just because it is put inside an image, and every media file used by the service would become something to store, serve, cache, federate, expire, back up, and occasionally debug.
Text and emoji are enough. They are accessible, light, readable in text browsers, friendly to timelines, and understandable even when someone does not know the local language perfectly. This was one of the original design principles of FediMeteo, and it also helps the infrastructure. Less media means less work, fewer cache entries, fewer repeated fetches, fewer surprises.
There is one exception: the avatar.
All FediMeteo accounts use the same avatar, and this is also intentional. I could have used a different avatar for each country, or for each city, or created something visually richer. It would have been nicer in some screenshots, perhaps. It would also have been operationally worse.
With one shared avatar, the reverse proxy has one very useful object to cache. It is public, identical for everyone, small, requested often, and therefore almost always hot in cache. HAProxy can serve it directly instead of asking each snac instance to return the same file. Since avatars are requested by remote instances, browsers, profile previews, and all sorts of federation-related fetches, this single decision removes a surprising amount of pointless backend traffic.
So the avatar is not only a visual identity. It is part of the architecture.
This is the kind of optimization I like most, because it starts before the software. It starts with deciding not to create a problem.
It is a static HTML page generated from a template. Once per hour, a cron script updates the numbers and statistics. It counts the data I want to show, regenerates the page, and then the page remains static until the next run.
This is not because I cannot make a dynamic page. It is because I do not need one. Boring is good.
The homepage does not need to query all the country instances on every visit. It does not need a database request for each user who opens it. It does not need to ask snac anything in real time. The numbers are useful, but they do not need to be updated every second. Once per hour is enough, and it also fits the spirit of the whole project: do the work when it is needed, then serve the result cheaply.
I have seen too many small services become heavy because the first implementation was convenient rather than appropriate. A cron job and a template are not fashionable, but they are often exactly what a page like this needs.
fedimeteo.comAnd many more.
www.fedimeteo.com
it.fedimeteo.com
uk.fedimeteo.com
jp.fedimeteo.com
us.fedimeteo.com
usa.fedimeteo.com
can.fedimeteo.com
canada.fedimeteo.com
At the beginning, it is always tempting to write one ACL after another in the HAProxy frontend. It is quick, it is explicit, and for five hostnames it is perfectly fine. But FediMeteo did not remain at five hostnames. As countries and aliases grew, a long chain of ACLs would have turned the frontend into a list of names instead of a description of how the proxy behaves.
So I moved the hostname to backend mapping into a map file:
fedimeteo.com backend_fedimeteoThe frontend then needs only one rule:
www.fedimeteo.com backend_fedimeteo
it.fedimeteo.com backend_it
uk.fedimeteo.com backend_uk
jp.fedimeteo.com backend_jp
us.fedimeteo.com backend_us
usa.fedimeteo.com backend_us
can.fedimeteo.com backend_ca
canada.fedimeteo.com backend_ca
use_backend %[req.hdr(host),field(1,:),lower,map(/usr/local/etc/fedimeteo.map,backend_fedimeteo)]This reads the
Host header, removes the port if present, lowercases the result, and looks it up in /usr/local/etc/fedimeteo.map. If nothing matches, it falls back to the main FediMeteo backend.I like this because it keeps the configuration honest. The frontend contains the policy. The map contains the data. Adding a country means adding an entry to the map and defining a backend. I do not need to make the frontend more complicated every time the service grows.
backend backend_itOne backend, one jail, one snac instance. This is exactly the same organizational principle as the rest of the project. If I need to reason about Italy, I look at the Italian jail. If I need to reason about the United Kingdom, I look at the UK jail. If one day I need to move a country elsewhere, the separation is already there.
mode http
http-reuse safe
server srv1 10.0.0.2:8001 maxconn 30backend backend_uk
mode http
http-reuse safe
server srv1 10.0.0.7:8001 maxconn 30backend backend_jp
mode http
http-reuse safe
server srv1 10.0.0.32:8001 maxconn 30
The maxconn 30 value is not a magic number. It is a ceiling. I want each small backend to have a visible limit in front of it. If something starts hammering a country instance, I prefer the pressure to appear at the HAProxy layer instead of becoming unlimited concurrent work inside snac.
http-reuse safe lets HAProxy reuse backend connections where appropriate. This is another small reduction in unnecessary work. Opening connections repeatedly is not the biggest problem in the world, but avoiding it is still better, especially when many small services sit behind the same proxy.
frontend https_inTLS defaults are set globally:
bind :::443 v4v6 ssl crt /usr/local/etc/certs/ alpn h2,http/1.1
mode http
option http-keep-alive
ssl-default-bind-ciphersuites TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256Port 80 only redirects to HTTPS, except for Let's Encrypt challenges:
ssl-default-bind-options no-sslv3 no-tlsv10 no-tlsv11 no-tls-tickets
acl letsencrypt-acl path_beg /.well-known/acme-challenge/In the HTTPS frontend I also set the usual forwarding headers:
http-request redirect scheme https code 301 unless letsencrypt-acl
use_backend letsencrypt-backend if letsencrypt-acl
http-request set-header X-Real-IP %[src]And I add HSTS:
http-request set-header X-Forwarded-Proto https
http-response set-header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"None of this is unusual, and that is fine. The interesting parts of an infrastructure are not always the parts that should be unusual.
cache mediacacheI keep media and ActivityPub JSON separate because they are not the same kind of traffic.
total-max-size 128
max-object-size 10000000
max-age 3600
process-vary on
max-secondary-entries 12cache jsoncache
total-max-size 16
max-object-size 1000000
max-age 60
process-vary on
max-secondary-entries 12
The media cache is larger and has a longer maximum age. In FediMeteo, this mostly means the shared avatar and a few static-looking objects. Since there is intentionally almost no media, the important cached object is requested very often and remains warm.
The JSON cache is smaller and short-lived. It is there for public ActivityPub GET requests, not to store federation state forever. A 60 second cache is enough to collapse many repeated requests that arrive close together in time, without pretending that ActivityPub responses should be treated like immutable files.
This distinction is important. Caching is not one decision. It is a set of small decisions about what a response means, who can see it, how often it changes, and what happens if it is served again.
acl is_media path_end -i .jpg .jpeg .png .gif .webp .svg .ico .mp4 .webm .mp3 .ogg .wav .flac .mov .avi .mkv .m4vThen I store the result in a transaction variable:
http-request set-var(txn.is_media) bool(true) if is_mediaThe cache lookup is straightforward:
http-request cache-use mediacache if { var(txn.is_media) -m bool true }
And on the response side:http-response set-header Cache-Control "max-age=3600, public" if { var(txn.is_media) -m bool true }
http-response del-header Set-Cookie if { var(txn.is_media) -m bool true }
http-response del-header Vary if { var(txn.is_media) -m bool true }
http-response cache-store mediacache if { var(txn.is_media) -m bool true }
The Cache-Control header makes the intent explicit. Set-Cookie is removed because a public media object should not carry session information. Vary is removed because I do not want the same avatar to fragment into many cache entries because of harmless header differences.This is aggressive only if removed from its context. In this service, with this media policy, it is a reasonable choice. FediMeteo is not serving private media under these paths. It is mostly serving the same public avatar over and over.
For the same reason, I clean the request before it reaches the backend:
http-request del-header Authorization if { var(txn.is_media) -m bool true }
http-request del-header Cookie if { var(txn.is_media) -m bool true }
I would not do this globally. I do it after deciding that the request is media. Scope is what makes these rules safe.The result is exactly what I want: the shared avatar becomes an almost perfect cache object. Small, public, repeatedly requested, and served by HAProxy instead of snac.
Accept header:acl is_ap_json req.hdr(Accept),lower -m sub application/activity+jsonThis part matters because ActivityPub uses content negotiation. The same path may return HTML to a browser and JSON to a remote instance. If the proxy pretends that a URL is always one thing, it will eventually cache the wrong representation.
acl is_ap_ldjson req.hdr(Accept),lower -m sub application/ld+json
acl is_outbox path_end /outbox
acl is_get method GET
acl has_auth req.hdr(Authorization) -m found
acl has_cookie req.hdr(Cookie) -m found
So I only mark public ActivityPub GET requests as cacheable:
http-request set-var(txn.is_activitypub) bool(true) if is_get !is_outbox is_ap_json !has_auth !has_cookieThere are several decisions here, all important.
http-request set-var(txn.is_activitypub) bool(true) if is_get !is_outbox is_ap_ldjson !has_auth !has_cookie
It must be a GET, because I am not caching deliveries or anything that changes state. It must not be /outbox, because outbox collections are not the traffic I want to cache here. It must not have Authorization, and it must not have cookies, because authenticated or user-specific requests do not belong in a shared public cache.
Then the cache can be used and populated:
http-request cache-use jsoncache if { var(txn.is_activitypub) -m bool true }http-response set-header Cache-Control "max-age=60, public" if { var(txn.is_activitypub) -m bool true }
http-response cache-store jsoncache if { var(txn.is_activitypub) -m bool true }
Sixty seconds is short, but useful. Federation often creates small clusters of identical requests. A remote server fetches an actor, another fetches the same actor, something asks for the same object, something retries. I do not need to cache these responses for hours. I only need HAProxy to answer the second and third identical request during the same small burst.This is microcaching in the most practical sense. It reduces repeated work without changing the nature of the service.
acl is_short_path path_reg ^/[^/]+/s/This comes from the same observation that led me to cache snac media with nginx. snac uses static media paths, and those paths often represent the kind of public, repeatable traffic that should not consume backend threads if the proxy can serve it. I call them "short", not because they are, but because the first time I saw them, I thought the 's' stood for "short", not "static". The name just stuck.
http-request cache-use mediacache if is_short_path
In FediMeteo this is less central than on a normal social instance, because I deliberately do not use media except for the avatar and basic static objects. Still, the rule fits the general policy: let HAProxy handle repeatable edge work, and let snac spend its threads where they are actually needed.
Vary, but not without limitsprocess-vary onI want HAProxy to process
max-secondary-entries 12
Vary, because content negotiation is real, especially when ActivityPub is involved. But I also want variation to be bounded. If every slightly different header creates another cache entry, the cache becomes a complicated way to miss.For media, I remove Vary before storing the response. A shared avatar does not need to vary by Accept. For ActivityPub JSON, I am more careful because the representation matters.
Again, the important thing is not the number itself. It is the decision to make variation explicit and limited.
http-response set-header X-Cache-Status HIT if !{ srv_id -m found }
http-response set-header X-Cache-Status MISS if { srv_id -m found }
This is intentionally simple. If HAProxy selected a backend server, I call it a miss. If no backend server was selected, the response came from cache, so I call it a hit. It is not a complete observability system, but it is enough to answer the first question I usually have after changing a cache rule.Did this request reach snac?
A test can be as simple as:
curl -I https://it.fedimeteo.com/path/to/avatar.pngThe second request should be a hit.
curl -I https://it.fedimeteo.com/path/to/avatar.png
For ActivityPub JSON, the test must use the right Accept header:
curl -I \And I also want to verify that cookies and authorization prevent public caching:
-H 'Accept: application/activity+json' \
https://it.fedimeteo.com/some/activitypub/object
curl -I \A cache that works should be visible. A cache that is invisible can be correct, but it can also be silently wrong. I prefer to know.
-H 'Cookie: test=value' \
-H 'Accept: application/activity+json' \
https://it.fedimeteo.com/some/activitypub/objectcurl -I \
-H 'Authorization: Bearer fake' \
-H 'Accept: application/activity+json' \
https://it.fedimeteo.com/some/activitypub/object
filter compressionThis keeps another common responsibility at the edge. The country instances can stay focused on snac and the forecast data, while HAProxy deals with client-facing compression for HTML, JSON, and ActivityPub responses.
compression algo gzip
compression type text/css text/html text/javascript application/javascript text/plain text/xml application/json application/activity+json
There is also a local Prometheus exporter:
frontend prometheusAnd I keep internal operational paths, such as statistics and Grafana, handled before the hostname map. These are small details, but ordering matters. Special paths should be explicit and early. The hostname map is for FediMeteo routing, not for every internal tool I happen to expose behind the same proxy.
bind 127.0.0.1:8405
mode http
http-request use-service prometheus-exporter
no log
The map keeps hostname routing manageable. The backend definitions keep each country isolated and limited. The static homepage avoids dynamic work for something that changes once per hour. The shared avatar gives HAProxy one very hot media object to serve directly. The media cache keeps public files away from snac. The JSON microcache absorbs short ActivityPub bursts. Header cleanup prevents useless variation. Connection reuse avoids unnecessary backend connection churn.
But all of this is only a longer way of saying one thing:
fewer requests reach snac.
That is the metric I care about here.
Not because snac is slow. If anything, FediMeteo exists in its current form because snac is efficient enough to make this kind of project possible on a very small VPS. But precisely because the whole architecture is small and pleasant, I do not want to waste resources where there is no need.
This is also consistent with the rest of the project. Forecasts are serialized by scripts. Updates happen every six hours. The homepage is regenerated hourly. Countries live in separate jails. Snapshots and backups are handled outside the application. No single component tries to be the entire system.
HAProxy is just another small piece, but it sits in the right place to remove a lot of repeated work.
It matches FediMeteo as it is now: almost no media, one shared avatar, static homepage, public forecasts, many small snac instances, and ActivityPub traffic that can benefit from a short public cache when there are no cookies or authorization headers.
If I decide one day to use media in forecasts, the media cache rules will need to be reviewed. If I use different avatars for each city or country, the cache will still work, but I will lose the very nice property of one shared, always-hot avatar. If ActivityPub responses become actor-dependent, public JSON caching must be reconsidered. If one country grows a very different traffic pattern from the others, it may deserve a different limit or policy.
This is why I do not like presenting configurations as magic. A good configuration is a written form of the assumptions behind a service. When the assumptions change, the configuration must change too.
The HAProxy layer follows this idea. It terminates TLS, routes hostnames through a map, reuses backend connections, serves the shared avatar from cache, microcaches public ActivityPub JSON, avoids authenticated and cookie-based traffic, and gives me a small diagnostic header to see what is happening.
There is no single brilliant directive here. There is only the usual work of matching infrastructure to reality.
FediMeteo publishes weather forecasts as text and emoji. The homepage is static HTML updated every hour. The accounts share the same avatar because it is enough, and because it is better for the cache. Each country has its own snac instance in its own FreeBSD jail. HAProxy stands in front of them and tries, quietly, not to bother them unless it has to.
I like this kind of infrastructure.
Not because it is invisible, but because when it works well, it leaves very little to say.
https://it-notes.dragas.net/2026/05/18/fedimeteo-haproxy-and-the-art-of-not-wasting-snac-threads/
#ITNotes #NoteHUB #fediverse #freebsd #haproxy #hosting #jail #networking #ownyourdata #server #snac #snac2 #social #web
Fried my boot loader trying to update it.
#FreeBSD has decades of archives on boot loader updating, which means that searches are full of noise. "gpart bootcode" is not a thing today. Possibly complicated further because this was installed as 14.0 and upgraded to 15.0.
Reboot and got "missing boot loader"
Start over by hand:
gpart add -t efi -s 100M nda0
newfs_msdosfs -F 32 -c 1 /dev/nda0p1
attach to /mnt
mkdir -p /mnt/EFI/BOOT
cp /boot/gptboot.efi /mnt/EFI/BOOT/BOOTX64.efi
Reboot and again: "missing boot loader"
Anyone know the current incantation?
We may be in the market to hire a part-time FreeBSD and Bastille sysadmin (~20hrs week) specifically in the EMEA or APAC timezones (eventually both).
The roles require experience with FreeBSD, Bastille, nginx, and at least one useful coding language.
Timeline is mid-to-late 2026 to start.
Any of our EU / APAC friends want to come work part-time with the Bastille creator on a cybersecurity startup?
Cleaning Up Critical Infrastructure in FreeBSD
Sustainable open source requires more than new features. It demands disciplined security work, clear visibility into dependencies, and long-term maintainability.
Through the Beach Cleaning Project, funded by the Alpha-Omega Project, we strengthened the FreeBSD base system by improving third-party software tracking, advancing SBOM tooling, and aligning security processes for future resilience.
Read more:
https://freebsdfoundation.org/blog/cleaning-up-critical-infrastructure-in-freebsd/
#FreeBSD
Latest quarterly FreeBSD package upgrade broke my Nextcloud ๐ฎโ๐จ
Post mortem: The new version of php85-pdo_pgsql is now compiled against PostgreSQL 18, not 17. So pkg upgrade removed postgresql17-server, leaving Nextcloud dysfunctional without a database.
Solution:
- Reinstalled postgresql17-server
- Dumped the db with pg_dump
- Installed postgresql18-server & php85-pdo_pgsql
- Copied over pg_hba.conf & postgresql.conf
- Created empty db/user in PG18
- Imported the db dump
- Ran occ maintenance:data-fingerprint
Restarted php-fpm & nginx
All fine again. But that was unpleasant ๐
OK So I have discovered that I do not need seatd started at all. @vlkrs@bsd.network and this post helped.
https://www.reddit.com/r/openbsd/comments/1hp0pcd/wayland_works_as_root_but_no_keyboard_response_as/
Basically I just needed to add "/dev/wsmouse1" and "/dev/wskbd1" to /etc/fbtab.
OK #OpenBSD friends, Why when I install Sway or Mango ( #Wayland ) can I not get any keyboard control ? I can run them fine on #FreeBSD but on OpenBSD they both start but the keyboard does nothing on the mouse seems to work on waybar. I'm using known working configs for both.
I do see errors like permission denied for /dev/wskb* . I'm at a loss as I'm sure I had sway running last year ??
Even copied the startsway.sh and modified for mango but still no keyboard ???
Please boost for a larger reach. ❤️
@vlkrs@bsd.network Are you able to assist at all ? TIA
boostedThe latest #FreeBSD Journal just escaped! My Letters column contains some of the best advice I have ever offered system administrators. "Snuggle the pain" is only the beginning.
https://freebsdfoundation.org/our-work/journal/browser-based-edition/laptop-desktop/
Latest ๐ฉ๐ฎ๐น๐๐ฎ๐ฏ๐น๐ฒ ๐ก๐ฒ๐๐ - ๐ฎ๐ฌ๐ฎ๐ฒ/๐ฌ๐ฐ/๐ฌ๐ฒ (Valuable News - 2026/04/06) available.
https://vermaden.wordpress.com/2026/04/06/valuable-news-2026-04-06/
Past releases: https://vermaden.wordpress.com/news/
#verblog #vernews #news #bsd #freebsd #openbsd #netbsd #linux #unix #zfs #opnsense #ghostbsd #solaris #vermadenday
"Call for testing: introducing the Laptop Integration Testing project" by the FreeBSD foundation: https://freebsdfoundation.org/blog/call-for-testing-introducing-the-laptop-integration-testing-project/
This is really cool, I like that they're crowd sourcing this, AND that they're paying attention to more than just the technical data. I'll be sure to submit my report on my laptop.
FreeBSD as a Desktop in 2026 โ Surprisingly Good! (BSD for Beginners) - YouTube
FreeBSD 14.4-RELEASE is now available.
The FreeBSD Project has announced the release of FreeBSD 14.4-RELEASE, the fifth release from the stable/14 branch. FreeBSD 14.4-RELEASE is available for multiple architectures and can be installed via ISO, USB, VM images, cloud platforms, and OCI containers.
Download and release information:
https://www.freebsd.org/releases/14.4R/announce/
Thank you to the Release Engineering Team and the many contributors who make each release possible.
#FreeBSD #OpenSource #ReleaseEngineering
Latest ๐ฉ๐ฎ๐น๐๐ฎ๐ฏ๐น๐ฒ ๐ก๐ฒ๐๐ - ๐ฎ๐ฌ๐ฎ๐ฒ/๐ฌ๐ฏ/๐ฌ๐ต (Valuable News - 2026/03/09) available.
https://vermaden.wordpress.com/2026/03/09/valuable-news-2026-03-09/
Past releases: https://vermaden.wordpress.com/news/
#verblog #vernews #news #bsd #freebsd #openbsd #netbsd #linux #unix #zfs #opnsense #ghostbsd #solaris #vermadenday
I'm trying to test draid virtually for #openzfsmastery, because nobody's gonna give me a shelf of 60 disks to play with. I set everything up like:
disk35_name="disk35"
disk35_type="ahci-hd"
disk35_dev="sparse-zvol"
Seems that if I have 35 ahci-hd entries, disk0 through disk34, bhyve and freebsd works. At disk35, the host panics on boot.
Is this expected with bhyve? Or does FreeBSD need a special tweak with 36 disks?
Iโve been following the discussions about the name of my NetBSD project ("Jails for NetBSD") across a few platforms over the past days and really appreciate the thoughtful feedback.
The short version: the current prototype is probably closer to a cell or a cage than a strict jail, so the name might indeed not be perfect. The project originally started as an experiment inspired by FreeBSD jails, but while exploring NetBSD internals it evolved into something slightly different: controlled process isolation built around the secmodel framework, a different approach for the tool chain and configuration, and without resource limits and network virtualization.
Because of that, Iโm open to renaming the project at this stage.
Iโve attached a small poll with a few candidate names โ please vote if you like.
And if the right name isnโt listed yet, feel free to drop suggestions in the comments ๐
Project site: https://netbsd-jails.petermann-digital.de/
#netbsd #jails #freebsd #openbsd
| Jails (current name): | 11 |
| Cells: | 14 |
| Realms: | 5 |
| Domains (clash with Xen): | 0 |
| Enclaves: | 4 |
| Cages: | 9 |
"This Week in Plasma" brings the news that...
The Digital clock widget gets the Vietnamese lunar calendar, highlighted items get rounded corners, and the Favorites section in the app launcher menu gets all flashy ๐ธ... Among many other things.
#Plasma6 #desktop #linux #haiku #FreeBSD #OpenBSD #FreeSoftware #OpenSource
Production upgraded to #FreeBSD 15/pkgbase, including all jails.
Everything seems to work? Well, the web site can still take credit cards. Everything else is secondary.
I've been using #FreeBSD since 1995. 31 years, more or less.
I was never aware of this most vital community resource.
"This Week in Plasma" brings the news that...
Plasma 6.6 is here (duh!), we fixed those widgets the new release broke ๐ฌ, we made the close buttons on the "Thumbnails" task switcher more legible, and the โTerminate this frozen windowโ dialog got a spinner, among many more tasty things.
https://blogs.kde.org/2026/02/21/this-week-in-plasma-6.6-is-here/
#Plasma6 #FreeSoftware #OpenSource #desktop #linux #FreeBSD #OpenBSD