From 27741f41c283fd894c939f0a10ed9a6f4108b1ef Mon Sep 17 00:00:00 2001 From: thorstenspille Date: Sat, 15 Jan 2022 22:01:54 +0100 Subject: [PATCH] Release 1.0 --- CHANGELOG.md | 23 --- README.md | 33 ++-- archive/debian-priv.sh | 20 --- archive/debian-unpriv.sh | 25 --- archive/mailpiler.sh | 187 ---------------------- archive/matrix.sh | 161 ------------------- archive/zamba.conf | 115 -------------- archive/zmb-ad.sh | 119 -------------- archive/zmb-member.sh | 113 -------------- archive/zmb-standalone.sh | 44 ------ conf/README.md | 257 ++++++++++++++++++++++++++++++- conf/zamba.conf.example | 6 +- src/__init__.py | 0 src/checkmk/features.json | 9 -- src/checkmk/info | 1 - src/config_base.py | 121 --------------- src/debian-priv/features.json | 9 -- src/debian-priv/info | 1 - src/debian-unpriv/features.json | 11 -- src/debian-unpriv/info | 1 - src/mailpiler/features.json | 11 -- src/mailpiler/info | 1 - src/matrix/features.json | 9 -- src/matrix/info | 1 - src/menu.py | 73 --------- src/open3a/features.json | 9 -- src/open3a/info | 1 - src/zmb-ad/features.json | 11 -- src/zmb-ad/info | 1 - src/zmb-member/features.json | 12 -- src/zmb-member/info | 1 - src/zmb-standalone/features.json | 12 -- src/zmb-standalone/info | 1 - testinstall | 14 -- zamba.conf.md | 214 ------------------------- 35 files changed, 283 insertions(+), 1344 deletions(-) delete mode 100644 CHANGELOG.md delete mode 100644 archive/debian-priv.sh delete mode 100644 archive/debian-unpriv.sh delete mode 100644 archive/mailpiler.sh delete mode 100644 archive/matrix.sh delete mode 100644 archive/zamba.conf delete mode 100644 archive/zmb-ad.sh delete mode 100644 archive/zmb-member.sh delete mode 100644 archive/zmb-standalone.sh delete mode 100644 src/__init__.py delete mode 100644 src/checkmk/features.json delete mode 100644 src/checkmk/info delete mode 100644 src/config_base.py delete mode 100644 src/debian-priv/features.json delete mode 100644 src/debian-priv/info delete mode 100644 src/debian-unpriv/features.json delete mode 100644 src/debian-unpriv/info delete mode 100644 src/mailpiler/features.json delete mode 100644 src/mailpiler/info delete mode 100644 src/matrix/features.json delete mode 100644 src/matrix/info delete mode 100644 src/menu.py delete mode 100644 src/open3a/features.json delete mode 100644 src/open3a/info delete mode 100644 src/zmb-ad/features.json delete mode 100644 src/zmb-ad/info delete mode 100644 src/zmb-member/features.json delete mode 100644 src/zmb-member/info delete mode 100644 src/zmb-standalone/features.json delete mode 100644 src/zmb-standalone/info delete mode 100755 testinstall delete mode 100644 zamba.conf.md diff --git a/CHANGELOG.md b/CHANGELOG.md deleted file mode 100644 index b7acdea..0000000 --- a/CHANGELOG.md +++ /dev/null @@ -1,23 +0,0 @@ -**** Zamba LXC Toolbox devel branch **** -- added dhcp support -- fixed hardcoded samba sharename in `zmb-standalone` script -- added support for container id's larger than 999 -- added optional parameters for ct id, service and config file -- mailpiler version now configured to download `latest` version -- added `conf` folder to store user configs -- splitted basic container setup and service installation into multiple scripts -- created `constants` to minimize config variables -- added `wsdd` to `zmb-standalone` service - -**** Zamba LXC Toolbox v0.1 **** -- `locales` are now configured noninteractive #21 -- timezone is now configured with `pct set` command in `install.sh` #22 -- changed command sequence in `install.sh` - select container first, then start the installation -- improved / updated documentation -- replaced `just-lxc` container by `debian-priv` and `debian-unpriv` container -- (un)privileged now defined as constant based on created service #6 -- improved log messages in `install.sh` -- `mailpiler`: website is now also `default_host`, removed nginx default site, dns entry is still required -- changed `mailpiler` version to 1.3.11 -- changed `element-web` version to 1.7.25 -- `LXC_AUTHORIZED_KEY` variable now defines an `authorized_keys` file, by default the configuration of you proxmox host will be inherited (`~/.ssh/authorized_keys`) diff --git a/README.md b/README.md index 9cbc32b..30207b2 100644 --- a/README.md +++ b/README.md @@ -10,14 +10,19 @@ The package also provides LXC container installers for `mailpiler`, `matrix-syna ### Requirements Proxmox VE Server with at least one configured ZFS Pool. ### Included services: -- `zmb-standalone` => ZMB (Samba) standalone server with ZFS volume snapshot support (previous versions) -- `zmb-ad` => ZMB (Samba) Active Directory Domain Controller, DNS Backends `SAMBA_INTERNAL` and `BIND9_DLZ` are supported -- `zmb-member` => ZMB (Samba) AD member with ZFS volume snapshot support (previous versions) +- `checkmk` => Check_MK 2.0 Monitoring Server +- `debian-priv` => Debian privileged container with basic toolset +- `debian-unpriv` => Debian unprivileged container with basic toolset - `mailpiler` => mailpiler mail archive [mailpiler.org](https://www.mailpiler.org/) - `matrix` => Matrix Synapse Homeserver [matrix.org](https://matrix.org/docs/projects/server/synapse) with Element Web [Element on github](https://github.com/vector-im/element-web) - `nextcloud` => Nextcloud Server [nextcloud.com](https://nextcloud.com/) with fail2ban und redis configuration -- `debian-unpriv` => Debian unprivileged container with basic toolset -- `debian-priv` => Debian privileged container with basic toolset +- `onlyoffice` => OnlyOffice [onlyoffice.com](https://onlyoffice.com) +- `open3a` => Open3a web based accounting software [open3a.de](https://open3a.de) +- `proxmox-pbs` => Proxmox Backup Server [proxmox.com](https://proxmox.com/en/proxmox-backup-server) +- `urbackup` => UrBackup Server [urbackup.org](https://urbackup.org) +- `zmb-ad` => ZMB (Samba) Active Directory Domain Controller, DNS Backends `SAMBA_INTERNAL` and `BIND9_DLZ` are supported +- `zmb-member` => ZMB (Samba) AD member with ZFS volume snapshot support (previous versions) +- `zmb-standalone` => ZMB (Samba) standalone server with ZFS volume snapshot support (previous versions) ## Usage Just ssh into your Proxmox machine and clone this git repository. Make sure you have installed `git`. ```bash @@ -30,14 +35,24 @@ git clone https://github.com/bashclub/zamba-lxc-toolbox cd zamba-lxc-toolbox ``` ### Configuration -To fit your requirements, please edit the file `zamba.conf` with your favourite text editor (e.g. `vim` or `nano`). -The required adjustments are in the LXC container section and in the section for the service you want to launch. -For further information about the config variables, have a look at [zamba.conf.md](zamba.conf.md) +Copy `zamba.conf.example` located in `conf` directory to a new file (default: `zamba.conf`) and adjust your desired settings. +For further information about configuration variables, have a look at [conf/README.md](conf/README.md) +```bash +cp conf/zamba.conf.example conf/zamba.conf +``` ### Installation -After configuring, you are able to launch the script interactively: +After configuring, you are able to launch the script interactively (only works with `conf/zamba.conf`): ```bash bash install.sh ``` +### Advanced Usage +You can set optional parameters (config file, service, container id): +#### Example: +```bash +bash install.sh -i 280 -c conf/my-zmb-service.conf -s zmb-member +``` +You can also view possible parameters with `install.sh -h` + After container creation, you will be prompted to select the service to install and depending on the service there may be some more questions during installation. Once the script has finished, the container is installed and running and you can continue with the service specific configuration. diff --git a/archive/debian-priv.sh b/archive/debian-priv.sh deleted file mode 100644 index 0893b2e..0000000 --- a/archive/debian-priv.sh +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/bash - -# Authors: -# (C) 2021 Idea an concept by Christian Zengel -# (C) 2021 Script design and prototype by Markus Helmke -# (C) 2021 Script rework and documentation by Thorsten Spille - -source /root/zamba.conf - -sed -i "s|# $LXC_LOCALE|$LXC_LOCALE|" /etc/locale.gen -cat << EOF > /etc/default/locale -LANG="$LXC_LOCALE" -LANGUAGE=$LXC_LOCALE -EOF -locale-gen $LXC_LOCALE - -apt update -DEBIAN_FRONTEND=noninteractive DEBIAN_PRIORITY=critical apt -y -qq dist-upgrade -DEBIAN_FRONTEND=noninteractive DEBIAN_PRIORITY=critical apt install -y -o DPkg::options::="--force-confdef" -o DPkg::options::="--force-confold" $LXC_TOOLSET -sed -i "s|\"syntax on|syntax on|g" /etc/vim/vimrc diff --git a/archive/debian-unpriv.sh b/archive/debian-unpriv.sh deleted file mode 100644 index 7d90719..0000000 --- a/archive/debian-unpriv.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/bash - -# Authors: -# (C) 2021 Idea an concept by Christian Zengel -# (C) 2021 Script design and prototype by Markus Helmke -# (C) 2021 Script rework and documentation by Thorsten Spille - -source /root/zamba.conf -source /root/proxmox.conf - -sed -i "s/^#.$HOST_LOCALE/$HOST_LOCALE/" /etc/locale.gen -locale-gen $HOST_LOCALE - -sed -i "s/^#.$LXC_LOCALE/$LXC_LOCALE/" /etc/locale.gen -locale-gen $LXC_LOCALE -echo LANG=$LXC_LOCALE > /etc/default/locale -echo LANGUAGE=$LXC_LOCALE >> /etc/default/locale -export LANG=$LXC_LOCALE -export LANGUAGE=$LXC_LOCALE -export LC_CTYPE=C - -apt update -DEBIAN_FRONTEND=noninteractive DEBIAN_PRIORITY=critical apt -y -qq dist-upgrade -DEBIAN_FRONTEND=noninteractive DEBIAN_PRIORITY=critical apt install -y -o DPkg::options::="--force-confdef" -o DPkg::options::="--force-confold" $LXC_TOOLSET -sed -i "s|\"syntax on|syntax on|g" /etc/vim/vimrc diff --git a/archive/mailpiler.sh b/archive/mailpiler.sh deleted file mode 100644 index 9b65461..0000000 --- a/archive/mailpiler.sh +++ /dev/null @@ -1,187 +0,0 @@ -#!/bin/bash - -# Authors: -# (C) 2021 Idea an concept by Christian Zengel -# (C) 2021 Script design and prototype by Markus Helmke -# (C) 2021 Script rework and documentation by Thorsten Spille - -source /root/zamba.conf - -sed -i "s|# $LXC_LOCALE|$LXC_LOCALE|" /etc/locale.gen -cat << EOF > /etc/default/locale -LANG="$LXC_LOCALE" -LANGUAGE=$LXC_LOCALE -EOF -locale-gen $LXC_LOCALE - -HOSTNAME=$(hostname -f) - -echo "Ensure your Hostname is set to your Piler FQDN!" - -echo $HOSTNAME - -if - [ "$HOSTNAME" != "$PILER_FQDN" ] -then - echo "Hostname doesn't match PILER_FQDNain! Check install.sh, /etc/hosts, /etc/hostname." && exit -else - echo "Hostname matches PILER_FQDNAIN, so starting installation." -fi - -apt update && apt full-upgrade -y - -apt install -y $LXC_TOOLSET build-essential libwrap0-dev libpst-dev tnef libytnef0-dev unrtf catdoc libtre-dev tre-agrep poppler-utils libzip-dev unixodbc libpq5 software-properties-common libpoppler-dev openssl libssl-dev memcached telnet nginx mariadb-server default-libmysqlclient-dev python-mysqldb gcc libwrap0 libzip4 latex2rtf latex2html catdoc tnef zipcmp zipmerge ziptool libsodium23 - -# install php -wget -q https://packages.sury.org/php/apt.gpg -O- | apt-key add - -echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/php.list - -apt update && apt install -y php$PILER_PHP_VERSION-{fpm,common,ldap,mysql,cli,opcache,phpdbg,gd,memcache,json,readline,zip} - -apt purge -y postfix - -cat > /etc/mysql/conf.d/mailpiler.conf <> /usr/local/etc/piler/config-site.php < -# (C) 2021 Script design and prototype by Markus Helmke -# (C) 2021 Script rework and documentation by Thorsten Spille - -source /root/zamba.conf - -sed -i "s|# $LXC_LOCALE|$LXC_LOCALE|" /etc/locale.gen -cat << EOF > /etc/default/locale -LANG="$LXC_LOCALE" -LANGUAGE=$LXC_LOCALE -EOF -locale-gen $LXC_LOCALE - -MRX_PKE=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1) - -ELE_DBNAME="synapse_db" -ELE_DBUSER="synapse_user" -ELE_DBPASS=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1) - -apt update && apt full-upgrade -y - -apt install -y $LXC_TOOLSET apt-transport-https gpg software-properties-common nginx postgresql python3-psycopg2 - -wget wget -O /usr/share/keyrings/matrix-org-archive-keyring.gpg https://packages.matrix.org/debian/matrix-org-archive-keyring.gpg -echo "deb [signed-by=/usr/share/keyrings/matrix-org-archive-keyring.gpg] https://packages.matrix.org/debian/ $(lsb_release -cs) main" | tee /etc/apt/sources.list.d/matrix-org.list -apt update && apt install -y matrix-synapse-py3 -systemctl enable matrix-synapse - -ss -tulpen - -mkdir /etc/nginx/ssl -openssl req -x509 -nodes -days 3650 -newkey rsa:4096 -keyout /etc/nginx/ssl/matrix.key -out /etc/nginx/ssl/matrix.crt -subj "/CN=$MATRIX_FQDN" -addext "subjectAltName=DNS:$MATRIX_FQDN" - -cat > /etc/nginx/sites-available/$MATRIX_FQDN < /etc/nginx/sites-available/$MATRIX_ELEMENT_FQDN <|registration_shared_secret: \"$MRX_PKE\"|" /etc/matrix-synapse/homeserver.yaml -sed -i "s|#public_baseurl: https://example.com/|public_baseurl: https://$MATRIX_FQDN/|" /etc/matrix-synapse/homeserver.yaml -sed -i "s|#enable_registration: false|enable_registration: true|" /etc/matrix-synapse/homeserver.yaml -sed -i "s|name: sqlite3|name: psycopg2|" /etc/matrix-synapse/homeserver.yaml -sed -i "s|database: /var/lib/matrix-synapse/homeserver.db|database: $ELE_DBNAME\n user: $ELE_DBUSER\n password: $ELE_DBPASS\n host: 127.0.0.1\n cp_min: 5\n cp_max: 10|" /etc/matrix-synapse/homeserver.yaml - -systemctl restart matrix-synapse - -register_new_matrix_user -c /etc/matrix-synapse/homeserver.yaml http://127.0.0.1:8008 - -#curl https://download.jitsi.org/jitsi-key.gpg.key | sh -c 'gpg --dearmor > /usr/share/keyrings/jitsi-keyring.gpg' -#echo 'deb [signed-by=/usr/share/keyrings/jitsi-keyring.gpg] https://download.jitsi.org stable/' | tee /etc/apt/sources.list.d/jitsi-stable.list > /dev/null - -#apt update -#apt install -y jitsi-meet - - - diff --git a/archive/zamba.conf b/archive/zamba.conf deleted file mode 100644 index d7a0c29..0000000 --- a/archive/zamba.conf +++ /dev/null @@ -1,115 +0,0 @@ -#!/bin/bash - -# This ist the Zamba main configuration file. -# Please adjust the settings to your needs before running the installer. - -# Authors: -# (C) 2021 Idea an concept by Christian Zengel -# (C) 2021 Script design and prototype by Markus Helmke -# (C) 2021 Script rework and documentation by Thorsten Spille - - -############### Linux Container Section ############### - -# Defines the Proxmox storage where your LXC container template are stored (default: local) -LXC_TEMPLATE_STORAGE="local" - -# Defines the size in GB of the LXC container's root filesystem (default: 32) -# Depending on your environment, you should consider increasing the size for use of `mailpiler` or `matrix`. -LXC_ROOTFS_SIZE="32" -# Defines the Proxmox storage where your LXC container's root filesystem will be generated (default: local-zfs) -LXC_ROOTFS_STORAGE="local-zfs" - -# Defines the size in GB your LXC container's filesystem shared by Zamba (AD member & standalone) (default: 100) -LXC_SHAREFS_SIZE="100" -# Defines the Proxmox storage where your LXC container's filesystem shared by Zamba will be generated (default: local-zfs) -LXC_SHAREFS_STORAGE="local-zfs" -# Defines the mountpoint of the filesystem shared by Zamba inside your LXC container (default: tank) -LXC_SHAREFS_MOUNTPOINT="tank" - -# Defines the amount of RAM in MB your LXC container is allowed to use (default: 1024) -LXC_MEM="1024" - -# Defines the amount of swap space in MB your LXC container is allowed to use (default: 1024) -LXC_SWAP="1024" - -# Defines the hostname of your LXC container -LXC_HOSTNAME="zamba" - -# Defines the domain name / search domain of your LXC container -LXC_DOMAIN="zmb.rocks" - -# Enable DHCP on LAN (eth0) - (Obtain an IP address automatically) [true/false] -LXC_DHCP=false - -# Defines the local IP address and subnet of your LXC container in CIDR format -LXC_IP="192.168.100.200/24" - -# Defines the default gateway IP address of your LXC container -LXC_GW="192.168.100.254" - -# Defines the DNS server ip address of your LXC container -# `zmb-ad` used this DNS server for installation, after installation and domain provisioning it will be used as forwarding DNS -# For other services this should be your active directory domain controller (if present, else a DNS server of your choice) -LXC_DNS="192.168.100.254" - -# Defines the network bridge to bind the network adapter of your LXC container -LXC_BRIDGE="vmbr0" - -# Defines the vlan id of the LXC container's network interface, if the network adapter should be connected untagged, just leave the value empty. -LXC_VLAN= - -# Defines the `root` password of your LXC container. Please use 'single quatation marks' to avoid unexpected behaviour. -LXC_PWD='S3cr3tp@ssw0rd' - -# Defines an authorized_keys file to push into the LXC container. -# By default the authorized_keys will be inherited from your proxmox host. -LXC_AUTHORIZED_KEY=~/.ssh/authorized_keys - -# Define your (administrative) tools, you always want to have installed into your LXC container -LXC_TOOLSET="vim htop net-tools dnsutils mc sysstat lsb-release curl git gnupg2 apt-transport-https" - -# Define the local timezone of your LXC container (default: Euroe/Berlin) -LXC_TIMEZONE="Europe/Berlin" - -# Define system language on LXC container (locales) -LXC_LOCALE=de_DE.UTF-8 - -# Set dark background for vim syntax highlighting (0 or 1) -LXC_VIM_BG_DARK=1 - -############### Zamba-Server-Section ############### - -# Defines the REALM for the Active Directory (AD DC, AD member) -# IMPORTANT NOTE: ZMB_REALM is case sensitive and the value needs to be written completely in capital letters, otherwise Kerberos will fail -ZMB_REALM="ZMB.ROCKS" -# Defines the domain name in your Active Directory or Workgroup (AD DC, AD member, standalone) -# IMPORTANT NOTE: ZMB_DOMAIN is case sensitive and the value needs to be written completely in capital letters -ZMB_DOMAIN="ZMB" - -# Defines the name of your domain administrator account (AD DC, AD member, standalone) -ZMB_ADMIN_USER="administrator" -# The admin password for zamba installation. Please use 'single quatation marks' to avoid unexpected behaviour -# `zmb-ad` domain administrator has to meet the password complexity policy, if password is too weak, domain provisioning will fail -ZMB_ADMIN_PASS='1c@nd0@nyth1n9' - -# Defines the name of your Zamba share -ZMB_SHARE="share" - -############### Mailpiler-Section ############### - -# Defines the (public) FQDN of your piler mail archive -PILER_FQDN="piler.zmb.rocks" -# Defines the smarthost for piler mail archive -PILER_SMARTHOST="your.mailserver.tld" - -############### Matrix-Section ############### - -# Define the FQDN of your Matrix server -MATRIX_FQDN="matrix.zmb.rocks" - -# Define the FQDN for the Element Web virtual host -MATRIX_ELEMENT_FQDN="element.zmb.rocks" - -# Define the FQDN for the Jitsi Meet virtual host -MATRIX_JITSI_FQDN="meet.zmb.rocks" diff --git a/archive/zmb-ad.sh b/archive/zmb-ad.sh deleted file mode 100644 index e502e8d..0000000 --- a/archive/zmb-ad.sh +++ /dev/null @@ -1,119 +0,0 @@ -#!/bin/bash - -# Authors: -# (C) 2021 Idea an concept by Christian Zengel -# (C) 2021 Script design and prototype by Markus Helmke -# (C) 2021 Script rework and documentation by Thorsten Spille - -source /root/zamba.conf - -sed -i "s|# $LXC_LOCALE|$LXC_LOCALE|" /etc/locale.gen -cat << EOF > /etc/default/locale -LANG="$LXC_LOCALE" -LANGUAGE=$LXC_LOCALE -EOF -locale-gen $LXC_LOCALE - -if [[ $ZMB_DNS_BACKEND == "BIND9_DLZ" ]]; then - BINDNINE=bind9 -fi - -## configure ntp -cat << EOF > /etc/ntp.conf -# Local clock. Note that is not the "localhost" address! -server 127.127.1.0 -fudge 127.127.1.0 stratum 10 - -# Where to retrieve the time from -server 0.de.pool.ntp.org iburst prefer -server 1.de.pool.ntp.org iburst prefer -server 2.de.pool.ntp.org iburst prefer - -driftfile /var/lib/ntp/ntp.drift -logfile /var/log/ntp -ntpsigndsocket /usr/local/samba/var/lib/ntp_signd/ - -# Access control -# Default restriction: Allow clients only to query the time -restrict default kod nomodify notrap nopeer mssntp - -# No restrictions for "localhost" -restrict 127.0.0.1 - -# Enable the time sources to only provide time to this host -restrict 0.pool.ntp.org mask 255.255.255.255 nomodify notrap nopeer noquery -restrict 1.pool.ntp.org mask 255.255.255.255 nomodify notrap nopeer noquery -restrict 2.pool.ntp.org mask 255.255.255.255 nomodify notrap nopeer noquery - -tinker panic 0 -EOF - -# update packages -apt update -DEBIAN_FRONTEND=noninteractive DEBIAN_PRIORITY=critical apt -y -qq dist-upgrade -# install required packages -DEBIAN_FRONTEND=noninteractive DEBIAN_PRIORITY=critical apt install -y -o DPkg::options::="--force-confdef" -o DPkg::options::="--force-confold" $LXC_TOOLSET acl attr ntpdate nginx-full rpl net-tools dnsutils ntp samba smbclient winbind libpam-winbind libnss-winbind krb5-user samba-dsdb-modules samba-vfs-modules lmdb-utils $BINDNINE - -if [[ $ZMB_DNS_BACKEND == "BIND9_DLZ" ]]; then - # configure bind dns service - cat << EOF > /etc/default/bind9 -# -# run resolvconf? -RESOLVCONF=no - -# startup options for the server -OPTIONS="-4 -u bind" -EOF - -cat << EOF > /etc/bind/named.conf.local -// -// Do any local configuration here -// - -// Consider adding the 1918 zones here, if they are not used in your -// organization -//include "/etc/bind/zones.rfc1918"; -dlz "$LXC_DOMAIN" { - database "dlopen /usr/lib/x86_64-linux-gnu/samba/bind9/dlz_bind9_11.so"; -}; -EOF - - cat << EOF > /etc/bind/named.conf.options -options { - directory "/var/cache/bind"; - - forwarders { - $LXC_DNS; - }; - - allow-query { any;}; - dnssec-validation no; - - auth-nxdomain no; # conform to RFC1035 - listen-on-v6 { any; }; - listen-on { any; }; - - tkey-gssapi-keytab "/var/lib/samba/bind-dns/dns.keytab"; - minimal-responses yes; -}; -EOF - - mkdir -p /var/lib/samba/bind-dns/dns -fi - -# stop + disable samba services and remove default config -systemctl stop smbd nmbd winbind -systemctl disable smbd nmbd winbind -rm -f /etc/samba/smb.conf -rm -f /etc/krb5.conf - -# provision zamba domain -samba-tool domain provision --use-rfc2307 --realm=$ZMB_REALM --domain=$ZMB_DOMAIN --adminpass=$ZMB_ADMIN_PASS --server-role=dc --backend-store=mdb --dns-backend=$ZMB_DNS_BACKEND - -cp /var/lib/samba/private/krb5.conf /etc/krb5.conf - -systemctl unmask samba-ad-dc -systemctl enable samba-ad-dc $BINDNINE -systemctl restart samba-ad-dc $BINDNINE - -exit 0 diff --git a/archive/zmb-member.sh b/archive/zmb-member.sh deleted file mode 100644 index 5a880b4..0000000 --- a/archive/zmb-member.sh +++ /dev/null @@ -1,113 +0,0 @@ -#!/bin/bash - -# Authors: -# (C) 2021 Idea an concept by Christian Zengel -# (C) 2021 Script design and prototype by Markus Helmke -# (C) 2021 Script rework and documentation by Thorsten Spille - -source /root/zamba.conf - -sed -i "s|# $LXC_LOCALE|$LXC_LOCALE|" /etc/locale.gen -cat << EOF > /etc/default/locale -LANG="$LXC_LOCALE" -LANGUAGE=$LXC_LOCALE -EOF -locale-gen $LXC_LOCALE - -apt update -DEBIAN_FRONTEND=noninteractive DEBIAN_PRIORITY=critical apt -y -qq dist-upgrade -DEBIAN_FRONTEND=noninteractive DEBIAN_PRIORITY=critical apt install -y -o DPkg::options::="--force-confdef" -o DPkg::options::="--force-confold" $LXC_TOOLSET acl samba winbind libpam-winbind libnss-winbind krb5-user krb5-config samba-dsdb-modules samba-vfs-modules - -mv /etc/krb5.conf /etc/krb5.conf.bak -cat > /etc/krb5.conf < /etc/samba/smb.conf <> /etc/pam.d/common-session - -systemctl restart winbind nmbd -wbinfo -u -wbinfo -g - -mkdir /$LXC_SHAREFS_MOUNTPOINT/$ZMB_SHARE - -# originally 'domain users' was set, added variable for domain admins group, samba wiki recommends separate group e.g. 'unix admins' -chown "$ZMB_ADMIN_USER" /$LXC_SHAREFS_MOUNTPOINT/$ZMB_SHARE - -setfacl -Rm u:$ZMB_ADMIN_USER:rwx,g::-,o::- /$LXC_SHAREFS_MOUNTPOINT/$ZMB_SHARE -setfacl -Rdm u:$ZMB_ADMIN_USER:rwx,g::-,o::- /$LXC_SHAREFS_MOUNTPOINT/$ZMB_SHARE - -systemctl restart smbd nmbd winbind - diff --git a/archive/zmb-standalone.sh b/archive/zmb-standalone.sh deleted file mode 100644 index a3077fd..0000000 --- a/archive/zmb-standalone.sh +++ /dev/null @@ -1,44 +0,0 @@ -#!/bin/bash - -# Authors: -# (C) 2021 Idea an concept by Christian Zengel -# (C) 2021 Script design and prototype by Markus Helmke -# (C) 2021 Script rework and documentation by Thorsten Spille - -source /root/zamba.conf - -sed -i "s|# $LXC_LOCALE|$LXC_LOCALE|" /etc/locale.gen -cat << EOF > /etc/default/locale -LANG="$LXC_LOCALE" -LANGUAGE=$LXC_LOCALE -EOF -locale-gen $LXC_LOCALE - -apt update -DEBIAN_FRONTEND=noninteractive DEBIAN_PRIORITY=critical apt -y -qq dist-upgrade -DEBIAN_FRONTEND=noninteractive DEBIAN_PRIORITY=critical apt install -y -o DPkg::options::="--force-confdef" -o DPkg::options::="--force-confold" $LXC_TOOLSET acl samba samba-dsdb-modules samba-vfs-modules - -USER=$(echo "$ZMB_ADMIN_USER" | awk '{print tolower($0)}') -useradd --comment "Zamba fileserver admin" --create-home --shell /bin/bash $USER -echo "$USER:$ZMB_ADMIN_PASS" | chpasswd -smbpasswd -x $USER -(echo $ZMB_ADMIN_PASS; echo $ZMB_ADMIN_PASS) | smbpasswd -a $USER - -cat << EOF >> /etc/samba/smb.conf -[$ZMB_SHARE] - comment = Main Share - path = /$LXC_SHAREFS_MOUNTPOINT/$ZMB_SHARE - read only = No - vfs objects = shadow_copy2 - shadow: snapdir = .zfs/snapshot - shadow: sort = desc - shadow: format = -%Y-%m-%d-%H%M - shadow: snapprefix = ^zfs-auto-snap_\(frequent\)\{0,1\}\(hourly\)\{0,1\}\(daily\)\{0,1\}\(monthly\)\{0,1\} - shadow: delimiter = -20 -EOF - -mkdir -p /$LXC_SHAREFS_MOUNTPOINT/$ZMB_SHARE -chmod -R 770 /$LXC_SHAREFS_MOUNTPOINT/$ZMB_SHARE -chown -R $USER:root /$LXC_SHAREFS_MOUNTPOINT/$ZMB_SHARE - -systemctl restart smbd nmbd diff --git a/conf/README.md b/conf/README.md index 4a821a3..3b84cd0 100644 --- a/conf/README.md +++ b/conf/README.md @@ -1 +1,256 @@ -# USE THIS FOLDER TO STORE YOUR OWN ZMB CONFIGS \ No newline at end of file +# USE THIS FOLDER TO STORE YOUR OWN ZMB CONFIGS +# Configuration options reference +This is the reference of all config options you can set in `zamba.conf` +
+ +## Linux Container Section +In this section all settings relevant for the LXC container. +
+ +### LXC_TEMPLATE_STORAGE +Defines the Proxmox storage where your LXC container template are stored (default: local) +```bash +LXC_TEMPLATE_STORAGE="local" +``` +### LXC_ROOTFS_SIZE +Defines the size in GB of the LXC container's root filesystem (default: 32) +```bash +LXC_ROOTFS_SIZE="32" +``` +Depending on your environment, you should consider increasing the size for use of `mailpiler` or `matrix`. +### LXC_ROOTFS_STORAGE +Defines the Proxmox storage where your LXC container's root filesystem will be generated (default: local-zfs) +```bash +LXC_ROOTFS_STORAGE="local-zfs" +``` +### LXC_SHAREFS_SIZE +Defines the size in GB your LXC container's filesystem shared by Zamba (AD member & standalone) (default: 100) +```bash +LXC_SHAREFS_SIZE="100" +``` +### LXC_SHAREFS_STORAGE +Defines the Proxmox storage where your LXC container's filesystem shared by Zamba will be generated (default: local-zfs) +```bash +LXC_SHAREFS_STORAGE="local-zfs" +``` +### LXC_SHAREFS_MOUNTPOINT +Defines the mountpoint of the filesystem shared by Zamba inside your LXC container (default: tank) +```bash +LXC_SHAREFS_MOUNTPOINT="tank" +``` +### LXC_MEM +Defines the amount of RAM in MB your LXC container is allowed to use (default: 1024) +```bash +LXC_MEM="1024" +``` +### LXC_SWAP +Defines the amount of swap space in MB your LXC container is allowed to use (default: 1024) +```bash +LXC_SWAP="1024" +``` +### LXC_HOSTNAME +Defines the hostname of your LXC container (Default: Name of installed Service) +```bash +LXC_SWAP="zamba" +``` +### LXC_DOMAIN +Defines the domain name / search domain of your LXC container +```bash +LXC_DOMAIN="zmb.rocks" +``` +### LXC_DHCP +Enable DHCP on LAN (eth0) - (Obtain an IP address automatically) [true/false] +```bash +LXC_DHCP=false +``` +### LXC_IP +Defines the local IP address and subnet of your LXC container in CIDR format +```bash +LXC_IP="10.10.80.20/24" +``` +### LXC_GW +Defines the default gateway IP address of your LXC container +```bash +LXC_GW="10.10.80.254" +``` +### LXC_DNS +Defines the DNS server ip address of your LXC container +```bash +LXC_DNS="10.10.80.254" +``` +`zmb-ad` used this DNS server for installation, after installation and domain provisioning it will be used as forwarding DNS +For other services this should be your active directory domain controller (if present, else a DNS server of your choice) +### LXC_BRIDGE +Defines the network bridge to bind the network adapter of your LXC container +```bash +LXC_BRIDGE="vmbr0" +``` +### LXC_VLAN +Defines the vlan id of the LXC container's network interface, if the network adapter should be connected untagged, just leave the value empty. +```bash +LXC_VLAN="80" +``` +### LXC_PWD +Defines the `root` password of your LXC container. Please use 'single quotation marks' to avoid unexpected behaviour. +```bash +LXC_PWD="Start!123" +``` +### LXC_AUTHORIZED_KEY +Defines an authorized_keys file to push into the LXC container. +By default the authorized_keys will be inherited from your proxmox host. +```bash +LXC_AUTHORIZED_KEY="/root/.ssh/authorized_keys" +``` +### LXC_TOOLSET +Define your (administrative) tools, you always want to have installed into your LXC container +```bash +LXC_TOOLSET="vim htop net-tools dnsutils sysstat mc" +``` +### LXC_TIMEZONE +Define the local timezone of your LXC container (default: Euroe/Berlin) +```bash +LXC_TIMEZONE="Europe/Berlin" +``` +### LXC_LOCALE +Define system language on LXC container (locales) +```bash +LXC_LOCALE="de_DE.utf8" +``` +This parameter is not used yet, but will be integrated in future releases. + +### LXC_VIM_BG_DARK +Set dark background for vim syntax highlighting (0 or 1) +```bash +LXC_VIM_BG_DARK=1 +``` + +
+ +## Zamba Server Section +This section configures the Zamba server (AD DC, AD member and standalone) +
+ +### ZMB_REALM +Defines the REALM for the Active Directory (AD DC, AD member) +```bash +ZMB_REALM="ZMB.ROCKS" +``` +### ZMB_DOMAIN +Defines the domain name in your Active Directory or Workgroup (AD DC, AD member, standalone) +```bash +ZMB_DOMAIN="ZMB" +``` +### ZMB_ADMIN_USER +Defines the name of your domain administrator account (AD DC, AD member, standalone) +```bash +ZMB_ADMIN_USER="Administrator" +``` +### ZMB_ADMIN_PASS +Defines the domain administrator's password (AD DC, AD member). +```bash +ZMB_ADMIN_PASS='Start!123' +``` +Please use 'single quotation marks' to avoid unexpected behaviour. +`zmb-ad` domain administrator has to meet the password complexity policy, if password is too weak, domain provisioning will fail. +### ZMB_SHARE +Defines the name of your Zamba share +```bash +ZMB_SHARE="share" +``` +
+ +## Mailpiler section +This section configures the mailpiler email archive +
+ +### PILER_FQDN +Defines the (public) FQDN of your piler mail archive +```bash +PILER_FQDN="piler.zmb.rocks" +``` +### PILER_SMARTHOST +Defines the smarthost for piler mail archive +```bash +PILER_SMARTHOST="your.mailserver.tld" +``` +
+ +## Matrix section +This section configures the matrix chat server +
+ +### MATRIX_FQDN +Define the FQDN of your Matrix server +```bash +MATRIX_FQDN="matrix.zmb.rocks" +``` + +### MATRIX_ELEMENT_FQDN +Define the FQDN for the Element Web virtual host +```bash +MATRIX_ELEMENT_FQDN="element.zmb.rocks" +``` + +### MATRIX_ADMIN_USER +Define the administrative user of matrix service +```bash +MATRIX_ADMIN_USER="admin" +``` + +### MATRIX_ADMIN_PASSWORD +Define the admin password +```bash +MATRIX_ADMIN_PASSWORD="Start!123" +``` + +## Nextcloud-Section + +### NEXTCLOUD_FQDN +Define the FQDN of your Nextcloud server +```bash +NEXTCLOUD_FQDN="nc1.zmb.rocks" +``` + +### NEXTCLOUD_ADMIN_USR +The initial admin-user which will be configured +```bash +NEXTCLOUD_ADMIN_USR="zmb-admin" +``` + +### NEXTCLOUD_ADMIN_PWD +Build a strong password for this user. Username and password will shown at the end of the instalation. +```bash +NEXTCLOUD_ADMIN_PWD="$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1)" +``` +### NEXTCLOUD_DATA +Defines the data directory, which will be createt under LXC_SHAREFS_MOUNTPOINT +```bash +NEXTCLOUD_DATA="nc_data" +``` +### NEXTCLOUD_REVPROX +Defines the trusted reverse proxy, which will enable the detection of source ip to fail2ban +```bash +NEXTCLOUD_REVPROX="192.168.100.254" +``` + +## Check_MK-Section + +### CMK_INSTANCE +Define the name of your checkmk instance +```bash +CMK_INSTANCE=zmbrocks +``` + +### CMK_ADMIN_PW +Define the password of user 'cmkadmin' +```bash +CMK_ADMIN_PW='Start!123' +``` + +### CMK_EDITION +checkmk edition (raw or free) +- raw = completely free +- free = limited version of the enterprise edition (25 hosts, 1 instance) +```bash +CMK_EDITION=raw +``` diff --git a/conf/zamba.conf.example b/conf/zamba.conf.example index 459538f..c6570f3 100644 --- a/conf/zamba.conf.example +++ b/conf/zamba.conf.example @@ -60,7 +60,7 @@ LXC_BRIDGE="vmbr0" LXC_VLAN= # Defines the `root` password of your LXC container. Please use 'single quatation marks' to avoid unexpected behaviour. -LXC_PWD='S3cr3tp@ssw0rd' +LXC_PWD='Start!123' # Defines an authorized_keys file to push into the LXC container. # By default the authorized_keys will be inherited from your proxmox host. @@ -92,7 +92,7 @@ ZMB_DOMAIN="ZMB" ZMB_ADMIN_USER="administrator" # The admin password for zamba installation. Please use 'single quatation marks' to avoid unexpected behaviour # `zmb-ad` domain administrator has to meet the password complexity policy, if password is too weak, domain provisioning will fail -ZMB_ADMIN_PASS='1c@nd0@nyth1n9' +ZMB_ADMIN_PASS='Start!123' # Defines the name of your Zamba share ZMB_SHARE="share" @@ -141,7 +141,7 @@ NEXTCLOUD_REVPROX="192.168.100.254" CMK_INSTANCE=zmbrocks # Define the password of user 'cmkadmin' -CMK_ADMIN_PW='Ju5t@n0thers3cur3p@ssw0rd' +CMK_ADMIN_PW='Start!123' # checkmk edition (raw or free) # raw = completely free diff --git a/src/__init__.py b/src/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/src/checkmk/features.json b/src/checkmk/features.json deleted file mode 100644 index 26a8749..0000000 --- a/src/checkmk/features.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "unprivileged": 0, - "features": {}, - "sharefs": {}, - "mem": 1024, - "swap": 1024, - "hostname": "checkmk", - "domain": "zmb.rocks" -} \ No newline at end of file diff --git a/src/checkmk/info b/src/checkmk/info deleted file mode 100644 index d0f7091..0000000 --- a/src/checkmk/info +++ /dev/null @@ -1 +0,0 @@ -CheckMK Monitoring Server \ No newline at end of file diff --git a/src/config_base.py b/src/config_base.py deleted file mode 100644 index 1d5cb07..0000000 --- a/src/config_base.py +++ /dev/null @@ -1,121 +0,0 @@ -#!/usr/bin/python3 -from pathlib import Path -import os -import ipaddress -import socket -import json -import subprocess -from enum import Enum - -def check_zfs_autosnapshot(): - proc = subprocess.Popen(["dpkg","-l","zfs-auto-snapshot"],stdout=subprocess.PIPE,stderr=subprocess.PIPE) - proc.communicate() - if proc.returncode > 0: - print ("'zfs-auto-snapshot' is NOT installed on your system. This ist required for 'previous versions' feature in Zamba containers.\nYou can install it with the following command:\n\tapt install zfs-auto-snapshot\n") - input ("Press Enter to continue...") - -# get_pve_bridges queries and returns availabe Proxmox bridges -def get_pve_bridges(): - pve_bridges=[] - ifaces=os.listdir(os.path.join("/","sys","class","net")) - for iface in ifaces: - if "vmbr" in iface: - pve_bridges.append(iface) - return pve_bridges - -# get_pve_storages queries and returns available Proxmox bridges -def get_pve_storages(driver=None,content=None): - pve_storages={} - cmd = ["pvesm","status","--enabled","1"] - if content != None: - cmd.extend(["--content",content.name]) - result = subprocess.Popen(cmd,stdout=subprocess.PIPE,stderr=subprocess.PIPE).communicate() - stdout = result[0].decode("utf-8").split('\n') - for line in filter(lambda x: len(x)>0, stdout): - if not "Status" in line: - item = [x for x in line.split(' ') if x.strip()] - storage = {} - storage["driver"] = item[1] - storage["status"] = item[2] - storage["total"] = item[3] - storage["used"] = item[4] - storage["available"] = item[5] - storage["percent_used"] = item[6] - - if driver == None: - pve_storages[item[0]] = storage - else: - if driver.name == storage["driver"]: - pve_storages[item[0]] = storage - - return pve_storages - -# get_zmb_services queries and returns available Zamba services -def get_zmb_services(): - zmb_services={} - for item in Path.iterdir(Path.joinpath(Path.cwd(),"src")): - if Path.is_dir(item) and "__" not in item.name: - with open(os.path.join(item._str, "info"),"r") as info: - description = info.read() - zmb_services[item.name] = description - return zmb_services - -# get_ct_id queries and returns the next available container id -def get_ct_id(base="ct"): - with open("/etc/pve/.vmlist","r") as v: - vmlist_json = json.loads(v.read()) - ct_id = 100 - for cid in vmlist_json["ids"].keys(): - if int(cid) > ct_id and base == "ct" and vmlist_json["ids"][cid]["type"] == "lxc": - ct_id = int(cid) - elif int(cid) > ct_id and base == "all": - ct_id = int(cid) - while True: - ct_id = ct_id + 1 - if ct_id not in vmlist_json["ids"].keys(): - break - return ct_id - -# validate_ct_id queries if ct_id is available and returns as boolean -def validate_ct_id(ct_id:int): - with open("/etc/pve/.vmlist","r") as v: - vmlist_json = json.loads(v.read()) - ct_id = str(ct_id) - if int(ct_id) >= 100 and int(ct_id) <= 999999999 and ct_id not in vmlist_json["ids"].keys(): - return True - else: - return False - -def validate_vlan(tag:int): - if int(tag) >= 1 and int(tag) <= 4094: - return True - else: - return False - -def get_ct_features(zmb_service): - with open(Path.joinpath(Path.cwd(),"src",zmb_service,"features.json")) as ff: - return json.loads(ff.read()) - - -class PveStorageContent(Enum): - images = 0 - rootdir = 1 - vztmpl = 2 - backup = 3 - iso = 4 - snippets = 5 - -class PveStorageType(Enum): - zfspool = 0 - dir = 1 - nfs = 2 - cifs = 3 - pbs = 4 - glusterfs = 5 - cephfs = 6 - lvm = 7 - lvmthin = 8 - iscsi = 9 - iscsidirect = 10 - rbd = 11 - zfs = 12 \ No newline at end of file diff --git a/src/debian-priv/features.json b/src/debian-priv/features.json deleted file mode 100644 index 100b62c..0000000 --- a/src/debian-priv/features.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "unprivileged": 0, - "features": {}, - "sharefs": {}, - "mem": 1024, - "swap": 1024, - "hostname": "debian", - "domain": "zmb.rocks" -} \ No newline at end of file diff --git a/src/debian-priv/info b/src/debian-priv/info deleted file mode 100644 index 7490252..0000000 --- a/src/debian-priv/info +++ /dev/null @@ -1 +0,0 @@ -Debian privileged container with basic tools \ No newline at end of file diff --git a/src/debian-unpriv/features.json b/src/debian-unpriv/features.json deleted file mode 100644 index cc1cdec..0000000 --- a/src/debian-unpriv/features.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "unprivileged": 1, - "features": { - "nesting": 1 - }, - "sharefs": {}, - "mem": 1024, - "swap": 1024, - "hostname": "debian", - "domain": "zmb.rocks" -} \ No newline at end of file diff --git a/src/debian-unpriv/info b/src/debian-unpriv/info deleted file mode 100644 index c1edd70..0000000 --- a/src/debian-unpriv/info +++ /dev/null @@ -1 +0,0 @@ -Debian unprivileged container with basic tools \ No newline at end of file diff --git a/src/mailpiler/features.json b/src/mailpiler/features.json deleted file mode 100644 index 5a478f9..0000000 --- a/src/mailpiler/features.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "unprivileged": 1, - "features": { - "nesting": 1 - }, - "sharefs": {}, - "mem": 1024, - "swap": 1024, - "hostname": "piler", - "domain": "zmb.rocks" -} \ No newline at end of file diff --git a/src/mailpiler/info b/src/mailpiler/info deleted file mode 100644 index e396db9..0000000 --- a/src/mailpiler/info +++ /dev/null @@ -1 +0,0 @@ -Mailpiler email archive \ No newline at end of file diff --git a/src/matrix/features.json b/src/matrix/features.json deleted file mode 100644 index 6798cc8..0000000 --- a/src/matrix/features.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "unprivileged": 1, - "features": {}, - "sharefs": {}, - "mem": 1024, - "swap": 1024, - "hostname": "matrix", - "domain": "zmb.rocks" -} \ No newline at end of file diff --git a/src/matrix/info b/src/matrix/info deleted file mode 100644 index 174eaa0..0000000 --- a/src/matrix/info +++ /dev/null @@ -1 +0,0 @@ -Matrix Synapse server with Element Web \ No newline at end of file diff --git a/src/menu.py b/src/menu.py deleted file mode 100644 index 62af1e0..0000000 --- a/src/menu.py +++ /dev/null @@ -1,73 +0,0 @@ -#!/usr/bin/python3 -from enum import Enum -from . import config_base - -def radiolist(title:str,question:str,choices): - invalid_input=True - while(invalid_input): - print(f"#### {title} ####\n") - print(question) - index = {} - counter = 1 - if isinstance(choices,dict): - for choice in choices.keys(): - if len(choice) <= 12: - sep="\t\t" - else: - sep="\t" - print(f"{counter}) {choice}{sep}{choices[choice]}") - index[str(counter)] = choice - counter = counter + 1 - elif isinstance(choices,list): - for choice in choices: - print(f"{counter}) {choice}") - index[str(counter)] = choice - counter = counter + 1 - else: - print (f"object 'choices': {type(choices)} objects are unsupported.") - selected = input("Type in number: ") - if selected in index.keys(): - print("\n") - return index[selected] - -def question(title:str,q:str,returntype, default, validation=None): - print(f"#### {title} ####\n") - if str(returntype.name) == "Boolean": - if default == True: - suggest = "Y/n" - else: - suggest = "y/N" - a = input(f"{q} [{suggest}]\n") - if "y" in str(a).lower(): - return True - elif "n" in str(a).lower(): - return False - else: - return default - elif str(returntype.name) == "Integer": - invalid_input = True - while(invalid_input): - a = input(f"{q} [{default}]\n") - if str(a) == "" or f"{str(default)}" == str(a): - return default - else: - try: - valid = validation(int(a)) - if valid: - return int(a) - except: - pass - else: - a = input(f"{q} [{default}]\n") - if a == '': - return default - else: - return a - - -class qType(Enum): - Boolean = 0 - Integer = 1 - String = 2 - IPAdress = 3 - CIDR = 4 \ No newline at end of file diff --git a/src/open3a/features.json b/src/open3a/features.json deleted file mode 100644 index 0a173fb..0000000 --- a/src/open3a/features.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "unprivileged": 1, - "features": {}, - "sharefs": {}, - "mem": 1024, - "swap": 1024, - "hostname": "open3a", - "domain": "zmb.rocks" -} \ No newline at end of file diff --git a/src/open3a/info b/src/open3a/info deleted file mode 100644 index 6600e6d..0000000 --- a/src/open3a/info +++ /dev/null @@ -1 +0,0 @@ -Open3A Server \ No newline at end of file diff --git a/src/zmb-ad/features.json b/src/zmb-ad/features.json deleted file mode 100644 index 8cc5c0d..0000000 --- a/src/zmb-ad/features.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "unprivileged": 0, - "features": { - "nesting": 1 - }, - "sharefs": {}, - "mem": 1024, - "swap": 1024, - "hostname": "ad", - "domain": "zmb.rocks" -} \ No newline at end of file diff --git a/src/zmb-ad/info b/src/zmb-ad/info deleted file mode 100644 index 092f8dc..0000000 --- a/src/zmb-ad/info +++ /dev/null @@ -1 +0,0 @@ -Zamba Active Directory Domain Controller \ No newline at end of file diff --git a/src/zmb-member/features.json b/src/zmb-member/features.json deleted file mode 100644 index a651666..0000000 --- a/src/zmb-member/features.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "unprivileged": 0, - "features": {}, - "sharefs": { - "size": "100", - "mountpoint": "/tank" - }, - "mem": 1024, - "swap": 1024, - "hostname": "zamba", - "domain": "zmb.rocks" -} \ No newline at end of file diff --git a/src/zmb-member/info b/src/zmb-member/info deleted file mode 100644 index 5064c82..0000000 --- a/src/zmb-member/info +++ /dev/null @@ -1 +0,0 @@ -Zamba AD Member Server \ No newline at end of file diff --git a/src/zmb-standalone/features.json b/src/zmb-standalone/features.json deleted file mode 100644 index 18faaf5..0000000 --- a/src/zmb-standalone/features.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "unprivileged": 0, - "features": { }, - "sharefs": { - "size": "100", - "mountpoint": "/tank" - }, - "mem": 1024, - "swap": 1024, - "hostname": "zamba", - "domain": "zmb.rocks" -} \ No newline at end of file diff --git a/src/zmb-standalone/info b/src/zmb-standalone/info deleted file mode 100644 index 29a2c22..0000000 --- a/src/zmb-standalone/info +++ /dev/null @@ -1 +0,0 @@ -Zamba Standalone Server \ No newline at end of file diff --git a/testinstall b/testinstall deleted file mode 100755 index 6a6c464..0000000 --- a/testinstall +++ /dev/null @@ -1,14 +0,0 @@ - -bash -vx install.sh -s checkmk > checkmk.inst.log -bash -vx install.sh -s debian-unpriv > debian-unpriv.inst.log -bash -vx install.sh -s matrix > matrix.inst.log -bash -vx install.sh -s nextcloud > nextcloud.inst.log -bash -vx install.sh -s open3a > open3a.inst.log -bash -vx install.sh -s zmb-ad > zmb-ad.inst.log -bash -vx install.sh -s zmb-member > zmb-member.inst.log -bash -vx install.sh -s zmb-standalone > zmb-standalone.inst.log -bash -vx install.sh -s debian-priv > debian-priv.inst.log -bash -vx install.sh -s mailpiler > mailpiler.inst.log -bash -vx install.sh -s onlyoffice > onlyoffice.inst.log -bash -vx install.sh -s proxmox-pbs > proxmox-pbs.inst.log -bash -vx install.sh -s urbackup > urbackup.inst.log diff --git a/zamba.conf.md b/zamba.conf.md deleted file mode 100644 index a4c3114..0000000 --- a/zamba.conf.md +++ /dev/null @@ -1,214 +0,0 @@ -# `zamba.conf` options reference -This is the reference of all config options you can set in `zamba.conf` -
- -## Linux Container Section -In this section all settings relevant for the LXC container. -
- -### LXC_TEMPLATE_STORAGE -Defines the Proxmox storage where your LXC container template are stored (default: local) -```bash -LXC_TEMPLATE_STORAGE="local" -``` -### LXC_ROOTFS_SIZE -Defines the size in GB of the LXC container's root filesystem (default: 32) -```bash -LXC_ROOTFS_SIZE="32" -``` -Depending on your environment, you should consider increasing the size for use of `mailpiler` or `matrix`. -### LXC_ROOTFS_STORAGE -Defines the Proxmox storage where your LXC container's root filesystem will be generated (default: local-zfs) -```bash -LXC_ROOTFS_STORAGE="local-zfs" -``` -### LXC_SHAREFS_SIZE -Defines the size in GB your LXC container's filesystem shared by Zamba (AD member & standalone) (default: 100) -```bash -LXC_SHAREFS_SIZE="100" -``` -### LXC_SHAREFS_STORAGE -Defines the Proxmox storage where your LXC container's filesystem shared by Zamba will be generated (default: local-zfs) -```bash -LXC_SHAREFS_STORAGE="local-zfs" -``` -### LXC_SHAREFS_MOUNTPOINT -Defines the mountpoint of the filesystem shared by Zamba inside your LXC container (default: tank) -```bash -LXC_SHAREFS_MOUNTPOINT="tank" -``` -### LXC_MEM -Defines the amount of RAM in MB your LXC container is allowed to use (default: 1024) -```bash -LXC_MEM="1024" -``` -### LXC_SWAP -Defines the amount of swap space in MB your LXC container is allowed to use (default: 1024) -```bash -LXC_SWAP="1024" -``` -### LXC_HOSTNAME -Defines the hostname of your LXC container -```bash -LXC_SWAP="zamba" -``` -### LXC_DOMAIN -Defines the domain name / search domain of your LXC container -```bash -LXC_DOMAIN="zmb.rocks" -``` -### LXC_DHCP -Enable DHCP on LAN (eth0) - (Obtain an IP address automatically) [true/false] -```bash -LXC_DHCP=false -``` -### LXC_IP -Defines the local IP address and subnet of your LXC container in CIDR format -```bash -LXC_IP="10.10.80.20/24" -``` -### LXC_GW -Defines the default gateway IP address of your LXC container -```bash -LXC_GW="10.10.80.254" -``` -### LXC_DNS -Defines the DNS server ip address of your LXC container -```bash -LXC_DNS="10.10.80.254" -``` -`zmb-ad` used this DNS server for installation, after installation and domain provisioning it will be used as forwarding DNS -For other services this should be your active directory domain controller (if present, else a DNS server of your choice) -### LXC_BRIDGE -Defines the network bridge to bind the network adapter of your LXC container -```bash -LXC_BRIDGE="vmbr0" -``` -### LXC_VLAN -Defines the vlan id of the LXC container's network interface, if the network adapter should be connected untagged, just leave the value empty. -```bash -LXC_VLAN="80" -``` -### LXC_PWD -Defines the `root` password of your LXC container. Please use 'single quotation marks' to avoid unexpected behaviour. -```bash -LXC_PWD="S3cr3tp@ssw0rd" -``` -### LXC_AUTHORIZED_KEY -Defines an authorized_keys file to push into the LXC container. -By default the authorized_keys will be inherited from your proxmox host. -```bash -LXC_AUTHORIZED_KEY="/root/.ssh/authorized_keys" -``` -### LXC_TOOLSET -Define your (administrative) tools, you always want to have installed into your LXC container -```bash -LXC_TOOLSET="vim htop net-tools dnsutils mc sysstat lsb-release curl git gnupg2 apt-transport-https" -``` -### LXC_TIMEZONE -Define the local timezone of your LXC container (default: Euroe/Berlin) -```bash -LXC_TIMEZONE="Europe/Berlin" -``` -### LXC_LOCALE -Define system language on LXC container (locales) -```bash -LXC_LOCALE="de_DE.utf8" -``` -This parameter is not used yet, but will be integrated in future releases. -
- -## Zamba Server Section -This section configures the Zamba server (AD DC, AD member and standalone) -
- -### ZMB_REALM -Defines the REALM for the Active Directory (AD DC, AD member) -```bash -ZMB_REALM="ZMB.ROCKS" -``` -### ZMB_DOMAIN -Defines the domain name in your Active Directory or Workgroup (AD DC, AD member, standalone) -```bash -ZMB_DOMAIN="ZMB" -``` -### ZMB_DNS_BACKEND -Defines the desired DNS server backend, supported are `SAMBA_INTERNAL` and `BIND9_DLZ` for more advanced usage -```bash -ZMB_DNS_BACKEND="SAMBA_INTERNAL" -``` -### ZMB_ADMIN_USER -Defines the name of your domain administrator account (AD DC, AD member, standalone) -```bash -ZMB_ADMIN_USER="Administrator" -``` -### ZMB_ADMIN_PASS -Defines the domain administrator's password (AD DC, AD member). -```bash -ZMB_ADMIN_PASS='1c@nd0@nyth1n9' -``` -Please use 'single quotation marks' to avoid unexpected behaviour. -`zmb-ad` domain administrator has to meet the password complexity policy, if password is too weak, domain provisioning will fail. -### ZMB_SHARE -Defines the name of your Zamba share -```bash -ZMB_SHARE="share" -``` -
- -## Mailpiler section -This section configures the mailpiler email archive -
- -### PILER_FQDN -Defines the (public) FQDN of your piler mail archive -```bash -PILER_FQDN="piler.zmb.rocks" -``` -### PILER_SMARTHOST -Defines the smarthost for piler mail archive -```bash -PILER_SMARTHOST="10.10.80.20" -``` -### PILER_VERSION -Defines the version number of piler mail archive to install -```bash -PILER_VERSION="1.3.10" -``` -### PILER_SPHINX_VERSION -Defines the version of sphinx to install -```bash -PILER_SPHINX_VERSION="3.3.1" -``` -### PILER_PHP_VERSION -Defines the php version to install -```bash -PILER_PHP_VERSION="7.4" -``` -
- -## Matrix section -This section configures the matrix chat server -
- -### MATRIX_FQDN -Define the FQDN of your Matrix server -```bash -MATRIX_FQDN="matrix.zmb.rocks" -``` - -### MATRIX_ELEMENT_FQDN -Define the FQDN for the Element Web virtual host -```bash -MATRIX_ELEMENT_FQDN="element.zmb.rocks" -``` -### MATRIX_ELEMENT_VERSION -Define the version of Element Web -```bash -MATRIX_ELEMENT_VERSION="v1.7.24" -``` -### MATRIX_JITSI_FQDN -Define the FQDN for the Jitsi Meet virtual host -```bash -MATRIX_JITSI_FQDN="meet.zmb.rocks" -``` \ No newline at end of file