Jail that synchronizes the CBSD mirror and serves its contents via a HTTP/web server. See also: https://github.com/cbsd/mirrors
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):
cbsd module mode=install puppet echo 'puppet.d' >> ~cbsd/etc/modules.conf cbsd initenv
cbsd jcreate jname=cbsdpuppet1 jprofile=cbsdpuppet
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
Available for FreeBSD version:
|
Jail that synchronizes the CBSD mirror and serves its contents via a HTTP/web server. See also: https://github.com/cbsd/mirrors cbsd repo action=get sources=img name=cbsdmirror usehelpers=1 runasap=1 # Install CBSD mirror service, info: https://github.com/cbsd/mirrors # example (disable ISO sync, enable CLOUD sync every ten minutes) : # env CBSD_MIRROR_SYNC_ISO="0" CBSD_MIRROR_SYNC_CLOUD="*/10 * * * *" cbsd up ### Global settings # enable syncronize ISO ? # '0' - to disable or string in crontab(5) format # E.g. run sync five minutes after midnight, every day: # CBSD_MIRROR_SYNC_ISO="5 0 * * *" # # default: sync every 14 minutes: [ -z "${CBSD_MIRROR_SYNC_ISO}" ] && CBSD_MIRROR_SYNC_ISO="*/14 * * * *" # enable syncronize CLOUD ? # '0' - to disable or string in crontab(5) format # E.g. run sync five minutes after midnight, every day: # CBSD_MIRROR_SYNC_CLOUD="5 0 * * *" # # default: sync every 15 minutes: [ -z "${CBSD_MIRROR_SYNC_CLOUD}" ] && CBSD_MIRROR_SYNC_CLOUD="*/15 * * * *" # default RSYNC flags string # for ISO: [ -z "${CBSD_MIRROR_SYNC_ISO_RSYNC_FLAGS}" ] && CBSD_MIRROR_SYNC_ISO_RSYNC_FLAGS="-a --delete" # for CLOUD: [ -z "${CBSD_MIRROR_SYNC_CLOUD_RSYNC_FLAGS}" ] && CBSD_MIRROR_SYNC_CLOUD_RSYNC_FLAGS="-a --delete" # NGINX vhost docroot for /iso + /cloud [ -z "${CBSD_MIRROR_SYNC_DOCROOT}" ] && CBSD_MIRROR_SYNC_DOCROOT="/usr/local/www/cbsd-mirror" jail_cbsdmirror() { from="https://dl.convectix.com/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_cbsdmirror() { ${SED_CMD} -e "s:%%CBSD_MIRROR_SYNC_ISO%%:${CBSD_MIRROR_SYNC_ISO}:g" \ -e "s:%%CBSD_MIRROR_SYNC_CLOUD%%:${CBSD_MIRROR_SYNC_CLOUD}:g" \ -e "s:%%CBSD_MIRROR_SYNC_ISO_RSYNC_FLAGS%%:${CBSD_MIRROR_SYNC_ISO_RSYNC_FLAGS}:g" \ -e "s:%%CBSD_MIRROR_SYNC_CLOUD_RSYNC_FLAGS%%:${CBSD_MIRROR_SYNC_CLOUD_RSYNC_FLAGS}:g" \ -e "s:%%CBSD_MIRROR_SYNC_DOCROOT%%:${CBSD_MIRROR_SYNC_DOCROOT}:g" \ files/cbsd_mirror.conf.tpl > ${data}/usr/local/etc/cbsd_mirror.conf _ip=$( jget jname=${jname} mode=quiet ip4_addr ) # postmessage cat <<EOF ${jname} url : http://${_ip} EOF } |
||||||||||||||||
Available for FreeBSD version:
|
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.convectix.com/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 } |
||||||||||||||||
Available for FreeBSD version:
|
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 # 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.convectix.com/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 } |
||||||||||||||||
Available for FreeBSD version:
|
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 # 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.convectix.com/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 } |
||||||||||||||||
Available for FreeBSD version:
|
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 # 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.convectix.com/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 } |
||||||||||||||||
Available for FreeBSD version:
|
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.convectix.com/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 } |
||||||||||||||||
Available for FreeBSD version:
|
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 cbsd repo action=get sources=img name=pgadmin4 usehelpers=1 runasap=1 # 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.convectix.com/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 } |
||||||||||||||||
Available for FreeBSD version:
|
See PHPIPAM integration with CBSD example: https://github.com/cbsd/cbsd/blob/develop/share/docs/general/wf_ipam.md 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.convectix.com/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 } |
||||||||||||||||
Available for FreeBSD version:
|
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 # 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.convectix.com/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 } |
||||||||||||||||
Available for FreeBSD version:
|
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/ cbsd repo action=get sources=img name=qbittorrent usehelpers=1 runasap=1 # 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.convectix.com/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 } |
||||||||||||||||
Available for FreeBSD version:
|
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 # 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.convectix.com/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 } |
||||||||||||||||
Available for FreeBSD version:
|
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 # 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.convectix.com/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 } |
||||||||||||||||
Available for FreeBSD version:
|
Rtorrent is a BitTorrent Client written in C++ for *nix. + WEB UI via rutorrent project cbsd repo action=get sources=img name=rtorrent usehelpers=1 runasap=1 # 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.convectix.com/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 } |
||||||||||||||||
Available for FreeBSD version:
|
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.convectix.com/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 } |