Xsrv Versions Save

[mirror] Install and manage self-hosted services/applications, on your own server(s) - ansible collection and utilities

1.14.0

1 year ago

v1.14.0 - 2023-05-17

Upgrade procedure:

  • xsrv self-upgrade to upgrade the xsrv script
  • xsrv upgrade to upgrade roles/ansible environments to the latest release
  • xsrv deploy to apply changes
  • matrix: synapse: if you are getting the error Failed to update apt cache: unknown reason, this may be caused by the matrix/synapse APT repository signing key having expired. Deploying the matrix tag alone should solve this problem (TAGS=matrix xsrv deploy)
  • (optional) download and install the tab/auto-completion script:
wget https://gitlab.com/nodiscc/xsrv/-/raw/release/xsrv-completion.sh
sudo cp xsrv-completion.sh /etc/bash_completion.d/

Added:

  • matrix: add synapse-admin user/room administration web interface
  • xsrv: add (optional) bash completion script (installation)
  • jellyfin: allow installing and configuring OpenSubtitles plugin (jellyfin_setup_opensubtitles_plugin: no/yes)
  • homepage: allow adding custom links to the homepage (homepage_custom_links)
  • graylog: setup automatic local backups of graylog configuration when the nodiscc.xsrv.backup role is deployed
  • nextcloud add the Tables app to the list of default disabled apps (nextcloud_apps)
  • readme-gen: show mumble:// server URIs/links for hosts where the nodiscc.xsrv.mumble role is deployed
  • readme-gen: show homepage URL/link for hosts where the nodiscc.xsrv.homepage role is deployed
  • readme-gen: display a list of storage devices with size, for each host
  • readme-gen: allow adding SFTP bookmarks for GTK-based file managers to the output markdown file (readme_gen_gtk_bookmarks: yes/no)
  • xsrv: init-vm/init-vm-template: validate that values of --ip/--gateway are valid IPv4 addresses

Removed:

  • xsrv: remove ls command (use bash completion instead, or manually cd to your project directory)

Changed:

  • monitoring_utils: lynis: disable Reboot of system is most likely needed warning, let netdata/needrestart send notifications when a reboot is required
  • monitoring_utils: lynis: disable Found one or more vulnerable packages warning, let debsecan handle reporting of vulnerable packages
  • homepage: display descriptions for each applications/services, improve layout
  • xsrv: init-vm-template: remove the temporary preseed file after template creation
  • nextcloud: update to v25.0.6
  • gitea: update to v1.19.3 [1] [2]
  • matrix: update element-web to v1.11.31 [1] [2]
  • xsrv: update ansible to v7.5.0
  • cleanup/internal changes: improve separation of tasks/files, clarify variable naming, remove unused/duplicate variables/tasks
  • update documentation

Fixed:

  • matrix: synapse: fix Failed to update apt cache: unknown reason/expired repository signing key
  • xsrv: install lxml python module, required for utils-libvirt-setmem tasks
  • gitea: fix fail2ban restart failing on first installation of gitea
  • jellyfin: fix idempotence/opensubtitles plugin installation always returning changed
  • decouple web aplication roles from the nodiscc.xsrv.apache role (only run apache configuration tasks if the apache role is deployed). nodiscc.xsrv.apache is still required in the standard configuration to act as a reverse proxy for web applications. If not deployed, you will need to provide your own reverse proxy configuration.

Full changes since v1.13.1

1.13.1

1 year ago

v1.13.1 - 2023-04-14

Upgrade procedure:

  • xsrv upgrade to upgrade roles/ansible environments to the latest release
  • xsrv deploy to apply changes

Fixed:

  • readme-gen: fix syntax error in template (template error while templating string)

Full changes since v1.13.0

1.13.0

1 year ago

v1.13.0 - 2023-04-14

Upgrade procedure:

  • xsrv self-upgrade to upgrade the xsrv script
  • xsrv upgrade to upgrade roles/ansible environments to the latest release
  • xsrv deploy to apply changes
  • monitoring/netdata: if you have configured custom netdata_port_checks, ensure the ports: parameter is a list, even if it only contains a single port (e.g. ports: [64738])

