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.3
24.9.1.3283
117 Mb
38 days ago
13.4
24.9.1.3283
83 Mb
0 days ago
14.1
24.9.1.3283
101 Mb
0 days ago
15
24.9.1.3283
84 Mb
0 days ago
15.0
24.9.1.3283
102 Mb
28 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
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
13.3
30.0.0
1 Gb
37 days ago
13.4
30.0.1
1 Gb
0 days ago
14.1
30.0.1
1 Gb
0 days ago
15
30.0.1
1 Gb
0 days ago
15.0
30.0.0
1 Gb
28 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
Postgres nextcloud password saved in: /root/.pgpass
Hint: to use occ, for example To rescan folders:
cbsd jexec jname=${jname} su -m www -c 'php /usr/local/www/nextcloud/occ files:scan-app-data'
cbsd jexec jname=${jname} su -m www -c 'php /usr/local/www/nextcloud/occ files:scan --all'
Also, if you want to allow all domains (not just ${H_NEXTCLOUD_FQDN}), please
edit config/config.php:
cbsd jexec jname=${jname} vi /usr/local/www/nextcloud/config/config.php
--
'trusted_domains' => [ "*" ],
--
to test:
su -m www -c 'php /usr/local/www/nextcloud/occ config:system:get trusted_domains'
Nextcloud log file (within jail): /usr/local/www/nextcloud/data/nextcloud.log
EOF
}
pgadmin4
Available for FreeBSD version:
ver
package
size
updated
13.3
8.9
1 Gb
71 days ago
13.4
8.12
1 Gb
0 days ago
14.1
8.12
1 Gb
0 days ago
15
8.12
1 Gb
0 days ago
15.0
8.9
1 Gb
71 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
13.3
1.6.0
167 Mb
58 days ago
13.4
1.6.0
132 Mb
0 days ago
14.1
1.6.0
151 Mb
0 days ago
15
1.6.0
151 Mb
76 days ago
15.0
1.6.0
124 Mb
0 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
}
qbittorrent
Available for FreeBSD version:
ver
package
size
updated
13.3
4.6.5
360 Mb
37 days ago
13.4
5.0.0
350 Mb
0 days ago
14.1
5.0.0
346 Mb
0 days ago
15
4.6.6
347 Mb
52 days ago
15.0
5.0.0
343 Mb
0 days ago
qBittorrent is the open source bittorrent client in C++/Qt that uses
libtorrent-rasterbar. It aims to be a good alternative to all other
bittorrent clients. qBittorrent is fast, stable and provides unicode
support as well as many features.
Features:
- Well-integrated and extensible Search Engine
- Simultaneous search in most famous BitTorrent search sites
- Per-category-specific search requests (e.g. Books, Music, Movies)
- All BitTorrent extensions: DHT, Peer Exchange, Full encryption,
Magnet URI, uTP
- Remote control through a Web user interface (nearly identical to
the regular UI, all in Ajax)
- Advanced control over trackers, peers, and torrents: queueing and
prioritizing, content selection and prioritizing
- UPnP/NAT-PMP port forwarding support
- Available in ~25 languages (Unicode support)
- uTorrent spoofing to bypass private trackers whitelisting
- Advanced RSS support with download filters (inc. regex)
- IP Filtering (eMule and PeerGuardian compatible)
WWW: https://www.qbittorrent.org/
# Example of using the marketplace of CBSD jail images
jail_qbittorrent()
{
# 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"
ip4_addr="DHCP"
host_hostname="${jname}.my.domain"
ver="native"
interface="auto"
runasap=1
pkg_bootstrap=0
}
postcreate_qbittorrent()
{
local _ip
_ip=$( jget jname=${jname} mode=quiet ip4_addr )
# postmessage
set +o errexit # retcode for iptype
OIFS="${IFS}"
IFS=","
for i in ${_ip}; do
IFS="${OIFS}"
myip=
iptype ${i}
case $? in
1)
# ipv4, no cast
myip="${i}"
;;
2)
# ipv6, add brackets
myip="[${i}]"
;;
*)
# unknown IP type
continue
;;
esac
cat <<EOF
${jname} url : http://${_ip}:8080
Default credentials:
user: admin
password: adminadmin
EOF
IFS=","
done
IFS="${OIFS}"
set -o errexit
}
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
}
rtorrent
Available for FreeBSD version:
ver
package
size
updated
13.3
0.9.8
320 Mb
37 days ago
13.4
0.10.0
303 Mb
17 days ago
14.1
0.10.0
312 Mb
0 days ago
15
0.10.0
296 Mb
0 days ago
Rtorrent is a BitTorrent Client written in C++ for *nix.
+ WEB UI via rutorrent project
# 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
13.3
4.19.8_1
135 Mb
37 days ago
13.4
4.19.9_1
101 Mb
0 days ago
14.1
4.19.9_1
119 Mb
0 days ago
15
4.19.8_1
103 Mb
0 days ago
15.0
4.19.8_1
122 Mb
28 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