Deploy ArcBlock Blocklet Server in 10 minutes
This guide walks you through the fastest way to deploy ArcBlock Blocklet Server using ArcDeploy's cloud-init configuration on any supported cloud provider.
- Cloud provider account (Hetzner, AWS, GCP, DigitalOcean, Azure, etc.)
- SSH key pair (we'll help you create one if needed)
- 10 minutes of your time
If you don't have an SSH key pair, create one:
# Generate ED25519 key (recommended)
ssh-keygen -t ed25519 -C "your-email@example.com" -f ~/.ssh/arcblock_ed25519
# Or generate RSA key (alternative)
ssh-keygen -t rsa -b 4096 -C "your-email@example.com" -f ~/.ssh/arcblock_rsa
# Display your public key
cat ~/.ssh/arcblock_ed25519.pubCopy the entire output (starts with ssh-ed25519 or ssh-rsa).
# Download cloud-init configuration
curl -O https://raw.githubusercontent.com/Pocklabs/ArcDeploy/main/cloud-init.yaml
# Edit the configuration
nano cloud-init.yamlFind this line in the file:
ssh_authorized_keys:
- ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIReplaceWithYourActualEd25519PublicKey your-email@example.comReplace the placeholder with your actual SSH public key:
ssh_authorized_keys:
- ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIYourActualPublicKeyHere your-email@example.com- Login to Hetzner Cloud Console
- Create Server:
- Image: Ubuntu 22.04
- Type: CX31 or higher (4 vCPUs, 8GB RAM)
- Location: Choose nearest to you
- Add Cloud Config:
- Scroll to "Cloud config" section
- Paste the entire contents of your
cloud-init.yamlfile
- Create & Start
- Launch Instance in AWS Console
- Choose AMI: Ubuntu Server 22.04 LTS
- Instance Type: t3.large or higher
- Configure Security Group:
- SSH: Port 2222 (not 22!)
- HTTP: Port 8080
- HTTPS: Port 8443
- Advanced Details → User Data: Paste your
cloud-init.yamlcontent - Launch
- Create Instance in Compute Engine
- Machine Configuration: e2-standard-4 or higher
- Boot Disk: Ubuntu 22.04 LTS
- Management → Automation: Paste your
cloud-init.yamlcontent - Create Firewall Rules:
gcloud compute firewall-rules create arcblock-ssh --allow tcp:2222 gcloud compute firewall-rules create arcblock-web --allow tcp:8080,tcp:8443
- Create
- Create Droplet
- Choose Image: Ubuntu 22.04 LTS
- Size: 4GB RAM / 2 vCPUs or higher
- Advanced Options → User Data: Paste your
cloud-init.yamlcontent - Create Droplet
- Configure Firewall (in Networking):
- SSH: Port 2222
- HTTP: Port 8080
- HTTPS: Port 8443
- Create Virtual Machine in Azure Portal
- Basics:
- Image: Ubuntu Server 22.04 LTS
- Size: Standard_B4ms or larger
- Authentication: SSH public key
- Advanced → Custom Data: Paste your
cloud-init.yamlcontent - Create
- Configure Network Security Group for ports 2222, 8080, 8443
⏱️ Installation time: 5-10 minutes
The cloud-init process will:
- Update the system
- Install Node.js and dependencies
- Configure nginx reverse proxy
- Set up firewall and security
- Install and start Blocklet Server
- Configure SSL certificates
Once deployment is complete (usually 5-10 minutes), connect to your server:
# Connect via SSH (note the custom port 2222)
ssh -p 2222 arcblock@YOUR_SERVER_IP
# If using custom key file
ssh -p 2222 -i ~/.ssh/arcblock_ed25519 arcblock@YOUR_SERVER_IP# Open in browser
http://YOUR_SERVER_IP:8080
# Admin panel
http://YOUR_SERVER_IP:8080/.well-known/server/admin/Once connected, verify everything is working:
# Check cloud-init completed successfully
sudo cloud-init status --long
# Verify Blocklet Server is running
sudo systemctl status blocklet-server
# Check that all ports are listening
sudo netstat -tlnp | grep -E "(2222|8080|8443)"
# Test web interface locally
curl -I http://localhost:8080Expected results:
- Cloud-init status:
done - Blocklet Server:
active (running) - Ports 2222, 8080, 8443 should be listening
- HTTP request should return
200 OKor similar
- Open:
http://YOUR_SERVER_IP:8080/.well-known/server/admin/ - Complete Setup Wizard:
- Set admin password
- Configure domain (optional)
- Set up SSL certificates (optional)
- Install Your First Blocklet
# Update system packages
sudo apt update && sudo apt upgrade -y
# Review firewall status
sudo ufw status verbose
# Check fail2ban status
sudo systemctl status fail2ban
# Review system logs
sudo journalctl -u blocklet-server --since "1 hour ago"Solution:
# Test if port 2222 is reachable
telnet YOUR_SERVER_IP 2222
# Check cloud provider firewall settings
# Ensure port 2222 is allowed from your IP
# Verify SSH key is correct
ssh-keygen -l -f ~/.ssh/arcblock_ed25519.pubSolution:
# Check if blocklet-server is running
ssh -p 2222 arcblock@YOUR_SERVER_IP
sudo systemctl status blocklet-server
# Check if nginx is running
sudo systemctl status nginx
# Verify ports are open
sudo netstat -tlnp | grep -E "(8080|8443)"Solution:
# Check cloud-init logs
ssh -p 2222 arcblock@YOUR_SERVER_IP
sudo tail -f /var/log/cloud-init-output.log
# Check for specific errors
sudo journalctl -u cloud-init-local -u cloud-init -u cloud-config -u cloud-final- CPU: 4 cores / 4 vCPUs
- RAM: 8GB
- Storage: 80GB SSD
- Network: 1Gbps connection
- CPU: 8 cores / 8 vCPUs
- RAM: 16GB
- Storage: 160GB SSD
- Network: 1Gbps+ connection
- Operating System: Ubuntu 22.04 LTS
- Architecture: x86_64 (ARM not currently supported)
- Cloud-Init: Required for automated deployment
- Internet Access: Required for package installation
- Explore Blocklets: Visit the Blocklet Store
- Configure SSL: Set up Let's Encrypt certificates
- Domain Setup: Point your domain to the server
- Backup Strategy: Set up automated backups
- Monitoring: Configure uptime monitoring
- Documentation: ArcDeploy Documentation
- Issues: GitHub Issues
- Community: GitHub Discussions
- ArcBlock Support: ArcBlock Documentation
🎯 Total deployment time: 10 minutes or less!
Next: Cloud Provider Setup Guide for detailed provider-specific instructions.