Added:

  • monitoring_netdata: add netdata-apt module (monitor number of upgradeable packages, and available distribution upgrades)
  • apache: add a custom maintenance page (/var/www/maintenance/maintenance.html)
  • homepage/matrix_element/nextcloud/ldap_account_manager/self_service_password/shaarli/tt_rss: allow disabling individual web applications (*_enable_service: yes/no), redirect to the maintenance page when disabled
  • dovecot: allow enabling/disabling the service (dovecot_enable_service: yes/no)
  • samba: allow enabling/disabling the service (samba_enable_service: yes/no)
  • postgresql: netdata: allow netdata to gather detailed statistics about the postgresql instance [1] [2]
  • monitoring_netdata: allow declaring the public port (i.e. outside NAT) used to access netdata (netdata_public_port), and use it in mail notifications/nodiscc.xsrv.homepage role

Removed:

  • common: remove task ensure /var/log/wtmp is not world-readable
  • readme-gen: remove support for readme_gen_netdata_public_port variable (use netdata_public_port instead)

Changed:

  • xsrv: init-vm: make --gateway optional, by default use the value of --ip with the last octet replaced by .1
  • xsrv: init-vm: make --ssh-pubkey optional, by default use the contents of ~/.ssh/id_rsa.pub
  • xsrv: init-vm: always dump VM XML definition to a file (--dumpxml), by default to $projects_dir/VM_NAME.xml
  • monitoring/netdata: disable more netdata modules by default (netdata_disabled_plugins)
  • monitoring/netdata: allow HTTP code 503/don't raise HTTP check alarms when web applications/services are disabled in the configuration through *_enable_service: no
  • monitoring/rsyslog: switch systemd-journald's storage mode to volatile, don't write logs twice on disk
  • monitoring/rsyslog: allow setting custom configuration directives (rsyslog_custom_config)
  • monitoring/rsyslog: don't discard any messages by default, custom discard rules can be configured through rsyslog_custom_config
  • monitoring_utils/lynis: don't throw a warning when promiscuous network interfaces are detected
  • gitea: harden systemd service (systemd-analyze security exposure score down from 9.2 UNSAFE to 1.9 OK)
  • gitea: make gitea data directories owned by gitea (prevents fatal: detected dubious ownership in repository when manipulating files/repos from a shell as the gitea user)
  • common: users: ensure that both the ansible user and root home directories permissions are set to 0700
  • gitea: update to v1.19.1 [1] [2] [3] [4]
  • shaarli: update to v0.12.2
  • nextcloud: update to v25.0.5
  • matrix: update element-web to v1.11.29 [1] [2] [3] [4] [5]
  • openldap: update ldap-account-manager to v8.3
  • graylog: update graylog-server and mongodb to v5.0 [1] [2]
  • xsrv: update ansible to v7.4.0
  • update documentation
  • improve check mode support
  • cleanup: remove duplicate tasks, simplify installed version/upgrade detection logic, make installation/upgrade tasks less verbose, cleanup main script

Fixed:

  • homepage/readme-gen/jitsi: display Jitsi Meet instances URLs
  • monitoring_netdata: fix netdata_fping_hosts/ping checks not displaying anymore
  • monitoring_netdata: fix Go to chart links in mail notifications pointing to Netdata Cloud/SaaS instead of the netdata instance
  • monitoring_netdata: prevent duplicate alarms on failed systemd services
  • monitoring_netdata: prevent duplicate alarm notifications when streaming is enabled (only send notifications from the child node)
  • monitoring_utils/graylog: fix debsums incorrectly reporting missing files in mongodb packages
  • monitoring_utils/lynis: prevent lynis from running twice per day, disable duplicate systemd timer
  • openldap: self-service-password: fix self-service-password application not being served by the correct php-fpm pool
  • apache/netdata: fix unproperly formatted log lines causing web log unmatched alarms/high excluded_requests rate
  • samba/rsyslog: fix warning file '/var/log/nscd.log' does not exist when samba is configured with samba_passdb_backend: ldapsam
  • shaarli: fix custom favicon location
  • shaarli: make task create initial shaarli log.txt idempotent
  • matrix: don't attempt to create synapse users when the service is disabled

Full changes since v1.12.0

1.12.0

1 year ago

v1.12.0 - 2023-03-06

