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 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
- A Tinode server up and running
- A user account on the Tinode server with root privileges
- A purchased license with license key
- Docker installed
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:
- Windows: https://docs.docker.com/docker-for-windows/install/
- Mac: https://docs.docker.com/docker-for-mac/install/
- Linux: https://docs.docker.com/engine/install/
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:
- View user details
- Edit user details
- Edit user photo
- Suspend and unsuspend user
- Make user trusted/untrusted
- Edit user tags
- Delete user
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.