This guide will help you set up Mycelium Cloud for local development or production deployment.
Before getting started, ensure you have the following installed:
- Go: Version 1.19 or later (Download)
- Node.js: Version 20 or later (Download)
- Docker: Latest stable version (Download)
- Docker Compose: Latest version (Install)
- Git: For cloning the repository
git clone https://github.com/codescalers/kubecloud.git
cd kubecloudThe easiest way to get everything running:
cp backend/config-example.json backend/config.json
docker-compose upThis starts all services:
- Frontend UI: http://localhost:8000
- Backend API: http://localhost:8080
- Grafana: http://localhost:3000 (admin/admin)
- Prometheus: http://localhost:9090
cd backend
cp config-example.json config.json
# Edit config.json with your settings
make runThe backend will start on http://localhost:8080.
cd frontend/kubecloud
npm install
npm run devThe frontend will start on http://localhost:5173.
From the root directory:
# Run both backend and frontend
make run
# Or run them separately
make backend-run # Terminal 1
make frontend-run # Terminal 2If running the backend locally (not in Docker), you need to run the Mycelium binary separately.
- Download Mycelium binary:
wget https://github.com/threefoldtech/mycelium/releases/latest/download/mycelium-private-x86_64-unknown-linux-musl.tar.gz
tar -xzf mycelium-private-x86_64-unknown-linux-musl.tar.gz
sudo chmod +x mycelium-private
sudo mv mycelium-private /usr/local/bin/mycelium- Start Mycelium (in a separate terminal):
sudo mycelium --peers \
tcp://188.40.132.242:9651 \
tcp://136.243.47.186:9651 \
tcp://185.69.166.7:9651 \
tcp://185.69.166.8:9651 \
tcp://65.21.231.58:9651 \
tcp://65.109.18.113:9651 \
tcp://209.159.146.190:9651 \
tcp://5.78.122.16:9651 \
tcp://5.223.43.251:9651 \
tcp://142.93.217.194:9651- Start Backend (in another terminal):
cd backend
make run- Start Frontend (in another terminal):
cd frontend/kubecloud
npm install
npm run devThe backend uses a JSON configuration file. Copy and customize:
cd backend
cp config-example.json config.json
# Edit config.json with your TFGrid credentials and settingsKey configuration includes:
- Database connection (PostgreSQL in Docker Compose)
- Redis connection for caching
- JWT token secrets for authentication
- Mail service (SendGrid) credentials
- Stripe integration for billing
- TFGrid system account mnemonic for blockchain operations
See Backend README for full configuration options.
The frontend uses environment variables. Copy and configure:
cd frontend/kubecloud
cp env.example .env
# Edit .env with your API base URL and feature flagsKey environment variables:
VITE_API_BASE_URL- Backend API endpoint (default: http://localhost:8080/api)VITE_ENABLE_DEBUG_MODE- Enable/disable debug loggingVITE_AUTH_DOMAIN- Auth0 domain (optional)VITE_STRIPE_PUBLISHABLE_KEY- Stripe key (optional)
- Check Go version:
go version - Verify configuration file exists and is valid JSON
- Ensure required ports are available
- Clear node_modules:
rm -rf node_modules && npm install - Check Node.js version:
node --version
- Ensure Docker daemon is running
- Check port conflicts
- Try:
docker-compose down && docker-compose up --build
- Verify database credentials in configuration
- Check database service is running
- Review connection logs
- Read the Architecture Overview
- Check the API Documentation
- Explore Contributing Guidelines
- Review Deployment Guide
- Check component-specific README files
- Report issues on GitHub Issues
- Engage with the community