Skip to content
tau.how

Spore Drive Workshop

Welcome to your comprehensive guide on deploying your own cloud computing network with Taubyte technology using spore-drive. The spore-drive tool is a powerful and flexible way to create and manage your Taubyte cloud network. It allows you to define networks, keys, shapes, and hosts that form the core structure of your cloud network. In this guide, we’ll walk you through the complete process from establishing your network to finalizing connections in your Taubyte console.

Let’s dive into the steps you’ll need to follow:

Video Tutorial

For a more engaging and visual guide, we encourage you to follow our step-by-step video tutorial available on YouTube.

Tutorial Video

Getting Started

To simplify the process of setting up your development environment, we recommend using the devcontainer provided on our GitHub repository. This preconfigured development environment includes all the necessary tools and settings, allowing you to focus on building your cloud network.

Creating Your Network

A network is the basis of your cloud computing environment. It’s where your computing resources communicate with each other. You’ll create one using the spore-drive tool.

  1. Execute spore-drive new network in your command-line interface. This command initiates the creation of a new network.
  2. When prompted, input a unique name for your network. This is how you’ll identify your network.
  3. Specify your network URL. This unique address is where your network will be accessible.
  4. When asked about the swarm key, choose the ‘Generate’ option. A swarm key provides a unique identity for your network, ensuring secure communication within the network.
  5. For the generated domain, enter a subdomain of your network URL, like g.example.com. This is the main address where your services will be hosted.
  6. When asked for a domain validation key, select the ‘Generate’ option. This key validates the authenticity of the domains in your network.
  7. Optionally, enter any URL/regex skips. URLs/regex specified here will bypass any checks/validation, serving them normally. This can be useful for testing or when certain services need to be exempt from standard validation.

To view the details of your current network setup, use spore-drive current.

Setting Up an SSH Key(s)

SSH keys are used for secure communication within your network. Setting up an SSH key is the next step in your deployment journey.

  1. Execute spore-drive new key. This command starts the process of creating a new SSH key.
  2. When asked, input your preferred key name. This is the identifier for the key.
  3. Provide the username for ssh. This username will be used for establishing secure SSH connections.
  4. Enter your SSH key. This can be done by either drag-and-dropping the file or providing the local path. Note: paths starting with ~ are not accepted, and it’s important to ensure that there are no extra spaces at the end.

Defining a Shape

Shapes are specific configurations of services that will run on the nodes in your network. Creating an “elder” shape with no protocols can serve as a primary bootstrapper to aid the connection between nodes.

  1. Execute spore-drive new shape. This initiates the creation of a new shape.
  2. When prompted, input a unique name for your shape.
  3. Select the desired protocols. Protocols define how nodes in the shape will communicate with each other.
  4. Specify the ports for running nodes (main, lite, IPFS). The required ports will depend on the protocols you’ve selected. Each port represents a different type of communication line.

Adding a Host

A host is a machine that runs one or more instances of your defined shapes. You’ll need at least one host to deploy your network.

  1. Execute spore-drive new host. This command initiates the creation of a new host.
  2. When asked, input a unique name for your host.
  3. Specify the IP of the VM/server. This IP is where your host machine can be accessed.
  4. Indicate if this IP is the same as the public address. If it’s not, you will need to provide the public address.
  5. Input any additional address IP/CIDR (for any private IPs). These are additional addresses where your host can be accessed.
  6. When asked for the SSH port, you can leave it empty to default to 22 or specify a different port.
  7. Select the corresponding key for the VM to use for SSH. This is the key you created in step 2.
  8. (Optional) Input Latitude and Longitude. This can help locate your host geographically.
  9. Select the shapes to deploy on the host. These are the shapes you defined in step 3.
  10. Choose the shapes to add to the network bootstrap. All nodes will connect to these bootstrap nodes, which facilitate the start-up of the network.

Setting Up Monkey for Building

‘Monkey’ is a Taubyte tool that assists with building and deployment tasks. Monkey requires Docker to build jobs correctly.

Adjusting DNS for Seer

‘Seer’ is a Taubyte tool that handles routing and DNS tasks in your network. The DNS settings must be configured to allow Seer to start properly.

  1. Open /etc/systemd/resolved.conf with a text editor (e.g., nano, vim).
  2. Set DNS=1.1.1.1 and DNSStubListener=no.
  3. Execute systemctl restart systemd-resolved.service.
  4. Run ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf.

Deploying Your Network

Now that everything is set up, you’re ready to deploy your network.

  • Execute spore-drive deploy -s shape1,shape2.... This command deploys the specified shapes on the currently selected network using a x86_64 binary of the ‘tau’ utility, which is responsible for managing deployments in Taubyte networks.

Setting Up DNS for Your Network

After deploying, you need to set up DNS records for your seer, generated domain, and service URLs, all with a 1-minute TTL (Time To Live - the time period that the server will cache the information).

For Seer: Add an A Record for each host running seer.

  • Host: seer -> Value: 127.0.0.1

For Generated URL: Point your generated domain to your seers by adding a NS Record. If g.example.com is your generated domain URL, the record would be:

  • Host: g -> Value: seer.example.com

For Service URL: Add a NS Record which by default should be your URL prefixed with tau. This record will also point to your seers. For example.com, the record will be:

  • tau -> seer.example.com

Connecting to the Network

It may take a few minutes for the DNS to propagate your changes. The best way to check is to perform a ‘dig’ on your network’s seer URL.

To connect to your network from the web-console:

  1. Navigate to the Web Console
  2. Enter your email and select ‘Custom’ in the network selector
  3. Enter the network-URL and hit the checkmark
  4. Log in

And there you have it! Your own Taubyte-based cloud network is now up and running. This comprehensive guide provides a walk-through for each step in the process. Remember, each network is unique, so feel free to tweak the steps as necessary to fit your specific needs.