CBSD jail marketplace

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 ..).

Read more:

Important: this work and CI/build infrastructure sponsored by the community! Please support us

clickhouse


Available for FreeBSD version:

verpackagesizeupdated
13.324.7.1.184099 Mb12 days ago
15.024.7.1.1840100 Mb12 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 
		

cbsd repo action=get sources=img name=clickhouse usehelpers=1 runasap=1

# Example of using the marketplace of CBSD jail images

jail_clickhouse()
{
	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
}

matomo #MANAGED


Available for FreeBSD version:

verpackagesizeupdated
13.34.13.3247 Mb12 days ago
14.14.13.3256 Mb12 days ago
15.04.13.3256 Mb12 days ago


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/ 

		

cbsd module mode=install forms-matomo

cbsd repo action=get sources=img name=matomo usehelpers=1 runasap=1

cbsd forms module=matomo jname=jail1 [inter=0]

H_BIND_ADDRESS
H_DB_MATOMO_PASSWORD
H_EXPIRE_LOGS_DAYS
H_FPM_MAX_CHILDREN
H_KEY_BUFFER_SIZE
H_MAX_ALLOWED_PACKET
H_MAX_BINLOG_SIZE
H_MAX_CONNECTIONS
H_MYSQL_VER
H_NGINX_IPV6_ENABLE
H_NGINX_WORKER_PROCESSES
H_PHP_MAX_EXECUTION_TIME
H_PHP_MAX_INPUT_TIME
H_PHP_MEMORY_LIMIT
H_PHP_OPCACHE_MEMORY_CONSUMPTION
H_PHP_POST_MAX_SIZE
H_PHP_UPLOAD_MAX_FILESIZE
H_PORT
H_SOCKET
H_SORT_BUFFER_SIZE
H_THREAD_CACHE_SIZE
H_THREAD_STACK
H_TIMEZONE

# 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 #MANAGED


Available for FreeBSD version:

verpackagesizeupdated
13.31.6.2851 Mb12 days ago
14.11.6.2852 Mb12 days ago
15.01.6.2853 Mb12 days ago


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. 

		

cbsd module mode=install forms-memcached

cbsd repo action=get sources=img name=memcached usehelpers=1 runasap=1

cbsd forms module=memcached jname=jail1 [inter=0]

H_MAX_CONNECTIONS
H_TCP_PORT
H_UDP_PORT
H_USE_SASL

# 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
}

mysql #MANAGED


Available for FreeBSD version:

verpackagesizeupdated
13.38.0.35_1182 Mb12 days ago
14.18.0.35_1188 Mb12 days ago
15.08.0.35_1189 Mb12 days ago


mysql is a multithreaded SQL database. 

		

cbsd module mode=install forms-mysql

cbsd repo action=get sources=img name=mysql usehelpers=1 runasap=1

cbsd forms module=mysql jname=jail1 [inter=0]

H_BIND_ADDRESS
H_DATABASES
H_EXPIRE_LOGS_DAYS
H_KEY_BUFFER_SIZE
H_MAX_ALLOWED_PACKET
H_MAX_BINLOG_SIZE
H_MAX_CONNECTIONS
H_MYSQL_VER
H_PORT
H_SKIP_NETWORKING
H_SOCKET
H_SORT_BUFFER_SIZE
H_THREAD_CACHE_SIZE
H_THREAD_STACK

# 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:

verpackagesizeupdated
13.329.0.31 Gb12 days ago
14.129.0.31 Gb12 days ago
15.029.0.31 Gb12 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 

		

cbsd repo action=get sources=img name=nextcloud usehelpers=1 runasap=1

# 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
}

phpipam


Available for FreeBSD version:

verpackagesizeupdated
13.31.6.0149 Mb12 days ago
14.11.6.0150 Mb12 days ago
15.01.6.0150 Mb12 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/ 
		

