mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2026-11-06 19:01:54 +00:00
The marker discovery matched any .dr-drill-marker under files/, so SRC_REL could resolve to a parent tree and step 8 restored the wrong subtree into the live export as root, leaving n8n_data owned root:root and n8n (uid 1000) crash-looping on EACCES. Scope both repo layouts to the primary volume's own marker and declare uid/gid 1000 on the n8n data volume so nfs_prep enforces ownership on every deploy instead of relying on Docker's copy-on-first-use. The drill also stacked four copies of the backup tree on shared space (live export, pulled tree, fully-allocated LUKS image, final restore into a tmpfs /tmp) and ENOSPCed on large apps. Restore to /var/tmp, drop the pulled tree before the device recover, make the loop image sparse and free it after the marker verify, and stage only the volume generation instead of the whole machine tree. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
20 lines
443 B
YAML
20 lines
443 B
YAML
---
|
|
data:
|
|
type: volume
|
|
name: n8n_data
|
|
nfs:
|
|
uid: "1000"
|
|
gid: "1000"
|
|
mode: "0770"
|
|
mounts:
|
|
- service: n8n
|
|
target: /home/node/.n8n
|
|
hooks:
|
|
type: config
|
|
source: "{{ [lookup('container', 'web-app-n8n', 'directories.instance'), 'hooks.js'] | path_join }}"
|
|
mode: "0444"
|
|
mounts:
|
|
- service: n8n
|
|
target: /home/node/hooks.js
|
|
when: "{{ lookup('config', 'web-app-n8n', 'services.sso.enabled') | bool }}"
|