- Includes the pre-requisites listed here
- We also install a few other packages that are needed: crontab, python3-venv
- Does NOT include mariadb to allow use with externally hosted DB
- Does NOT set up frappe-bench to allow installation of a version of your choice.
incus profile create frappe-base
# To restore backup
incus profile edit frappe-base < frappe-base.yaml
- Builds on frappe-base
- Sets up separate zfs disk for /home to allow easier backups
- Sets up a
frappe
user with passwordles sudo
- Sets up frappe version-15 (current stable)
incus profile create frappe
# To restore backup
incus profile edit frappe < frappe.yaml
- Builds on frappe
- Sets up separate zfs disk for /var/lib/mysql to allow easier backups for MariaDB
- Sets up mariadb server and client
- Does NOT set a password for MariaDB root user - set one manually with
mysql_secure_installation
incus profile create frappe-mariadb
# To restore backup
incus profile edit frappe-mariadb < frappe-mariadb-nozfs.yaml
./launch_frappe-mariadb.sh
./attach_frappe-mariadb.sh
cloud-init status --long
# Set root password for mariadb:
# Ensure you answer No when prompted for Unix socket auth
mysql_secure_installation
- Builds on frappe-mariadb
- Sets up supervisor
- Sets up nginx and DNS multitenancy
- Does NOT setup SSL via Let's Encrypt.
- You should use Caddy or Traefik on the host to set up SSL and reverse proxy requests to nginx inside the container.
incus profile create frappe-full
# To restore backup
incus profile edit frappe-full < frappe-full.yaml
./launch_frappe-full.sh
mysql_secure_installation
- https://github.com/lxc/incus/blob/main/doc/cloud-init.md#yaml-format-for-cloud-init-configuration
- https://blog.simos.info/how-to-customize-incus-containers-with-cloud-init/
- https://cloudinit.readthedocs.io/en/latest/reference/examples.html
- https://frappeframework.com/docs/user/en/installation