Go2us

- by Goaddon

Let us build your next ecommerce project on Goaddon!

go2us@goaddon.com
Supported in

What can we build for you?

If you manage an online shop or provide services to online shops, you can build, improve and grow your business with Goaddon. Only a few days of coding can get you far.

But if you don't want to be responsible for the coding yourself, you can let contractors do the work through the Go2us addon.

Upon subsribing to Go2us you get access to our hosting solution, and you can choose a contractor that matches your expectations in skills and pricing.


WIKI

Pricing

Go2us is both a hosting solution and an offer to provide man power to your project. The latter is provided by independent contractors. Different contractors have different pricing and terms. The company Goaddon ApS has a contractor offering that you are free to choose.

Fees are pro-rated daily, although the price is shown per 30-day months. You will be billed through Goaddon.

Base fee

By running an app on Go2us infrastructure you incur a charge of 6.99 EUR/month.

Node fee

The node fee is calculated from the nodes that participate in your server cluster. You can scale your cluster based on the traffic and work load. A node can either be provisioned to perform proxy server tasks (receiving incoming web traffic) or it can run your app, a Redis cache instance or background processes. We expect to be able to offer the option to assign multiple tasks to the same node soon.

Your nodes automatically have access to your MongoDB database, which is billed separately by Goaddon.


Terms of Service

This document was last revised 22-04-2022.

The Go2us addon (“Go2us” or “Addon”) is offered by Goaddon ApS (“Goaddon”, “we”, “us”, “our”). Additionally, a contractor (“Contractor”) of your choosing will be granted privileges to perform certain tasks on your behalf. This agreement (“Addon Agreement”) is a supplement to the agreement (“Agreement”) between you (the “Account”) and Goaddon. When subscribing to the Addon, you enter the Account into this Addon Agreement and may use our services (“Addon Services”). The Agreement supersedes the Addon Agreement. Do not subscribe to the Addon unless you understand and agree to this Addon Agreement in its entirety.

1. Our Addon Services

Upon entering into the Addon Agreement the Account may access and use the Addon Services, constrained by the terms set forth by the Agreement and subsequently the Addon Agreement.

The Addon Services include (1) hosting of an app or website (“Website Hosting”), (2) support (“Addon Support” and (3) “Contractor Support”).

If you subscribe the Account to Website Hosting, we will make available to the Account, server infrastructure on which the Contractor can upload the source code of the website. This will make the website accessible on the public internet. Only the contractor will be granted permissions to maintain the source code of the website. We will store data derived from usage of the website in the database of the Account, hosted by Goaddon. We will only hold data obtained during this process while using it to perform the Addon Services, and we will not store or backup the data ourselves. The contractor is responsible for storing the source code responsibly in a Version Control system or similar, and we are not responsible for conducting any audits of the steps taken by the contractor for responsible source code management. We assume that the Contractor does not keep secrets directly in the source code. If the source code needs to use secrets you should register these through https://goaddon.com/en/addons/5ea809243ab42fb37cc7188e/manage#page=secrets and instruct the Contractor to reference them in the source code.

Our service level agreement for Website Hosting is available at https://goaddon.com/addons/5ea809243ab42fb37cc7188e?tab=terms#website-hosting-sla .

Our maintenance of the infrastructure behind the website is included in Website Hosting. The Account is automatically subscribed to Addon Support, for which we calculate fees on a per-minute basis. We will provide the Account with Addon Support in accordance with the support policy described on the subscription page of this Addon. You subscribe to Contractor Support when you choose a Contractor for the Account. The Contractor will write source code, in accordance with your instructions, for the website or systems related to your business to provide capabilities that meets your business needs. When providing the Account with Contractor Support by uploading the source code on our servers, we retain copyrights and any other intellectual property rights to any source code, text, picture, etc. ("IP") that we create or take part in creating. You merely receive a perpetual, but limited, non-exclusive license to use the IP. Thus, you accept that the IP may be used by us to provide Addon Services for other Accounts, or in relation to other projects of ours. You are responsible for making a separate agreement with the Contractor about IP.

2. No Free Support

