mirror of
https://github.com/community-scripts/ProxmoxVE.git
synced 2026-10-07 03:21:00 +02:00
Let ArchiveBox reach 0.9 instead of staying on 0.7.4
uv pip install --system targets the container's Python 3.11, and every ArchiveBox release from 0.9 on requires 3.13, so the resolver silently fell back to 0.7.4. The package now lives in its own 3.13 venv, with the interpreter outside root's home because ArchiveBox drops privileges while importing. The expect block is gone: init and createsuperuser both run unattended now, and the server moved to its new default port.
This commit is contained in:
+34
-7
@@ -32,6 +32,7 @@ function update_script() {
|
||||
fi
|
||||
|
||||
NODE_VERSION="22" NODE_MODULE="@postlight/parser@latest,single-file-cli@latest" setup_nodejs
|
||||
export UV_PYTHON_INSTALL_DIR="/opt/archivebox/python"
|
||||
PYTHON_VERSION="3.13" setup_uv
|
||||
|
||||
ensure_dependencies chromium
|
||||
@@ -40,15 +41,41 @@ function update_script() {
|
||||
systemctl stop archivebox
|
||||
msg_ok "Stopped Service"
|
||||
|
||||
msg_info "Upgrading Playwright"
|
||||
$STD uv pip install playwright --system --break-system-packages
|
||||
$STD playwright install-deps chromium
|
||||
msg_ok "Upgraded Playwright"
|
||||
# Earlier installs used the system interpreter, which caps ArchiveBox at 0.7.4.
|
||||
if [[ ! -x /opt/archivebox/venv/bin/archivebox ]]; then
|
||||
msg_info "Moving ArchiveBox to its own Python 3.13 environment"
|
||||
$STD uv venv --python 3.13 /opt/archivebox/venv
|
||||
# Keep whatever port this container already answers on, or a reverse proxy in front
|
||||
# of it would silently stop resolving.
|
||||
local port
|
||||
port="$(awk -F: '/^ExecStart=/ {print $NF}' /etc/systemd/system/archivebox.service 2>/dev/null)"
|
||||
[[ "$port" =~ ^[0-9]+$ ]] || port=5797
|
||||
cat <<EOF >/etc/systemd/system/archivebox.service
|
||||
[Unit]
|
||||
Description=ArchiveBox Server
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
User=archivebox
|
||||
WorkingDirectory=/opt/archivebox/data
|
||||
ExecStart=/opt/archivebox/venv/bin/archivebox server 0.0.0.0:${port}
|
||||
Restart=always
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
EOF
|
||||
systemctl daemon-reload
|
||||
msg_ok "Moved ArchiveBox to its own Python 3.13 environment (port ${port})"
|
||||
fi
|
||||
|
||||
msg_info "Updating ArchiveBox"
|
||||
$STD uv pip install --python /opt/archivebox/venv/bin/python --upgrade archivebox playwright
|
||||
$STD /opt/archivebox/venv/bin/playwright install-deps chromium
|
||||
chown -R archivebox:archivebox /opt/archivebox/python /opt/archivebox/venv
|
||||
# Without this a shell still reaches the old 0.7.4 entry point against a 0.9 collection.
|
||||
ln -sf /opt/archivebox/venv/bin/archivebox /usr/local/bin/archivebox
|
||||
cd /opt/archivebox/data
|
||||
$STD uv pip install --system --break-system-packages --upgrade --no-reinstall archivebox
|
||||
sudo -u archivebox archivebox init
|
||||
$STD sudo -u archivebox /opt/archivebox/venv/bin/archivebox init
|
||||
msg_ok "Updated ArchiveBox"
|
||||
|
||||
msg_info "Starting Service"
|
||||
@@ -65,4 +92,4 @@ description
|
||||
msg_ok "Completed successfully!\n"
|
||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||
echo -e "${INFO}${YW}Access it using the following URL:${CL}"
|
||||
echo -e "${GATEWAY}${BGN}http://${IP}:8000/admin/login${CL}"
|
||||
echo -e "${GATEWAY}${BGN}http://${IP}:5797/admin/login${CL}"
|
||||
|
||||
Reference in New Issue
Block a user