Upgrade procedure:

  • xsrv self-upgrade to upgrade the xsrv script
  • xsrv upgrade to upgrade roles/ansible environments to the latest release
  • proxmox: if you want to keep using the proxmox role, update requirements.yml (xsrv edit-requirements) and playbook.yml (xsrv edit-playbook) to use the archived nodiscc.toolbox.proxmox role instead. nodiscc.xsrv.libvirt includes more features and is now the recommended role for simplified management of hypervisors and virtual machines. Proxmox VE remains suitable for more complex setups where management through a Web interface is desirable.
  • rsyslog/graylog: if you use the rsyslog_forward_to_hostname variable and it is pointing to a graylog instance deployed with the graylog role, update it to use the graylog instance FQDN instead of the graylog host inventory hostname (e.g. logs.example.org instead of host1.example.org)
  • libvirt: you will need to restart all libvirt networks and attached VMs for the changes to take effect (a full hypervisor reboot may be simpler)
  • libvirt: if you have defined custom libvirt_port_forwards, update them to use the new syntax.
  • tt_rss: to prevent a possible error during upgrade (fatal: detected dubious ownership in repository), run the playbook with the tt_rss-permissions tag first (TAGS=tt_rss-permissions xsrv deploy)
  • jitsi: set the variable jitsi_jvb_prosody_password to a random 8 character string in your host configuration
  • make sure fact_caching_timeout = 1 is set in your project's ansible.cfg (xsrv edit-cfg) since long cache timeouts can cause problems with tasks that expect up-to-date facts
  • xsrv deploy to apply changes
# old syntax
libvirt_port_forwards:
  - vm_name: vm01.CHANGEME.org
    host_ip: 1.2.3.4
    vm_ip: 10.0.0.101
    bridge: virbr1
    host_port: 80
    vm_port: 80
    protocol: tcp
  - vm_name: vm01.CHANGEME.org
    host_ip: 1.2.3.4
    vm_ip: 10.0.0.101
    bridge: virbr1
    host_port: 19101
    vm_port: 19999
    protocol: tcp
# new syntax
libvirt_port_forwards:
  - vm_name: vm01.CHANGEME.org
    vm_ip: 10.0.0.101
    vm_bridge: virbr1
    dnat:
      - host_ip: 1.2.3.4
        host_port: 80
        vm_port: 80
        protocol: tcp # tcp is now the default and can be omitted
      - host_interface: eth0 # the outside network interface can now be specified instead of the IP
        host_port: 19101
        vm_port: 19999
  # additional examples
  - vm_name: vm201.CHANGEME.org
    vm_ip: 10.2.0.100
    vm_bridge: virbr2
    dnat:
      - host_interface: eth0
        host_port: 30000-30100 # port ranges separated by - are now supported
        vm_port: 30000-30100
        protocol: udp
      - host_interface: eth0 # host_interface/host_ip can be combined for finer control
        host_ip: 192.168.12.0/24
        host_port: 123
        vm_port: 123
    forward: # it is now possible to setup forwarding rules between interfaces/bridges without DNAT
      - source_interface: virbr2
        source_ip: 10.2.1.31
        vm_port: 5140

Added:

  • apache: allow configuration of custom reverse proxies (apache_reverseproxies)
  • libvirt: add utils-libvirt-setmem tag (update libvirt VMs current memory allocation immediately)
  • libvirt: add libvirt_users variable: users to add to the libvirt/libvirt-qemu/kvm groups so that they can use virsh without sudo
  • libvirt: libvirt_port_forwards: allow forwarding port ranges
  • libvirt: libvirt_port_forwards: allow limiting DNAT rules to specific source IPs/networks (libvirt_port_forwards.*.dnat.*.source_ip)
  • libvirt: libvirt_port_forwards: allow forwarding ports between libvirt bridges/networks without DNAT (libvirt_port_forwards.*.forward)
  • readme_gen: add more information to the default host summary (xsrv shell, xsrv logs, xsrv fetch-backups)

