[wanderer] refactor (#16448)

* refactor wanderer script

* fix script error

* refactor meilisearch bind

* delete .meilisearch versioning

* delete meilisearch on migration

* delete /usr/bin/meilisearch

* meilisearch migration fix

* simplify meilisearch check

* fix migration check

* next try

* fix meilisearch migration

* try fixing meilisearch error

* meilisearch binary missing

* edit setup_meilisearch

* delete old update script for meiliesearch

* refactor script

* fix services

* start wanderer-web after migration
This commit is contained in:
Johann Grobe
2026-08-13 10:00:20 +02:00
committed by GitHub
parent 0456f7642c
commit f1386ecbae
2 changed files with 127 additions and 43 deletions
+96 -15
View File
@@ -25,17 +25,111 @@ function update_script() {
check_container_storage
check_container_resources
if [[ ! -f /opt/wanderer/start.sh ]]; then
if [[ ! -d /opt/wanderer/source ]]; then
msg_error "No wanderer Installation Found!"
exit
fi
if [[ ! -f /etc/systemd/system/meilisearch.service ]]; then
msg_info "Migrating MeiliSearch"
systemctl stop wanderer-web
rm -rf /opt/wanderer/source/search
MEILI_MASTER_KEY_VAL=$(grep -oP '^MEILI_MASTER_KEY=\K.*' /opt/wanderer/.env)
cat <<EOF >/etc/meilisearch.toml
env = "production"
master_key = "$MEILI_MASTER_KEY_VAL"
db_path = "/opt/wanderer/data/meili_data"
dump_dir = "/var/lib/meilisearch/dumps"
snapshot_dir = "/var/lib/meilisearch/snapshots"
no_analytics = true
http_addr = "127.0.0.1:7700"
EOF
mkdir -p /var/lib/meilisearch/dumps /var/lib/meilisearch/snapshots
cat <<EOF >/etc/systemd/system/meilisearch.service
[Unit]
Description=Meilisearch
After=network.target
[Service]
ExecStart=/usr/bin/meilisearch --config-file-path /etc/meilisearch.toml
Restart=always
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable -q --now meilisearch
sed -i \
-e "s|^MEILI_HTTP_ADDR=.*|MEILI_HTTP_ADDR=127.0.0.1:7700|" \
-e "s|^MEILI_URL=.*|MEILI_URL=http://127.0.0.1:7700|" \
/opt/wanderer/.env
msg_ok "Migrated Meilisearch"
fi
setup_meilisearch
if [[ -f /opt/wanderer/start.sh ]]; then
msg_info "Migrating wanderer services"
systemctl stop wanderer-web
rm -f /opt/wanderer/start.sh
rm -rf /opt/wanderer/source/search
cat <<EOF >/etc/systemd/system/wanderer-pocketbase.service
[Unit]
Description=wanderer PocketBase
Wants=network.target
After=network.target
PartOf=wanderer-web.service
StartLimitIntervalSec=10
StartLimitBurst=5
[Service]
Type=simple
WorkingDirectory=/opt/wanderer/source/db
EnvironmentFile=/opt/wanderer/.env
ExecStart=/opt/wanderer/source/db/pocketbase serve --http=\${PB_URL} --dir=\${PB_DB_LOCATION}
Restart=always
RestartSec=1
[Install]
WantedBy=multi-user.target
EOF
cat <<EOF >/etc/systemd/system/wanderer-web.service
[Unit]
Description=wanderer
Wants=network.target meilisearch.service wanderer-pocketbase.service
After=network.target meilisearch.service wanderer-pocketbase.service
StartLimitIntervalSec=10
StartLimitBurst=5
[Service]
Type=simple
WorkingDirectory=/opt/wanderer/source/web
EnvironmentFile=/opt/wanderer/.env
ExecStart=/usr/bin/node build
Restart=always
RestartSec=1
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable -q wanderer-pocketbase
systemctl start wanderer-web
msg_ok "Migrated wanderer services"
fi
if check_for_gh_release "wanderer" "open-wanderer/wanderer"; then
msg_info "Stopping service"
systemctl stop wanderer-web
msg_ok "Stopped service"
create_backup /opt/wanderer/source/search
create_backup /opt/wanderer/source
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "wanderer" "open-wanderer/wanderer" "tarball" "latest" "/opt/wanderer/source"
restore_backup
@@ -60,19 +154,6 @@ function update_script() {
msg_ok "Started service"
msg_ok "Update Successful"
fi
if check_for_gh_release "meilisearch" "meilisearch/meilisearch"; then
msg_info "Stopping service"
systemctl stop wanderer-web
msg_ok "Stopped service"
fetch_and_deploy_gh_release "meilisearch" "meilisearch/meilisearch" "binary" "latest" "/opt/wanderer/source/search"
grep -q -- '--upgrade-db' /opt/wanderer/start.sh || sed -i 's|meilisearch --master-key|meilisearch --upgrade-db --master-key|' /opt/wanderer/start.sh
msg_info "Starting service"
systemctl start wanderer-web
msg_ok "Started service"
msg_ok "Update Successful"
fi
exit
}