Skip to content
tau.how

Create a Project

At Taubyte, we aim to maintain a frictionless developer’s workflow. Accordingly, all you need to log in is your Git account. As of now, our primary support is for Github. You can log in via our web console available at console.taubyte.com, your network’s dedicated URL (generally console.<network domain>), or through the Taubyte CLI ‘tau’.

Selecting Your Network

The web console is designed to be hosted under a cloud computing network domain. This means that developers can log in through console.taubyte.com and select their network from there. Alternatively, if a cloud computing network provides a specific link, developers can use that for direct access. The ability to choose your network provides the flexibility needed in a decentralized development environment.

Why Use Git Login?

Taubyte is built around the principle of GitOps, which positions your Git repository as the source of truth from which deployments are derived. When using either the Taubyte Web Console or the Taubyte CLI ‘tau’, a token from your Git provider is necessary to carry out essential operations such as creating repositories and cloning/pulling/pushing code.

Secure Handling of Tokens

Taubyte does not store tokens. Our builder nodes, known as ‘monkeys’, use SSH deploy keys secured by the vault protocol to clone your code. When you grant Github access, a token is issued and forwarded directly to your browser, without being stored by the Taubyte network. This enables the Taubyte Web Console to carry out necessary operations with your Git repositories.

The Role of Git and The Source of Truth

Unlike other platforms that save projects in databases, at Taubyte, neither we nor any third-party system controls or owns your project. Your project resides entirely within your repository. The Taubyte network only stores references to this repository.

Each project on Taubyte is defined by two repositories:

  • The Configuration Repository: This repository is a collection of YAML files that define your project resources.
  • The Inline Code Repository: This companion repository facilitates inline code.

These repositories serve as the definitive source of truth for your project. Therefore, a repository does not have a single defined state. Instead, it has a state for a specific commit or branch. Taubyte leverages this feature, allowing you to deploy different versions of your projects on different parts of the network. For most nodes in the network, the master (or main) branch serves as their version of the truth.

Access Control

At Taubyte, we believe that you should have full control over your project. This philosophy is realized by empowering you to grant or revoke access on your repositories. Therefore, the power to control who can access and modify your project lies entirely in your hands.

Web Console

The Taubyte Web Console offers a powerful toolset for building and managing your projects on the Taubyte platform. Let’s walk through the process of logging in and creating a project using the Web Console.

The Taubyte console is engineered with the intent to ensure you maintain complete control and ownership over your projects. Upon login - a process we’ll discuss momentarily - your project repositories are cloned into an in-browser virtual file system.

Login & Network Selection

To start, navigate to the Taubyte web console. This can be found at console.taubyte.com, or at your network’s dedicated URL (usually console.<network domain>).

On the login page:

  • Enter an email address
  • Select a network or dreamland (if you are testing locally)
  • Click on the Git provider you wish to use (currently, we support Github)
  • In the case of Github, authorize the Web Console to connect to your Git account.

Note

The token is only stored in your browser and nowhere else.

Note

It may take a few moments for the page to load all your projects as it fetches details from your Git repositories. This is because Taubyte only stores minimal information about your projects, to maintain your control over your project data.

Creating a Project

To begin creating a new project:

  • Click on the plus (➕) button.
  • On the modal window that appears, name your project (note that the name must adhere to variable naming restrictions and be unique within your Git space).
  • Provide a description for your project if you wish.
  • The last field will be pre-filled with the email address you provided during login. You can change this if you’d like to use another email for this specific project.
  • Click on “Create project”.

Once the project is created, you’ll be redirected to the project dashboard, from where you can manage all aspects of your project.

If you want to locate your project’s code and configuration files:

  • Click on your avatar in the top right corner, then click on “Project Details”.
  • On the modal window that appears, you will find two URLs pointing to your project’s repositories.

tau CLI

Note

We will be using the interactive mode of the CLI. For non interactive mode refer to manual.

Taubyte CLI, also known as ‘tau’, is a powerful command-line tool that can facilitate various operations such as creating a project. You can download and install ‘tau’ from our Github repository or via the go command go install github.com/taubyte/tau@latest.

To create a project using ‘tau’, follow the steps below:

  1. Log In: The first step is to log in. You can use an existing profile or create a new one. If you choose to create a new one, the program will prompt you to provide an OAuth token or to click on a link to get one. Here is an example of the login process:
  1. Select Your Network: Next, you need to choose the network you want to work on. To do this, enter tau select network in the command line. Here is an example of how it works:
  1. Create a Project: Finally, you can create your project by entering tau new project into the command line. Here is an example:

By following these simple steps, you can create a project on Taubyte using the ‘tau’ command line tool. Remember, the ‘tau’ tool is designed to provide you with complete control over your projects, keeping all operations local until you execute a ‘push’ operation.