Linux
This guide explains how to install, configure, and uninstall Colibri Server on Linux distributions (Debian, Ubuntu, RedHat, CentOS, Fedora).
Requirements
Linux distribution with systemd
Root/sudo access
At least 500 MB free disk space
glibc 2.31 or newer (Ubuntu 20.04+, Debian 11+, RHEL 8+)
Optional: Memcached for caching (recommended for production)
Installation
Debian/Ubuntu (DEB Package)
Download
Download the latest .deb package from the GitHub Releases page:
curl -L -O https://github.com/corpus-core/colibri-stateless/releases/latest/download/colibri-server_1.0.0-1_amd64.debInstall
# Install the package
sudo dpkg -i colibri-server_1.0.0-1_amd64.deb
# Install any missing dependencies
sudo apt-get install -f
# Verify installation
sudo systemctl status colibri-serverRedHat/CentOS/Fedora (RPM Package)
Download
curl -L -O https://github.com/corpus-core/colibri-stateless/releases/latest/download/colibri-server-1.0.0-1.x86_64.rpmInstall
# RHEL/CentOS 7
sudo rpm -ivh colibri-server-1.0.0-1.x86_64.rpm
# RHEL/CentOS 8+, Fedora
sudo dnf install colibri-server-1.0.0-1.x86_64.rpm
# Verify installation
sudo systemctl status colibri-serverWhat Gets Installed
The installer places files in the following locations:
Binary:
/usr/bin/colibri-serverConfiguration:
/etc/colibri/server.confSystemd Service:
/etc/systemd/system/colibri-server.serviceLog Files: Accessible via
journalctl -u colibri-serverData Directory:
/var/lib/colibri/System User:
colibri(created automatically)
Automatic Service Start
The Colibri Server is automatically installed as a systemd service and:
Starts immediately after installation
Starts automatically on system boot
Runs as dedicated
colibriuser (non-root)Restarts automatically on failure
The service listens on port 8090 by default.
Configuration
Edit Configuration File
sudo nano /etc/colibri/server.confKey Configuration Parameters
# Server port
PORT=8090
# Blockchain (1=Mainnet, 11155111=Sepolia, 17000=Holesky)
CHAIN_ID=1
# RPC endpoints (comma-separated)
RPC=https://eth-mainnet.g.alchemy.com/v2/YOUR_KEY
# Beacon Chain API endpoints (comma-separated)
BEACON=https://lodestar-mainnet.chainsafe.io/
# Logging level (0=Error, 1=Warning, 2=Info, 3=Debug)
LOG_LEVEL=0
# Web UI (0=disabled, 1=enabled) - Only enable on trusted networks!
WEB_UI_ENABLED=0Reload Configuration
After changing the configuration, restart the service:
sudo systemctl restart colibri-serverEnable Memcached (Optional, Recommended for Production)
Memcached significantly improves performance by caching external RPC/Beacon API requests.
Install and enable:
# Debian/Ubuntu
sudo apt-get install memcached
sudo systemctl enable memcached
sudo systemctl start memcached
# RedHat/CentOS/Fedora
sudo dnf install memcached
sudo systemctl enable memcached
sudo systemctl start memcachedConfigure:
sudo nano /etc/colibri/server.conf
# Set: MEMCACHED_HOST=localhost
sudo systemctl restart colibri-serverVerify it's working:
# Check memcached is running
sudo systemctl status memcached
# Check server is using it
sudo journalctl -u colibri-server -n 20 | grep memcachedEnable Web UI (Optional)
To enable the web-based configuration interface:
Edit the config file:
sudo nano /etc/colibri/server.confSet
WEB_UI_ENABLED=1Restart the service:
sudo systemctl restart colibri-serverAccess the UI at: http://localhost:8090/ui
⚠️ Security Warning: Only enable the Web UI on trusted local networks. It has no authentication and should never be exposed to the internet.
Service Management
Basic Commands
# Start service
sudo systemctl start colibri-server
# Stop service
sudo systemctl stop colibri-server
# Restart service
sudo systemctl restart colibri-server
# View status
sudo systemctl status colibri-server
# Enable auto-start on boot (default)
sudo systemctl enable colibri-server
# Disable auto-start on boot
sudo systemctl disable colibri-serverView Logs
# View all logs
sudo journalctl -u colibri-server
# Follow live logs
sudo journalctl -u colibri-server -f
# View last 100 lines
sudo journalctl -u colibri-server -n 100
# View logs since today
sudo journalctl -u colibri-server --since today
# View logs with timestamps
sudo journalctl -u colibri-server -o short-preciseFirewall Configuration
UFW (Ubuntu/Debian)
# Allow incoming connections on port 8090
sudo ufw allow 8090/tcp
# Check status
sudo ufw statusfirewalld (RedHat/CentOS/Fedora)
# Allow incoming connections on port 8090
sudo firewall-cmd --permanent --add-port=8090/tcp
sudo firewall-cmd --reload
# Check status
sudo firewall-cmd --list-portsiptables
sudo iptables -A INPUT -p tcp --dport 8090 -j ACCEPT
sudo iptables-save > /etc/iptables/rules.v4Uninstallation
Debian/Ubuntu
# Remove package (keep configuration)
sudo apt-get remove colibri-server
# Remove package and configuration files
sudo apt-get purge colibri-server
# Remove dependencies
sudo apt-get autoremoveRedHat/CentOS/Fedora
# RHEL/CentOS 7
sudo rpm -e colibri-server
# RHEL/CentOS 8+, Fedora
sudo dnf remove colibri-serverManual Cleanup (if needed)
If you want to remove all traces:
# Stop service
sudo systemctl stop colibri-server
sudo systemctl disable colibri-server
# Remove service file
sudo rm /etc/systemd/system/colibri-server.service
sudo systemctl daemon-reload
# Remove files
sudo rm /usr/bin/colibri-server
sudo rm -rf /etc/colibri
sudo rm -rf /var/lib/colibri
# Remove user
sudo userdel colibriTroubleshooting
Service Won't Start
Check logs:
sudo journalctl -u colibri-server -n 50Common issues:
Port 8090 already in use → Change
PORTin config fileInvalid RPC endpoints → Check network connectivity
Config file syntax error → Validate config file format
Permission issues → Check
/var/lib/colibriownership
Test manually:
sudo -u colibri /usr/bin/colibri-server -c /etc/colibri/server.conf
Port Already in Use
Check what's using port 8090:
sudo ss -tulpn | grep 8090
# or
sudo lsof -i :8090Either stop that process or change the port in /etc/colibri/server.conf.
Permission Denied Errors
Ensure the colibri user owns the data directory:
sudo chown -R colibri:colibri /var/lib/colibri
sudo chmod 755 /var/lib/colibriSELinux Issues (RedHat/CentOS)
If SELinux is enabled and blocking the service:
# Check SELinux denials
sudo ausearch -m avc -ts recent
# Allow HTTP port (if needed)
sudo semanage port -a -t http_port_t -p tcp 8090
# Or temporarily disable SELinux for testing
sudo setenforce 0Service Status
Check if the service is enabled and running:
systemctl is-enabled colibri-server
systemctl is-active colibri-serverBuilding from Source
If you want to build the package yourself:
Debian/Ubuntu
cd installer/linux
./build_deb.sh
# Output: ../colibri-server_1.0.0-1_amd64.debRequirements:
dpkg-dev,debhelper,cmake,gcc,g++
RedHat/CentOS/Fedora
cd installer/linux
./build_rpm.sh
# Output: ~/rpmbuild/RPMS/x86_64/colibri-server-1.0.0-1.x86_64.rpmRequirements:
rpm-build,rpmdevtools,cmake,gcc,gcc-c++
Support
Documentation: https://corpus-core.gitbook.io/specification-colibri-stateless
Issues: https://github.com/corpus-core/colibri-stateless/issues
Email: simon@corpus.io
License
The Colibri core library is licensed under the MIT License.
The server component is dual-licensed:
PolyForm Noncommercial License 1.0.0 for non-commercial use
Commercial License required for commercial use (contact simon@corpus.io)
Last updated