What are CBSD templates? These are scripts/scenarios/playbook for configuring various services in a container. Also CBSD jail templates are part of ClonOS project.
To improve the quality, each CBSD template goes through a periodic (usually once a week) Continuous integration cycle on the test cluster with various unit/regression tests.
The result of the CI check is the generation of an image with a workable service.
Therefore, you can either use a template to build the container yourself OR use a ready-made image from the CBSD repository, e.g. via CBSDfile.
Templates in CBSD are divided into static (classic) and managed (dynamic). In the second case, the service is controlled by the playbook, and you can always reconfigure the service while it is running.
To work with managed services, you must first install and activate the 'puppet' module (done once per host):
Management templates give you a lot more power than static templates and can be integrated with SCM (e.g. git) for IaC.
Besides that (and unlike static templates), you can apply managed templates to existing containers, e.g.: 'cbsd forms module=redis jname=yourjail1' (no need to get the image: just install module)
The main mission of the CBSD project: transfer all templates into the 'management' category, because in this case, the work is not tied to a specific container management system (e.g.: CBSD) and
it plays a big role in supporting the FreeBSD system as a whole from the software management system (Puppet, SaltStack, Ansible, Chef, ReX ..).
Important: this work and CI/build infrastructure sponsored by the community! Please support us
clickhouse
Available for FreeBSD version:
ver
package
size
updated
13.1
22.13.1.1.
88 Mb
20 days ago
13.2
22.13.1.1.
88 Mb
0 days ago
14.0
23.4.1.1.
90 Mb
1 days ago
ClickHouse is an open-source column-oriented database management
system that allows generating analytical data reports in real time.
This image/build for CBSD project, it's not official FreeBSD Clickhouse build.
If you are looking for an official Clickhouse FreeBSD build, please use link:
https://clickhouse.com/docs/en/install/#from-binaries-non-linux
# Example of using the marketplace of CBSD jail images
# default password
GITLAB_ROOT_PASSWORD="yourpassword"
jail_gitlab()
{
from="https://dl.bsdstore.ru/img/`uname -m`/`uname -m`/`sysctl -n kern.osrelease | cut -d - -f 1`/${jname}/${jname}.img"
ip4_addr="DHCP"
host_hostname="${jname}.my.domain"
ver="native"
interface="auto"
runasap=1
pkg_bootstrap=0
}
postcreate_gitlab()
{
local _ip
_ip=$( jget jname=${jname} mode=quiet ip4_addr )
# show postmessage
cat <<EOF
GitLab URL : http://${_ip}
GitLab root login : root
GitLab root passowrd: "${GITLAB_ROOT_PASSWORD}"
EOF
}
jupyterlab
Available for FreeBSD version:
ver
package
size
updated
12.4
4.0.0
232 Mb
20 days ago
13.1
4.0.0
235 Mb
20 days ago
13.2
4.0.2
235 Mb
0 days ago
14.0
4.0.1
233 Mb
1 days ago
JupyterLab is an extensible environment for interactive and reproducible
computing, based on the Jupyter Notebook and Architecture.
JupyterLab is the next-generation user interface for Project Jupyter offering
all the familiar building blocks of the classic Jupyter Notebook (notebook,
terminal, text editor, file browser, rich outputs, etc.) in a flexible and
powerful user interface. JupyterLab will eventually replace the classic Jupyter
Notebook.
The current JupyterLab releases are suitable for general usage, and the
extension APIs will continue to evolve for JupyterLab extension developers.
See also: https://github.com/jupyterlab/jupyterlab
Matomo is a downloadable, open source (GPL licensed) web analytics
software package. It provides detailed reports on your website and
its visitors, including the search engines and keywords they used,
the language they speak, which pages they like, the files they
download, and so much more.
Matomo aims to be an open source alternative to Google Analytics.
WWW: https://matomo.org/
# Example of using the marketplace of CBSD jail images
jail_matomo()
{
forms="matomo"
# Use remote image. You can comment this line to build the image locally.
from="https://dl.bsdstore.ru/img/`uname -m`/`uname -m`/`sysctl -n kern.osrelease | cut -d - -f 1`/${jname}/${jname}.img"
# to overwrite default settings, see 'cbsd forms module=matomo vars' for full list
# use 'cbsd forms' to re-configure settings in runtime.
# export H_TIMEZONE=UTC H_DB_MATOMO_PASSWORD=newdbpassword H_PHP_MEMORY_LIMIT=1g ..
ip4_addr="DHCP"
host_hostname="${jname}.my.domain"
ver="native"
interface="auto"
runasap=1
pkg_bootstrap=0
}
# Ensure we have forms-matomo module
preup_matomo()
{
# forms-based module, install it first
module mode=install forms-matomo
}
postcreate_matomo()
{
local _ip
_ip=$( jget jname=${jname} mode=quiet ip4_addr )
# show postmessage
cat <<EOF
${jname} URL : http://${_ip}
Default settings for 'Database Setup' action:
Database Server: 127.0.0.1
Login: matomo
Password: matomopass
Database Name: matomo
EOF
}
memcached is a high-performance, distributed memory object caching
system, generic in nature, but intended for use in speeding up dynamic
web applications by alleviating database load.
# Example of using the marketplace of CBSD jail images
jail_memcached()
{
forms="memcached"
# Use remote image. You can comment this line to build the image locally.
from="https://dl.bsdstore.ru/img/`uname -m`/`uname -m`/`sysctl -n kern.osrelease | cut -d - -f 1`/${jname}/${jname}.img"
# to overwrite default settings, see 'cbsd forms module=memcached vars' for full list
# use 'cbsd forms' to re-configure settings in runtime.
# export H_MAX_CONNECTIONS=1024 H_TCP_PORT=1234 ..
ip4_addr="DHCP"
host_hostname="${jname}.my.domain"
ver="native"
interface="auto"
runasap=1
pkg_bootstrap=0
}
# Ensure we have forms-memcached module
preup_memcached()
{
# forms-based module, install it first
module mode=install forms-memcached
}
# Example of using the marketplace of CBSD jail images
# grep MYSQL_DEFAULT /usr/ports/Mk/bsd.default-versions.mk
jail_mysql()
{
forms="mysql"
# Use remote image. You can comment this line to build the image locally.
from="https://dl.bsdstore.ru/img/`uname -m`/`uname -m`/`sysctl -n kern.osrelease | cut -d - -f 1`/${jname}/${jname}.img"
# to overwrite default settings, see 'cbsd forms module=mysql vars' for full list
# use 'cbsd forms' to re-configure settings in runtime.
# export H_MYSQL_VER=80 H_PORT=1234 H_MAX_CONNECTIONS=128 ...
ip4_addr="DHCP"
host_hostname="${jname}.my.domain"
ver="native"
interface="auto"
runasap=1
pkg_bootstrap=0
}
# Ensure we have forms-mysql module
preup_mysql()
{
# forms-based module, install it first
module mode=install forms-mysql
}
nextcloud
Available for FreeBSD version:
ver
package
size
updated
12.4
26.0.1
900 Mb
20 days ago
13.1
26.0.1
903 Mb
20 days ago
13.2
26.0.2
912 Mb
0 days ago
14.0
26.0.2
914 Mb
1 days ago
Nextcloud is a system for the creation and management of personal
cloud resources. It is a fork of Owncloud.
WWW: https://nextcloud.com
# Example of using the marketplace of CBSD jail images
jail_nextcloud()
{
from="https://dl.bsdstore.ru/img/`uname -m`/`uname -m`/`sysctl -n kern.osrelease | cut -d - -f 1`/${jname}/${jname}.img"
ip4_addr="DHCP"
host_hostname="${jname}.my.domain"
ver="native"
interface="auto"
runasap=1
pkg_bootstrap=0
}
postcreate_nextcloud()
{
local _ip
_ip=$( jget jname=${jname} mode=quiet ip4_addr )
# show postmessage
cat <<EOF
${jname} url : http://${_ip}:80
${jname} default login: ncadmin
${jname} default pass : random generated, please see `/root/initial_nc_passwort.txt` file inside jail
EOF
}
pgadmin4
Available for FreeBSD version:
ver
package
size
updated
12.4
7.0
559 Mb
20 days ago
13.1
7.0
561 Mb
20 days ago
13.2
7.0
611 Mb
0 days ago
14.0
7.0
609 Mb
1 days ago
pgAdmin is a management tool for PostgreSQL and derivative relational databases
such as EnterpriseDB's EDB Advanced Server.
It may be run either as a web or desktop application.
WWW: https://www.pgadmin.org
# Example of using the marketplace of CBSD jail images
# pgadmin4 default credential
PGADMIN_SETUP_EMAIL="root@example.org"
PGADMIN_SETUP_PASSWORD="root"
jail_pgadmin4()
{
from="https://dl.bsdstore.ru/img/`uname -m`/`uname -m`/`sysctl -n kern.osrelease | cut -d - -f 1`/${jname}/${jname}.img"
ip4_addr="DHCP"
host_hostname="${jname}.my.domain"
ver="native"
interface="auto"
runasap=1
pkg_bootstrap=0
}
postcreate_pgadmin4()
{
local _ip
_ip=$( jget jname=${jname} mode=quiet ip4_addr )
# show postmessage
cat <<EOF
${jname} url : http://${_ip}:5050
${jname} default email: ${PGADMIN_SETUP_EMAIL}
${jname} default pass : ${PGADMIN_SETUP_PASSWORD}
EOF
}
phpipam
Available for FreeBSD version:
ver
package
size
updated
12.4
1.5.2
131 Mb
20 days ago
13.1
1.5.2
132 Mb
20 days ago
13.2
1.5.2
133 Mb
0 days ago
14.0
1.5.2
132 Mb
1 days ago
See PHPIPAM integration with CBSD example: https://www.bsdstore.ru/en/13.0.x/wf_ipam_ssi.html
phpipam is an open-source web IP address management application.
Its goal is to provide light and simple IP address management
application. It is ajax-based using jQuery libraries, php scripts,
javascript and some HTML5/CSS3 features.
- IPv4 / IPv6 address management
- ICMP status updates, subnet scanning and status showing
- Domain authentication (AD) / OpenLDAP authentication
- Visual subnet display
- VRF support
- VLAN management
- RIPE import
- Import / export XLS files
- E-Mail notification with IP details
- IP database search
- Custom IP/subnet/userVLAN address fields
WWW: https://phpipam.net/
PostgreSQL is a sophisticated Object-Relational DBMS, supporting almost all SQL constructs, including subselects, transactions, and user-defined types and functions. It is the most advanced open-source database available anywhere. Commercial Support is also available. The original Postgres code was the effort of many graduate students, undergraduate students, and staff programmers working under the direction of Professor Michael Stonebraker at the University of California, Berkeley. In 1995, Andrew Yu and Jolly Chen took on the task of converting the DBMS query language to SQL and created a new database system which came to known as Postgres95. Many others contributed to the porting, testing, debugging and enhancement of the Postgres95 code. As the code improved, and 1995 faded into memory, PostgreSQL was born. PostgreSQL development is presently being performed by a team of Internet developers who are now responsible for all current and future development. The development team coordinator is Marc G. Fournier (scrappy@PostgreSQL.ORG). Support is available from the PostgreSQL developer/user community through the support mailing list (questions@PostgreSQL.ORG). PostgreSQL is free and the complete source is available. WWW: https://www.postgresql.org/
# Example of using the marketplace of CBSD jail images
# grep PGSQL_DEFAULT /usr/ports/Mk/bsd.default-versions.mk
jail_postgresql()
{
forms="postgresql"
# Use remote image. You can comment this line to build the image locally.
from="https://dl.bsdstore.ru/img/`uname -m`/`uname -m`/`sysctl -n kern.osrelease | cut -d - -f 1`/${jname}/${jname}.img"
# to overwrite default settings, see 'cbsd forms module=postgresql vars' for full list
# use 'cbsd forms' to re-configure settings in runtime.
# export H_SHARED_BUFFERS=256MB ..
ip4_addr="DHCP"
host_hostname="${jname}.my.domain"
ver="native"
interface="auto"
runasap=1
pkg_bootstrap=0
}
# Ensure we have forms-postgresql module
preup_postgresql()
{
# forms-based module, install it first
module mode=install forms-postgresql
}
PowerDNS Server + (optional) PowerDNSAdmin UI
The PowerDNS Authoritative Server is a versatile nameserver which supports a
large number of backends. These backends can either be plain zone files or be
more dynamic in nature.
PowerDNS has the concepts of "backends". A backend is a datastore that the
server will consult that contains DNS records (and some metadata). The backends
range from database backends (MySQL, PostgreSQL) and BIND zone files to
co-processes and JSON APIs.
# Example of using the marketplace of CBSD jail images
jail_powerdns()
{
forms="powerdns"
# Use remote image. You can comment this line to build the image locally.
from="https://dl.bsdstore.ru/img/`uname -m`/`uname -m`/`sysctl -n kern.osrelease | cut -d - -f 1`/${jname}/${jname}.img"
# to overwrite default settings, see 'cbsd forms module=powerdns vars' for full list
# use 'cbsd forms' to re-configure settings in runtime.
# export H_POWERDNS_API="yes" H_POWERDNS_UI="yes" H_POWERDNS_ZONES_NAME1="example.org" ..
ip4_addr="DHCP"
host_hostname="${jname}.my.domain"
ver="native"
interface="auto"
runasap=1
pkg_bootstrap=0
}
# Ensure we have forms-powerdns module
preup_powerdns()
{
# forms-based module, install it first
module mode=install forms-powerdns
}
# Example of using the marketplace of CBSD jail images
jail_rabbitmq()
{
forms="rabbitmq"
# Use remote image. You can comment this line to build the image locally.
from="https://dl.bsdstore.ru/img/`uname -m`/`uname -m`/`sysctl -n kern.osrelease | cut -d - -f 1`/${jname}/${jname}.img"
# to overwrite default settings, see 'cbsd forms module=rabbitmq vars' for full list
# use 'cbsd forms' to re-configure settings in runtime.
# export H_CLUSTER_NAME=myrabbit H_USER_PASSWORD2="mypassword"
ip4_addr="DHCP"
host_hostname="${jname}.my.domain"
ver="native"
interface="auto"
runasap=1
pkg_bootstrap=0
}
# Ensure we have forms-rabbitmq module
preup_rabbitmq()
{
# forms-based module, install it first
module mode=install forms-rabbitmq
}
postcreate_rabbitmq()
{
local _ip
_ip=$( jget jname=${jname} mode=quiet ip4_addr )
# show postmessage
cat <<EOF
${jname} url : http://${_ip}:15672
${jname} default admin login: admin
${jname} default admin pass : admin
EOF
}
redis
Available for FreeBSD version:
ver
package
size
updated
12.4
7.0.11
42 Mb
20 days ago
13.1
7.0.11
44 Mb
20 days ago
13.2
7.0.11
44 Mb
0 days ago
14.0
7.0.11
43 Mb
1 days ago
Redis is an open source, advanced key-value store. It is often referred
to as a data structure server since keys can contain strings, hashes,
lists, sets and sorted sets.
You can run atomic operations on these types, like appending to a string;
incrementing the value in a hash; pushing to a list; computing set
intersection, union and difference; or getting the member with highest
ranking in a sorted set.
In order to achieve its outstanding performance, Redis works with an
in-memory dataset. Depending on your use case, you can persist it either
by dumping the dataset to disk every once in a while, or by appending each
command to a log.
Redis also supports trivial-to-setup master-slave replication, with very
fast non-blocking first synchronization, auto-reconnection on net split
and so forth.
WWW: https://redis.io/
# Example of using the marketplace of CBSD jail images
jail_redis()
{
forms="redis"
# Use remote image. You can comment this line to build the image locally.
from="https://dl.bsdstore.ru/img/`uname -m`/`uname -m`/`sysctl -n kern.osrelease | cut -d - -f 1`/${jname}/${jname}.img"
# to overwrite default settings, see 'cbsd forms module=redis vars' for full list
# use 'cbsd forms' to re-configure settings in runtime.
# export H_PORT=1234 H_MAXMEMORY=1g ..
ip4_addr="DHCP"
host_hostname="${jname}.my.domain"
ver="native"
interface="auto"
runasap=1
pkg_bootstrap=0
}
# Ensure we have forms-redis module
preup_redis()
{
# forms-based module, install it first
module mode=install forms-redis
}
Redmine is a flexible project management web application
written using Ruby on Rails framework, it is cross-platform
and cross-database.
Feature Overview:
* Multiple projects support
* Flexible role based access control
* Flexible issue tracking system
* Gantt chart and calendar
* News, documents & files management
* Feeds & email notifications
* Per project wiki
* Per project forums
* Time tracking
* Custom fields for issues, time-entries, projects and users
* SCM integration (SVN, CVS, Git, Mercurial, Bazaar and Darcs)
* Issue creation via email
* Multiple LDAP authentication support
* User self-registration support
* Multilanguage support
* Multiple databases support
WWW: https://www.redmine.org
# Example of using the marketplace of CBSD jail images
jail_redmine()
{
forms="redmine"
# Use remote image. You can comment this line to build the image locally.
from="https://dl.bsdstore.ru/img/`uname -m`/`uname -m`/`sysctl -n kern.osrelease | cut -d - -f 1`/${jname}/${jname}.img"
# to overwrite default settings, see 'cbsd forms module=redmine vars' for full list
# use 'cbsd forms' to re-configure settings in runtime.
# export H_TIMEZONE=UTC H_MAX_CONNECTIONS=100 H_REDMINE_PORT=8080 ...
ip4_addr="DHCP"
host_hostname="${jname}.my.domain"
ver="native"
interface="auto"
runasap=1
pkg_bootstrap=0
}
# Ensure we have forms-redmine module
preup_redmine()
{
# forms-based module, install it first
module mode=install forms-redmine
}
postcreate_redmine()
{
local _ip
_ip=$( jget jname=${jname} mode=quiet ip4_addr )
# show postmessage
cat <<EOF
UI available via : http://${_ip}:3000
Login: admin
Password: admin
EOF
}
# Example of using the marketplace of CBSD jail images
jail_rtorrent()
{
forms="rtorrent"
# Use remote image. You can comment this line to build the image locally.
from="https://dl.bsdstore.ru/img/`uname -m`/`uname -m`/`sysctl -n kern.osrelease | cut -d - -f 1`/${jname}/${jname}.img"
# to overwrite default settings, see 'cbsd forms module=rtorrent vars' for full list
# use 'cbsd forms' to re-configure settings in runtime.
# export H_PORT=1234 H_MAXMEMORY=1g ..
ip4_addr="DHCP"
host_hostname="${jname}.my.domain"
ver="native"
interface="auto"
runasap=1
pkg_bootstrap=0
}
# Ensure we have forms-rtorrent module
preup_rtorrent()
{
# forms-based module, install it first
module mode=install forms-rtorrent
}
sambashare
Available for FreeBSD version:
ver
package
size
updated
12.4
4.13.17_5
96 Mb
20 days ago
13.1
4.13.17_5
97 Mb
20 days ago
13.2
4.13.17_5
97 Mb
0 days ago
14.0
4.13.17_5
97 Mb
1 days ago
Samba is an attempt to implement an Active Directory compatible Domain
Controller.
This is a static image/template for CBSD that provides a Samba-based share in RW(!) mode
that is accessible without authentication !
This can be useful for obtaining the SMB/CIFS resource as quickly as possible.
If you want a full managed Samba service, please use the samba4 image/template.
Usage:
${ip4_addr}
or:
smb://${ip4_addr}
Mount via cifs-utils:
cat > /root/.examplecredentials <<EOF
username=guest
password=guest
EOF
chmod 0400 /root/.examplecredentials
mount -t cifs -o rw,vers=3.0,credentials=/root/.examplecredentials //ServerIP/share /media/share
# Example of using the marketplace of CBSD jail images
jail_sambashare()
{
from="https://dl.bsdstore.ru/img/`uname -m`/`uname -m`/`sysctl -n kern.osrelease | cut -d - -f 1`/${jname}/${jname}.img"
ip4_addr="DHCP"
host_hostname="${jname}.my.domain"
ver="native"
interface="auto"
runasap=1
pkg_bootstrap=0
}
postcreate_sambashare()
{
local _ip
_ip=$( jget jname=${jname} mode=quiet ip4_addr )
# show postmessage
cat <<EOF
${jname} url : http://${_ip}:5050
${jname} default email: ${PGADMIN_SETUP_EMAIL}
${jname} default pass : ${PGADMIN_SETUP_PASSWORD}
EOF
}
xfce4
Available for FreeBSD version:
ver
package
size
updated
12.4
4.18
770 Mb
20 days ago
13.1
4.18
771 Mb
20 days ago
13.2
4.18
771 Mb
0 days ago
14.0
4.18
783 Mb
1 days ago
This is a XWindows container with a XFCE4-based graphical environment
accessible over the network via the RDP protocol, e.g.:
default RDP login: xuser
default RDP password: xuser
E.g. FreeRDP connection string:
> xfreerdp +clipboard +fonts /rfx /size:1200x960 /u:xuser /p:xuser /v:IP