Tinode

TnAdmin

TnAdmin is an interactive web application which provides visual controls for most common administrative tasks, such as looking up a user, resetting passwords, suspending users, viewing and reacting to user complaints, etc.

try it now

Try it live at https://sandbox.tinode.co/admin/. Login as xena, password xena123. This TnAdmin instance is configured to manage the Tinode cluster at https://sandbox.tinode.co/.


TnAdmin is provided as a docker container that you can run on your server(s) or workstations. TnAdmin requires a license key to run. The key is provided in the console.tinode.co or by contacting us at https://tinode.co/contact.

Installation instructions

Prerequisites

To purchase a license, contact us at https://tinode.co/contact. You will be given a license key and will get the access to the Docker image.

To install Docker, see:

Running

Run the following command in terminal of your server or desktop to run the app:

docker run -p=6070:6070 \
  --pull=always ***/***/admin:latest

It will run the app on port 6070. The user interface will be available at http://localhost:6070.

Configuration (optional)

Run the app on different port (eg 8080):

docker run -p=8080:6070 \
  --pull=always ***/***/admin:latest

Use a local directory to store application data:

docker run -v /your/local/directory:/var/app/data \
  -p=6070:6070 \
  --pull=always ***/***/admin:latest

Serve the app on a sub path (eg /admin):

docker run -e BASE_URL=/admin \
  -p=6070:6070 \
  --pull=always ***/***/admin:latest

The app will be available at http://localhost:6070/admin.

Advanced configuration (optional)

Running with Docker Compose

An example docker-compose.yml file:

version: '3.7'
services:
  admin:
    image: ***/***/admin:latest
    restart: always
    volumes:
      - /var/tinode-admin/data:/var/app/data
    environment:
      - BASE_URL=/admin
    ports:
      - "6070:6070"

To run the app, run the following command in the same directory as the docker-compose.yml file:

docker-compose up -d

Serving with Nginx on a separate domain

An example nginx.conf file:

access_log /var/log/nginx/access.log main buffer=32k flush=5m;

gzip on;
gzip_min_length  1100;
gzip_buffers     4 8k;
gzip_types       text/plain;

server {
  listen 443 ssl;

  server_name admin.your-tinode-domain.com;

  # SSL config:
  ssl_certificate /etc/letsencrypt/live/your-tinode-domain.com/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/your-tinode-domain.com/privkey.pem;
  include /etc/letsencrypt/options-ssl-nginx.conf;
  ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;


  # Admin service:
  location / {
    proxy_pass http://127.0.0.1:6070;
    proxy_read_timeout 90;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "Upgrade";
  }
}

Serving with Nginx on a subdomain of your Tinode domain:

An example nginx.conf file:

access_log /var/log/nginx/access.log main buffer=32k flush=5m;

gzip on;
gzip_min_length  1100;
gzip_buffers     4 8k;
gzip_types       text/plain;

server {
  listen 443 ssl;

  server_name your-tinode-domain.com;

  # SSL config:
  ssl_certificate /etc/letsencrypt/live/your-tinode-domain.com/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/your-tinode-domain.com/privkey.pem;
  include /etc/letsencrypt/options-ssl-nginx.conf;
  ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;

  # Tinode service:
  location / {
    proxy_pass http://127.0.0.1:6060;
    proxy_read_timeout 90;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "Upgrade";
  }

  # Tinode service:
  location /admin {
    proxy_pass http://127.0.0.1:6070;
    proxy_read_timeout 90;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "Upgrade";
  }
}

Serving with Nginx running in Docker on a subdomain:

Note that for this to work, you need to pass environment variable BASE_URL=/admin to the Docker container.

An example nginx.conf file:

access_log /var/log/nginx/access.log main buffer=32k flush=5m;

gzip on;
gzip_min_length  1100;
gzip_buffers     4 8k;
gzip_types       text/plain;

server {
  listen 443 ssl;

  server_name your-tinode-domain.com;

  # SSL config:
  ssl_certificate /etc/letsencrypt/live/your-tinode-domain.com/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/your-tinode-domain.com/privkey.pem;
  include /etc/letsencrypt/options-ssl-nginx.conf;
  ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;

  # Tinode service:
  location / {
    proxy_pass http://tinode
    proxy_read_timeout 90;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "Upgrade";
  }

  # Admin service:
  location /admin {
    proxy_pass http://admin:6070;
    proxy_read_timeout 90;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "Upgrade";
  }
}

Usage

Onboarding and login

When you first run the app, you will be asked to configure the app and provide your Tinode root user credentials. The app will use these credentials to log in to your Tinode server.

These actions should be performed only once, when you first run the app.

1. License key

On the first screen you will be asked to provide your license key. If you don't have one, you can request it at https://tinode.co/contact.

2. Tinode server URL

On the second screen you will be asked to provide the URL of your Tinode server. Note that the URL should be available for the server where you run the Admin app.

If you run both Admin app and Tinode server on one machine, you can use localhost:6060 (considering that your Tinode server runs on the default port 6060). If you run both Admin app and Tinode server in Docker, you can use tinode:6060 (considering that the name of your Tinode container is tinode).

If Admin app and Tinode server are connecting via external network, it's most likely you use SSL. In that case, turn on the "Use SSL" toggle.

If you use custom API key to serve the files uploaded by users, you can also enter it here.

3. Login as root

If you see this screen, the connection to your Tinode server was successful. Now you need to provide your Tinode root user login and password.

4. Use the Admin console

You are ready to go 🚀. Now you are at the home screen where the server and connection information is displayed. Use the menu on the left to navigate the app.

User management

In the "User management" section you can search for the users registered on your Tinode server and manage them:

Create user

In the "Create user" section you can create a new user on your Tinode server and provide some information about them, including login, name, description, photo, tags, etc.

Complaints

In the "Complaints" section you can view the list of complaints submitted by users. You can also view the details of each complaint and visit the corresponding conversation to see the context of the complaint.

Access to the Docker repository is provided after the payment.