Subscribing the Account to this Addon does not entitle you to free support. If the Account is not prepared to pay for Addon Support, we may refuse to address your support enquiries.

3. Storing your data

When you subscribe to Website Hosting you are offered hosting on servers located in the zone you have chosen for the Account. But independently of your choice of zone, all data related to the Account will be stored on servers in the European Union. This includes (1) data shared by Goaddon with Go2us, such as database credentials and data encryption keys and (2) secrets registered by you through #{secrets_url} .

Website Hosting SLA

Goaddon is committed to use commercially reasonable efforts to maximize the availability of the website hosted on Go2us. This Service Level Agreement (“SLA”) applies only to websites that have been up for a minimum of 48 hours, and does not apply to any other service offered by Goaddon. We will give at least 14 days of advance notice for adverse changes to this SLA. Do not subscribe to the Addon unless you understand and agree to this SLA in its entirety.

Extended SLAs are available on request.

1. Definitions

In this SLA, the “Addon Agreement” refers to the parent agreement of this SLA, and "Agreement" refers to the parent agreement of the Addon Agreement. The Agreement supersedes the Addon Agreement, and the Addon Agreement supersedes this SLA.

The “Account” refers to the legal entity that is a part of the Agreement and the Addon Agreement with Goaddon.

The “Website” is the website of the Account that is hosted on Go2us.

"Monthly Fees" means the total amount paid under the Account for hosting its Website during the month.

"Downtime" is calculated on a monthly basis and is the total number of minutes during the month that the entire Website was unavailable. A minute is considered unavailable if all of your continuous attempts to establish a connection to the Website within the minute fail. Downtime does not include partial minutes of unavailability or scheduled downtime for maintenance and upgrades.

Fee Deduction" is the percentage of the Monthly Fees to be credited to the Account if Goaddon approves your claim, as set forth in the table above.

"Monthly Uptime Percentage" is calculated on a monthly basis and is calculated as (total minutes in month - Downtime)/ total minutes in month * 100. If the Website is deployed for only part of the month it is calculated as 100% available for the minutes of the month where it is not deployed.

2. Our Obligations

If we do not achieve and maintain the Monthly Uptime Percentages set forth in the table below, you may be eligible for a Fee Deduction.

Monthly Uptime Percentage Fee Deduction
< 95% 10%
< 90% 25%
< 70% 100%

We do not commit to any particular response time in situations of downtime.

3. Account Obligations

To be eligible for a Fee Deduction:

  1. You must contact Goaddon within 24 hours of first becoming aware of an event that impacts service availability.
  2. You must submit your claim and all required information by the end of the month immediately following the month in which the Downtime occurred.
  3. You must include all information necessary for Goaddon to validate your claim, including: (i) a detailed description of the events resulting in Downtime, including logs from your attempts to establish a connection, as documentation of the errors and corroboration of your claimed outage (any confidential or sensitive information in the logs should be removed or replaced before shared with Goaddon); (ii) information about the time and duration of the Downtime; (iii) the number and physical location(s) of affected users (if applicable); and (iv) descriptions of your attempts to resolve the Downtime as it occurred.
  4. You must reasonably assist Goaddon in our investigation of the cause of the Downtime and our processing of your claim.
  5. You must comply with applicable Go2us documentation and any advice from our support team.
4. Limitations

Downtime does not include, and the Account will not be eligible for a Fee Deduction for any performance or availability issue that is caused by:

  1. Factors outside of our reasonable control, including acts of God, labor disputes or other industrial disturbances, systemic electrical, telecommunications or other utility failures, breakdown of communication facilities, breakdown of internet service providers, cyber-attacks, earthquakes, storms, floods, fires, pandemics, quarantines, or other elements of nature, as well as blockages, embargoes, riots, acts or orders of government, acts of terrorism or war;
  2. Services, hardware, or software provided by a third party, such as cloud platform services on which the Website runs;
  3. Use of your password or equipment to access our systems; or
  4. Your or any third party’s (a) improper use or configuration of Website Hosting, or (b) failure to follow appropriate security practices.
5. Fee Deductions

We will process claims within 30 days of receipt. If we determine that you have met the Account Obligations above and that none of the stated Limitations apply to your claim, we will grant the Account a Fee Deduction.

