Skip to content

Administration

Server settings

Every setting of a Thinger.io server in Cluster Hosts, what it changes and how to edit it from the console, the API or an agent.

Reference6 min read

The Settings tab of each host in Cluster Hosts holds the configuration of the server: its ports, mail, storage, TLS, accounts and security headers. Changes apply after you restart the host.

Change a setting ​

Console

  1. Open the settings

    Go to Administration > Cluster Hosts, click the host and open the Settings tab. Choose a section in the left menu.

  2. Save the section

    Change the fields and save the section. Each section is saved on its own.

    Email section of the server settings with SMTP selected
    Email settings with SMTP
  3. Restart the server

    Open Restart Server and click Restart Now to apply the changes.

API

GET /v1/hosts/{host}/settings reads the settings; PUT merges the body into them: send only the sections you change, and null to remove a value and return to the default. Ports are strings. YOUR_SERVER is the hostname of your instance, YOUR_TOKEN an access token of an administrator, and server-1 the host ID.

PUT/v1/hosts/{host}/settingsAPI reference
bash
curl -X PUT "https://YOUR_SERVER/v1/hosts/server-1/settings" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"mqtt_server": {"port": "1884", "ssl_port": "8884"}}'

Then restart with POST /v1/hosts/{host}/restart.

CLI

The CLI has no commands for server settings. Use the console, the API or an agent.

AI

Ask your AI agent

Configure the server to send its emails through smtp.example.com on port 587 with STARTTLS, from noreply@example.com. Ask me for the SMTP password, and restart the server only after I confirm.

The agent uses thinger_resource_call with the read_settings, update_settings and restart actions of the host. See MCP tools.

Warning

A wrong port, mail or sign-in setting can leave devices or users without access after the restart. Note the current value before you change it.

On instances installed by Thinger.io, that is every Cloud instance and every on-premise installation with a license, some settings belong to the plan or the license: the limits of accounts, brands, domains and members, the database of the server, plugins and rate limits. They are not shown in the settings, and the API answers 403 Forbidden if you try to change them; see Plans and limits.

HTTP Server ​

The REST API and the console. Key http_server.

HTTP Server section of the server settings with Enabled on, the listen address 0.0.0.0 and the ports 80 and 443
HTTP Server settings
FieldKeyDescription
EnabledenabledServe the console and the REST API. On by default.
Listen AddressaddressAddress the server listens on, such as 0.0.0.0.
TCP PortportHTTP port. Default "80".
TLS Portssl_portHTTPS port. Default "443".

Keep the HTTP server enabled

With Enabled off, after the restart the server does not open its HTTP ports: there is no console and no REST API to turn it on again, and HTTP devices and plugins stop working. To recover the instance, contact Thinger.io support.

IOTMP Server ​

The device connections of the Thinger.io libraries. Key thing_server.

IOTMP Server section of the server settings with Enabled on, the listen address and the ports 25200 and 25202
IOTMP Server settings
FieldKeyDescription
EnabledenabledAccept IOTMP devices.
Listen AddressaddressAddress the server listens on.
TCP PortportPlain port. Default "25200".
TLS Portssl_portTLS port. Default "25202".
—port_v2, ssl_port_v2Ports of IOTMP version 2, plain and TLS. Defaults "25204" and "25206". Only in the API.

MQTT Server ​

The MQTT broker for devices. Key mqtt_server.

MQTT Server section of the server settings with Enabled on, the listen address and the ports 1883 and 8883
MQTT Server settings
FieldKeyDescription
EnabledenabledAccept MQTT devices.
Listen AddressaddressAddress the broker listens on.
TCP PortportPlain port. Default "1883".
TLS Portssl_portTLS port. Default "8883".

Proxies ​

Key proxies.

Proxies section of the server settings with the dynamic port range from 50000 to 51000
Dynamic port range of the proxies
FieldKeyDescription
Port Startdynamic_port_range_startFirst port given to proxies without a fixed port. Default 50000.
Port Enddynamic_port_range_endLast port of the range. Default 51000.

