Single Node Installs: Storage and Backup Guidelines
General storage recommentations for single-node instances
/data is where the standalone deployment installs PostgreSQL data and Element Deployment data. It should be a distinct mount point.
Ideally this would have an independent lifecycle from the server itself
Ideally this would be easily snapshot-able, either at a filesystem level or with the backing storage
Adminbot storage:
Files stored with uid=10006/gid=10006, default config uses /data/element-deployment/adminbot for single-node instances
Storage space required is proportional to the number of user devices on the server. 1GB is sufficient for most servers
Auditbot storage:
Files stored with uid=10006/gid=10006, default config uses /data/element-deployment/auditbot for single-node instances
Storage space required is proportional to the number of events tracked.
Synapse storage:
Media:
File stored with uid=10991/gid=10991, default config uses /data/element-deployment/synapse for single-node instances
Storage space required grows with the number and size of uploaded media. For more information, see ESS Sizing
Postgres (in-cluster) storage:
Files stored with uid=999/gid=999, default config uses /data/postgres for single-node instances
Backup Guidance:
Adminbot:
Backups should be made by taking a snapshot of the PV (ideally) or rsyncing the backing directory to backup storage
Auditbot:
Backups should be made by taking a snapshot of the PV (ideally) or rsyncing the backing directory to backup storage
Synapse Media:
Backups should be made by taking a snapshot of the PV (ideally) or rsyncing the backing directory to backup storage
Postgres (in-cluster):
Backups should be made by kubectl -n element-onprem exec -it postgres-synapse-0 -- sh -c 'pg_dump -U $POSTGRES_USER $POSTGRES_DB' > synapse_postgres_backup_$(date +%Y%m%d-%H%M%S).sql
Postgres (external):
Backup procedures as per your DBA
Configuration:
Please ensure that your entire configuration directory (that contains at least parameters.yml & secrets.yml but may also include other sub-directories & configuration files) is regularly backed up
The suggested configuration path in Element's documentation is ~/.element-onpremise-config but could be anything. It is whatever directory you used with the installer.