### Install All Services and Start Source: https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/installing.md Performs a full installation and starts all services. This is the recommended command for a brand new server without importing data. If 'just' is not used, an equivalent ansible-playbook command is provided. ```sh just install-all ``` ```sh ansible-playbook -i inventory/hosts setup.yml --tags=install-all,start ``` -------------------------------- ### Install and Start All Services with Ansible Source: https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/installing.md This command directly invokes Ansible to install and start all services. It requires an inventory file and the setup playbook. ```sh ansible-playbook -i inventory/hosts setup.yml --tags=install-all,start ``` -------------------------------- ### Install and Start a Specific Service with `just` Source: https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/just.md A shorthand for running specific tags to install and start a particular service. This simplifies the command for common service management tasks. ```bash just install-service miniflux ``` -------------------------------- ### Get CryptPad Installation URL Source: https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/services/cryptpad.md Run this command to output the URL for creating the first administrator account for your CryptPad instance. Open the URL in a web browser to complete the setup wizard. ```sh ansible-playbook -i inventory/hosts setup.yml --tags=get-installation-url-cryptpad ``` -------------------------------- ### Start Services on New Server Source: https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/services/ilmo.md After installing and importing the database, run this command to start all configured services, including the newly migrated ILMO instance. ```bash yourPC$ just run-tags start ``` -------------------------------- ### Install Services Without Starting Source: https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/installing.md Installs all services but does not start them. This is used when preparing a server for data import. Avoid the 'just install-all' recipe as it automatically starts services. If 'just' is not used, an equivalent ansible-playbook command is provided. ```sh just run-tags install-all ``` ```sh ansible-playbook -i inventory/hosts setup.yml --tags=install-all ``` -------------------------------- ### Re-run Installation or Setup Source: https://context7.com/mother-of-all-self-hosting/mash-playbook/llms.txt Apply updates by re-running the installation process for all services. If services were removed from vars.yml, use 'setup-all' instead. ```bash # Re-run installation to apply updates just install-all # If you removed services from vars.yml, use setup-all instead just setup-all ``` -------------------------------- ### Install PostgreSQL and ILMO on New Server Source: https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/services/ilmo.md On your local machine or staging environment, run these `just` commands to install PostgreSQL and ILMO without starting them, preparing for database import. ```bash yourPC$ just run-tags install-postgres yourPC$ just run-tags install-ilmo ``` -------------------------------- ### Start All Services Source: https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/installing.md Starts all services after installation, typically used after importing data. If 'just' is not used, an equivalent ansible-playbook command is provided. ```sh just start-all ``` ```sh ansible-playbook -i inventory/hosts setup.yml --tags=start ``` -------------------------------- ### Run Full Installation with MASH Playbook Source: https://context7.com/mother-of-all-self-hosting/mash-playbook/llms.txt Execute the full installation and start all services using the `just install-all` command or manually with `ansible-playbook`. ```bash just install-all # Or manually without just: ansible-playbook -i inventory/hosts setup.yml --tags=install-all,start ``` -------------------------------- ### Copy Sample Inventory Hosts File Source: https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/configuring-playbook.md Copies the example inventory hosts file. This file should be edited to reflect your server setup. ```bash cp examples/hosts inventory/hosts ``` -------------------------------- ### Full Setup (Including Uninstall) with Ansible Source: https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/installing.md This Ansible command performs a comprehensive setup, potentially including uninstallation tasks. It's useful for resetting or completely reconfiguring services. ```sh ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start ``` -------------------------------- ### Set Custom DNS Servers during Initial Setup Source: https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/services/wg-easy.md Configure custom DNS servers for wg-easy during the initial unattended setup by setting the `wg_easy_environment_variables_additional_variable_init_dns` variable. Changes after initial setup require using the Admin Panel. ```yaml wg_easy_environment_variables_additional_variable_init_dns: "1.1.1.1,2606:4700:4700::1111" ``` -------------------------------- ### Manage Services with Playbook Tags Source: https://context7.com/mother-of-all-self-hosting/mash-playbook/llms.txt Use `just run-tags` to execute specific playbook operations or manage individual services. This allows for granular control over installation, setup, and starting/stopping services. ```bash # Run specific tags just run-tags install-all,start # Install/setup only specific services just run-tags install-miniflux,start just run-tags setup-nextcloud,start # Install a single service with shortcut just install-service miniflux just setup-service nextcloud # Start all services just start-all # Stop all services just stop-all # Start/stop specific service group just start-group postgres just stop-group miniflux ``` -------------------------------- ### Example: Managing APISIX Configuration via Admin API Source: https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/services/apisix-gateway.md If the Admin API is enabled, you can manage APISIX configuration by sending API requests to the Admin API URL. This example demonstrates fetching routes. ```bash curl -H 'X-API-KEY: YOUR_SECRET_API_KEY_HERE' https://admin.api.example.com/apisix/admin/routes ``` -------------------------------- ### Re-run Playbook Setup for Component Changes Source: https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/maintenance-upgrading-services.md Use this command when components have been removed from vars.yml or their default installation status has changed. It ensures a complete setup reflecting the latest configuration. ```sh just setup-all ``` -------------------------------- ### Enable ddclient Service Source: https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/services/ddclient.md Add this configuration to your `vars.yml` file to enable the ddclient service. Re-run the installation process after adding this. ```yaml ######################################################################## # # # ddclient # # # ######################################################################## ddclient_enabled: true ######################################################################## # # # /ddclient # # # ######################################################################## ``` -------------------------------- ### Copy sample inventory and configuration files Source: https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/setting-up-services-on-mdad-server.md Copy the example inventory hosts file and the sample vars.yml file to the appropriate locations within your playbook directory. Ensure you replace 'mash.example.com' with your actual domain. ```bash mkdir -p inventory/host_vars/mash.example.com cp examples/hosts inventory/hosts cp examples/mash-for-matrix-docker-ansible-deploy-users/vars.yml inventory/host_vars/mash.example.com/vars.yml ``` -------------------------------- ### Prevent Immich Setup Page Source: https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/services/immich.md Add this configuration to your `vars.yml` to disable the initial setup page after the first-time installation. This is a security measure to prevent unauthorized admin registration. ```yaml immich_server_environment_variable_immich_allow_setup: false ``` -------------------------------- ### Copy Sample Variables File Source: https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/configuring-playbook.md Copies the example variables file to your host's configuration directory. This file should be edited to enable services and override defaults. ```bash cp examples/vars.yml inventory/host_vars/mash.example.com/vars.yml ``` -------------------------------- ### Direct `ansible-playbook` Command with Tags Source: https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/just.md This command shows how to run `ansible-playbook` directly with a specific tag, `install-all`. It differs from the `just install-all` shortcut as it does not automatically run the `start` tag. ```bash ansible-playbook -i inventory/hosts setup.yml --tags=install-all ``` -------------------------------- ### Disable Traefik Installation in MASH Source: https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/interoperability.md To avoid conflicts when Traefik is already installed and managed by another tool (like matrix-docker-ansible-deploy), follow the 'Traefik managed by you' guide. This ensures MASH utilizes your existing Traefik instance. ```yaml devture_timesync_installation_enabled: false ``` -------------------------------- ### Enable qBittorrent Service Configuration Source: https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/services/qbittorrent.md Enable the qBittorrent service by setting this variable to true in your vars.yml file. This configuration also sets the hostname and download paths for the service. ```yaml ######################################################################## # # # qbittorrent # # # ######################################################################## qbittorrent_enabled: true qbittorrent_hostname: qbittorrent.example.com # The path where downloaded files will be stored on the host system qbittorrent_download_path: "{{ qbittorrent_base_path }}/downloads" # The path at which qbittorrent_download_path is mounted to inside the container qbittorrent_download_bind_path: "/downloads" # The port qBittorrent is listening for torrents on inside the container qbittorrent_container_torrenting_port: 6881 # Controls whether the container exposes its torrenting port # To become an "active node" you'll want to set this and configure port-forwarding in your router qbittorrent_container_torrenting_bind_port: "{{ qbittorrent_container_torrenting_port }}" ######################################################################## # # # /qbittorrent # # # ######################################################################## ``` -------------------------------- ### Print FreshRSS Database Credentials Source: https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/services/freshrss.md Run this command to output the database credentials for your FreshRSS instance after installation. This is necessary for initial setup if using Postgres or MySQL. ```sh ansible-playbook -i inventory/hosts setup.yml --tags=print-freshrss-db-credentials ``` -------------------------------- ### Enable and Configure GotHub Service Source: https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/services/gothub.md Add these variables to your `vars.yml` file to enable GotHub and set its hostname. Re-run the installation process after modifying this file. ```yaml ######################################################################## # # # gothub # # # ######################################################################## gothub_enabled: true gothub_hostname: gothub.example.com ######################################################################## # # # /gothub # # # ######################################################################## ``` -------------------------------- ### Enable etcd Service Source: https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/services/etcd.md To enable the etcd service, add this configuration to your `vars.yml` file and re-run the installation process. This is the primary step to include etcd in your setup. ```yaml ######################################################################## # # # etcd # # # ######################################################################## etcd_enabled: true # By default, the playbook will set a root password by itself. # If you'd like to set your own, uncomment and explicitly set this. # etcd_environment_variable_etcd_root_password: '' # Uncomment this if you'd like to run etcd without password-protection. # etcd_environment_variable_allow_none_authentication: true ######################################################################## # # # /etcd # # # ######################################################################## ``` -------------------------------- ### Enable Etherpad Service Source: https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/services/etherpad.md To enable Etherpad, add these variables to your `vars.yml` file and re-run the installation. This minimum configuration enables the service and sets the hostname. ```yaml ######################################################################## # # # etherpad # # # ######################################################################## etherpad_enabled: true etherpad_hostname: etherpad.example.com ######################################################################## # # # /etherpad # # # ######################################################################## ``` -------------------------------- ### Configure Nextcloud with Shared Valkey Instance Source: https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/services/nextcloud.md Configure Nextcloud to use a shared Valkey instance via Unix domain socket. This setup is suitable for single-server hosting. Ensure the Nextcloud service starts after the Valkey service. ```yaml # Add the base configuration as specified above # Make sure the connection via Unix domain socket is enabled # Set to `false` to enable TCP connection instead nextcloud_redis_socket_enabled: true # Connect Nextcloud to the shared Valkey instance via the Unix domain socket # # Alternatively, if you set `nextcloud_redis_socket_enabled` to `false`, # - Add the shared Valkey instance (mash-valkey) to `nextcloud_redis_hostname` # - Add its network (mash-valkey) to `nextcloud_container_additional_networks_custom` nextcloud_redis_socket_path_host: "{{ valkey_run_path }}" # Make sure the Nextcloud service (mash-nextcloud.service) starts after the shared Valkey service (mash-valkey.service) nextcloud_systemd_required_services_list_custom: - "{{ valkey_identifier }}.service" ``` -------------------------------- ### Adjust Traefik Network IP Range Source: https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/services/peertube.md After initial installation, update the Traefik network's IP address range by adding this configuration. Replace the example IP range with the actual range obtained from `docker network inspect traefik`. ```yaml peertube_trusted_proxies_values_custom: ["172.21.0.0/16"] ``` -------------------------------- ### Enable keyoxide-web Service Configuration Source: https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/services/keyoxide.md Add these variables to your `vars.yml` file to enable and configure keyoxide-web. Ensure `keyoxide_enabled` is set to `true` to activate the service. ```yaml ######################################################################## # # # keyoxide # # # ######################################################################## keyoxide_enabled: true keyoxide_proxy_enabled: true keyoxide_hostname: keyoxide.example.com ######################################################################## # # # /keyoxide # # # ######################################################################## ``` -------------------------------- ### Install Collabora App for Nextcloud Source: https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/services/nextcloud.md Run this command after installing both CODE and Nextcloud to install and configure the Collabora Online (richdocuments) app for Nextcloud. ```sh just run-tags install-nextcloud-app-collabora ``` -------------------------------- ### Enable syncstorage-rs Docker Installation Source: https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/services/syncstorage-rs.md Add this configuration to your `vars.yml` file to enable the syncstorage-rs Docker installation and set its hostname. Re-run the installation process after applying these changes. ```yaml ######################################################################## # # # syncstorage_rs_docker # # # ######################################################################## syncstorage_rs_docker_enabled: true syncstorage_rs_docker_hostname: syncstorage-rs-docker.example.com ######################################################################## # # # /syncstorage_rs_docker # # # ######################################################################## ``` -------------------------------- ### Configure Shared Valkey Instance for PeerTube Source: https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/services/peertube.md Add this configuration to `inventory/host_vars/mash.example.com/vars.yml` to enable and connect PeerTube to a shared Valkey instance. Ensure PeerTube's container network and service startup order are correctly set. ```yaml ######################################################################## # # # valkey # # # ######################################################################## valkey_enabled: true ######################################################################## # # # /valkey # # # ######################################################################## ######################################################################## # # # peertube # # # ######################################################################## # Add the base configuration as specified above # Point PeerTube to the shared Valkey instance peertube_redis_hostname: "{{ valkey_identifier }}" # Make sure the PeerTube container is connected to the container network of the shared Valkey service (mash-valkey) peertube_container_additional_networks_custom: - "{{ valkey_identifier }}" # Make sure the PeerTube service (mash-peertube.service) starts after the shared Valkey service (mash-valkey.service) peertube_systemd_required_services_list_custom: - "{{ valkey_identifier }}.service" ######################################################################## # # # /peertube # # # ######################################################################## ``` -------------------------------- ### Enable Kanboard Service Configuration Source: https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/services/kanboard.md To enable the Kanboard service, add this configuration to your `vars.yml` file and re-run the installation process. This sets the service to be active and defines its hostname. ```yaml ######################################################################## # # # kanboard # # # ######################################################################## kanboard_enabled: true kanboard_hostname: kanboard.example.com ######################################################################## # # # /kanboard # # # ######################################################################## ``` -------------------------------- ### Disable Docker Installation Role Source: https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/ansible.md If you manage Docker installation separately, you can disable the playbook's default Docker installation role by setting this variable in your vars.yml file. This might allow using older Ansible versions. ```yaml mash_playbook_docker_installation_enabled: false ``` -------------------------------- ### Create Inventory Structure and Files Source: https://context7.com/mother-of-all-self-hosting/mash-playbook/llms.txt Sets up the necessary directory structure and copies example configuration files for the Ansible inventory. Edit the hosts file to include your server's details. ```bash # Create inventory directory structure mkdir -p inventory/host_vars/mash.example.com # Copy example configuration files cp examples/vars.yml inventory/host_vars/mash.example.com/vars.yml cp examples/hosts inventory/hosts # Edit the hosts file with your server details cat > inventory/hosts << 'EOF' # To connect using a non-root user, replace ansible_ssh_user=root with: # ansible_ssh_user=username ansible_become=true ansible_become_user=root [mash_servers] mash.example.com ansible_host=192.168.1.100 ansible_ssh_user=root EOF ``` -------------------------------- ### Set Global Allowed IPs during Initial Setup Source: https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/services/wg-easy.md Specify global Allowed IPs for all WireGuard clients during the initial setup by setting the `wg_easy_environment_variables_additional_variable_init_allowed_ips` variable. This setting cannot be changed after the initial setup and must be managed per-client via the web UI. ```yaml wg_easy_environment_variables_additional_variable_init_allowed_ips: "10.8.0.0/24,2001:0DB8::/32" ``` -------------------------------- ### Create Configuration Directory Source: https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/configuring-playbook.md Use this command to create the necessary directory for host-specific variables. ```bash mkdir -p inventory/host_vars/mash.example.com ``` -------------------------------- ### Clone and Install MASH Playbook Source: https://context7.com/mother-of-all-self-hosting/mash-playbook/llms.txt Clone the MASH playbook repository and install Ansible roles using `just` or manually. ```bash git clone https://github.com/mother-of-all-self-hosting/mash-playbook.git cd mash-playbook just update # Or manually without just: git pull rm -rf roles/galaxy ansible-galaxy install -r requirements.yml -p roles/galaxy/ --force ``` -------------------------------- ### Install Ansible Roles with `just` Source: https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/just.md Use this shortcut to install Ansible roles defined in `requirements.yml`. It ensures all necessary roles are present before proceeding with playbook execution. ```bash just roles ``` -------------------------------- ### Enable SolidInvoice Service Source: https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/services/solidinvoice.md Add this configuration to your `vars.yml` file to enable the SolidInvoice service and set its hostname. Re-run the installation process after applying these changes. ```yaml ######################################################################## # # # solidinvoice # # # ######################################################################## solidinvoice_enabled: true solidinvoice_hostname: solidinvoice.example.com ######################################################################## # # # /solidinvoice # # # ######################################################################## ``` -------------------------------- ### Install SSH Pass for Password Authentication Source: https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/ansible.md If not using SSH keys, install the `sshpass` package within the Ansible Docker container to enable password-based authentication. ```sh apk add sshpass ``` -------------------------------- ### Configure Inventory Hosts for PeerTube Source: https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/services/peertube.md Add a supplementary host entry in `inventory/hosts` for the dedicated Valkey instance. Replace placeholders with your actual hostname and IP address. ```ini [mash_servers] [mash_servers:children] mash_example_com [mash_example_com] mash.example.com ansible_host=YOUR_SERVER_IP_ADDRESS_HERE mash.example.com-peertube-deps ansible_host=YOUR_SERVER_IP_ADDRESS_HERE … ``` -------------------------------- ### Postgres Password Authentication Error Example Source: https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/services/immich.md This is an example of a 'password authentication failed' error from Postgres, which typically occurs when the 'immich_database_password' variable is not set correctly in your vars.yml files. ```txt PostgresError: password authentication failed for user "immich" ``` -------------------------------- ### Example: Accessing the Gateway API Source: https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/services/apisix-gateway.md Send API requests to your API gateway using the configured hostname and path prefix. This example shows a basic curl command. ```bash curl https://api.example.com/api ``` -------------------------------- ### Vars.yml for Dedicated Valkey Instance Source: https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/services/vikunja.md Create a vars.yml file for a supplementary host to configure a dedicated Valkey instance. This example sets up a 'mash-vikunja-valkey' instance and specifies prefixes for service names and directories. ```yaml # This is vars.yml for the supplementary host of Vikunja. --- ######################################################################## # # # Playbook # # # ######################################################################## # Put a strong secret below, generated with `pwgen -s 64 1` or in another way mash_playbook_generic_secret_key: '' # Override service names and directory path prefixes mash_playbook_service_identifier_prefix: 'mash-vikunja-' mash_playbook_service_base_directory_name_prefix: 'vikunja-' ######################################################################## # # # /Playbook # # # ######################################################################## ######################################################################## # # # valkey # # # ######################################################################## valkey_enabled: true ######################################################################## # # # /valkey # # # ######################################################################## ``` -------------------------------- ### Adjust Nextcloud Configuration and Install Apps Source: https://context7.com/mother-of-all-self-hosting/mash-playbook/llms.txt Perform post-installation adjustments to Nextcloud configuration, set up LDAP integration with LLDAP, and install specific Nextcloud apps like Collabora. ```bash # After installation, adjust Nextcloud configuration just run-tags adjust-nextcloud-config # Configure LDAP with LLDAP just run-tags set-ldap-config-nextcloud -e agent_password=LDAP_BIND_PASSWORD # Install Collabora integration just run-tags install-nextcloud-app-collabora ``` -------------------------------- ### Enable Single KeyDB Instance Source: https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/services/keydb.md Add this configuration to your `vars.yml` file to enable and host a single instance of the KeyDB service. Re-run the installation process after applying these changes. ```yaml ######################################################################## # # # keydb # # # ######################################################################## keydb_enabled: true ######################################################################## # # # /keydb # # # ######################################################################## ``` -------------------------------- ### Configure Inventory Hosts File Source: https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/services/searxng.md Add a supplementary host entry for SearXNG's Valkey instance in the `inventory/hosts` file. Replace placeholders with your actual hostname and server IP address. ```ini [mash_servers] [mash_servers:children] mash_example_com [mash_example_com] mash.example.com ansible_host=YOUR_SERVER_IP_ADDRESS_HERE mash.example.com-searxng-deps ansible_host=YOUR_SERVER_IP_ADDRESS_HERE … ``` -------------------------------- ### Enable ChiefOnboarding Service Source: https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/services/chiefonboarding.md Add this configuration to your `vars.yml` file to enable the ChiefOnboarding service and set its hostname. Re-run the installation process after updating the configuration. ```yaml ######################################################################## # # # chiefonboarding # # # ######################################################################## chiefonboarding_enabled: true chiefonboarding_hostname: chiefonboarding.example.com ######################################################################## # # # /chiefonboarding # # # ######################################################################## ``` -------------------------------- ### Configure Environment Variables for Automatic Installation Source: https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/services/answer.md Set these variables in your `vars.yml` file to automatically configure the administrator and contact details during installation. Ensure you replace placeholder values with your actual information. ```yaml answer_environment_variables_admin_name: ADMIN_NAME_HERE answer_environment_variables_admin_email: ADMIN_EMAIL_ADDRESS_HERE answer_environment_variables_admin_password: ADMIN_PASSWORD_HERE answer_environment_variables_contact_email: CONTACT_EMAIL_ADDRESS_HERE ``` -------------------------------- ### Re-run Playbook Setup and Restart Services Source: https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/maintenance-upgrading-services.md After updating Ansible roles, execute this command to re-run the playbook setup and restart all services. This ensures all services are configured with the latest role versions. ```sh just install-all ``` -------------------------------- ### Enable CryptPad Service Configuration Source: https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/services/cryptpad.md Add this configuration to your vars.yml file to enable CryptPad and set its main and sandbox hostnames. Re-run the installation process after updating this file. ```yaml ######################################################################## # # # cryptpad # # # ######################################################################## cryptpad_enabled: true cryptpad_main_hostname: cryptpad.example.com cryptpad_sandbox_hostname: sandbox.example.com ######################################################################## # # # /cryptpad # # # ######################################################################## ``` -------------------------------- ### Enable Jitsi Service Configuration Source: https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/services/jitsi.md Add this configuration to your `vars.yml` file to enable the Jitsi service and set its hostname and path prefix. Re-run the installation process after applying these changes. ```yaml ######################################################################## # # # jitsi # # # ######################################################################## jitsi_enabled: true jitsi_hostname: mash.example.com jitsi_path_prefix: /jitsi ######################################################################## # # # /jitsi # # # ######################################################################## ``` -------------------------------- ### Force Unconditional Restarts During Installation Source: https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/just.md Use this command to override the default conditional restart behavior and force all services to restart during installation, even if no changes were detected. This is useful for ensuring a clean state. ```bash just install-all --extra-vars='devture_systemd_service_manager_conditional_restart_enabled=false' ``` -------------------------------- ### Create First The Lounge User Source: https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/services/thelounge.md Run this command after installation to create an initial user for your The Lounge instance. Replace `USERNAME_HERE` and `PASSWORD_HERE` with your desired credentials. ```sh ansible-playbook -i inventory/hosts setup.yml --tags=add-thelounge -e username=USERNAME_HERE password=PASSWORD_HERE ``` -------------------------------- ### Install Ansible via Pip Source: https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/ansible.md If your distribution's package manager provides an outdated Ansible version, you can remove it and install via pip. Note that the 'ansible-playbook' binary might be in a non-standard location. ```bash pip install ansible ``` -------------------------------- ### Grafana SSO Configuration Example Source: https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/services/grafana.md Example configuration snippet for Grafana Single-Sign-On (SSO) using OAuth. This requires setting up an Identity Provider (IdP) like authentik and adjusting the `vars.yml` file. ```yaml # To make Grafana honor the expiration time of JWT tokens, enable this experimental feature below. ``` -------------------------------- ### Enable DocuSeal Service Configuration Source: https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/services/docuseal.md Add this configuration to your `vars.yml` file to enable the DocuSeal service and set its hostname. Re-run the installation process after applying these changes. ```yaml ######################################################################## # # # docuseal # # # ######################################################################## docuseal_enabled: true docuseal_hostname: docuseal.example.com ######################################################################## # # # /docuseal # # # ######################################################################## ``` -------------------------------- ### Configure PeerTube Service Prefixes and Valkey Source: https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/running-multiple-instances.md This configuration is for the supplementary host's `vars.yml` file for PeerTube. It defines service prefixes and enables Valkey. ```yaml # This is vars.yml for the supplementary host of PeerTube. --- ######################################################################## # # # Playbook # # # ######################################################################## # Put a strong secret below, generated with `pwgen -s 64 1` or in another way mash_playbook_generic_secret_key: '' # Override service names and directory path prefixes mash_playbook_service_identifier_prefix: 'mash-peertube-' mash_playbook_service_base_directory_name_prefix: 'peertube-' ######################################################################## # # # /Playbook # # # ######################################################################## ######################################################################## # # # valkey # # # ######################################################################## valkey_enabled: true ######################################################################## # # # /valkey # # # ######################################################################## ``` -------------------------------- ### Set Custom IPv4/IPv6 CIDRs during Initial Setup Source: https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/services/wg-easy.md Define custom IPv4 and IPv6 CIDRs for wg-easy during initial unattended setup using `wg_easy_environment_variables_additional_variable_init_ipv4_cidr` and `wg_easy_environment_variables_additional_variable_init_ipv6_cidr`. Post-setup changes are managed via the Admin Panel, requiring a service restart. ```yaml wg_easy_environment_variables_additional_variable_init_ipv4_cidr: "10.8.0.0/24" # This looks like the documentation-reserved IPv6 CIDR value, because it is. Read why below. wg_easy_environment_variables_additional_variable_init_ipv6_cidr: "2001:db8::/32" ``` -------------------------------- ### Enable Valkey Single Instance Source: https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/services/valkey.md Add this configuration to your vars.yml file to enable and host a single instance of the Valkey service. Re-run the installation process after adding this. ```yaml ######################################################################## # # # valkey # # # ######################################################################## valkey_enabled: true ######################################################################## # # # /valkey # # # ######################################################################## ``` -------------------------------- ### Delete MASH Directory Source: https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/uninstalling.md Removes the entire MASH installation directory from the filesystem. ```bash rm -rf /mash ``` -------------------------------- ### Enable LLDAP Service Source: https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/services/lldap.md Add this configuration to your `vars.yml` file to enable the LLDAP service and set its hostname. Re-run the installation process after applying these changes. ```yaml ######################################################################## # # # lldap # # # ######################################################################## lldap_enabled: true lldap_hostname: lldap.example.com ######################################################################## # # # /lldap # # # ######################################################################## ```