Skip to content

setup_meilisearch: generate a 32-byte master key - #20

Merged
MickLesk merged 1 commit into
mainfrom
fix/meilisearch-key-length
Sep 2, 2026
Merged

setup_meilisearch: generate a 32-byte master key#20
MickLesk merged 1 commit into
mainfrom
fix/meilisearch-key-length

Conversation

@MickLesk

@MickLesk MickLesk commented Sep 2, 2026

Copy link
Copy Markdown
Member

✍️ Description

openssl rand -base64 12 yields 16 characters. MeiliSearch itself only asks for 16 bytes, but Wanderer's PocketBase fork refuses to start below 32 and crash-loops with MEILI_MASTER_KEY not set or is shorter than 32 bytes.

Raised to -base64 32 (44 characters) at the source rather than overridden per script: a longer key is valid for all 11 callers (bar-assistant, karakeep, librechat, meilisearch, open-archiver, wanderer).

The other half of the report — PocketBase built with Go 1.27 instead of the 1.25.0 it pins — is fixed in ProxmoxVE#16974.

🔗 Related Issue

Fixes community-scripts/ProxmoxVE#16909

✅ Prerequisites (X in brackets)

  • Self-review completed – Code follows project standards.
  • Tested thoroughly – not run on a live container; the reporter verified a 64-hex key resolves the crash-loop.
  • No security risks – No hardcoded secrets, unnecessary privilege escalations, or permission issues.
  • API.txt regenerated – n/a, no signature changed and this repo has no API.txt.

🤖 AI Assistance (X in brackets)

If you used an AI tool (GitHub Copilot, Claude, ChatGPT, etc.) to write or generate any code in this PR, you must confirm compliance below.
Select exactly one option.

  • No AI used – Code was written without AI assistance.
  • AI was used – The output has been reviewed and corrected, and I take responsibility for it matching this repo's conventions.

🛠️ Type of Change (X in brackets)

  • 🐞 Bug fix – Resolves an issue without breaking functionality.
  • New feature – Adds new, non-breaking functionality.
  • 💥 Breaking change – Alters existing behavior in a way that may require updates in every downstream script.
  • 🔧 Refactoring / Code Cleanup – Improves readability or maintainability without changing functionality.
  • 📝 Documentation update – Changes to README, docs/, CONTRIBUTING.md, or other docs.

base64 12 yields 16 characters. MeiliSearch itself only asks for 16 bytes,
but Wanderer's PocketBase fork refuses to start below 32 and crash-loops with
"MEILI_MASTER_KEY not set or is shorter than 32 bytes".

A longer key is valid for all 11 callers, so this is raised at the source
rather than overridden per script.

Refs community-scripts/ProxmoxVE#16909
@github-actions

github-actions Bot commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

Try this branch

The engine and the scripts resolve independently, so a production script can
be run against the engine from this PR by setting one variable:

COMMUNITY_SCRIPTS_CORE_URL=https://raw.githubusercontent.com/community-scripts/core/fix/meilisearch-key-length \
bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/main/ct/debian.sh)"

Swap ct/debian.sh for whatever exercises the change.

Run a script from a fork as well
curl -fsSL https://raw.githubusercontent.com/community-scripts/core/fix/meilisearch-key-length/tools/run.sh |
  bash -s -- https://raw.githubusercontent.com/YOU/ProxmoxVED/your-branch ct/debian.sh \
             https://raw.githubusercontent.com/community-scripts/core/fix/meilisearch-key-length

Note that run.sh is reached through a pipe, so the script it starts inherits
an exhausted stdin. Whiptail is fine — it opens /dev/tty — but a plain read
would see EOF. The single-variable form above does not have that problem.

Useful flags while testing

dev_mode=net logs every engine fetch with status and duration, which is the
quickest way to confirm the branch is really being used. dev_mode=keep stops a
failed build from deleting the container along with the evidence.

@MickLesk
MickLesk merged commit 00ff64b into main Sep 2, 2026
11 checks passed
@github-actions
github-actions Bot deleted the fix/meilisearch-key-length branch September 3, 2026 07:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Wanderer LXC: PocketBase crash-loops after install (Go 1.27 build)

1 participant