mirror of
https://github.com/AmruthPillai/Reactive-Resume.git
synced 2026-08-25 07:42:20 +10:00
fix: resolve storage healthcheck path via LOCAL_STORAGE_PATH env var (#3004)
* fix: resolve local data directory to /app/data in production Docker In the official Docker image, cwd is /app/apps/web (set via WORKDIR), but the data volume is mounted at /app/data. Without pnpm-workspace.yaml present in the runtime image, findWorkspaceRoot() returns null, so getLocalDataDirectory() fell back to <cwd>/data = /app/apps/web/data, which the node user has no permission to create. This caused the storage healthcheck to fail with EACCES. Add a production fallback: when cwd ends in apps/web, resolve the data directory to two levels up (matching /app/data in the official image). Re-resolves #2990. https://claude.ai/code/session_015pSTtukxf7mFTty2Y6PHZf * fix: replace apps/web heuristic with LOCAL_STORAGE_PATH env var The previous fix special-cased a cwd ending in apps/web to land on /app/data, but the heuristic could false-positive on any path with that suffix and was fragile to Dockerfile changes. pnpm-workspace.yaml is never copied into the runtime image, so the workspace-root walk was also dead code in production. Replace the heuristic with an explicit LOCAL_STORAGE_PATH env var: - Set LOCAL_STORAGE_PATH=/app/data in the Dockerfile (single source of truth). - Add LOCAL_STORAGE_PATH to the env schema; storage and statistics services pass it through to getLocalDataDirectory. - getLocalDataDirectory now uses the override when set, else workspace root (dev), else cwd/data. - New Nitro plugin validates the resolved local data directory at startup and refuses to boot with a clear error if it isn't writable, surfacing permission issues immediately instead of at first upload/healthcheck. - Document the new variable in .env.example and the Docker self-hosting docs. https://claude.ai/code/session_015pSTtukxf7mFTty2Y6PHZf * fix: address review feedback on storage path handling - apps/web/plugins/2.storage.ts: use the default-import style for node:fs/promises (matches the rest of the repo, sidesteps any named-export concerns for fs.constants). - packages/env/src/server.ts: reject relative LOCAL_STORAGE_PATH values via a zod refinement. Relative paths would be resolved against cwd, which differs between dev and Docker — exactly the same surprise the original bug had. Failing fast at config validation time gives a clear error before the server boots. https://claude.ai/code/session_015pSTtukxf7mFTty2Y6PHZf * fix: update data volume configuration in Docker Compose and enhance Nitro plugin * fix: remove "Can I customize the templates?" FAQ entry from multiple language files --------- Co-authored-by: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -462,10 +462,6 @@ msgstr "箇条書きリスト"
|
||||
msgid "By the community, for the community."
|
||||
msgstr "コミュニティによる、コミュニティのためのプロジェクト。"
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Can I customize the templates?"
|
||||
msgstr "テンプレートはカスタマイズできますか?"
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Can I export my resume to PDF?"
|
||||
msgstr "履歴書を PDF にエクスポートできますか?"
|
||||
@@ -3385,10 +3381,6 @@ msgstr "X(ツイッター)"
|
||||
msgid "Yes, Reactive Resume is available in multiple languages. You can choose your preferred language in the settings page, or using the language switcher in the top right corner. If you don't see your language, or you would like to improve the existing translations, you can <0>contribute to the translations on Crowdin<1> (opens in new tab)</1></0>."
|
||||
msgstr "はい。Reactive Resume は複数の言語に対応しています。設定ページ、または右上の言語切り替えからお好みの言語を選択できます。もしご希望の言語が見つからない場合や、既存の翻訳を改善したい場合は、<0>Crowdin で翻訳に貢献<1>(新しいタブで開きます)</1></0>できます。"
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Yes! Every template is fully customizable. You can change colors, fonts, spacing, and even write custom CSS for complete control over your resume's appearance."
|
||||
msgstr "はい。すべてのテンプレートは完全にカスタマイズ可能です。色やフォント、余白を変更できるほか、カスタム CSS を記述して履歴書の見た目を完全にコントロールできます。"
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Yes! Reactive Resume is completely free to use, with no hidden costs, premium tiers, or subscription fees. It's open-source and will always remain free."
|
||||
msgstr "はい。Reactive Resume は完全に無料で、隠れたコストやプレミアムプラン、サブスクリプション料金は一切ありません。オープンソースであり、今後もずっと無料で提供されます。"
|
||||
@@ -3495,4 +3487,3 @@ msgstr "ズームアウト"
|
||||
#: src/libs/locale.ts
|
||||
msgid "Zulu"
|
||||
msgstr "ズールー語"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user