Files
ProxmoxVE/install/archivebox-install.sh
T
MickLesk dd38ed34e0 Let ArchiveBox 0.9 actually crawl, and serve its snapshots
Every extractor binary 0.9 cannot find aborts the crawl runner, and abx-plugins
keeps adding new ones, so a fixed apt list always falls behind while the service
user cannot run apt. archivebox install now runs as root with the service user's
home, the way upstream's own package does, and resolves every system dependency
itself; mercury stays disabled because npm refuses its git dependency. Snapshot
iframes are built from BASE_URL, so the update sets it when missing or when it is
a stale IP, and migrated 0.7 collections get their snapshots re-indexed.
2026-09-28 09:25:34 +02:00

76 lines
2.4 KiB
Bash

#!/usr/bin/env bash
# Copyright (c) 2021-2026 tteck
# Author: tteck
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://archivebox.io/ | Github: https://github.com/ArchiveBox/ArchiveBox
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
msg_info "Installing Dependencies"
$STD apt-get install -y \
git \
procps \
dnsutils \
python3.13
msg_ok "Installed Dependencies"
setup_uv
msg_info "Installing ArchiveBox"
mkdir -p /opt/archivebox/data
$STD adduser --system --shell /bin/bash --gecos 'Archive Box User' --group --disabled-password --home /home/archivebox archivebox
$STD uv venv --python /usr/bin/python3.13 /opt/archivebox/venv
$STD uv pip install --python /opt/archivebox/venv/bin/python archivebox
ln -sf /opt/archivebox/venv/bin/archivebox /usr/local/bin/archivebox
mkdir -p /home/archivebox/.config
chown -R archivebox:archivebox /opt/archivebox /home/archivebox
msg_ok "Installed ArchiveBox"
msg_info "Initializing ArchiveBox"
cd /opt/archivebox/data
$STD sudo -u archivebox /opt/archivebox/venv/bin/archivebox init
$STD sudo -u archivebox env \
DJANGO_SUPERUSER_USERNAME=archivebox \
DJANGO_SUPERUSER_EMAIL=archivebox@archivebox.local \
DJANGO_SUPERUSER_PASSWORD=community-scripts.org \
/opt/archivebox/venv/bin/archivebox manage createsuperuser --noinput
$STD sudo -u archivebox /opt/archivebox/venv/bin/archivebox config --set "BASE_URL=http://$(get_ip):5797" MERCURY_ENABLED=False
msg_ok "Initialized ArchiveBox"
msg_info "Installing Extractors (Patience)"
AB_RUNTIME="/tmp/archivebox-runtime-$(id -u archivebox)"
install -d -m 700 -o archivebox -g archivebox "$AB_RUNTIME"
$STD env HOME=/home/archivebox USER=archivebox LOGNAME=archivebox XDG_CONFIG_HOME=/home/archivebox/.config XDG_RUNTIME_DIR="$AB_RUNTIME" \
/opt/archivebox/venv/bin/archivebox install
msg_ok "Installed Extractors"
msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/archivebox.service
[Unit]
Description=ArchiveBox Server
After=network.target
[Service]
User=archivebox
WorkingDirectory=/opt/archivebox/data
ExecStartPre=/opt/archivebox/venv/bin/archivebox init
ExecStart=/opt/archivebox/venv/bin/archivebox server 0.0.0.0:5797
Restart=always
[Install]
WantedBy=multi-user.target
EOF
systemctl enable -q --now archivebox
msg_ok "Created Service"
motd_ssh
customize
cleanup_lxc