Changed:

  • xsrv: init-vm: rename --dump option to --dumpxml, require an output file as argument
  • common: users.*.sudo_nopasswd_commands: allow using passwordless sudo as any user, not just root
  • common: create the ssh group automatically during initial setup, don't require manually adding the ansible user to the group
  • common/matrix: enable automatic upgrades for matrix (synapse) packages by default (apt_unattended_upgrades_origins_patterns)
  • libvirt: don't install virt-manager automatically since it requires a graphical/desktop environment
  • libvirt: always use NAT-based networks, not routed networks
  • libvirt: libvirt_port_forwards: add a dnat list under each libvirt_port_forwards entry, allowing to specify multiple port forwarding/DNAT rules (each one with its host_interface/host_ip,host_port,vm_port,protocol)
  • libvirt: libvirt_port_forwards: make tcp the default protocol (allow omitting protocol: tcp)
  • graylog: rename the generated rsyslog server CA certificate to {{ graylog_fqdn }}-graylog-ca.crt
  • graylog/rsyslog: don't aggregate noisy graylog access logs to syslog
  • xsrv/default playbook: don't require setting a long fact caching timeout in ansible.cfg anymore, decrease the default value to 1s
  • gotty: update to v1.5.0 [1] [2] [3]
  • gitea: update to v1.18.5 [1] [2] [3]
  • matrix: update element-web to v1.11.24 [1] [2] [3] [4]
  • postgresql: update pgmetrics to v1.14.1
  • xsrv: update ansible to v7.3.0
  • common/monitoring_netdata/rsyslog/utils: make roles compatible with Debian 12 Bookworm
  • cleanup: standardize task names, file permissions
  • improve check mode support
  • update documentation

Removed:

  • proxmox: remove role, archive it to separate repository

Fixed:

  • netdata: fix netdata not alerting on failed systemd services
  • netdata/backup: fix netdata not alerting on outdated or absent last successful backup timestamp file
  • tt_rss: fatal: detected dubious ownership in repository error when upgrading tt-rss
  • tt-rss: disable internal version checks completely, fixes Unable to determine version in logs
  • jitsi: fix jicofo/jitsi-videobridge unable to connect to prosody
  • common: apt: ensure ca-certificates is installed (required for HTTP APT sources)
  • libvirt: ensure requirements for libvirt network/storage/VM configuration tasks are installed
  • libvirt: fix configure libvirt networks failing if the network does not already exist
  • libvirt: fix storage pool owner/group ID not being applied
  • libvirt: ensure old port forwarding rules are removed when libvirt_port_forwards is changed (restart firewalld)
  • graylog: fix error: peer name not authorized - not permitted to talk to it. error
  • xsrv: init-vm-template: fix unrecognized option '--preseed-file' error
  • xsrv: init-vm/init-vm-template: fix inconsistent libvirt connection URI, always connect to the qemu:///system URI
  • xsrv: init-vm/init-vm-template: refuse to run if the current user is not part of required groups
  • xsrv: init-vm: do not require --sudo-user option, use the default value deploy if not provided

Full changes since v1.11.1

1.11.1

1 year ago

v1.11.1 - 2023-01-22

Upgrade procedure:

  • xsrv upgrade to upgrade roles/ansible environments to the latest release
  • xsrv deploy to apply changes

Fixed:

Full changes since v1.11.0

1.11.0

1 year ago

v1.11.0 - 2023-01-20

Upgrade procedure:

  • xsrv self-upgrade to upgrade the xsrv script
  • xsrv upgrade to upgrade roles/ansible environments to the latest release
  • nextcloud: if you changed nextcloud_apps from its default value, remove files_videoplayer from the list (xsrv edit-host/edit-group)
  • jitsi: set jitsi_prosody_password in your host configuration variables (xsrv edit-vault)
  • gitea: if gitea_mailer_enabled is set to yes, add the new gitea_mail_protocol/gitea_mail_port settings to your host configuration.
  • rss_bridge: if you want to keep using the rss_bridge role, update requirements.yml (xsrv edit-requirements) and playbook.yml (xsrv edit-playbook) to use the archived nodiscc.toolbox.rss_bridge role instead. The primary goal for the RSS-Bridge role was to provide RSS feeds for Twitter accounts. This can be done by using https://nitter.net/ACCOUNT/rss instead (or one of the public Nitter instances).
  • rocketchat: consider uninstalling rocket.chat, and migrating to Matrix. Alternatively, a simple instant messaging application (Nextcloud Talk) is available through the nextcloud role, by enabling the spreed app under nextcloud_apps. If you want to keep using the rocketchat role, update requirements.yml (xsrv edit-requirements) and playbook.yml (xsrv edit-playbook) to use the archived nodiscc.toolbox.rocketchat role instead. Reasons for the deprecation can be found here.
  • readme_gen: if you want to use the readme-gen command, make sure fact_caching_timeout is commented out in your project's ansible.cfg (xsrv edit-cfg) - or at least set to a large value like 86400, and that your project's README.md contains the markers <!-- BEGIN/END AUTOMATICALLY GENERATED CONTENT - README_GEN ROLE -->

