- Updated BUILD-GUIDE.md to streamline instructions for building the Archipelago Auto-Installer ISO, including prerequisites and post-installation steps. - Added detailed sections on capturing the live server state and building from source. - Enhanced Docker and Podman integration in build scripts for improved backend and web UI capture. - Introduced new app metadata for "IndeedHub" in the Docker package scanner and updated UI components for better installation progress tracking. - Improved styling and functionality in the Bitcoin UI for a more cohesive user experience.
123 lines
4.2 KiB
Bash
123 lines
4.2 KiB
Bash
#!/bin/bash
|
|
#
|
|
# Complete Bitcoin Knots Deployment for Archipelago
|
|
# This script deploys Bitcoin Knots with a working web UI
|
|
#
|
|
# For production/beta releases, this needs to be captured in the auto-installer
|
|
# or provided as a one-click install in the App Store
|
|
#
|
|
|
|
set -e
|
|
|
|
echo "╔════════════════════════════════════════════════════════════════╗"
|
|
echo "║ Deploying Bitcoin Knots with Web UI ║"
|
|
echo "╚════════════════════════════════════════════════════════════════╝"
|
|
echo ""
|
|
|
|
# Step 1: Create data directory
|
|
echo "📁 Creating Bitcoin data directory..."
|
|
sudo mkdir -p /var/lib/archipelago/bitcoin
|
|
echo " ✅ Directory created"
|
|
|
|
# Step 2: Deploy Bitcoin Knots node
|
|
echo ""
|
|
echo "₿ Deploying Bitcoin Knots node..."
|
|
sudo podman run -d \
|
|
--name bitcoin-knots \
|
|
--restart unless-stopped \
|
|
-p 8332:8332 \
|
|
-p 8333:8333 \
|
|
-v /var/lib/archipelago/bitcoin:/home/bitcoin/.bitcoin \
|
|
--label "com.archipelago.app=bitcoin-knots" \
|
|
--label "com.archipelago.title=Bitcoin Knots" \
|
|
--label "com.archipelago.version=28.1" \
|
|
--label "com.archipelago.category=bitcoin" \
|
|
--label "com.archipelago.description.short=Full Bitcoin node implementation" \
|
|
--label "com.archipelago.description.long=Bitcoin Knots is a derivative of Bitcoin Core with additional features and bug fixes. Maintain the full blockchain and validate all transactions." \
|
|
--label "com.archipelago.license=MIT" \
|
|
--label "com.archipelago.icon=/assets/img/app-icons/bitcoin-knots.webp" \
|
|
--label "com.archipelago.port=8332" \
|
|
--label "com.archipelago.repo=https://github.com/bitcoinknots/bitcoin" \
|
|
docker.io/bitcoinknots/bitcoin:latest \
|
|
-server=1 \
|
|
-txindex=1 \
|
|
-rpcallowip=0.0.0.0/0 \
|
|
-rpcbind=0.0.0.0:8332 \
|
|
-rpcuser=archipelago \
|
|
-rpcpassword=archipelago123 \
|
|
-dbcache=4096
|
|
|
|
echo " ✅ Bitcoin Knots node starting"
|
|
|
|
# Step 3: Build and deploy web UI
|
|
echo ""
|
|
echo "🌐 Building Bitcoin Knots web UI..."
|
|
|
|
# Create temporary build directory
|
|
BUILD_DIR="/tmp/bitcoin-ui-build"
|
|
rm -rf "$BUILD_DIR"
|
|
mkdir -p "$BUILD_DIR"
|
|
|
|
# Create Dockerfile
|
|
cat > "$BUILD_DIR/Dockerfile" << 'EOF'
|
|
FROM docker.io/library/nginx:alpine
|
|
|
|
# Copy the static UI
|
|
COPY index.html /usr/share/nginx/html/
|
|
|
|
# Create assets directories
|
|
RUN mkdir -p /usr/share/nginx/html/assets/img/app-icons && \
|
|
mkdir -p /usr/share/nginx/html/assets/img
|
|
|
|
EXPOSE 80
|
|
|
|
CMD ["nginx", "-g", "daemon off;"]
|
|
EOF
|
|
|
|
# Copy UI file from the project
|
|
# For beta: this needs to be included in the ISO or downloadable
|
|
cp /home/archipelago/archy/docker/bitcoin-ui/index.html "$BUILD_DIR/"
|
|
|
|
# Build the image
|
|
sudo podman build -t localhost/bitcoin-ui:latest "$BUILD_DIR"
|
|
|
|
# Deploy UI container
|
|
sudo podman run -d \
|
|
--name bitcoin-ui \
|
|
--restart unless-stopped \
|
|
-p 8334:80 \
|
|
--label "com.archipelago.app=bitcoin-ui" \
|
|
--label "com.archipelago.parent=bitcoin-knots" \
|
|
localhost/bitcoin-ui:latest
|
|
|
|
echo " ✅ Bitcoin UI deployed on port 8334"
|
|
|
|
# Cleanup
|
|
rm -rf "$BUILD_DIR"
|
|
|
|
# Step 4: Wait for backend to detect
|
|
echo ""
|
|
echo "⏳ Waiting for backend to detect containers..."
|
|
sleep 5
|
|
|
|
echo ""
|
|
echo "╔════════════════════════════════════════════════════════════════╗"
|
|
echo "║ ✅ BITCOIN KNOTS DEPLOYED! ║"
|
|
echo "╚════════════════════════════════════════════════════════════════╝"
|
|
echo ""
|
|
echo "📊 Status:"
|
|
sudo podman ps | grep bitcoin
|
|
echo ""
|
|
echo "🌐 Access:"
|
|
echo " • Web UI: http://YOUR-SERVER-IP:8334"
|
|
echo " • RPC: http://localhost:8332"
|
|
echo " • Network: Port 8333 (Bitcoin P2P)"
|
|
echo ""
|
|
echo "📝 RPC Credentials:"
|
|
echo " • User: archipelago"
|
|
echo " • Pass: archipelago123"
|
|
echo ""
|
|
echo "⏰ Blockchain sync will take several hours to days."
|
|
echo " Check progress: sudo podman logs -f bitcoin-knots"
|
|
echo ""
|