| # ============================================================ | |
| # setup_storage.sh β Create /data directory structure | |
| # All state lives here so it survives HF Space restarts | |
| # ============================================================ | |
| set -euo pipefail | |
| log() { echo "[STORAGE] $*"; } | |
| # ββ Directory layout βββββββββββββββββββββββββββββββββββββββββ | |
| declare -a DIRS=( | |
| /data/home # ubuntu user home (replaces /home/ubuntu) | |
| /data/home/.config # XDG config | |
| /data/home/.local/share | |
| /data/home/Desktop | |
| /data/home/Downloads | |
| /data/home/.mozilla/firefox | |
| /data/workspace # user project files | |
| /data/vnc # VNC server state + xstartup | |
| /data/firefox # persistent Firefox profile | |
| /data/xfce # XFCE session config | |
| /data/downloads # download folder | |
| /data/logs # all service logs | |
| /data/cache # app cache | |
| ) | |
| for dir in "${DIRS[@]}"; do | |
| if [ ! -d "$dir" ]; then | |
| mkdir -p "$dir" | |
| log "Created $dir" | |
| fi | |
| done | |
| # ββ Permissions ββββββββββββββββββββββββββββββββββββββββββββββ | |
| chown -R ubuntu:ubuntu /data | |
| chmod 755 /data | |
| chmod 700 /data/vnc # VNC passwd must be protected | |
| log "Persistent storage ready." | |