feat: Add comprehensive documentation structure with farming, mycelium, and cloud guides

This commit is contained in:
mik-tf
2025-10-16 08:35:58 -04:00
parent 4f0a8eec6e
commit 98e904384b
23 changed files with 2980 additions and 0 deletions

27
.gitignore vendored Normal file
View File

@@ -0,0 +1,27 @@
# Dependencies
/node_modules
# Production
/build
# Generated files
.docusaurus
.cache-loader
# Misc
.DS_Store
.env.local
.env.development.local
.env.test.local
.env.production.local
npm-debug.log*
yarn-debug.log*
yarn-error.log*
# IDE
.idea
.vscode
*.swp
*.swo
*~

178
README.md
View File

@@ -1,2 +1,180 @@
# TFGrid Get Started
Your gateway to ThreeFold - learn how to farm, connect, and deploy on the decentralized internet.
**Live Site**: https://threefold.info/getstarted
## Overview
This repository contains the getting started documentation for ThreeFold, designed to help newcomers:
1. **Become a Farmer** - Deploy nodes and earn rewards
2. **Use Mycelium Network** - Connect devices securely with IPv6 overlay networking
3. **Deploy on Mycelium Cloud** - Run Kubernetes clusters on the ThreeFold Grid
## Quick Start
### Prerequisites
- Node.js 18+
- pnpm (or npm)
### Installation
```bash
# Clone the repository
git clone https://git.ourworld.tf/tfgrid/docs_tfgrid_get_started
cd docs_tfgrid_get_started
# Install dependencies
pnpm install
# Start development server
pnpm start
```
The site will open at `http://localhost:3000`.
### Build
```bash
# Create production build
pnpm run build
# Serve production build locally
pnpm run serve
```
## Project Structure
```
docs_tfgrid_get_started/
├── docs/ # Documentation content
│ ├── intro.md # Homepage/Introduction
│ ├── farming/ # Farming guides
│ │ ├── overview.md
│ │ ├── buy-node.md
│ │ └── setup.md
│ ├── mycelium-network/ # Mycelium Network guides
│ │ ├── overview.md
│ │ ├── install.md
│ │ └── quick-start.md
│ └── mycelium-cloud/ # Mycelium Cloud guides
│ ├── overview.md
│ ├── getting-started.md
│ └── tutorial.md
├── static/ # Static assets
│ ├── img/ # Images and logos
│ ├── CNAME # Custom domain config
│ └── _redirects # Redirect rules
├── src/ # Custom components & styles
│ └── css/
│ └── custom.css # Custom styling
├── docusaurus.config.js # Docusaurus configuration
├── sidebars.js # Sidebar structure
├── package.json # Dependencies
├── build.sh # Production build script
└── develop.sh # Development script
```
## Contributing
### Making Changes
1. Pull latest changes:
```bash
git pull origin main
```
2. Make your edits in `docs/`
3. Test locally:
```bash
pnpm start
```
4. Test production build:
```bash
pnpm run build
```
5. Commit and push:
```bash
git add .
git commit -m "Description of changes"
git push origin main
```
### Content Guidelines
- **Keep it simple** - Target audience is new to ThreeFold
- **Be concise** - No fluff, straight to the point
- **Use examples** - Practical code snippets and commands
- **Clear structure** - Logical flow from overview to hands-on
- **Test builds** - Always verify builds succeed before pushing
## Documentation Sections
### Farming
Guides for becoming a ThreeFold farmer:
- What is farming and why do it
- How to buy or build a node
- Setting up and connecting to the grid
### Mycelium Network
Guides for using Mycelium networking:
- What is Mycelium and its benefits
- Installation across platforms
- Quick start and connectivity
### Mycelium Cloud
Guides for deploying on the grid:
- What is Mycelium Cloud
- Getting started with clusters
- Deployment tutorials and examples
## Development
### Local Development
```bash
# Start development server
./develop.sh
# OR
pnpm start
```
This command starts a local development server and opens a browser window. Most changes are reflected live without restarting the server.
### Build & Deploy
```bash
# Build for production
./build.sh
# OR
pnpm run build
```
The build script also handles deployment to the production server.
## Technology Stack
- [Docusaurus 3](https://docusaurus.io/) - Documentation framework
- [React 18](https://react.dev/) - UI library
- [MDX](https://mdxjs.com/) - Markdown with JSX support
## Links
- **Live Site**: [threefold.info/getstarted](https://threefold.info/getstarted)
- **Main Site**: [threefold.io](https://threefold.io)
- **Dashboard**: [dashboard.grid.tf](https://dashboard.grid.tf)
- **Manual**: [manual.grid.tf](https://manual.grid.tf)
- **Community**: [t.me/threefoldfarmers](https://t.me/threefoldfarmers)
- **Forum**: [forum.threefold.io](https://forum.threefold.io)
## License
Copyright © 2025 ThreeFold

14
build.sh Normal file
View File

@@ -0,0 +1,14 @@
#!/bin/bash
set -ex
script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
cd "${script_dir}"
echo "Docs directory: $script_dir"
# pnpm install .
pnpm run build .
# next will sync to server on https://threefold.info/getstarted
rsync -rv --delete ${script_dir}/build/ root@threefold.info:/root/hero/www/info/getstarted/

11
develop.sh Normal file
View File

@@ -0,0 +1,11 @@
#!/bin/bash
set -e
script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
cd "${script_dir}"
echo "Docs directory: $script_dir"
pnpm install .
pnpm start .

183
docs/farming/buy-node.md Normal file
View File

@@ -0,0 +1,183 @@
---
sidebar_position: 2
---
# Buy or Build Your Node
You have two main paths to becoming a ThreeFold farmer: buying a pre-configured node or building your own from hardware you already have or source yourself.
## Option 1: Buy a Pre-Built Node (Easiest)
### Why Buy Pre-Built?
**Plug-and-play** - Arrives ready to farm
**Vendor support** - Help when you need it
**Optimized hardware** - Tested configurations
**Warranty** - Peace of mind
**Quick start** - Farming within hours
### Where to Buy
Several vendors offer certified ThreeFold nodes:
<div className="info-box">
**📦 Node Vendors**
Check the official ThreeFold channels for current list of certified node providers:
- [ThreeFold Shop](https://threefold.io) - Official vendor listings
- [Telegram Community](https://t.me/threefoldfarmers) - Vendor recommendations
- [Forum Marketplace](https://forum.threefold.io) - Community sales
</div>
### What to Look For
When buying a pre-built node, consider:
- **Capacity Size** - Storage, RAM, and CPU cores
- **Power Efficiency** - Lower electricity costs
- **Warranty & Support** - Vendor backing
- **Price vs. ROI** - Balance cost with earning potential
- **Shipping & Import Fees** - Total landed cost
### Typical Node Configurations
**Entry Level (~$500-1000)**
- 4-8 CPU cores
- 16GB RAM
- 500GB-1TB SSD
- Low power consumption (~50W)
**Mid Range (~$1000-2500)**
- 8-16 CPU cores
- 32-64GB RAM
- 1-2TB SSD
- Balanced performance (~100W)
**High Performance (~$2500+)**
- 16+ CPU cores
- 64-128GB+ RAM
- 2TB+ SSD (multi-drive)
- Maximum capacity (~150-200W)
## Option 2: Build Your Own Node
### Why Build Your Own?
**Lower cost** - Use existing hardware
**Flexibility** - Choose your own specs
**Learning experience** - Understand the system
**Upgrade existing gear** - Repurpose hardware
### Hardware Requirements
**Minimum Configuration:**
```
CPU: Any 64-bit processor (Intel/AMD)
Multi-core recommended (4+ cores)
RAM: 8GB minimum (16GB+ recommended)
Storage: 500GB SSD minimum (1TB+ recommended)
Additional HDDs for more capacity
Network: Gigabit Ethernet (wired connection)
Boot: USB drive (16GB+) for Zero-OS
```
**Recommended Configuration:**
```
CPU: Modern multi-core processor (8+ cores)
RAM: 32GB+ for better capacity utilization
Storage: 1TB+ NVMe SSD for high-performance
Additional SSDs or HDDs for capacity
Network: Gigabit Ethernet (1Gbps+)
Power: Efficient PSU (80+ certified)
```
### Compatible Hardware
**Processors:**
- Intel Core i5/i7/i9 (6th gen or newer)
- AMD Ryzen 5/7/9
- Intel Xeon
- AMD EPYC (for larger deployments)
**Storage:**
- Any SATA/NVMe SSD
- HDDs for additional capacity
- RAID controllers supported
**Network:**
- Standard Ethernet adapters
- Wired connection strongly recommended
### Where to Source Hardware
- **Repurpose** - Old servers or workstations
- **Consumer Market** - Build from PC components
- **Used Enterprise** - eBay, server resellers
- **Local Dealers** - Computer hardware stores
<div className="info-box">
### 💡 Pro Tip
Old enterprise servers (Dell PowerEdge, HP ProLiant) can make excellent farming nodes at low cost. Check eBay and local liquidators.
</div>
## Cost Considerations
### Initial Investment
| Item | Pre-Built | DIY |
|------|-----------|-----|
| Hardware | $500-3000+ | $200-2000+ |
| Setup Time | 1-2 hours | 2-8 hours |
| Technical Skill | Minimal | Moderate |
| Support | Vendor | Community |
### Operating Costs
**Monthly expenses to factor in:**
-**Electricity** - Varies by location and node size
- Small node (~50W): $5-15/month
- Medium node (~100W): $10-30/month
- Large node (~200W): $20-60/month
- 🌐 **Internet** - Usually existing connection
- Recommend dedicated connection for serious farming
- Business-grade for maximum uptime
- 🔧 **Maintenance** - Occasional hardware replacement
- Budget for failed drives, power supplies
- Usually minimal with quality hardware
## Making Your Decision
### Choose Pre-Built If:
- 👍 You want the easiest path
- 👍 You value vendor support
- 👍 You prefer plug-and-play
- 👍 Time is more valuable than cost savings
### Choose DIY If:
- 👍 You have existing hardware
- 👍 You enjoy technical projects
- 👍 You want to minimize costs
- 👍 You're comfortable with system building
## What's Next?
Once you have your hardware (or know what you'll buy), move on to:
**[Setup Your Node](/farming/setup)** - Configure and connect to the grid
---
:::tip Need Help Deciding?
Ask the community! The [ThreeFold Telegram](https://t.me/threefoldfarmers) has experienced farmers who can help you choose the right option for your situation.
:::

101
docs/farming/overview.md Normal file
View File

@@ -0,0 +1,101 @@
---
sidebar_position: 1
---
# What is ThreeFold Farming?
ThreeFold Farming lets you contribute to the decentralized internet while earning rewards for providing storage, compute, and network capacity.
## How It Works
As a **ThreeFold Farmer**, you:
1. **Deploy a Node (3Node)** - Connect standard server hardware to the ThreeFold Grid
2. **Run Zero-OS** - Our self-healing operating system manages everything automatically
3. **Provide Capacity** - Your node offers storage, compute, and network resources
4. **Earn Rewards** - Get compensated for capacity and utilization
## Why Become a Farmer?
### 🌱 Simple & Autonomous
- Deploy once and let it run
- Minimal maintenance required
- Self-healing Zero-OS handles operations
- No complex system administration needed
### 💰 Multiple Revenue Streams
- **Capacity Rewards** - Earn for available resources
- **Utilization Rewards** - Earn when your capacity is used
- **Growing Demand** - More workloads = more income potential
### 🌍 Make an Impact
- Support a decentralized internet infrastructure
- Provide alternatives to centralized cloud providers
- Contribute to digital sovereignty and data privacy
- Build the peer-to-peer internet of the future
## What You Need
### Hardware Requirements
**Minimum Specs:**
- Modern server or workstation
- Multi-core processor (4+ cores recommended)
- 8GB+ RAM (16GB+ recommended)
- 500GB+ SSD storage
- Reliable network connection
**OR Buy a Pre-Built Node:**
- Various vendors offer ready-to-deploy 3Nodes
- Plug-and-play solution for easy entry
- Professional support available
### Other Requirements
- ⚡ Reliable power supply
- 🌐 Stable internet connection (wired recommended)
- 📍 Physical space for hardware
- 🔧 Basic technical comfort (if building your own)
## Getting Started
Ready to become a farmer? Here's your path:
1. **[Buy or Build a Node](/farming/buy-node)** - Choose your hardware option
2. **[Set Up Your Node](/farming/setup)** - Get your 3Node connected to the grid
3. **Monitor & Earn** - Track your node via the ThreeFold Dashboard
<div className="info-box">
### 💡 First Time?
Start with a pre-built node from a trusted vendor. This gives you the easiest path to farming while you learn the ecosystem.
</div>
## The Farmer Journey
ThreeFold farmers have been the backbone of the grid for years. You'll join a global community of:
- Individual enthusiasts running nodes at home
- Small businesses providing local capacity
- Data center operators scaling infrastructure
- Community initiatives building regional networks
Every farmer plays a vital role in creating a truly decentralized internet.
## Resources
- **Dashboard**: [dashboard.grid.tf](https://dashboard.grid.tf) - Manage your farm
- **Manual**: [manual.grid.tf/farmers](https://manual.grid.tf/farmers) - Detailed technical docs
- **Community**: [t.me/threefoldfarmers](https://t.me/threefoldfarmers) - Get help from farmers
- **Forum**: [forum.threefold.io](https://forum.threefold.io) - Discussions and updates
---
:::tip Next Step
Ready to get your node? Check out **[Buy or Build a Node](/farming/buy-node)** to explore your options.
:::

229
docs/farming/setup.md Normal file
View File

@@ -0,0 +1,229 @@
---
sidebar_position: 3
---
# Set Up Your Node
This guide walks you through the basic steps to get your 3Node connected to the ThreeFold Grid and start farming.
## Overview
Setting up a node involves:
1. Creating a ThreeFold account
2. Creating a farm on the dashboard
3. Downloading and booting Zero-OS
4. Verifying your node is online
## Prerequisites
Before you begin:
- ✅ Hardware ready (purchased or built)
- ✅ Reliable network connection (wired Ethernet)
- ✅ Power supply connected
- ✅ USB drive (16GB+) for Zero-OS boot image
## Step 1: Create Your ThreeFold Account
### Get a Wallet
You'll need a ThreeFold Connect wallet:
1. Download **ThreeFold Connect** app:
- iOS: [App Store](https://apps.apple.com)
- Android: [Google Play](https://play.google.com)
2. Create a new account
3. **Save your seed phrase securely** - This is critical!
4. Complete the setup wizard
<div className="info-box">
### 🔐 Security Warning
Your seed phrase is the **only** way to recover your account. Write it down and store it safely offline. Never share it with anyone.
</div>
## Step 2: Create Your Farm
### Access the Dashboard
1. Go to [dashboard.grid.tf](https://dashboard.grid.tf)
2. Connect with your ThreeFold Connect wallet
3. Select the appropriate network (usually **mainnet**)
### Register Your Farm
1. Navigate to **Farms** section
2. Click **Create Farm**
3. Fill in farm details:
- **Farm Name** - Choose a unique name
- **Pricing Policy** - Usually default is fine
- **Certification** - Select appropriate level
4. Save your farm
You'll receive a **Farm ID** - save this number, you'll need it for the next step.
## Step 3: Download Zero-OS
### Create Boot Image
1. In the dashboard, go to your farm
2. Click **Bootstrap Image**
3. Select options:
- **Network**: Choose your network interface
- **Format**: USB or ISO (USB for most cases)
4. Download the image
The image is customized with your Farm ID, so your node will automatically connect to your farm.
### Write to USB Drive
**On Linux/Mac:**
```bash
# Find your USB device
lsblk
# Write the image (replace /dev/sdX with your USB device)
sudo dd if=zero-os-farm-XXXX.img of=/dev/sdX bs=4M status=progress
sync
```
**On Windows:**
- Use [Rufus](https://rufus.ie/) or [balenaEtcher](https://www.balena.io/etcher/)
- Select the downloaded image
- Select your USB drive
- Click Write/Flash
<div className="info-box">
### ⚠️ Warning
Double-check you're writing to the correct device. The dd command will overwrite whatever device you specify!
</div>
## Step 4: Boot Your Node
### BIOS/UEFI Configuration
Before first boot, configure your node's BIOS:
1. **Boot Order**
- Set USB as first boot device
- Enable boot from USB
2. **Virtualization**
- Enable Intel VT-x / AMD-V
- Enable VT-d / AMD-Vi (if available)
3. **Network Boot** (optional)
- Can enable PXE for future use
- Not required for USB boot
4. **Power Management**
- Disable deep sleep modes
- Enable "restore on AC/power loss" for automatic recovery
### First Boot
1. Insert the USB drive with Zero-OS
2. Power on the node
3. Select USB boot (or it should auto-boot)
4. Zero-OS will start loading
**What to expect:**
- Initial boot takes 2-5 minutes
- Node will download latest Zero-OS version
- Screen will show node information
- After setup, displays Farm ID and Node ID
## Step 5: Verify Your Node
### Check Dashboard
1. Go to [dashboard.grid.tf](https://dashboard.grid.tf)
2. Navigate to your Farm
3. You should see your node listed
4. Check status shows **Online**
### Node Information
Your node displays:
- **Node ID** - Unique identifier
- **Farm ID** - Your farm
- **Status** - Should be "Up"
- **Resources** - CPU, RAM, Storage capacity
- **Uptime** - Connection time
### Troubleshooting
**Node not appearing?**
- Wait 5-10 minutes for initial sync
- Check network cable connection
- Verify farm ID on boot screen matches dashboard
- Check firewall isn't blocking connections
**Node shows offline?**
- Check power and network
- Verify BIOS settings
- Ensure USB drive is properly inserted
- Check Zero-OS boot logs on screen
## Step 6: Monitor & Maintain
### Regular Monitoring
Check your node periodically via the dashboard:
- Uptime percentage
- Capacity utilization
- Rewards accumulation
- Network connectivity
### Maintenance Tasks
**Monthly:**
- Verify node is online
- Check reward accumulation
- Monitor uptime statistics
**As Needed:**
- Update Zero-OS (usually automatic)
- Replace failed drives
- Clean dust from hardware
- Verify network connectivity
### Maximize Uptime
For best rewards:
- Keep node powered 24/7
- Use reliable network connection
- Monitor for hardware issues
- Join farmer community for alerts
## What's Next?
🎉 **Congratulations!** Your node is now farming on the ThreeFold Grid.
### Advanced Topics
For more details, check the advanced manual:
- Multiple node management
- Advanced networking setup
- GPU farming
- Farmerbot automation
**Resources:**
- [Manual](https://manual.grid.tf/farmers) - Comprehensive farming guide
- [Dashboard](https://dashboard.grid.tf) - Manage your farm
- [Telegram](https://t.me/threefoldfarmers) - Community support
- [Forum](https://forum.threefold.io) - Discussions and updates
---
:::tip Growing Your Farm
Once you're comfortable with one node, you can add more nodes to your farm to increase capacity and earning potential!
:::

98
docs/intro.md Normal file
View File

@@ -0,0 +1,98 @@
---
sidebar_position: 1
slug: /
---
# Welcome to ThreeFold
Welcome to your **gateway to ThreeFold** - a decentralized, sustainable internet platform built by and for the people.
We're not a typical Web3 project. We're not here to chase hype or speculation. We are here to **build a better internet** — one that's truly decentralized, sustainable, and owned by its users.
## What You'll Do Here
This guide will help you:
1. **🌾 Become a Farmer** - Deploy a node and earn rewards for contributing capacity
2. **🔗 Use Mycelium Network** - Connect your devices securely with our IPv6 overlay network
3. **☁️ Deploy on Mycelium Cloud** - Run Kubernetes clusters on the decentralized ThreeFold Grid
## Why ThreeFold?
### Real Technology, Real Impact
- **7+ years** of development - this is not vaporware
- **Open-source** technology you can verify: [threefold.info/tech](https://threefold.info/tech)
- **Working infrastructure** serving real workloads today
- **Decentralized cloud** that empowers individuals and communities
### Sustainable Economics
- **1 billion token** fixed supply
- **10% of all revenue burned** - making TFT scarcer over time
- **Dual-token model**: TFT (tradable) + Cloud Credits (stable utility)
- **Real product adoption**, not promises
### Our Mission
We're building a decentralized cloud infrastructure that:
- Protects user privacy and data sovereignty
- Reduces environmental impact through efficient hardware use
- Empowers communities with local compute and storage
- Creates economic opportunities for infrastructure providers (farmers)
## Getting Started
Choose your path:
<div className="cta-box">
### 🚀 Ready to Join?
<div className="cta-links">
<a href="/farming/overview" className="cta-link">🌾 Start Farming</a>
<a href="/mycelium-network/overview" className="cta-link">🔗 Install Mycelium</a>
<a href="/mycelium-cloud/overview" className="cta-link">☁️ Deploy Cloud</a>
</div>
</div>
## What Makes Us Different
### We Acknowledge Reality
- The current TFT token doesn't yet fully reflect our long-term vision
- Building a real decentralized cloud from scratch takes time
- We're now in the final stages of **TFGrid 4.0**
### We're Committed to Success
- **Launch of TFGrid 4.0**: Q1 2026
- **Target**: Over 1 million nodes within 5 years
- **Partnerships** with enterprises and governments who share our mission
- **Continuous improvement** in communication, documentation, and community support
### What We Don't Promise
- ❌ No "get rich quick" schemes
- ❌ No guaranteed CEX listings
- ❌ No hype - just real products solving real problems
- ✅ We'll make mistakes - but we'll learn, improve, and persist
## Community
Join thousands of ThreeFold farmers and users:
- **💬 Telegram**: [t.me/threefoldfarmers](https://t.me/threefoldfarmers)
- **💬 Forum**: [forum.threefold.io](https://forum.threefold.io)
- **📞 Community Calls**: [bit.ly/tfcommunitycall](https://bit.ly/tfcommunitycall)
---
**With gratitude,**
The ThreeFold Team
:::tip Next Steps
Start with [Farming](/farming/overview) to deploy your first node, or jump to [Mycelium Network](/mycelium-network/overview) to connect your devices.
:::

View File

@@ -0,0 +1,340 @@
---
sidebar_position: 2
---
# Getting Started with Mycelium Cloud
Deploy your first Kubernetes cluster on the ThreeFold Grid in just a few steps.
## Prerequisites
Before you begin, make sure you have:
-**Mycelium installed** - Required for cluster access ([Installation guide](/mycelium-network/install))
-**SSH key pair** - For node access
-**kubectl installed** - For managing your cluster ([Install kubectl](https://kubernetes.io/docs/tasks/tools/))
-**Credits** - To fund your deployment
## Step 1: Create Your Account
### Sign Up
1. Go to [vdc.grid.tf/sign-up](https://vdc.grid.tf/sign-up)
2. Fill in your details:
- Email address
- Password
- Confirm password
3. Click **Sign Up**
### Verify Email
1. Check your email inbox
2. Click the verification link
3. Your account is now active
## Step 2: Set Up Your Account
### Add Credits
1. Log in to your dashboard
2. Navigate to **Credits** or **Billing** section
3. Add funds to your account
- Choose payment method
- Enter amount
- Complete payment
Your credits will be used to pay for cluster resources (CPU, RAM, storage, time).
### Add SSH Key
1. Navigate to **SSH Keys** section (or **Add SSH** card)
2. Click **Add SSH Key**
3. Paste your **public key** (usually `~/.ssh/id_rsa.pub`)
4. Give it a name
5. Save
<div className="info-box">
### 🔐 Need an SSH Key?
If you don't have one:
```bash
# Generate a new SSH key pair
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
# View your public key
cat ~/.ssh/id_rsa.pub
```
Copy the output and paste it into the dashboard.
</div>
## Step 3: Deploy Your First Cluster
### Access Deployment Page
1. From your dashboard, click **Deploy Cluster** or **New Cluster**
2. You'll see the cluster configuration wizard
### Configure Your Cluster
#### Basic Settings
- **Cluster Name**: Give your cluster a unique name
- **Description**: Optional description of the cluster purpose
#### Master Nodes
Configure your control plane nodes:
- **Count**: Number of master nodes
- 1 for development/testing
- 3 for production (high availability)
- **CPU**: Number of cores per master (2-4 recommended)
- **RAM**: Memory per master (4-8GB recommended)
- **Storage**: Disk space per master (20-50GB)
#### Worker Nodes
Configure your workload nodes:
- **Count**: Number of worker nodes (1-10+)
- **CPU**: Cores per worker (based on workload)
- **RAM**: Memory per worker (based on workload)
- **Storage**: Disk space per worker (based on workload)
**Example Configuration (Starter):**
```
Masters: 1 node (2 CPU, 4GB RAM, 25GB storage)
Workers: 2 nodes (2 CPU, 4GB RAM, 50GB storage each)
```
### Select Nodes
1. The system will show available ThreeFold Grid nodes
2. Select nodes for your deployment
- Choose based on location, specs, and availability
- System may auto-select optimal nodes
3. Review your selections
### Review & Deploy
1. Review your configuration:
- Node counts and specs
- Selected grid nodes
- Estimated cost
2. Confirm you have sufficient credits
3. Click **Deploy**
The deployment process will begin. This typically takes 5-15 minutes.
## Step 4: Access Your Cluster
Once deployed, you can access your cluster in two ways: kubectl and SSH.
### Method 1: kubectl Access
#### Download kubeconfig
1. Go to **Dashboard****Clusters**
2. Find your cluster
3. Click the download icon (⬇️) or **Get Config**
4. Save the file (e.g., `mycluster-config.yaml`)
#### Configure kubectl
```bash
# Set kubeconfig for this session
export KUBECONFIG=/path/to/mycluster-config.yaml
# Or copy to default location
mkdir -p ~/.kube
cp mycluster-config.yaml ~/.kube/config
# Test connection
kubectl get nodes
```
You should see your cluster nodes listed!
```
NAME STATUS ROLES AGE VERSION
master-1 Ready control-plane,master 10m v1.26.0+k3s1
worker-1 Ready <none> 9m v1.26.0+k3s1
worker-2 Ready <none> 9m v1.26.0+k3s1
```
### Method 2: SSH Access
#### Start Mycelium
If not already running, start Mycelium on your local machine:
```bash
sudo mycelium --peers \
tcp://188.40.132.242:9651 \
quic://185.69.166.8:9651 \
tcp://185.69.166.7:9651 \
quic://65.21.231.58:9651
```
#### Get Node IPs
From your dashboard:
1. Go to your cluster details
2. Find the **Mycelium IPs** for each node
3. Note them down (e.g., `400:1234:5678:abcd::1`)
#### SSH to Nodes
```bash
# SSH to master node
ssh root@400:1234:5678:abcd::1
# SSH to worker node
ssh root@400:1234:5678:abcd::2
```
You're now connected to your cluster node!
## Step 5: Deploy Your First Application
Let's deploy a simple web application to test your cluster.
### Create a Deployment
```bash
# Create an nginx deployment
kubectl create deployment hello-web --image=nginx:latest
# Check deployment status
kubectl get deployments
kubectl get pods
```
### Expose the Service
```bash
# Expose as a service
kubectl expose deployment hello-web --port=80 --type=ClusterIP
# Check service
kubectl get services
```
### Access the Service
```bash
# Port forward to your local machine
kubectl port-forward service/hello-web 8080:80
```
Open `http://localhost:8080` in your browser. You should see the nginx welcome page!
## Step 6: Monitor Your Cluster
### Using Dashboard
Your Mycelium Cloud dashboard shows:
- Cluster status (running, stopped, etc.)
- Resource usage
- Cost tracking
- Node health
### Using kubectl
```bash
# View cluster info
kubectl cluster-info
# Check node status
kubectl get nodes
# View all resources
kubectl get all --all-namespaces
# Check cluster events
kubectl get events
```
## Managing Your Cluster
### Scale Workers
Add more worker nodes:
1. Go to cluster details in dashboard
2. Click **Scale** or **Add Nodes**
3. Configure new worker nodes
4. Deploy
### Delete Resources
```bash
# Delete the test deployment
kubectl delete deployment hello-web
kubectl delete service hello-web
```
### Stop/Start Cluster
From the dashboard:
- **Stop**: Pause cluster (saves costs)
- **Start**: Resume cluster
- **Delete**: Permanently remove (frees all resources)
## Troubleshooting
### Can't Connect with kubectl
1. **Check kubeconfig**: Ensure KUBECONFIG is set correctly
2. **Verify Mycelium**: Make sure Mycelium is running
3. **Check cluster status**: Ensure cluster is running in dashboard
4. **Test network**: Try pinging cluster nodes via Mycelium IPs
```bash
# Test Mycelium connectivity
ping6 <cluster-node-mycelium-ip>
```
### Can't SSH to Nodes
1. **Mycelium running**: Ensure Mycelium daemon is active
2. **SSH key added**: Verify your public key is in dashboard
3. **Correct IP**: Double-check Mycelium IP from dashboard
4. **Network access**: Test with `ping6` first
### Pods Not Starting
```bash
# Check pod status
kubectl describe pod <pod-name>
# Check node resources
kubectl top nodes
# Check events
kubectl get events --sort-by='.lastTimestamp'
```
## What's Next?
Now that you have a cluster running, explore more:
- **[Tutorial](/mycelium-cloud/tutorial)** - Deploy real applications
- **[Kubernetes Concepts](https://codescalers.github.io/www_kubecloud/kubernetes-concepts)** - Learn K8s fundamentals
- **[FAQ](https://codescalers.github.io/www_kubecloud/faq)** - Common questions
## Resources
- **Dashboard**: [vdc.grid.tf](https://vdc.grid.tf)
- **Kubernetes Docs**: [kubernetes.io/docs](https://kubernetes.io/docs/)
- **kubectl Cheat Sheet**: [kubernetes.io/docs/reference/kubectl/cheatsheet](https://kubernetes.io/docs/reference/kubectl/cheatsheet/)
- **Community**: [Telegram](https://t.me/threefoldfarmers)
---
:::tip Cluster Running Successfully?
Great! Now try the **[Tutorial](/mycelium-cloud/tutorial)** to deploy more complex applications.
:::

View File

@@ -0,0 +1,195 @@
---
sidebar_position: 1
---
# What is Mycelium Cloud?
Mycelium Cloud lets you deploy and manage **Kubernetes clusters** on the decentralized ThreeFold Grid infrastructure.
Run your containerized workloads on distributed, cost-effective infrastructure with built-in security and global availability.
## How It Works
Mycelium Cloud provides a complete platform for cloud-native applications:
1. **Sign up** for an account
2. **Add credits** to fund your deployments
3. **Deploy clusters** with custom configurations
4. **Manage workloads** using standard Kubernetes tools
All running on the ThreeFold Grid's decentralized infrastructure.
## Why Use Mycelium Cloud?
### 🌍 Decentralized Infrastructure
- Deploy on ThreeFold Grid's distributed network
- No dependency on centralized cloud providers
- Global node distribution
- True infrastructure sovereignty
### 📦 Full Kubernetes Management
- **K3s clusters** - Lightweight, production-ready Kubernetes
- **Multi-master support** - High availability configurations
- **Standard tooling** - Use kubectl, Helm, and your favorite tools
- **Complete control** - Full cluster access
### 🔐 Secure by Default
- **Mycelium networking** - Encrypted peer-to-peer connections
- **No public IPs needed** - Access via Mycelium overlay network
- **End-to-end encryption** - All traffic secured
- **Private by design** - Your infrastructure, your control
### 💰 Cost Effective
- **Competitive pricing** on decentralized infrastructure
- **Pay for what you use** - Flexible resource allocation
- **No vendor lock-in** - Standard Kubernetes portability
- **Global availability** - Deploy where you need
## Key Features
| Feature | Description |
|---------|-------------|
| **K3s Kubernetes** | Lightweight, certified Kubernetes distribution |
| **Mycelium Networking** | IPv6 overlay with encrypted P2P connections |
| **High Availability** | Multi-master clusters for production workloads |
| **Global Nodes** | Deploy across worldwide ThreeFold Grid locations |
| **Standard APIs** | Use kubectl, Helm, and all Kubernetes tools |
| **Web Dashboard** | Manage clusters through intuitive UI |
| **SSH Access** | Direct node access for debugging and management |
| **Flexible Sizing** | Custom CPU, RAM, and storage configurations |
## Architecture
Mycelium Cloud uses peer-to-peer networking for direct access:
```
┌────────────────┐
│ Your Machine │
│ (kubectl) │
└───────┬────────┘
│ Mycelium Network
│ (encrypted P2P)
┌───────▼────────────────────────────────┐
│ Kubernetes Cluster │
│ ┌──────────┐ ┌──────────┐ │
│ │ Master │ │ Worker │ │
│ │ Node │ │ Node │ ... │
│ └──────────┘ └──────────┘ │
└────────────────────────────────────────┘
ThreeFold Grid Infrastructure
```
**Network Flow:**
- Your machine connects via Mycelium network
- Each cluster node has unique Mycelium IPv6 address
- All communication encrypted end-to-end
- Direct node access - no gateways or proxies
## Common Use Cases
### Development & Testing
- Spin up test clusters quickly
- Experiment with Kubernetes features
- CI/CD pipeline testing
- Multi-environment development
### Production Workloads
- Web applications and APIs
- Microservices architectures
- Databases and stateful services
- Background processing jobs
### Decentralized Applications
- P2P services
- Distributed computing
- Edge computing deployments
- Privacy-focused applications
### Learning Kubernetes
- Hands-on practice
- Tutorial environments
- Training clusters
- Safe experimentation
## Technology Stack
**Kubernetes:** K3s v1.26+ (production-ready, lightweight)
**Networking:** Mycelium CNI with IPv6 support
**Infrastructure:** ThreeFold Grid decentralized nodes
**Management:** Web dashboard + API + kubectl
## What You Get
When you deploy a cluster:
-**Fully configured K3s cluster** - Ready to use
-**Mycelium networking** - Secure connectivity
-**kubeconfig file** - Standard kubectl access
-**SSH access** - Direct node management
-**Dashboard monitoring** - Cluster status and metrics
-**Flexible scaling** - Add/remove nodes as needed
## Getting Started
Ready to deploy your first cluster? Here's the path:
1. **[Getting Started](/mycelium-cloud/getting-started)** - Create account and deploy
2. **[Tutorial](/mycelium-cloud/tutorial)** - Deploy your first application
<div className="info-box">
### 💡 Prerequisites
You should have:
- **Mycelium installed** - For network access ([Install guide](/mycelium-network/install))
- **kubectl installed** - For cluster management ([Install kubectl](https://kubernetes.io/docs/tasks/tools/))
- **SSH key** - For node access
- **Credits** - To fund your deployments
</div>
## Pricing
Pricing is based on resource usage:
- CPU cores
- RAM allocation
- Storage capacity
- Deployment duration
Check the dashboard for current rates. The decentralized infrastructure typically offers competitive pricing compared to traditional cloud providers.
## Resources
- **Dashboard**: [vdc.grid.tf](https://vdc.grid.tf) - Deploy and manage clusters
- **Documentation**: [Mycelium Cloud Docs](https://codescalers.github.io/www_kubecloud/)
- **Kubernetes Docs**: [kubernetes.io](https://kubernetes.io/docs/)
- **Community**: [ThreeFold Telegram](https://t.me/threefoldfarmers)
- **GitHub**: [kubecloud repository](https://github.com/codescalers/kubecloud)
## Comparison to Traditional Cloud
| Aspect | Mycelium Cloud | Traditional Cloud |
|--------|----------------|-------------------|
| Infrastructure | Decentralized | Centralized |
| Control | Full sovereignty | Vendor-controlled |
| Networking | P2P encrypted | Public IPs, gateways |
| Pricing | Competitive | Often expensive |
| Lock-in | None (standard K8s) | Vendor-specific services |
| Privacy | High | Varies by provider |
| Setup | Quick & simple | Can be complex |
---
:::tip Next Step
Ready to deploy? Start with the **[Getting Started Guide](/mycelium-cloud/getting-started)** to create your first cluster.
:::

View File

@@ -0,0 +1,579 @@
---
sidebar_position: 3
---
# Deployment Tutorials
Learn by example with these practical deployment tutorials for Mycelium Cloud.
## Prerequisites
Before starting these tutorials, ensure you have:
- ✅ Deployed cluster with kubectl access
- ✅ Mycelium running for network access
- ✅ kubectl configured with your cluster
```bash
# Verify your setup
kubectl get nodes
# Should show your cluster nodes
```
## Tutorial 1: Hello World with Nginx
Deploy a simple web server to verify your cluster is working.
### Step 1: Create the Deployment
Save as `hello-world-deploy.yaml`:
```yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: hello-world
spec:
replicas: 1
selector:
matchLabels:
app: hello-world
template:
metadata:
labels:
app: hello-world
spec:
containers:
- name: nginx
image: nginx:1.21
ports:
- containerPort: 80
```
Apply it:
```bash
kubectl apply -f hello-world-deploy.yaml
```
### Step 2: Expose the Service
Save as `hello-world-svc.yaml`:
```yaml
apiVersion: v1
kind: Service
metadata:
name: hello-world-service
spec:
selector:
app: hello-world
ports:
- port: 80
targetPort: 80
type: ClusterIP
```
Apply it:
```bash
kubectl apply -f hello-world-svc.yaml
```
### Step 3: Access Your Application
```bash
# Port forward to local machine
kubectl port-forward service/hello-world-service 8080:80
```
Open `http://localhost:8080` - you should see the Nginx welcome page!
### Cleanup
```bash
kubectl delete -f hello-world-deploy.yaml
kubectl delete -f hello-world-svc.yaml
```
## Tutorial 2: Python Servers with Load Balancing
Deploy multiple Python HTTP servers to demonstrate load balancing.
### Step 1: Create the Deployments
Save as `python-servers.yaml`:
```yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: python-server-1
spec:
replicas: 2
selector:
matchLabels:
app: python-server
server-id: "1"
template:
metadata:
labels:
app: python-server
server-id: "1"
spec:
containers:
- name: python-server
image: python:3.9-slim
command: ["python", "-c"]
args:
- |
import http.server, socketserver, json
class Handler(http.server.SimpleHTTPRequestHandler):
def do_GET(self):
self.send_response(200)
self.send_header('Content-type', 'application/json')
self.end_headers()
response = {"server": "Python Server 1", "pod": "$(hostname)"}
self.wfile.write(json.dumps(response).encode())
with socketserver.TCPServer(("", 8000), Handler) as httpd:
httpd.serve_forever()
ports:
- containerPort: 8000
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: python-server-2
spec:
replicas: 2
selector:
matchLabels:
app: python-server
server-id: "2"
template:
metadata:
labels:
app: python-server
server-id: "2"
spec:
containers:
- name: python-server
image: python:3.9-slim
command: ["python", "-c"]
args:
- |
import http.server, socketserver, json
class Handler(http.server.SimpleHTTPRequestHandler):
def do_GET(self):
self.send_response(200)
self.send_header('Content-type', 'application/json')
self.end_headers()
response = {"server": "Python Server 2", "pod": "$(hostname)"}
self.wfile.write(json.dumps(response).encode())
with socketserver.TCPServer(("", 8000), Handler) as httpd:
httpd.serve_forever()
ports:
- containerPort: 8000
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: python-server-3
spec:
replicas: 2
selector:
matchLabels:
app: python-server
server-id: "3"
template:
metadata:
labels:
app: python-server
server-id: "3"
spec:
containers:
- name: python-server
image: python:3.9-slim
command: ["python", "-c"]
args:
- |
import http.server, socketserver, json
class Handler(http.server.SimpleHTTPRequestHandler):
def do_GET(self):
self.send_response(200)
self.send_header('Content-type', 'application/json')
self.end_headers()
response = {"server": "Python Server 3", "pod": "$(hostname)"}
self.wfile.write(json.dumps(response).encode())
with socketserver.TCPServer(("", 8000), Handler) as httpd:
httpd.serve_forever()
ports:
- containerPort: 8000
```
### Step 2: Create Load Balancing Service
Save as `python-lb-service.yaml`:
```yaml
apiVersion: v1
kind: Service
metadata:
name: python-lb
spec:
selector:
app: python-server
ports:
- port: 80
targetPort: 8000
type: ClusterIP
```
### Step 3: Deploy Everything
```bash
kubectl apply -f python-servers.yaml
kubectl apply -f python-lb-service.yaml
# Wait for pods to be ready
kubectl get pods -l app=python-server
```
### Step 4: Test Load Balancing
```bash
# Port forward the service
kubectl port-forward service/python-lb 8080:80
# In another terminal, test the load balancing
for i in {1..10}; do
curl http://localhost:8080
done
```
You'll see responses from different servers and pods, showing the load balancing in action!
### Cleanup
```bash
kubectl delete -f python-servers.yaml
kubectl delete -f python-lb-service.yaml
```
## Tutorial 3: Stateful Application with Persistent Storage
Deploy a simple application that persists data.
### Step 1: Create Persistent Volume Claim
Save as `storage.yaml`:
```yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: data-pvc
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
```
### Step 2: Create Stateful Deployment
Save as `stateful-app.yaml`:
```yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: data-app
spec:
replicas: 1
selector:
matchLabels:
app: data-app
template:
metadata:
labels:
app: data-app
spec:
containers:
- name: app
image: busybox:latest
command: ["sh", "-c"]
args:
- |
echo "Starting data application..."
while true; do
date >> /data/log.txt
echo "Written at $(date)" >> /data/log.txt
sleep 10
done
volumeMounts:
- name: data
mountPath: /data
volumes:
- name: data
persistentVolumeClaim:
claimName: data-pvc
```
### Step 3: Deploy and Verify
```bash
kubectl apply -f storage.yaml
kubectl apply -f stateful-app.yaml
# Wait for pod to be ready
kubectl get pods -l app=data-app
# Check the logs being written
kubectl exec -it $(kubectl get pod -l app=data-app -o name) -- cat /data/log.txt
```
### Step 4: Test Persistence
```bash
# Delete the pod
kubectl delete pod -l app=data-app
# Wait for new pod to start
kubectl get pods -l app=data-app
# Check data persisted
kubectl exec -it $(kubectl get pod -l app=data-app -o name) -- cat /data/log.txt
```
The data from before the pod deletion should still be there!
### Cleanup
```bash
kubectl delete -f stateful-app.yaml
kubectl delete -f storage.yaml
```
## Tutorial 4: Multi-Tier Application
Deploy a simple web app with a database backend.
### Step 1: Deploy Redis Database
Save as `redis.yaml`:
```yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: redis
spec:
replicas: 1
selector:
matchLabels:
app: redis
template:
metadata:
labels:
app: redis
spec:
containers:
- name: redis
image: redis:7-alpine
ports:
- containerPort: 6379
---
apiVersion: v1
kind: Service
metadata:
name: redis
spec:
selector:
app: redis
ports:
- port: 6379
targetPort: 6379
type: ClusterIP
```
### Step 2: Deploy Frontend Application
Save as `frontend.yaml`:
```yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: frontend
spec:
replicas: 3
selector:
matchLabels:
app: frontend
template:
metadata:
labels:
app: frontend
spec:
containers:
- name: frontend
image: nginx:alpine
ports:
- containerPort: 80
env:
- name: REDIS_HOST
value: "redis"
- name: REDIS_PORT
value: "6379"
---
apiVersion: v1
kind: Service
metadata:
name: frontend
spec:
selector:
app: frontend
ports:
- port: 80
targetPort: 80
type: ClusterIP
```
### Step 3: Deploy and Access
```bash
kubectl apply -f redis.yaml
kubectl apply -f frontend.yaml
# Wait for all pods
kubectl get pods
# Port forward to access frontend
kubectl port-forward service/frontend 8080:80
```
Open `http://localhost:8080` to access your multi-tier application.
### Cleanup
```bash
kubectl delete -f frontend.yaml
kubectl delete -f redis.yaml
```
## Best Practices
### Resource Limits
Always set resource limits:
```yaml
resources:
requests:
memory: "64Mi"
cpu: "250m"
limits:
memory: "128Mi"
cpu: "500m"
```
### Health Checks
Add liveness and readiness probes:
```yaml
livenessProbe:
httpGet:
path: /health
port: 8080
initialDelaySeconds: 30
periodSeconds: 10
readinessProbe:
httpGet:
path: /ready
port: 8080
initialDelaySeconds: 5
periodSeconds: 5
```
### Labels and Annotations
Use descriptive labels:
```yaml
metadata:
labels:
app: myapp
version: v1.0
environment: production
```
## Troubleshooting
### Pods Not Starting
```bash
# Check pod status
kubectl describe pod <pod-name>
# Check logs
kubectl logs <pod-name>
# Check events
kubectl get events --sort-by='.lastTimestamp'
```
### Service Not Accessible
```bash
# Check service
kubectl describe service <service-name>
# Check endpoints
kubectl get endpoints <service-name>
# Test from within cluster
kubectl run -it --rm debug --image=alpine --restart=Never -- sh
# Then: wget -O- http://service-name
```
### Resource Issues
```bash
# Check node resources
kubectl top nodes
# Check pod resources
kubectl top pods
# Check resource requests/limits
kubectl describe nodes
```
## Next Steps
Now that you've completed these tutorials:
- Deploy your own applications
- Explore [Helm](https://helm.sh/) for package management
- Learn about [Ingress controllers](https://kubernetes.io/docs/concepts/services-networking/ingress/) for advanced routing
- Study [StatefulSets](https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/) for databases
- Explore [ConfigMaps and Secrets](https://kubernetes.io/docs/concepts/configuration/) for configuration management
## Resources
- **Kubernetes Documentation**: [kubernetes.io/docs](https://kubernetes.io/docs/)
- **kubectl Cheat Sheet**: [kubernetes.io/docs/reference/kubectl/cheatsheet](https://kubernetes.io/docs/reference/kubectl/cheatsheet/)
- **Mycelium Cloud FAQ**: [codescalers.github.io/www_kubecloud/faq](https://codescalers.github.io/www_kubecloud/faq)
- **Community**: [Telegram](https://t.me/threefoldfarmers)
---
:::tip Keep Learning
These tutorials cover the basics. The real power of Kubernetes comes from combining these concepts to build complex, scalable applications on the ThreeFold Grid!
:::

View File

@@ -0,0 +1,229 @@
---
sidebar_position: 2
---
# Install Mycelium
Get Mycelium running on your system in just a few steps.
## Linux Installation
### Using Pre-built Binaries (Recommended)
1. **Download the latest release:**
```bash
wget https://github.com/threefoldtech/mycelium/releases/latest/download/mycelium-linux-x64.tar.gz
```
2. **Extract and install:**
```bash
tar -xzf mycelium-linux-x64.tar.gz
chmod +x mycelium
sudo mv mycelium /usr/local/bin/
```
3. **Verify installation:**
```bash
mycelium --version
```
### Building from Source
If you prefer to build from source:
```bash
# Install Rust if you haven't already
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# Clone and build
git clone https://github.com/threefoldtech/mycelium.git
cd mycelium/myceliumd
cargo build --release
# Install binary
sudo mv target/release/myceliumd /usr/local/bin/mycelium
```
## macOS Installation
### Using Pre-built Binaries
1. **Download the latest release:**
```bash
wget https://github.com/threefoldtech/mycelium/releases/latest/download/mycelium-macos-x64.tar.gz
```
2. **Extract and install:**
```bash
tar -xzf mycelium-macos-x64.tar.gz
chmod +x mycelium
sudo mv mycelium /usr/local/bin/
```
3. **Verify installation:**
```bash
mycelium --version
```
### Using Homebrew (if available)
```bash
brew install threefoldtech/mycelium/mycelium
```
## Windows Installation
### Using the Installer
1. **Download the installer:**
- Go to [releases page](https://github.com/threefoldtech/mycelium/releases)
- Download `mycelium_installer.msi`
2. **Run the installer:**
- Double-click the downloaded `.msi` file
- Follow the installation wizard
3. **Verify installation:**
Open Command Prompt and run:
```cmd
mycelium --version
```
### Manual Installation
1. Download `mycelium-windows-x64.zip` from the releases page
2. Extract to a folder (e.g., `C:\Program Files\Mycelium\`)
3. Add the folder to your PATH environment variable
4. Open a new Command Prompt and verify with `mycelium --version`
## Mobile Installation
### iOS
Mycelium runs as a mobile app on iOS devices:
- Available through the project's mobile directory
- Requires developer tools for installation
- Operates in TUN-only mode for overlay networking
**Note:** iOS version may have limitations compared to desktop versions due to platform restrictions.
### Android
Mycelium has full support on Android:
- Build from source using the mobile directory
- Full TUN interface support
- Complete overlay networking functionality
Check the [GitHub repository](https://github.com/threefoldtech/mycelium) for the latest mobile installation instructions.
## Docker Installation
Run Mycelium in a container:
```bash
docker run -d \
--name mycelium \
--cap-add NET_ADMIN \
--device /dev/net/tun \
--sysctl net.ipv6.conf.all.disable_ipv6=0 \
threefoldtech/mycelium:latest \
--peers tcp://188.40.132.242:9651
```
## Verify Installation
After installing, verify Mycelium is working:
```bash
mycelium --help
```
You should see the help output with available commands and options.
## System Requirements
### Minimum Requirements
- **OS**: Linux, macOS, Windows (64-bit)
- **RAM**: 50MB
- **Disk**: 20MB
- **Network**: IPv6 support (enabled by default on most systems)
### Network Requirements
- Internet connection
- IPv6 capable network stack (standard on modern systems)
- No special firewall configuration needed (works with NAT)
## Troubleshooting
### "Command not found" Error
If you get a "command not found" error:
**Linux/macOS:**
- Ensure `/usr/local/bin` is in your PATH
- Try running with full path: `/usr/local/bin/mycelium`
- Check file permissions: `ls -l /usr/local/bin/mycelium`
**Windows:**
- Verify the installation directory is in your PATH
- Open a new Command Prompt after installation
- Try full path: `"C:\Program Files\Mycelium\mycelium.exe"`
### Permission Denied
If you get permission errors when running:
**Linux/macOS:**
```bash
# Make the binary executable
chmod +x /usr/local/bin/mycelium
# Run with sudo if needed for network operations
sudo mycelium --peers tcp://188.40.132.242:9651
```
**Windows:**
- Run Command Prompt as Administrator
- Check Windows Firewall settings
### IPv6 Not Available
Mycelium requires IPv6. If you get IPv6 errors:
**Linux:**
```bash
# Check if IPv6 is enabled
cat /proc/sys/net/ipv6/conf/all/disable_ipv6
# Enable if needed (0 = enabled)
sudo sysctl -w net.ipv6.conf.all.disable_ipv6=0
```
**macOS:**
IPv6 is enabled by default. Check System Preferences > Network.
**Windows:**
IPv6 is enabled by default. Check Network Adapter properties.
## What's Next?
Now that Mycelium is installed, let's connect to the network:
**[Quick Start Guide](/mycelium-network/quick-start)** - Connect in 5 minutes
## Additional Resources
- **Full User Guide**: [threefoldtech.github.io/www_myceliumguide](https://threefoldtech.github.io/www_myceliumguide/)
- **GitHub Repository**: [github.com/threefoldtech/mycelium](https://github.com/threefoldtech/mycelium)
- **Technical Docs**: Available in the repository
- **Get Help**: [Telegram Community](https://t.me/threefoldfarmers)
---
:::tip Ready to Connect?
Installation complete! Continue to the **[Quick Start](/mycelium-network/quick-start)** guide to join the network.
:::

View File

@@ -0,0 +1,165 @@
---
sidebar_position: 1
---
# What is Mycelium Network?
Mycelium is an **IPv6 overlay network** that creates secure, encrypted connections between your devices anywhere in the world.
Think of it as your own private internet layer - but without the complexity of VPNs, port forwarding, or NAT traversal.
## How It Works
Mycelium creates a **peer-to-peer mesh network** where:
- 🌐 Each device gets its own unique IPv6 address
- 🔐 All traffic is automatically encrypted end-to-end
- 🚀 Smart routing finds the fastest path between devices
- 🔄 Network adapts automatically as devices join or leave
No central servers. No configuration complexity. Just secure connectivity.
## Why Use Mycelium?
### 🌍 Global Connectivity
Connect devices across the world as if they were on the same local network:
- Home server to laptop while traveling
- Multiple offices without complicated VPN setups
- IoT devices across different locations
- Development environments and remote services
### 🔒 Secure by Default
- **End-to-end encryption** - Traffic is encrypted between devices
- **No trust required** - No central authority can intercept
- **Automatic security** - No manual key exchange needed
- **Private by design** - Only you control your network
### 🚀 Smart & Fast
- **Automatic routing** - Finds optimal paths
- **NAT traversal** - Works behind firewalls
- **Resilient** - Routes around failures
- **Low overhead** - Minimal performance impact
### 📱 Cross-Platform
Works everywhere:
- Linux (all distributions)
- macOS
- Windows
- iOS
- Android
## Common Use Cases
### Remote Access
Access your home server or services from anywhere without opening ports or configuring complex VPNs.
```bash
# At home: Run Mycelium on your server
# Address: 5c4:c176:bf44:b2ab:5e7e:f6a:b7e2:11ca
# Traveling: Access your server via its Mycelium address
ssh user@5c4:c176:bf44:b2ab:5e7e:f6a:b7e2:11ca
```
### Private Networks
Create secure connections between multiple locations:
- Link office networks
- Connect distributed teams
- Secure IoT deployments
- Private cloud infrastructure
### Development & Testing
Build distributed applications with real-world networking:
- Test across geographic locations
- Develop P2P applications
- Simulate network topologies
- Remote debugging
### ThreeFold Grid Access
Connect to services on the ThreeFold Grid:
- Access deployed workloads
- Manage your infrastructure
- Use decentralized services
- Build on the grid
## Key Features
| Feature | Benefit |
|---------|---------|
| **Zero Configuration** | Works out of the box |
| **IPv6 Native** | Future-proof addressing |
| **P2P Mesh** | No single point of failure |
| **Automatic Encryption** | Secure without complexity |
| **NAT Traversal** | Works behind firewalls |
| **Smart Routing** | Optimal path selection |
| **Low Latency** | Direct connections when possible |
| **Cross-Platform** | Run anywhere |
## How Is It Different?
### vs Traditional VPNs
-**No central server** - Peer-to-peer mesh
-**Automatic routing** - No manual configuration
-**Lower latency** - Direct connections
-**Simpler setup** - Just run and connect
### vs Other Overlay Networks
-**IPv6 native** - Not limited to IPv4 address space
-**Production ready** - Used in ThreeFold infrastructure
-**Active development** - Continuous improvements
-**Open source** - Transparent and auditable
## Architecture Overview
```
┌──────────────┐ Encrypted Tunnel ┌──────────────┐
│ Device A │◄────────────────────────────►│ Device B │
│ Mycelium IP │ Over Internet │ Mycelium IP │
└──────────────┘ └──────────────┘
│ │
└────────────── Mesh Network ───────────────┘
(via Public Peers)
```
- Devices run Mycelium daemon
- Connect to public or private peers
- Build encrypted tunnels automatically
- Route traffic efficiently
## Getting Started
Ready to try Mycelium? Here's your path:
1. **[Install Mycelium](/mycelium-network/install)** - Set up on your system
2. **[Quick Start](/mycelium-network/quick-start)** - Connect to the network
<div className="info-box">
### 💡 5-Minute Setup
Most users are connected to the global Mycelium network within 5 minutes of starting installation.
</div>
## Resources
- **Documentation**: [Mycelium Guide](https://threefoldtech.github.io/www_myceliumguide/)
- **Source Code**: [GitHub Repository](https://github.com/threefoldtech/mycelium)
- **Community**: [ThreeFold Telegram](https://t.me/threefoldfarmers)
- **Forum**: [forum.threefold.io](https://forum.threefold.io)
---
:::tip Next Step
Install Mycelium on your system: **[Installation Guide](/mycelium-network/install)**
:::

View File

@@ -0,0 +1,219 @@
---
sidebar_position: 3
---
# Quick Start
Get connected to the Mycelium network in under 5 minutes.
## Step 1: Connect to Public Peers
Start your Mycelium node and connect to the global network:
**Linux/macOS:**
```bash
sudo mycelium --peers tcp://188.40.132.242:9651 quic://185.69.166.8:9651
```
**Windows (as Administrator):**
```cmd
mycelium --peers tcp://188.40.132.242:9651 quic://185.69.166.8:9651
```
You should see output indicating Mycelium is starting and connecting to peers.
<div className="info-box">
### 🔐 Why sudo/Administrator?
Mycelium needs elevated privileges to create a network interface. This is standard for networking tools.
</div>
## Step 2: Get Your IPv6 Address
Open a **new terminal** (keep Mycelium running in the first one) and check your node info:
```bash
mycelium inspect --json
```
You'll see output like:
```json
{
"publicKey": "abd16194646defe7ad2318a0f0a69eb2e3fe939c3b0b51cf0bb88bb8028ecd1d",
"address": "5c4:c176:bf44:b2ab:5e7e:f6a:b7e2:11ca"
}
```
**Save your address** - this is your unique Mycelium IPv6 address that others will use to reach you.
## Step 3: Test Connectivity
Ping one of the public peers to verify connectivity:
```bash
ping6 54b:83ab:6cb5:7b38:44ae:cd14:53f3:a907
```
If you see responses, congratulations! You're connected to the Mycelium network.
```
PING 54b:83ab:6cb5:7b38:44ae:cd14:53f3:a907(54b:83ab:6cb5:7b38:44ae:cd14:53f3:a907) 56 data bytes
64 bytes from 54b:83ab:6cb5:7b38:44ae:cd14:53f3:a907: icmp_seq=1 ttl=64 time=28.5 ms
64 bytes from 54b:83ab:6cb5:7b38:44ae:cd14:53f3:a907: icmp_seq=2 ttl=64 time=27.8 ms
```
## Public Peers List
Connect to these stable public peers for reliable connectivity:
| Region | IPv4 | IPv6 | TCP/QUIC Port | Mycelium IP |
|--------|------|------|---------------|-------------|
| Germany | 188.40.132.242 | 2a01:4f8:221:1e0b::2 | 9651 | 54b:83ab:6cb5:7b38:44ae:cd14:53f3:a907 |
| Germany | 136.243.47.186 | 2a01:4f8:212:fa6::2 | 9651 | 40a:152c:b85b:9646:5b71:d03a:eb27:2462 |
| Belgium | 185.69.166.7 | 2a02:1802:5e:0:ec4:7aff:fe51:e80d | 9651 | 597:a4ef:806:b09:6650:cbbf:1b68:cc94 |
| Belgium | 185.69.166.8 | 2a02:1802:5e:0:ec4:7aff:fe51:e36b | 9651 | 549:8bce:fa45:e001:cbf8:f2e2:2da6:a67c |
| Finland | 65.21.231.58 | 2a01:4f9:6a:1dc5::2 | 9651 | 410:2778:53bf:6f41:af28:1b60:d7c0:707a |
| Finland | 65.109.18.113 | 2a01:4f9:5a:1042::2 | 9651 | 488:74ac:8a31:277b:9683:c8e:e14f:79a7 |
| US East | 209.159.146.190 | 2604:a00:50:17b:9e6b:ff:fe1f:e054 | 9651 | 4ab:a385:5a4e:ef8f:92e0:1605:7cb6:24b2 |
| US West | 5.78.122.16 | 2a01:4ff:1f0:8859::1 | 9651 | 4de:b695:3859:8234:d04c:5de6:8097:c27c |
| Singapore | 5.223.43.251 | 2a01:4ff:2f0:3621::1 | 9651 | 5eb:c711:f9ab:eb24:ff26:e392:a115:1c0e |
| India | 142.93.217.194 | 2400:6180:100:d0::841:2001 | 9651 | 445:465:fe81:1e2b:5420:a029:6b0:9f61 |
## Connect to Multiple Peers
For better reliability and performance, connect to multiple peers:
```bash
sudo mycelium --peers \
tcp://188.40.132.242:9651 \
quic://185.69.166.8:9651 \
tcp://185.69.166.7:9651 \
quic://65.21.231.58:9651
```
This creates redundant paths and improves network resilience.
## Keep Mycelium Running
Mycelium needs to stay running to maintain your network connection.
### Run in Background
**Linux/macOS:**
```bash
# Using nohup
nohup sudo mycelium --peers tcp://188.40.132.242:9651 quic://185.69.166.8:9651 &
```
**Better: Use systemd (Linux):**
Create `/etc/systemd/system/mycelium.service`:
```ini
[Unit]
Description=Mycelium Network
After=network.target
[Service]
Type=simple
ExecStart=/usr/local/bin/mycelium --peers tcp://188.40.132.242:9651 quic://185.69.166.8:9651
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
```
Enable and start:
```bash
sudo systemctl enable mycelium
sudo systemctl start mycelium
sudo systemctl status mycelium
```
**Windows:**
- Use Task Scheduler to run at startup
- Or run in a Command Prompt window kept open
## Basic Usage Examples
### SSH to Another Device
If you have SSH running on another device with Mycelium:
```bash
ssh user@5c4:c176:bf44:b2ab:5e7e:f6a:b7e2:11ca
```
### Access a Web Service
```bash
curl http://[5c4:c176:bf44:b2ab:5e7e:f6a:b7e2:11ca]:8080
```
Note: IPv6 addresses must be in brackets for URLs.
### Connect Two Locations
Run Mycelium on devices at both locations:
- They'll automatically find each other through the mesh
- Use their Mycelium IPs to communicate
- All traffic is encrypted end-to-end
## Troubleshooting
### Can't Connect to Peers
1. **Check internet connection** - Verify you're online
2. **Firewall issues** - Mycelium should work behind NAT, but try temporarily disabling firewall
3. **IPv6 support** - Ensure IPv6 is enabled on your system
4. **Try different peers** - Some may be temporarily down
### Can't Ping Other Nodes
1. **Wait a few minutes** - Network discovery takes time
2. **Check peer connections** - Ensure you're connected to peers
3. **Verify the address** - Make sure you're pinging a valid Mycelium address
4. **Check logs** - Look for errors in the Mycelium output
### Permission Errors
- **Linux/macOS**: Must run with `sudo`
- **Windows**: Must run Command Prompt as Administrator
- This is required to create the network interface
## What's Next?
Now that you're connected, explore what you can do:
### Use Cases
- **Remote Access**: Access your services from anywhere
- **Connect Devices**: Link multiple locations securely
- **ThreeFold Grid**: Access your grid deployments
- **P2P Applications**: Build distributed systems
### Advanced Configuration
For more advanced setup options:
- Custom port configuration
- Private peer networks
- SOCKS5 proxy setup
- Advanced routing options
Check the [detailed Mycelium guide](https://threefoldtech.github.io/www_myceliumguide/) for more information.
## Resources
- **Full Documentation**: [Mycelium User Guide](https://threefoldtech.github.io/www_myceliumguide/)
- **GitHub**: [github.com/threefoldtech/mycelium](https://github.com/threefoldtech/mycelium)
- **Community**: [Telegram](https://t.me/threefoldfarmers)
- **Forum**: [forum.threefold.io](https://forum.threefold.io)
---
:::tip Connected Successfully?
Great! You're now part of the global Mycelium network. Try deploying on **[Mycelium Cloud](/mycelium-cloud/overview)** to run workloads on the ThreeFold Grid.
:::

189
docusaurus.config.js Normal file
View File

@@ -0,0 +1,189 @@
// @ts-check
// `@type` JSDoc annotations allow editor autocompletion and type checking
// (when paired with `@ts-check`).
// There are various equivalent ways to declare your Docusaurus config.
// See: https://docusaurus.io/docs/api/docusaurus-config
import { themes as prismThemes } from 'prism-react-renderer';
// Mermaid theme support
const mermaidTheme = {
theme: {
light: 'default',
dark: 'dark',
},
};
/** @type {import('@docusaurus/types').Config} */
const config = {
title: 'TFGrid Get Started',
tagline: 'Your Gateway to ThreeFold',
favicon: 'img/favicon.png',
// Set the production url of your site here
url: 'https://threefold.info',
// Set the /<baseUrl>/ pathname under which your site is served
// For GitHub pages deployment, it is often '/<projectName>/'
baseUrl: '/getstarted/',
// GitHub pages deployment config.
// If you aren't using GitHub pages, you don't need these.
organizationName: 'tfgrid', // Usually your GitHub org/user name.
projectName: 'tfgrid-get-started', // Usually your repo name.
deploymentBranch: 'gh-pages',
trailingSlash: true,
onBrokenLinks: 'throw',
// Even if you don't use internationalization, you can use this field to set
// useful metadata like html lang. For example, if your site is Chinese, you
// may want to replace "en" with "zh-Hans".
i18n: {
defaultLocale: 'en',
locales: ['en'],
},
presets: [
[
'classic',
/** @type {import('@docusaurus/preset-classic').Options} */
({
docs: {
routeBasePath: '/',
sidebarPath: './sidebars.js',
},
blog: false,
theme: {
customCss: './src/css/custom.css',
},
}),
],
],
themes: ['@docusaurus/theme-mermaid'],
markdown: {
mermaid: true,
hooks: {
onBrokenMarkdownLinks: 'warn',
},
},
themeConfig:
/** @type {import('@docusaurus/preset-classic').ThemeConfig} */
({
// Replace with your project's social card
image: 'img/new_logo_tft.png',
navbar: {
title: '',
logo: {
alt: 'ThreeFold Logo',
src: 'img/new_logo_tft.png',
},
items: [
{
type: 'docSidebar',
sidebarId: 'mainSidebar',
position: 'left',
label: 'Get Started',
},
{
href: 'https://threefold.io',
label: 'ThreeFold.io',
position: 'right',
},
{
href: 'https://t.me/threefoldfarmers',
label: 'Telegram',
position: 'right',
},
{
href: 'https://forum.threefold.io',
label: 'Forum',
position: 'right',
},
],
},
footer: {
style: 'dark',
links: [
{
title: 'Get Started',
items: [
{
label: 'Introduction',
to: '/',
},
{
label: 'Farming',
to: '/farming/overview',
},
{
label: 'Mycelium Network',
to: '/mycelium-network/overview',
},
{
label: 'Mycelium Cloud',
to: '/mycelium-cloud/overview',
},
],
},
{
title: 'Community',
items: [
{
label: 'Telegram Chat',
href: 'https://t.me/threefoldfarmers',
},
{
label: 'Forum',
href: 'https://forum.threefold.io',
},
{
label: 'Community Call',
href: 'https://bit.ly/tfcommunitycall',
},
],
},
{
title: 'More',
items: [
{
label: 'ThreeFold Website',
href: 'https://threefold.io',
},
{
label: 'Manual',
href: 'https://manual.grid.tf',
},
{
label: 'Dashboard',
href: 'https://dashboard.grid.tf',
}
],
},
],
copyright: `Copyright © ${new Date().getFullYear()} ThreeFold.`,
},
prism: {
theme: prismThemes.github,
darkTheme: prismThemes.dracula,
},
mermaid: mermaidTheme,
colorMode: {
defaultMode: 'dark',
disableSwitch: true,
respectPrefersColorScheme: false,
},
announcementBar: {
id: 'get_started',
content:
'🚀 <strong>New to ThreeFold?</strong> Start your journey here! Join our <a target="_blank" rel="noopener noreferrer" href="https://t.me/threefoldfarmers">Telegram community</a>',
backgroundColor: '#20232a',
textColor: '#fff',
isCloseable: true,
},
}),
};
export default config;

47
package.json Normal file
View File

@@ -0,0 +1,47 @@
{
"name": "tfgrid-get-started",
"version": "1.0.0",
"private": true,
"description": "TFGrid Get Started - Your Gateway to ThreeFold",
"scripts": {
"docusaurus": "docusaurus",
"start": "docusaurus start",
"build": "docusaurus build",
"swizzle": "docusaurus swizzle",
"deploy": "docusaurus deploy",
"clear": "docusaurus clear",
"serve": "docusaurus serve",
"write-translations": "docusaurus write-translations",
"write-heading-ids": "docusaurus write-heading-ids"
},
"dependencies": {
"@docusaurus/core": "^3.5.2",
"@docusaurus/preset-classic": "^3.5.2",
"@docusaurus/theme-mermaid": "^3.5.2",
"@mdx-js/react": "^3.0.0",
"clsx": "^2.0.0",
"prism-react-renderer": "^2.3.0",
"react": "^18.2.0",
"react-dom": "^18.2.0"
},
"devDependencies": {
"@docusaurus/module-type-aliases": "^3.5.2",
"@docusaurus/tsconfig": "^3.5.2",
"@docusaurus/types": "^3.5.2"
},
"browserslist": {
"production": [
">0.5%",
"not dead",
"not op_mini all"
],
"development": [
"last 3 chrome version",
"last 3 firefox version",
"last 5 safari version"
]
},
"engines": {
"node": ">=18.0"
}
}

66
sidebars.js Normal file
View File

@@ -0,0 +1,66 @@
/**
* Creating a sidebar enables you to:
* - create an ordered group of docs
* - render a sidebar for each doc of that group
* - provide next/previous navigation
*
* The sidebars can be generated from the filesystem, or explicitly defined here.
*
* Create as many sidebars as you want.
*/
// @ts-check
/** @type {import('@docusaurus/plugin-content-docs').SidebarsConfig} */
const sidebars = {
mainSidebar: [
'intro',
{
type: 'category',
label: 'Farming',
link: {
type: 'generated-index',
title: 'ThreeFold Farming',
description: 'Learn how to become a ThreeFold farmer by deploying nodes and earning rewards for contributing capacity to the decentralized grid.',
slug: '/farming',
},
items: [
'farming/overview',
'farming/buy-node',
'farming/setup',
],
},
{
type: 'category',
label: 'Mycelium Network',
link: {
type: 'generated-index',
title: 'Mycelium Network',
description: 'Discover Mycelium - an IPv6 overlay network that provides secure, peer-to-peer connectivity for your devices.',
slug: '/mycelium-network',
},
items: [
'mycelium-network/overview',
'mycelium-network/install',
'mycelium-network/quick-start',
],
},
{
type: 'category',
label: 'Mycelium Cloud',
link: {
type: 'generated-index',
title: 'Mycelium Cloud',
description: 'Deploy and manage Kubernetes clusters on the decentralized ThreeFold Grid with Mycelium Cloud.',
slug: '/mycelium-cloud',
},
items: [
'mycelium-cloud/overview',
'mycelium-cloud/getting-started',
'mycelium-cloud/tutorial',
],
},
],
};
export default sidebars;

103
src/css/custom.css Normal file
View File

@@ -0,0 +1,103 @@
/**
* Any CSS included here will be global. The classic template
* bundles Infima by default. Infima is a CSS framework designed to
* work well for content-centric websites.
*/
/* You can override the default Infima variables here. */
:root {
--ifm-color-primary: #2e8555;
--ifm-color-primary-dark: #29784c;
--ifm-color-primary-darker: #277148;
--ifm-color-primary-darkest: #205d3b;
--ifm-color-primary-light: #33925d;
--ifm-color-primary-lighter: #359962;
--ifm-color-primary-lightest: #3cad6e;
--ifm-code-font-size: 95%;
--docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.1);
}
/* For readability improvements */
[data-theme='dark'] {
--ifm-color-primary: #25c2a0;
--ifm-color-primary-dark: #21af90;
--ifm-color-primary-darker: #1fa588;
--ifm-color-primary-darkest: #1a8870;
--ifm-color-primary-light: #29d5b0;
--ifm-color-primary-lighter: #32d8b4;
--ifm-color-primary-lightest: #4fddbf;
--docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.3);
}
/* Custom styles for call-to-action */
.cta-box {
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
padding: 2rem;
border-radius: 10px;
margin: 2rem 0;
color: white;
}
.cta-box h2 {
color: white;
margin-top: 0;
}
.cta-links {
display: flex;
gap: 1rem;
margin-top: 1.5rem;
flex-wrap: wrap;
}
.cta-link {
display: inline-block;
padding: 0.75rem 1.5rem;
background: rgba(255, 255, 255, 0.2);
border-radius: 5px;
color: white;
text-decoration: none;
font-weight: bold;
transition: all 0.3s ease;
}
.cta-link:hover {
background: rgba(255, 255, 255, 0.3);
color: white;
text-decoration: none;
transform: translateY(-2px);
}
/* Info box styling */
.info-box {
background: #d1ecf1;
border-left: 4px solid #0c5460;
padding: 1.5rem;
margin: 2rem 0;
border-radius: 5px;
}
[data-theme='dark'] .info-box {
background: #1e3a40;
border-left-color: #17a2b8;
}
.info-box h3 {
margin-top: 0;
color: #0c5460;
}
[data-theme='dark'] .info-box h3 {
color: #5bc0de;
}
/* Table improvements */
table {
display: table;
width: 100%;
}
/* Code block improvements */
pre {
border-radius: 8px;
}

1
static/CNAME Normal file
View File

@@ -0,0 +1 @@
threefold.info

1
static/_redirects Normal file
View File

@@ -0,0 +1 @@
/getstarted/* /getstarted/index.html 200

5
static/img/.gitkeep Normal file
View File

@@ -0,0 +1,5 @@
# Place images here
# Required images:
# - favicon.png (site favicon)
# - logo.png (ThreeFold logo for navbar)
# - Additional images for documentation

BIN
static/img/favicon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 327 B

BIN
static/img/new_logo_tft.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.2 KiB