Email ​

The mail the server sends (account verification, password reset, account creation, device disabled) when the brand of the hostname has no mail of its own. Key email.

Amazon SES tab of the Email section with the AWS access key ID, an empty secret access key and the region eu-west-1
Email settings with Amazon SES
FieldKeyDescription
Email TypetypeNone, SMTP (smtp) or Amazon SES (ses).
From, Namefrom, from_nameSender address and name.
Host, Portsmtp.host, smtp.portSMTP server and port, as a string ("587").
Username, Passwordsmtp.username, smtp.passwordSMTP credentials.
SSL/TLS Connectionsmtp.secureOn: TLS from the start (usually port 465). Off: the server must offer STARTTLS (usually 587).
AWS Access Key ID, AWS Secret Access Key, Regionses.aws_access_key_id, ses.aws_secret_access_key, ses.aws_regionAmazon SES credentials and region.

Buckets ​

Where Data Buckets keep their data and where their exports are written. Key buckets.

Buckets section of the server settings: Storage Engine Settings with the General, InfluxDB, DynamoDB and MongoDB tabs and MongoDB as storage engine, and Bucket Export Settings below
Storage engine of the buckets
FieldKeyDescription
Storage Enginestorage.defaultEngine of new buckets: MongoDB (mongodb), InfluxDB (influxdb) or DynamoDB (dynamodb). It must be one of the engines the server starts. Keep it set: without a value, the server offers InfluxDB as the default even when it is not started.
—storage.typeEngines the server starts, as a name or a list, such as ["mongodb", "dynamodb"]. Default "mongodb". Only in the API.

GET /v1/server/buckets/backends returns the engines the server started, its default engine and their retention limits.

InfluxDB ​

Key buckets.storage.influxdb.

InfluxDB tab of the Storage Engine Settings with influxdb.example.com as host, port 8086, a username and an empty password
InfluxDB storage engine
FieldKeyDescription
InfluxDB HosthostHost of the InfluxDB server. Default localhost.
InfluxDB PortportPort of the InfluxDB server, as a string. Default "8086".
InfluxDB Username, InfluxDB Passwordusername, passwordStored with the settings. The server does not use them to connect to InfluxDB.

DynamoDB ​

Key buckets.storage.dynamodb.

DynamoDB tab of the Storage Engine Settings with Events as table name, the AWS access key ID, an empty secret access key and the region eu-west-1
DynamoDB storage engine
FieldKeyDescription
Table Nametable_nameDynamoDB table that keeps the data of every bucket. Default Events.
AWS Access Key ID, AWS Secret Access Keyaws_access_key_id, aws_secret_access_keyAWS credentials with access to the table.
Regionaws_regionAWS region of the table, such as eu-west-1.

MongoDB ​

Key buckets.storage.mongodb.

MongoDB tab of the Storage Engine Settings with the MongoDB URI, an empty Max Retention and 7884000 seconds as Default Retention
MongoDB storage engine
FieldKeyDescription
MongoDB URIconnection_stringStored with the settings, such as mongodb://localhost:27017. Data Buckets on MongoDB are kept in the database of the server, not at this URI.
Max Retentionmax_retentionLongest retention a bucket can have, in seconds. 0 or empty: no limit.
Default Retentiondefault_retentionRetention new buckets get by default, in seconds, such as 7884000 (about three months).

Bucket export ​

Where the exports of Data Buckets are written. Key buckets.export.

