> ## Documentation Index
> Fetch the complete documentation index at: https://docs.loupp.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Providers

> Link or create servers from supported VPS providers in Loupp

# Server Providers

You can link or create servers from these providers in Loupp.

## Supported Server Providers

<CardGroup cols={2}>
  <Card title="DigitalOcean" icon="droplet" href="#digitalocean">
    Cloud infrastructure provider with simple pricing and developer-friendly tools.
  </Card>

  <Card title="AWS" icon="cloud" href="#aws">
    Amazon Web Services with comprehensive cloud computing platform.
  </Card>
</CardGroup>

## DigitalOcean

To begin, generating an API token within your DigitalOcean account is a straightforward process.

<Steps>
  <Step title="Navigate to API section">
    Log in to your <a href="https://digitalocean.com" target="_blank">digitalocean.com</a> account and navigate to the "API" section located in the left sidebar.
  </Step>

  <Step title="Access tokens and keys">
    From there, select "Tokens/Keys" and proceed to click on "Generate New Token" to initiate the token creation process.
  </Step>

  <Step title="Copy and configure">
    Copy the generated token and visit your server provider tab to add it to Loupp.
  </Step>
</Steps>

## AWS

To enable AWS support for your account, you'll need to create a secret/key pair to input into Loupp's system.

<Steps>
  <Step title="Access IAM settings">
    Start by visiting <a href="https://aws.amazon.com/iam/" target="_blank">AWS IAM Settings</a> and navigate to the "Access keys" tab.
  </Step>

  <Step title="Generate access key">
    From there, generate a new access key.
  </Step>

  <Step title="Configure in Loupp">
    Add the access key and secret to your server provider settings in Loupp.
  </Step>
</Steps>

### AWS IAM User Requirements

To ensure that Loupp works properly, your AWS IAM users must meet these requirements:

* **Programmatic API Access**: AWS IAM users are required to possess Programmatic API Access.
* **Managed Policies**: AWS IAM users must be part of a group that has been assigned the `AmazonEC2FullAccess` and `AmazonVPCFullAccess` managed policies.
* **VPC Configuration**: If you want to utilize an existing VPC, ensure that the subnet is configured to automatically assign public IP addresses.
* **Security Group**: This existing VPC default security group must permit Loupp to establish SSH connections to the server.

### Example AWS Security Group Settings

Below is an example of the required security group configuration:

<Frame caption="AWS Security Group Configuration Example">
  <table className="w-full border-collapse border border-gray-300">
    <thead>
      <tr className="bg-gray-50">
        <th className="border border-gray-300 px-4 py-2 text-left font-semibold">Type</th>
        <th className="border border-gray-300 px-4 py-2 text-left font-semibold">Protocol</th>
        <th className="border border-gray-300 px-4 py-2 text-left font-semibold">Port Range</th>
        <th className="border border-gray-300 px-4 py-2 text-left font-semibold">Source</th>
        <th className="border border-gray-300 px-4 py-2 text-left font-semibold">Description</th>
      </tr>
    </thead>

    <tbody>
      <tr>
        <td className="border border-gray-300 px-4 py-2">HTTP</td>
        <td className="border border-gray-300 px-4 py-2">TCP</td>
        <td className="border border-gray-300 px-4 py-2">80</td>
        <td className="border border-gray-300 px-4 py-2">0.0.0.0/0</td>
        <td className="border border-gray-300 px-4 py-2">HTTP</td>
      </tr>

      <tr>
        <td className="border border-gray-300 px-4 py-2">HTTP</td>
        <td className="border border-gray-300 px-4 py-2">TCP</td>
        <td className="border border-gray-300 px-4 py-2">80</td>
        <td className="border border-gray-300 px-4 py-2">::/0</td>
        <td className="border border-gray-300 px-4 py-2">HTTP</td>
      </tr>

      <tr>
        <td className="border border-gray-300 px-4 py-2">SSH</td>
        <td className="border border-gray-300 px-4 py-2">TCP</td>
        <td className="border border-gray-300 px-4 py-2">22</td>
        <td className="border border-gray-300 px-4 py-2">142.93.175.213</td>
        <td className="border border-gray-300 px-4 py-2">SSH from Loupp</td>
      </tr>

      <tr>
        <td className="border border-gray-300 px-4 py-2">HTTP</td>
        <td className="border border-gray-300 px-4 py-2">TCP</td>
        <td className="border border-gray-300 px-4 py-2">443</td>
        <td className="border border-gray-300 px-4 py-2">0.0.0.0/0</td>
        <td className="border border-gray-300 px-4 py-2">HTTP</td>
      </tr>

      <tr>
        <td className="border border-gray-300 px-4 py-2">HTTP</td>
        <td className="border border-gray-300 px-4 py-2">TCP</td>
        <td className="border border-gray-300 px-4 py-2">443</td>
        <td className="border border-gray-300 px-4 py-2">::/0</td>
        <td className="border border-gray-300 px-4 py-2">HTTP</td>
      </tr>
    </tbody>
  </table>
</Frame>

<Warning>
  Make sure to restrict SSH access (port 22) to only allow connections from Loupp's IP address (142.93.175.213) for security.
</Warning>

<Tip>
  After configuring your provider credentials, you can create new servers directly from the Loupp dashboard without needing to manually provision them through the provider's interface.
</Tip>
