#!/usr/bin/env bash set -euo pipefail SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" # shellcheck source=lib.sh . "${SCRIPT_DIR}/lib.sh" qipai_init_layout() { qipai_require_root_for_write local dirs=( "${APP_ROOT}" "${APP_ROOT}/qipai-repo" "${APP_ROOT}/qipai-backend" "${APP_ROOT}/qipai-admin" "${APP_ROOT}/qipai-miniapp" "${APP_ROOT}/releases" "${APP_ROOT}/backups/mysql" "${APP_ROOT}/backups/emqx" "${APP_ROOT}/backups/files" "${APP_ROOT}/logs" "${APP_ROOT}/nginx" "${APP_ROOT}/redis-reserved" "${APP_ROOT}/run" ) for dir in "${dirs[@]}"; do mkdir -p "$dir" qipai_pass "directory exists: $dir" done if id qipai >/dev/null 2>&1; then qipai_pass "user qipai exists" else qipai_warn "user qipai does not exist; create manually before production deployment" fi if id git >/dev/null 2>&1; then qipai_pass "user git exists" else qipai_warn "user git does not exist; required for native Gitea service" fi cat >"${APP_ROOT}/run/layout.json" <