Re: GSoC Proposal Idea: Developer-Friendly Container CLI for FreeBSD Jails

Jesús Daniel Colmenares Oviedo <[email protected]>
Newsgroups gmane.os.freebsd.devel.hackers
Message-ID <[email protected]>
On 3/17/26 16:36, Alan Somers wrote:
> On Tue, Mar 17, 2026 at 11:34 AM Chandrachud Siddharth
> <[email protected]> wrote:
>>
>> Hello,
>>
>> I hope you are doing well.
>>
>> My name is Chandrachud Siddharth, and I am an undergraduate student with a strong interest in systems programming, operating systems, and DevOps. I have been actively learning C/C++ and exploring low-level system concepts, particularly in UNIX-like environments.
>>
>> Recently, I have been studying embedded systems and lightweight operating systems used in real-world devices such as routers, industrial controllers, and smart appliances. While working in this area, I became interested in FreeBSD and its design, especially its jail-based virtualization mechanism.
>>
>> While experimenting with FreeBSD jails, I observed that they provide powerful and efficient isolation, which is highly suitable for embedded and edge systems. However, managing jails requires multiple manual steps using tools such as jail, jexec, and network configuration utilities. Compared to modern container platforms, this workflow can be less intuitive for developers.
>>
>> I also explored existing tools like iocage and BastilleBSD. While they simplify some aspects, they seem more focused on system administration and infrastructure management rather than providing a simple, developer-friendly container experience.
>>
>> Based on this, I would like to propose a project idea for GSoC: developing a modern container-style command line interface for managing FreeBSD jails.
>>
>> The goal of this project would be to design a CLI tool that enables developers to easily create, run, and manage jails using a workflow similar to container platforms. For example:
>>
>> bsdctl run nginx
>> bsdctl ps
>> bsdctl stop web
>> bsdctl logs web
>>
>> The tool would focus on simplifying container lifecycle management, networking configuration, filesystem handling, and logging, while leveraging the performance and security advantages of FreeBSD jails.
>>
>> I believe this project could help make FreeBSD more accessible for developers working in embedded systems, edge computing, and lightweight infrastructure environments.
>>
>> I would really appreciate your feedback on this idea and whether it would be suitable for GSoC under FreeBSD. I would also be grateful for any guidance on how to refine the scope or align it better with current FreeBSD development priorities.
>>
>> Thank you for your time and consideration.
>>
>> Best regards,
>> Chandrachud Siddharth
> 
> Have you looked at sysutils/runj in ports?  That might be closer to
> what you want than iocage or bastille.
> 

Or maybe AppJail :-)

```
# appjail oci run -d -u root -o overwrite=force -o virtualnet=":<random> 
default" -o nat -o container="args:--pull" -o ephemeral 
ghcr.io/daemonless/redis redis
...
[00:00:06] [ info  ] [redis] Detached: pid:81379, 
log:jails/redis/container/2026-03-17.log
# appjail logs tail jails/redis/container/2026-03-17.log -f
13146:C 17 Mar 2026 20:44:52.242 * Redis version=8.4.0, bits=64, 
commit=00000000, modified=0, pid=13146, just started
13146:C 17 Mar 2026 20:44:52.242 * Configuration loaded
13146:M 17 Mar 2026 20:44:52.242 * monotonic clock: POSIX clock_gettime
13146:M 17 Mar 2026 20:44:52.243 * Running mode=standalone, port=6379.
13146:M 17 Mar 2026 20:44:52.243 # WARNING: The TCP backlog setting of 
511 cannot be enforced because kern.ipc.somaxconn is set to the lower 
value of 128.
13146:M 17 Mar 2026 20:44:52.243 * Server initialized
13146:M 17 Mar 2026 20:44:52.244 * BGSAVE done, 0 keys saved, 0 keys 
skipped, 88 bytes written.
13146:M 17 Mar 2026 20:44:52.244 * Creating AOF base file 
appendonly.aof.1.base.rdb on server start
13146:M 17 Mar 2026 20:44:52.245 * Creating AOF incr file 
appendonly.aof.1.incr.aof on server start
13146:M 17 Mar 2026 20:44:52.245 * Ready to accept connections tcp
# appjail jail list -j redis
STATUS  NAME   ALT_NAME  TYPE   VERSION       PORTS  NETWORK_IP4
UP      redis  -         thick  15.0-RELEASE  -      10.0.0.2
```
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.