Vexta/contrib/vexta/install-node.sh

100 lines
2.5 KiB
Shell
Executable file

#!/usr/bin/env bash
set -euo pipefail
if [ "${EUID}" -eq 0 ]; then
echo "Do not run this entire script as root."
echo "Run it as a normal user with sudo access."
exit 1
fi
PROJECT_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
JOBS="${VEXTA_BUILD_JOBS:-$(nproc)}"
echo "========================================"
echo " Vexta Core node installer"
echo "========================================"
echo "Project root: $PROJECT_ROOT"
echo "Build jobs: $JOBS"
echo
if ! command -v sudo >/dev/null 2>&1; then
echo "ERROR: sudo is required."
exit 1
fi
if ! command -v apt-get >/dev/null 2>&1; then
echo "ERROR: This installer currently supports Ubuntu/Debian systems only."
exit 1
fi
echo "Installing build dependencies..."
sudo apt-get update
sudo DEBIAN_FRONTEND=noninteractive apt-get install -y \
build-essential \
automake \
autotools-dev \
autoconf \
libtool \
pkg-config \
python3 \
git \
curl \
ca-certificates \
libevent-dev \
libboost-system-dev \
libboost-filesystem-dev \
libboost-test-dev \
libboost-thread-dev \
libsqlite3-dev \
libzmq3-dev
cd "$PROJECT_ROOT"
if [ ! -x ./configure ]; then
echo "Generating configure script..."
./autogen.sh
fi
echo "Configuring Vexta Core..."
./configure \
--without-gui \
--disable-tests \
--disable-bench \
--with-incompatible-bdb
echo "Building Vexta Core..."
make -j"$JOBS"
echo "Installing binaries into /usr/local/bin..."
sudo install -m 0755 src/vextad /usr/local/bin/vextad
sudo install -m 0755 src/vexta-cli /usr/local/bin/vexta-cli
sudo install -m 0755 src/vexta-tx /usr/local/bin/vexta-tx
sudo install -m 0755 src/vexta-util /usr/local/bin/vexta-util
sudo install -m 0755 src/vexta-wallet /usr/local/bin/vexta-wallet
echo "Installing systemd service template..."
sudo install -m 0644 \
"$PROJECT_ROOT/contrib/vexta/vextad@.service" \
/etc/systemd/system/vextad@.service
sudo systemctl daemon-reload
echo
echo "Installed versions:"
vextad --version | head -1
vexta-cli --version | head -1
echo
echo "Vexta Core installation completed."
echo "Next steps:"
echo " mkdir -p \$HOME/.vexta"
echo " cp contrib/vexta/vexta-mainnet.conf \$HOME/.vexta/vexta.conf"
echo " nano \$HOME/.vexta/vexta.conf"
echo
echo "Start Vexta manually:"
echo " vextad -daemon"
echo
echo "Or enable the systemd service:"
echo " sudo systemctl enable vextad@\$(whoami)"
echo " sudo systemctl start vextad@\$(whoami)"
echo " sudo systemctl status vextad@\$(whoami)"