Skip to content

Guides

White-label the console

Offer the Thinger.io console with your logo, colors, hostname and emails, from the brand to the domain and the email templates.

Medium plan and above

Tutorial4 min read

In this tutorial you give the console of your instance your own identity: your logos and colors, your hostname with its certificate, and the emails your users receive. You need to be an administrator of the instance. It takes about 30 minutes, plus the time your DNS takes to propagate.

What you need ​

  • A Thinger.io private instance on the Medium plan or above, and an administrator account on it. YOUR_SERVER is the hostname you use today to open the console.
  • A hostname of your own, such as iot.example.com, and access to its DNS.
  • Your logos as PNG or WebP files.
  • Optional: an SMTP server or Amazon SES account, if the emails must leave from your own address.

Create the brand ​

A brand is the look of the console on one hostname. Its ID is that hostname.

  1. Add the brand

    Console

    Go to Administration > Brands and click Add Brand (or Create a Brand if you have none). Set the Domain Name to iot.example.com, add a Description if you want and click Add Brand.

    API

    YOUR_TOKEN is an access token of an administrator.

    POST/v1/brandsAPI reference
    bash
    curl -X POST "https://YOUR_SERVER/v1/brands" \
      -H "Authorization: Bearer YOUR_TOKEN" \
      -H "Content-Type: application/json" \
      -d '{
        "brand": "iot.example.com",
        "name": "Example IoT",
        "enabled": true,
        "config": {
          "title": "Example IoT Console",
          "copyright": "© Example Inc.",
          "style": { "topBar": { "background": "#132533", "color": "#ffffff" } }
        }
      }'

    AI

    Ask your AI agent

    Create a brand for iot.example.com with the title Example IoT Console and a dark blue top bar with white text.

    The agent uses thinger_resource_create with the brand type. See MCP tools.

    The CLI has no commands for brands.

  2. Set the visual identity

    Open the brand and fill in its tabs. Save each tab before you move to the next one.

    TabWhat to set
    InformationPage title, Company Name, Contact Email, Copyright, and whether the menu shows the Community Links.
    LogosFavicon, Platform Logo, Menu Logo and Menu Icon.
    Top BarTop Bar Background and Top Bar Text colors.
    LoginBackground Color or Background Image, and the Box Location of the login form.
    PWAName, colors and icons of the app users can install from the browser.
    Logos tab of a brand with the favicon, platform logo, menu logo and menu icon
    Logos tab of a brand
  3. Decide who can sign up

    On Accounts, choose whether anyone can sign up on this hostname (Public Sign-up), which sign-in methods the login page offers and whether accounts created on other hostnames can sign in here (Cross Sign-in). Each option is described in Accounts on a brand.

    Warning

    Keep at least one sign-in method that an administrator can use, or nobody can sign in on this hostname.

Connect your domain ​

A domain makes the hostname reach your instance over HTTPS. The brand applies as soon as the console is opened on that hostname.

  1. Point the DNS to your instance

    In your DNS provider, create a CNAME record from iot.example.com to YOUR_SERVER, or an A record with the public IP address of your instance. Port 80 of the instance must be reachable from the internet, because the certificate is checked over HTTP.

  2. Add and verify the domain

    Console

    Go to Administration > Domains and click Add Domain (or Create a Domain). Set the Domain Name to iot.example.com and click Add Domain. Open the domain and, in DNS Configuration, click Verify domain.

    API

    POST/v1/domainsAPI reference
    bash
    curl -X POST "https://YOUR_SERVER/v1/domains" \
      -H "Authorization: Bearer YOUR_TOKEN" \
      -H "Content-Type: application/json" \
      -d '{"domain": "iot.example.com"}'
    POST/v1/domains/{domain}/verifyAPI reference
    bash
    curl -X POST "https://YOUR_SERVER/v1/domains/iot.example.com/verify" \
      -H "Authorization: Bearer YOUR_TOKEN"

    AI

    Ask your AI agent

    Add the domain iot.example.com to my instance and verify it.

    The agent uses thinger_resource_create with the domain type and thinger_resource_call with its verify action.

    When the certificate is issued, the domain shows Domain verified. If verification fails, the console shows the reason; usually the DNS record has not propagated yet.

Customize the emails ​

The brand also sets the emails the instance sends to the users of this hostname.

  1. Edit the templates

    Open the brand and go to Email Templates. Edit the sender, the subject and the HTML body of Email Verification, Create Password, Forgot Password and Device Disabled. Keep the link with the code in each template; the placeholders are listed in Email templates. Link your logo by its public address, such as https://iot.example.com/brand/images/dark_logo.png, because email clients do not load embedded images.

  2. Send from your own server

    To send from your own address, go to Email Settings, turn on Custom Brand Email and enter the settings of your SMTP server or Amazon SES. Without it, the emails go out through the mail settings of the instance.

  3. Send a test email

    On Email Templates, click Test Email. The instance sends the saved template to your own address.

Result ​

Opening https://iot.example.com shows the login page with your colors and logo, over a valid certificate. After signing in, the menu, the top bar and the page title are yours, and the emails of this hostname arrive with your templates.

To go back to the default look, remove the brand in Administration > Brands; the domain and its certificate stay.

Next steps ​

To give your users the mobile app with your brand too, see White-label app.