cbsd repo action=get sources=img name=phpipam usehelpers=1 runasap=1

# Example of using the marketplace of CBSD jail images

jail_phpipam()
{
	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_phpipam()
{
	local _ip

	_ip=$( jget jname=${jname} mode=quiet ip4_addr )

	# show postmessage
	cat <<EOF
	Default user/password is: Admin/ipamadmin
	${jname} url          : http://${ip4_addr}
EOF
}

postgresql #MANAGED


Available for FreeBSD version:

verpackagesizeupdated
13.313.15469 Mb12 days ago
14.113.15486 Mb12 days ago
15.013.15508 Mb12 days ago

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/ 
		

cbsd module mode=install forms-postgresql

cbsd repo action=get sources=img name=postgresql usehelpers=1 runasap=1

cbsd forms module=postgresql jname=jail1 [inter=0]

H_BGWRITER_DELAY
H_CHECKPOINT_COMPLETION_TARGET
H_COMMIT_DELAY
H_DATABASES
H_DATABASE_GRANT
H_DATESTYLE
H_EFFECTIVE_IO_CONCURRENCY
H_HBA_RULES
H_HOT_STANDBY
H_LISTEN_ADDRESSES
H_LOG_DESTINATION
H_LOG_FILENAME
H_LOG_ROTATION_AGE
H_LOG_TIMEZONE
H_LOG_TRUNCATE_ON_ROTATION
H_MAINTENANCE_WORK_MEM
H_MAX_CONNECTIONS
H_MAX_REPLICATION_SLOTS
H_MAX_WAL_SENDERS
H_MAX_WAL_SIZE
H_MAX_WORKER_PROCESSES
H_POSTGRES_VER
H_ROLES
H_SHARED_BUFFERS
H_SYNCHRONOUS_COMMIT
H_TEMP_BUFFERS
H_TIMEZONE
H_WAL_COMPRESSION
H_WAL_LEVEL
H_WORK_MEM

# 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
}

redis #MANAGED


Available for FreeBSD version:

verpackagesizeupdated
13.37.2.549 Mb12 days ago
14.17.2.550 Mb12 days ago
15.07.2.551 Mb12 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/ 

		

cbsd module mode=install forms-redis

cbsd repo action=get sources=img name=redis usehelpers=1 runasap=1

cbsd forms module=redis jname=jail1 [inter=0]

H_BIND
H_LOG_LEVEL
H_MAXMEMORY
H_MAXMEMORY_POLICY
H_PORT
H_PROTECTED_MODE
H_REQUIREPASS
H_SLAVEOF
H_SLAVE_PRIORITY
H_SYSLOG_ENABLED
H_TCP_KEEPALIVE
H_TIMEOUT

# 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 #MANAGED


Available for FreeBSD version:

verpackagesizeupdated
13.35.1.3_1796 Mb12 days ago
14.15.1.3_1821 Mb12 days ago


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 

		

cbsd module mode=install forms-redmine

cbsd repo action=get sources=img name=redmine usehelpers=1 runasap=1

cbsd forms module=redmine jname=jail1 [inter=0]

H_BIND_ADDRESS
H_DB_PASSWORD
H_EXPIRE_LOGS_DAYS
H_KEY_BUFFER_SIZE
H_MAX_ALLOWED_PACKET
H_MAX_BINLOG_SIZE
H_MAX_CONNECTIONS
H_MYSQL_VERSION
H_PORT
H_REDMINE_PACKAGE
H_REDMINE_PORT
H_SOCKET
H_SORT_BUFFER_SIZE
H_THREAD_CACHE_SIZE
H_THREAD_STACK
H_TIMEZONE

# 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
}

sambashare


Available for FreeBSD version:

verpackagesizeupdated
13.34.19.7117 Mb12 days ago
14.14.19.7118 Mb12 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
		

cbsd repo action=get sources=img name=sambashare usehelpers=1 runasap=1

# 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
}