Filesystem tab of the Bucket Export Settings with exports as Export Path
Bucket exports to the file system of the server
AWS S3 tab of the Bucket Export Settings with the bucket, the access key ID, an empty secret access key and the region
Bucket exports to AWS S3
FieldKeyDescription
Export LocationtypeFile System (filesystem) or AWS S3 (s3).
Export Pathfilesystem.export_pathFolder of the server where exports are written, such as exports. A relative path is inside the data folder of the server (/data/thinger on on-premise).
Bucket IDs3.bucket_idName of the S3 bucket.
AWS Access Key ID, AWS Secret Access Key, Regions3.aws_access_key_id, s3.aws_secret_access_key, s3.aws_regionAWS credentials with write access to the S3 bucket, and its region.

SSL Certificates ​

TLS options of every TLS port. Key ssl. The certificates of the hostnames are managed in Domains.

SSL Certificates section of the server settings with the cipher list, the prefer server ciphers and legacy protocols switches and the client CA certificates
SSL Certificates settings
FieldKeyDescription
SSL Server Ciphersssl_ciphersOpenSSL cipher list.
Server Ciphersssl_prefer_server_ciphersPrefer the server's cipher order.
Insecure Protocolsssl_enable_legacy_protocolsAccept TLS 1.0 and TLS 1.1, for old devices.
Client CA Certsclient_ca_certsPEM certificates of the authorities whose client certificates the server accepts.

Accounts ​

Sign-up, sign-in and default limits of the accounts. Key accounts. A brand can override the sign-up and sign-in options for its hostname.

Registration tab of the Accounts section with the admin email, example.com as required email domain, password lengths, Public Signup on and the authentication options
Registration settings of the accounts
FieldKeyDescription
Admin Emailsadmin_emailsAccounts registered with these emails become administrators.
Invalid Email Domains, Required Email Domainsinvalid_email_domains, required_email_domainsEmail domains rejected on sign-up, or the only ones accepted.
Invalid Usernamesinvalid_usernamesUsernames that cannot be registered.
Min Password Length, Max Password Lengthmin_password_length, max_password_lengthPassword length rules. Defaults 8 and 48.
Public Signuppublic_sign_upAnyone can create an account. Account Role sets the role of new accounts: developer (user) or project member (member).
Require email verificationrequire_email_verificationNew accounts must confirm their email.
Recaptchano_robotreCAPTCHA on sign-up, with its secret.
Password Login, Passwordless Loginallow_password, allow_passwordlessSign-in with password, or with passkeys.
Require 2FArequire_2faEvery user must set up a second factor.
Federated Loginfederated_login, identity_providersShow the identity providers on the login page, all of them or the chosen ones. The Callback URL is the one to register at the provider.
Limits tablimitsDefault limits of every account: maximum number of access tokens, buckets, dashboards, devices, endpoints, plugins, projects, project members, alarm rules and instances, syncs, file storages, asset types and groups, and bucket retention. -1 is unlimited and 0 disables the feature. Each account can override them.
Limits tab of the Accounts section with the default account limits, all set to -1 (unlimited), and the bucket retention
Default limits of the accounts

Some features are disabled until their limit is raised: projects, project members, domains, brands and identity providers. On a Cloud instance your plan sets them.

Deployment ​

Security headers and the contact of the instance. Key deployment.

Deployment section of the server settings with the contact email, the Disable Swagger API switch, SAMEORIGIN as X-Frame-Options and an empty Content-Security-Policy
Deployment settings
FieldKeyDescription
Contact Emailcontact_emailThe account registered with this email becomes administrator. It is also the administrator address in the email templates.
Disable Swagger APIdisable_swaggerHide the OpenAPI document at /v1/server/swagger.json.
X-Frame-Optionsx_frame_optionsHeader that controls who can embed the console in a frame. Default SAMEORIGIN.
Content-Security-Policycontent_security_policyContent Security Policy header of the console.

Scripting Engine ​

Key scripting_engine.

Scripting Engine section of the server settings with the NodeJS engine enabled
Scripting Engine settings
FieldKeyDescription
Enginenodejs.enabledRun the JavaScript code of products.

Restart Server ​

Restart Server section of the server settings with the Restart Now button
Restart Server

Applies the saved settings. See Restart a host.