Skip to content

Installation

Rico Suter edited this page Jul 2, 2021 · 27 revisions

This page describes how to self-host Apimundo as a Docker image.

Requirements

  • Docker host (e.g. an Azure App Service)
  • Azure SQL
  • Azure Blob Storage
  • Application Insights (optional)

In the future the system will be able to use different databases and storage technologies.

Installation on Azure

  • Create an Azure Blob Storage resource
  • Create an Application Insights instance (optional)
  • Create an Azure SQL database
    • Enable access from Azure resources
  • Create an App Service for Containers (Linux)
    • In "Containers settings" select
      • Container Type: Single Container
      • Registry source: Docker Hub
      • Repository Access: Public
      • Full image name and tag: namotion/apimundo:latest, or a specific version
      • Continuous deployment: On, to get the latest updates
    • In "Configuration" select "Advanced edit" and insert the following JSON with the connection strings and keys of the previously created resources:
      • A license can be purchased here
[
  {
    "name": "Payment__LicenseKey",
    "value": "XXX",
    "slotSetting": false
  },
  {
    "name": "ApplicationInsights__InstrumentationKey",
    "value": "XXX",
    "slotSetting": false
  },
  {
    "name": "Authentication__Audience",
    "value": "XXX",
    "slotSetting": false
  },
  {
    "name": "Authentication__Authority",
    "value": "XXX",
    "slotSetting": false
  },
  {
    "name": "Storage__BlobConnectionString",
    "value": "DefaultEndpointsProtocol=https;AccountName=XXX;AccountKey=XXX;EndpointSuffix=core.windows.net",
    "slotSetting": false
  },
  {
    "name": "Storage__SqlConnectionString",
    "value": "Server=tcp:XXX.database.windows.net,1433;Initial Catalog=Apimundo;Persist Security Info=False;User ID=apimundo;Password=XXX;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;",
    "slotSetting": false
  }
]

Use App Service authentication

You can enable App Service authentication and Apimundo will automatically pick up the Azure App Service headers for authentication. With this option the authentication is completely handled by the Azure App Service and this is the most secure option because not authorized people have no access to the site at all. However you cannot simply use Apimundo API Keys because calls additionally need to go through the App Service authentication and thus in addition you need to login with a user (e.g. password-flow).

To do so just enable Authentication in the App Service and use the following authentication configuration:

  • Authentication__Authority: https://login.microsoftonline.com/[TenantID], the Tenant ID can be found in the Azure Portal, Azure Active Directory Overview page
  • Authentication__Audience: The application ID of the authorized Enterprise Application

See also Authenticate with password-flow.

Notes

  • Currently Google Analytics is configured to a single instance. If you need to turn this off in your local installation, please contact us.
  • If the configuration ApplicationInsights__InstrumentationKey is not provided then your system will log our Application Insights instance so we can improve the product. If you do not want that your logs leave your premises, then use (space) as ApplicationInsights__InstrumentationKey.
  • Projects created in an on-premise Apimundo installation are all marked as premium.
Clone this wiki locally