Added:

Removed:

  • rocketchat: remove role, archive it to separate repository
  • rss_bridge: remove role, archive it to separate repository
  • remove ansible tag firewalld (use firewall instead)

Changed:

  • nextcloud: enable clean URLs
  • nextcloud: remove obsolete/unsupported files_videoplayer app [1]
  • monitoring_utils: lynis: only report warnings by default, not suggestion or manual checklist items (lynis_report_regex)
  • common: ensure /var/log/wtmp does not become world-readable again after log rotation
  • nextcloud: upgrade to v25.0.3 [1] [2]
  • gitea: update to v1.18.2 [1] [2] [3] [4]
  • openldap: update ldap-account-manager to v8.2
  • xsrv: update ansible to v7.1.0
  • update ansible tags (see xsrv help-tags)
  • update test tooling
  • update documentation

Fixed:

  • jitsi: fix jitsi meet/jicofo unable to authenticate to XMPP server (Unfortunately something went wrong. We're trying to fix this. Reconnecting in...)
  • apache: fix default virtualhost/direct IP access not redirecting to error 403 page
  • common: fix kernel_proc_hidepid changes not being applied unless the host is rebooted
  • libvirt: fix libvirtd service not properly reloaded after updating firewall/port forwarding rules
  • gitea: fix configuration file templating failures in check mode
  • jitsi: prevent debsums warnings about modified interface_config.js
  • graylog: prevent incorrect debsums reports about missing files in mongodb-database-tools
  • gitea: fix incorrect default value for gitea_db_password
  • gitea/gotty: fix systemd services automatic restart limits in case of failure
  • gitea: fixes slow browsing that may be experienced in particular cases

Full changes since v1.10.0

1.10.0

1 year ago

v1.10.0 - 2022-11-19

Upgrade procedure:

  • xsrv upgrade to upgrade roles/ansible environments to the latest release
  • move the public_keys/ directory from the root of your project directory, under the data/ directory.
  • if it exists, move the certificates/ directory from the root of your project directory, under the data/ directory.
  • common: if you had changed the variable os_security_kernel_enable_core_dump from its default value in your hosts/groups configuration, rename it to kernel_enable_core_dump
  • graylog/monitoring_rsyslog: move the *-graylog-ca.crt file from the public_keys/ directory to the data/certificates/ directory (create it if it does not exist)
  • openldap: self-sevice-password: if you had changed the variable self_service_password_allowed_hosts from its default value in your host/groups configuration, update it to the new format (YAML list instead of a list of addresses separated by spaces):
# old format
self_service_password_allowed_hosts: "10.0.0.0/8 192.168.0.0/16 172.16.0.0/12"
# new format
self_service_password_allowed_hosts:
  - 10.0.0.0/8
  - 192.168.0.0/16
  - 172.16.0.0/12

Added:

  • add jitsi role - video conferencing solution
  • add libvirt role - libvirt virtualization toolkit
  • xsrv: add xsrv open command (open the project directory in the default file manager)
  • xsrv: init-vm: add --dump option (display the VM XML definition after creation)
  • apache: automatically load new Let's Encrypt certificates every minute, manually reloading the server is no longer needed
  • nextcloud: allow configuration of nextcloud log level, default app on login (nextcloud_loglevel/nextcloud_defaultapp)
  • common: kernel: hardening: allow hiding processes from other users (kernel_proc_hidepid: no/yes)
  • shaarli: add ability to install the python API client (shaarli_setup_python_client: no/yes) and export all shaarli data to a JSON file every hour
  • wireguard: add ability to enable/disable the wireguard server service (wireguard_enable_service: yes/no)
  • monitoring/netdata: allow disabling notifications for ping check alarms (netdata_fping_alarms_silent: yes/no)
  • apache/monitoring: netdata: monitor state of the php-fpm service and alert in case of failure
  • apache: start/stop the php7.4-fpm service alongside the apache service depending on apache_enable_service: yes/no
  • shaarli: add required packages for LDAP authentication
  • monitoring_netdata: add utils-autorestart tag (reboot hosts if required after a kernel update, will only run if the utils-autorestart tag is explicitly called)
  • samba: add utils-samba-listusers tag (list samba users)
  • common: install hardware true random number generator (TRNG) support packages on hosts where the CPU suports RDRAND

Removed:

  • tt_rss: remove installation of custom plugins/themes

Changed:

  • nextcloud: no longer disable accessibility app by default
  • nextcloud: disable the web updater
  • nextcloud: disable link to https://nextcloud.com/signup/ on public pages
  • nextcloud: backup: add config.php to the list of files to backup (may contain the encryption secret if encryption was enabled by the admin)
  • openldap: self-service-password: update format of self_service_password_allowed_hosts (use a YAML list instead of space-separated list)
  • common: kernel: rename variable os_security_kernel_enable_core_dump -> kernel_enable_core_dump
  • common: kernel/sysctl: ensure ipv4/ipv6 configuration is applied to all new/future interfaces as well
  • common: kernel/sysctl: don't disable USB storage, audio input/output, USB MIDI, bluetooth and camera modules by default
  • common: kernel/sysctl: don't disable audio input/output module by default
  • common: kernel/sysctl: don't disable bluetooth modules by default
  • common: kernel/sysctl: don't disable camera modules by default
  • common: kernel/sysctl: don't disable vfat squashfs filesystems module by default
  • common/graylog: apt: use HTTPS to access APT packages repositories
  • common: dns: check that valid IP addresses are specified in dns_nameservers
  • common: kernel/sysctl: load all sysctl variables, not just those in custom.conf
  • common: users: configure bash to terminate idle sessions after 15 minutes
  • common: packages: always install haveged entropy source on KVM/VMware VMs
  • common: packages: remove haveged from the default list of packages to install everywhere
  • wireguard: firewalld: setup firewall to allow blocking/allowing traffic from VPN clients to services on the host, independently
  • monitoring_utils: lynis: whitelist suggestion to disable USB storage
  • monitoring_utils: lynis: whitelist suggestion to install sysstat, when netdata is installed
  • tt_rss: run the web application (php-fpm pool) un der a dedicated user account
  • xsrv: init-vm-template: make the --template option optional, default to debian11-base
  • xsrv: init-vm-template: make the --sudo-user option optional, default to deploy
  • xsrv: init-vm/init-vm-template: clarify use of units M or G for --memory option
  • nextcloud: update to v24.0.7 [1] [2]
  • gitea: update to v1.17.3
  • openldap: update self-service-password to v1.5.2
  • openldap: ldap-account-manager: upgrade to v8.1
  • graylog: update mongodb to v4.4
  • rocketchat: upgrade to v3.18.7
  • cleanup: replace deprecated apt_key/apt_repository modules, install all APT keys in /usr/share/keyrings/
  • xsrv: update ansible to v6.6.0
  • postgresql: update pgmetrics to v1.14.0
  • general cleanup and maintenance, remove deprecated ansible modules
  • update ansible tags
  • update documentation
  • update/improve test tooling

Fixed:

  • shaarli: fix shaarli unable to save thumbnails to disk
  • shaarli: fix broken link (HTTP 403) to documentation
  • jellyfin: fix jellyfin unable to upgrade on machines migrated from Debian 10 -> 11
  • common: kernel/sysctl: don't disable vfat module required by EFI boot
  • graylog: fix installation of elasticsearch packages
  • graylog: prevent incorrect debsums reports about missing files in mongodb-database-tools
  • monitoring/netdata: fix individual alarms for failed systemd services
  • common: firewalld: add all addresses from 192.168.0.0/16 to the internal zone by default, not just 192.168.0.0/24
  • xsrv: init-vm-template: fix non-working options --sudo-password, --root-password, --sudo-user, --nameservers
  • xsrv: init-vm: fix an issue where VMs would be created with 1MB of memory when --memory 1024 was used
  • xsrv: fix init-vm-template command not working unless xsrv self-upgrade had already been run

Security:

Full changes since v1.9.0

1.9.0

1 year ago

v1.9.0 - 2022-09-18

Upgrade procedure:

  • xsrv self-upgrade to upgrade the xsrv script
  • xsrv upgrade to upgrade roles/ansible environments to the latest release
  • gitea: if you rely on custom git hooks for your projects, set gitea_enable_git_hooks: yes in the host configuration/vars file (xsrv edit-host)
  • xsrv deploy to apply changes

Added:

Removed:

Changed:

  • gitea: disable git hooks by default
  • gitea: upgrade to v1.17.2 [1] [2] [3] [4]
  • openldap: update self-service-password to v1.5.1 [1] [2]
  • nextcloud: upgrade to v24.0.5 [1] [2]
  • postgresql: update pgmetrics to v1.13.1
  • shaarli: hardening: run shaarli under a dedicated shaarli user account (don't use the default shared www-data user)
  • xsrv: upgrade ansible to v6.4.0
  • nextcloud/netdata: mitigate frequent httpckeck alarms on the nextcloud web service response time (httpcheck_web_service_unreachable), increase the timeout of the check to 3s
  • common: sysctl: automatically reboot the host after 60 seconds in case of kernel panic
  • common: hardening: ensure /var/log/wtmp is not world-readable
  • common: login/ssh: hardening: kill user processes when an interactive user logs out (except for root). Lock idle login sessions after 15 minutes of inactivity.
  • common: ssh: hardening: replace the server's default 2048 bits RSA keypair with 4096 bits keypair
  • common: sudo: hardening: configure sudo to run processes in a pseudo-terminal
  • common: users/pam: hardening: increase the number of rounds for hashing group passwords
  • common: sysctl: hardening: only allow root/users with CAP_SYS_PTRACE to use ptrace
  • common: sysctl: hardening: disable more kernel modules by default (bluetooth, audio I/O, USB storage, USB MIDI, UVC/V4L2/CPIA2 video devices, thunderbolt, floppy, PC speaker beep
  • common: sysctl: hardening: restrict loading TTY line disciplines to the CAP_SYS_MODULE capability
  • common: sysctl: hardening: protect against unintentional writes to an attacker-controlled FIFO
  • common: sysctl: hardening: prevent even the root user from reading kernel memory maps
  • common: sysctl: hardening: enable BPF JIT hardening
  • common: sysctl: hardening: disable ICMP redirect support for IPv6
  • all roles: require ansible-core>=2.12/ansible>=6.0.0
  • common: improve check mode support before first deployment
  • tools/tests: improve/simplify test tools

Fixed:

  • common: users: fix errors during creation fo sftponly user accounts when no groups are defined in the user definition

1.8.1

1 year ago

v1.8.1 - 2022-07-10

Upgrade procedure:

  • xsrv upgrade to upgrade roles/ansible environments to the latest release
  • xsrv deploy to apply changes

Fixed:

  • backup/rsnapshot: fix rsnapshot installation, always install from Debian repositories

1.8.0

1 year ago

v1.8.0 - 2022-07-04

Upgrade procedure:

  • xsrv self-upgrade to upgrade the xsrv script
  • xsrv upgrade to upgrade roles/ansible environments to the latest release
  • gitea/gotty/graylog/homepage/jellyfin/nextcloud/openldap/rocketchat/rss_bridge/shaarli/transmission/tt_rss: ensure the apache role or equivalent is explicitly deployed to the host before deploying any of these roles.
  • jellyfin/samba: if both jellyfin and samba roles are deployed on the same host, ensure samba is deployed before jellyfin (xsrv edit-playbook)
  • valheim_server: if you are using the valheim_server role, update requirements.yml (xsrv edit-requirements) and playbook.yml (xsrv edit-playbook) to use the archived nodiscc.toolbox.valheim_server role instead.
  • xsrv deploy to apply changes

Added:

  • add mail_dovecot role - IMAP mailbox server
  • monitoring: netdata: allow streaming charts data/alarms to/from other netdata nodes (netdata_streaming_*)
  • monitoring: netdata: enable monitoring of hard drives SMART status
  • xsrv: add xsrv ssh subcommand (alias for shell)
  • openldap: allow secure LDAP communication over SSL/TLS on port 636/tcp (use a self-signed certificate)
  • common: allow disabling PAM/user accounts configuration tasks (setup_users: yes/no)
  • common: allow blacklisting unused/potentially insecure kernel modules (kernel_modules_blacklist), disable unused network/firewire modules by default
  • common: automatically remove (purge) configuration files of removed packages, nightly, enabled by default (apt_purge_nightly: yes/no)
  • common: attempt to automatically repair (fsck) failed filesystems on boot
  • docker: allow enabling automatic firewall/iptables rules setup by Docker (docker_iptables: no/yes)
  • docker: install requirements for logging in to private docker registries
  • openldap: self-service-password/ldap-account-manager: make LDAP server URI configurable (*_ldap_url)
  • openldap: ldap-account-manager: allow specifying a trusted LDAPS server certificate (ldap_account_manager_ldaps_cert)
  • samba: make events logged by full_audit configurable (samba_log_full_audit_success_events)
  • shaarli: add an option to configure thumbnail generation mode (shaarli_thumbnails_mode) and default number of links per page (shaarli_links_per_page, default 30)
  • postgresql: download pgmetrics report to the controller when running TAGS=utils-pgmetrics
  • all roles: checks: add an info message pointing to roles documentation when one or more variables are not correctly defined
  • xsrv: xsrv help-tags will now parse tag descriptions from custom roles in roles/ in addition to collections
  • monitoring: utils: add iputils-ping package (ping utility)

Removed:

  • common: firewalld/mail/msmtp: drop compatibilty with Debian 10
  • valheim_server: remove role, archive it to separate repository (installs non-free components)

Changed:

  • netdata: needrestart: don't send e-mail notifications for needrestart alarms
  • netdata: debsecan: refresh debsecan reports every 6 hours instead of every hour
  • netdata: disable metrics gathering for /dev and /dev/shm virtual filesystems
  • all roles: checks all variables values before failing, when one or more variables are not correctly defined
  • tt_rss: don't send feed update errors by mail, log them to syslog
  • xsrv: always use the first host/group in alphabetical order when no host/group is specified
  • xsrv: upgrade ansible to v5.10.0
  • apache/proxmox: only setup fail2ban when it is marked as managed by ansible through ansible local facts
  • common: ssh: increase the frequency of "client alive" messages to 1 every 5 minutes
  • common: ssh/users: don't allow login for users without an existing home directory
  • apache: rsyslog: prefix apache access logs with apache-access: in syslog when apache_access_log_to_syslog: yes
  • homepage: improve homepage styling/layout, link directly to ssh:// and sftp:// URIs
  • homepage: reword default homepage_message
  • shaarli: default to generating thumbnails only for common media hosts
  • transmission: firewall: always allow bittorrent peer traffic from the public zone
  • monitoring_utils: lynis: review and whitelist unapplicable "suggestion" level report items (lynis_skip_tests)
  • nextcloud: upgrade to v24.0.1 [1] [2] [3]
  • gitea: upgrade to v1.16.8 [1] [2] [3]
  • openldap: ldap-account-manager: upgrade to v7.9.1
  • rss_bridge: upgrade to v2022-06-14
  • postgresql: update pgmetrics to v1.13.0
  • gitea/gotty/graylog/homepage/jellyfin/nextcloud/openldap/rocketchat/rss_bridge/shaarli/transmission/tt_rss: remove hard dependency on apache role
  • cleanup: proxmox: use a single file to configure proxmox APT repositories
  • cleanup: apache: ensure no leftover mod-php installations are present
  • cleanup: common: users: move PAM configuration to the main limits.conf configuration file
  • cleanup/tools: improve check mode support, standardize task names, remove unused template files, make usage of ansible_facts consistent in all roles, clarify xsrv script, reorder functions by purpose/component, automate documentation generation, improve tests/release procedure, automate initial check mode/deployment/idempotence tests
  • update documentation

Fixed:

  • xsrv: init-project: fix inventory not correctly initialized
  • xsrv: fix xsrv shell/fetch-backups when a non-default XSRV_PROJECTS_DIR is specified by the user
  • common: ssh: fix confusion between AcceptEnv and PermitUserEnvironment settings
  • all roles: monitoring/netdata: fix systemd services health checks not loaded by netdata
  • apache: monitoring/rsyslog: fix rsyslog config installation when running with only --tags=monitoring
  • graylog: fix elasticsearch/graylog unable to start caused by too strict permissions on configuration files
  • openldap: ldap-account-manager: fix access to tree view
  • homepage: fix homepage generation when the mumble role was deployed from a different play
  • jellyfin/samba: fix jellyfin samba share creation when samba role is not part of the same play
  • samba: fix samba_passdb_backend: ldapsam mode when openldap role is not part of the same play
  • xsrv: fetch-backups: use the first host in alphabetical order, when no host is specified
  • monitoring: rsyslog: add correctness checks for syslog_retention_days variable
  • monitoring: netdata/needrestart: fix needrestart_autorestart_services value not taken into account when true
  • shaarli/transmission: fix *_https_mode variable checks
  • doc: fix broken links

Security:

  • proxmox: fail2ban: fix detection of failed login attempts