{% extends "base.html" %} {% block title %}sharktopus — setup {{ provider }}{% endblock %} {% block content %} {% set info = { "aws": {"name": "AWS", "signup": "https://portal.aws.amazon.com/billing/signup", "free": "1M Lambda requests / month", "verify": "aws sts get-caller-identity", "console": "https://console.aws.amazon.com/"}, "gcloud": {"name": "Google Cloud", "signup": "https://cloud.google.com/free", "free": "$300 trial credit + free tier (2M Cloud Run invocations)", "verify": "gcloud auth list", "console": "https://console.cloud.google.com/"}, "azure": {"name": "Azure", "signup": "https://azure.microsoft.com/free", "free": "$200 trial credit + 180k Container Apps vCPU-s / month", "verify": "az account show", "console": "https://portal.azure.com/"}, } %} {% set meta = info.get(provider, {"name": provider, "signup": "", "free": "", "verify": "", "console": ""}) %}

Setup — {{ meta.name }}

← back to setup

1. Do you already have a {{ meta.name }} account?

If yes, skip to step 3. If no:

  • Sign up at {{ meta.signup }}
  • A credit or debit card is required for identity verification; free-tier usage is not charged ({{ meta.free }}).
  • For the full walk-through (billing alerts, IAM roles, gotchas), read docs/ACCOUNT_SETUP.md.

2. Create the IAM identity

sharktopus needs permission to create a bucket, push a container image, and deploy a serverless service in your account. The minimum roles per provider are documented in ACCOUNT_SETUP.md → {{ meta.name }}. For the first deploy, the admin-equivalent role on each cloud works.

Console link: {{ meta.console }}

3. Verify the credentials work

{% if meta.verify %}
{{ meta.verify }}

No error = you're ready for step 4.

{% endif %}

4. Run the guided deploy

The interactive wizard lives in the terminal today. It offers 2-3 auth paths per provider (browser OAuth, CLI, static keys / service principal) so you can pick the one that fits your host.

sharktopus --setup {{ provider }}

Note: a streaming-in-the-browser version of this wizard is planned (milestones M8–M10). Today the terminal is the source of truth.

What sharktopus --setup {{ provider }} will do

  1. Authenticate (you pick: browser OAuth, CLI, or keys).
  2. Enable the required APIs / resource providers in your project.
  3. Create the crop service's storage bucket.
  4. Create the container repository (ECR / Artifact Registry / ACR).
  5. Pull the sharktopus-crop image from GHCR.
  6. Deploy the serverless service.
  7. Run a smoke test against the new endpoint.
  8. Save endpoint + credentials to ~/.cache/sharktopus/.
{% endblock %}