We will apply any Fee Deduction to future invoices for the Website that experienced the Downtime.

Fee Deductions are the sole and exclusive remedy of the Account under this SLA.


Requirements & consequences for your database

This addon has not registered any activity that should affect your database.


A shortcut is often the best and fastest way to configure an addon. Some shortcuts are used to integrate your addon subscriptions with each other. The following shortcuts require a subscription to this addon.


Intro

This API enables you to maintain your subscription programatically.

Each zone has its own API URL. Make sure to interact with the zone where your project belongs:

Zone URL
European Union (EU) https://go2us-eu-api.goaddon.com
United States (US) https://go2us-us-api.goaddon.com

Thoughout these docs the URL of the European Union zone will be used.

Authentication

All requests to the API must include a base64 encoded version of your Project API token .

If, for example, you want to update a project that has _id 5f57a03c3ab42fb517cc5b0b, and your API token is 2f55689a-aad2-41c6-bf92-b8312d9bad9f, then your request should look like this:

PATCH /project_api/v1/projects/5f57a03c3ab42fb517cc5b0b
Host: https://go2us-eu-api.goaddon.com
Content-Type: application/json
Accept: application/json
Authorization: Basic MmY1NTY4OWEtYWFkMi00MWM2LWJmOTItYjgzMTJkOWJhZDlm
{
  "foo": "bar"
}

Unauthorized requests will responded with 401 Unauthorized.

Resources
projects

If you have subscribed with your project you can manage some of settings through this API.

Name Type Description

_id

BSON::ObjectId

url

String

URL which DNS you will point to our servers, e.g. example.com.

cluster_plan

Hash

The chosen cluster configuration for your project, e.g. {'proxy_nodes': {'hcloud_fsn1__cx11': 3}}, 'app_nodes': {'hcloud_fsn1__cx11': 2}, 'job_nodes': {'hcloud_fsn1__cx21': 4}}}

contractor_id

BSON::ObjectId

The contractor that is building on your website.

Description

Updates your project.

Request

Include any of the following keys in your JSON body:

{
  "url": "example.com"
}
HTTParty.patch(
  "https://go2us-eu-api.goaddon.com/project_api/v1/projects/5f57a03c3ab42fb517cc5b0b",
  headers: {
    "Authorization" => "Basic #{Base64.strict_encode64('2f55689a-aad2-41c6-bf92-b8312d9bad9f')}",
    "Content-Type"  => "application/json"
  },
  body: body.to_json
)
Response
Name Description
success

A text confirmation describing if the document was successfully updated.

message

A text confirmation describing if the document was recognized, but that there was no new data to update with.

Name Description
error

A text description of the error.

No response body.

Description

Configure your cluster, by changing the number of nodes should participate in it.

Caution! Before you start using this API endpoint, be sure to have an intimite understanding about how to safely manage nodes on a cluster from Go2us. One wrong request can cause immediate downtime.

Request

Include the identifier of the datacenter where you want to change the number of nodes. Also include how many nodes should be in this datacenter. And finally what node_type you would like to create (choose between "proxy_nodes", "job_nodes", "app_nodes" and "cache_nodes").

Submit either as parameters or as a JSON request body:

{
  "identifier": "hcloud_fsn1__cx11",
  "nodes": 3,
  "node_type": "proxy_nodes"
}

In this example, the number of CX11 proxy nodes in Hetzners Falkenstein datacenter will be adjusted to 3. If other types of nodes exist in your plan they will not be changed unless you submit a separate request for those.

HTTParty.patch(
  "https://go2us-eu-api.goaddon.com/project_api/v1/projects/5f57a03c3ab42fb517cc5b0b/cluster_configure",
  headers: {
    "Authorization" => "Basic #{Base64.strict_encode64('2f55689a-aad2-41c6-bf92-b8312d9bad9f')}",
    "Content-Type"  => "application/json"
  },
  body: body.to_json
)
Response
Name Description
success

A text confirming that configuration is in progress.

Name Description
error

A text description of the error.

No response body.

Description

Reboot a node in your cluster.

Request

Include the node_id of the node that you want to reboot. Or leave it out if you want to reboot all nodes.

