FreeBSD ports committer since 2017, from Solingen, Germany. I look after nginx, MySQL and FreeIPA on FreeBSD, and when a port needs something that does not exist yet, I build it.
Blog and write-ups: blog.bsdproject.de
portstatus.bsdproject.de shows, for every port in the FreeBSD ports tree, which published vulnerabilities apply to it and whether a newer upstream release exists. Version data comes from both Repology and portscout, CVE data from the NVD by way of the CPE recorded for the port. Four Atom feeds carry the changes, and a bot reports the new findings to IRC every six hours.
Issues and feature requests: joneum/portstatus.
Ports I maintain include:
www/immich: the self-hosted photo and video library, machine learning side includednet/freeipa-server: the FreeIPA server on FreeBSD, with documentation of what works and what differs from Linuxwww/nginx,www/nginx-devel,www/freenginxand thewww/nginx-module-*familydatabases/mysql*
Fixes go upstream or into the ports tree, never only into a private fork.
Third party nginx modules are their own ports on FreeBSD, one port per module. The sources live in the sysadmin-labs organization:
| Module | What it does |
|---|---|
| nginx-accept-language-module | Picks a language for the request from Accept-Language, weights respected, into a variable |
| nginx-auth-ldap-module | Authenticates HTTP basic credentials against an LDAP directory, with group requirements and a connection pool |
| nginx-cert-expiry-module | Warns in the error log before a TLS certificate expires, with a variable for the days left |
| nginx-dav-ext-module | Extended WebDAV methods: PROPFIND, OPTIONS, LOCK, UNLOCK |
| nginx-fips-check-module | Reports whether the OpenSSL it is linked against runs in FIPS mode, and stops the worker if that changes |
| nginx-footer-module | Appends text to a response body, built from variables |
| nginx-form-input-module | Parses application/x-www-form-urlencoded request bodies into nginx variables |
| nginx-gridfs-module | Serves files out of MongoDB GridFS, ranges included |
| nginx-http-auth-digest | RFC 2617 HTTP Digest authentication |
| nginx-iconv-module | Converts between character encodings with iconv(3), a value into a variable or a whole response body |
| nginx-ip-anon-module | Masks the host part of the client address, IPv4 and IPv6, into variables for logs and limit keys |
| nginx-json-status-module | Reports the connection and request counters and every upstream as one JSON object |
| nginx-let-module | Evaluates an arithmetic or string expression into a variable |
| nginx-link-function-module | Calls functions in a C library loaded at run time |
| nginx-postgres-module | Queries PostgreSQL directly and answers with text, JSON or a status code |
| nginx-redis2-module | Sends commands to Redis and answers with the raw reply |
| nginx-sflow-module | Samples requests and sends them as sFlow datagrams |
| nginx-slowfs-cache-module | Caches files served from a slow filesystem onto a fast one |
| nginx-stream-limit-req-module | Rate limits incoming connections in the stream subsystem, limit_req for TCP and UDP |
| nginx-sts-module | Counts what goes through the stream subsystem and serves the counters as JSON, Prometheus or HTML |
| nginx-subs-filter-module | Response body filter for string and regex substitutions |
| nginx-syslog5424-module | Logs to syslog in the RFC 5424 format, with timestamp, message id and structured data |
| nginx-upload-module | Multipart file uploads with resumable upload support |
| nginx-websockify-module | Bridges a WebSocket to a plain TCP service, a VNC server for example |
| nginx-zstd-module | Zstandard output filter plus a server for precompressed .zst files |
Some ports ship artifacts that the ports framework cannot build offline. Those live here so the ports stay reproducible:
- FreeBSD-Immich: distfiles for
www/immich - FreeBSD-Semaphore: prebuilt Vue web UI for
net-mgmt/semaphore - FreeBSD-CodeServer: distfiles for
www/code-server - FreeBSD-WorldMonitor: distfiles for
www/worldmonitor
Bug reports for a port: the FreeBSD Bugzilla. Everything else: issues on the repository in question.
BSD 2-Clause, see LICENSE.