Submit either as parameters or as a JSON request body:

{
  "node_id": "5447122"
}
# For example purposes the node_id is included both as a parameter and inside the request body. Choose the option you prefer. If you don't include a node_id all nodes will be rebooted.
HTTParty.patch(
  "https:///api/v1/projects/5f57a03c3ab42fb517cc5b0b/db_reboot?node_id=5447122",
  headers: {
    "Authorization" => "Basic #{Base64.strict_encode64('2f55689a-aad2-41c6-bf92-b8312d9bad9f')}",
    "Content-Type"  => "application/json"
  },
  body: {node_id: "5447122"}.to_json
)
Response
Name Description
success

A text confirming that the reboot is in progress.

Name Description
error

A text description of the error.

No response body.

secrets

You can manage your secrets through this endpoint.

Description

Creates a secret.

Request

Include any of the following keys in your JSON body:

{
  "key": "foo",
  "value": "bar"
}
HTTParty.post(
  "https://go2us-eu-api.goaddon.com/project_api/v1/secrets",
  headers: {
    "Authorization" => "Basic #{Base64.strict_encode64('2f55689a-aad2-41c6-bf92-b8312d9bad9f')}",
    "Content-Type"  => "application/json"
  },
  body: body.to_json
)
Response
Name Description
success

A text confirmation of the secret being created.

Name Description
error

A text description of the error.

No response body.

Description

Destroys a secret.

Request

No request body

HTTParty.delete(
  "https://go2us-eu-api.goaddon.com/project_api/v1/secrets/foo",
  headers: {
    "Authorization" => "Basic #{Base64.strict_encode64('2f55689a-aad2-41c6-bf92-b8312d9bad9f')}",
    "Content-Type"  => "application/json"
  }
)
Response
Name Description
message

A text confirmation of the secret being destroyed.

Name Description
error

A text description of the error.

No response body.

subdomains

You can manage your subdomains through this endpoint. All subdomains should have a CNAME record that points to your primary subdomain.

Description

Returns the subdomains.

Request

No request body

HTTParty.get(
  "https://go2us-eu-api.goaddon.com/project_api/v1/subdomains",
  headers: {
    "Authorization" => "Basic #{Base64.strict_encode64('2f55689a-aad2-41c6-bf92-b8312d9bad9f')}",
    "Content-Type"  => "application/json"
  }
)
Response
Name Description
subdomains

An array of subdomains.

No response body.

Description

Adds a subdomain.

Request

Include any of the following keys in your JSON body:

{
  "subdomain": "www.example.com"
}
HTTParty.post(
  "https://go2us-eu-api.goaddon.com/project_api/v1/subdomains",
  headers: {
    "Authorization" => "Basic #{Base64.strict_encode64('2f55689a-aad2-41c6-bf92-b8312d9bad9f')}",
    "Content-Type"  => "application/json"
  },
  body: body.to_json
)
Response
Name Description
success

A text confirming that the subdomain has been added.

Name Description
error

A text description of the error.

No response body.

Description

Removes a subdomain.

Request

No request body

HTTParty.delete(
  "https://go2us-eu-api.goaddon.com/project_api/v1/subdomains/www.example.com",
  headers: {
    "Authorization" => "Basic #{Base64.strict_encode64('2f55689a-aad2-41c6-bf92-b8312d9bad9f')}",
    "Content-Type"  => "application/json"
  }
)
Response
Name Description
message

A text confirmation of the subdomain being removed.

Name Description
error

A text description of the error.

No response body.

Description

Resets the subdomains with the array of provided subdomains.

Request

Include an array like this:

{
  "subdomains": [
    "www.example.com"
  ]
}
HTTParty.post(
  "https://go2us-eu-api.goaddon.com/project_api/v1/subdomains/reset",
  headers: {
    "Authorization" => "Basic #{Base64.strict_encode64('2f55689a-aad2-41c6-bf92-b8312d9bad9f')}",
    "Content-Type"  => "application/json"
  },
  body: body.to_json
)
Response
Name Description
success

A text confirming that the subdomains were reset.

Name Description
error

A text description of the error.

No response body.