2018-10-04 14:38:59 +03:00
# Frequently Asked Questions
2018-12-26 15:26:18 +03:00
### Q: Where can I find server logs when running in Docker?<br/>
2019-10-01 00:43:07 -07:00
**A**: The log is in the container at `/var/log/tinode.log` . Attach to a running container with command
2018-10-04 14:38:59 +03:00
```
2019-10-01 00:43:07 -07:00
docker exec -it name-of-the-running-container /bin/bash
2018-10-04 14:38:59 +03:00
```
2019-10-01 00:43:07 -07:00
Then, for instance, see the log with `tail -50 /var/log/tinode.log`
2018-10-04 14:38:59 +03:00
2019-10-01 00:43:07 -07:00
If the container has stopped already, you can copy the log out of the container (saving it to `./tinode.log` ):
2018-10-04 14:38:59 +03:00
```
2019-10-01 00:43:07 -07:00
docker cp name-of-the-container:/var/log/tinode.log ./tinode.log
2018-10-04 14:38:59 +03:00
```
2019-10-01 00:43:07 -07:00
Alternatively, you can instruct the docker container to save the logs to a directory on the host by mapping a host directory to `/var/log/` in the container. Add `-v /where/to/save/logs:/var/log` to the `docker run` command.
2020-03-30 15:54:08 +03:00
### Q: What are the options for enabling push notifications?<br/>
**A**: You can use Tinode Push Gateway (TNPG) or you can use Google FCM:
* _Tinode Push Gateway_ requires minimum configuration changes by sending pushes on behalf of Tinode.
* _Google FCM_ does not rely on Tinode infrastructure for pushes but requires you to recompile mobile apps (iOS and Android).
### Q: How to setup push notifications with Tinode Push Gateway?<br/>
**A**: Enabling TNPG push notifications requires two steps:
* register at console.tinode.co and obtain a TNPG token
* configure server with the token
#### Obtain TNPG token
1. Register at https://console.tinode.co and create an organization.
2. Get the TPNG token from the _On premise_ section by following the instructions there.
#### Configuring the server
Update the server config [`tinode.conf` ](../server/tinode.conf#L384 ), section `"push"` -> `"name": "tnpg"` :
```js
{
"enabled": true,
"org": "test", // name of the organization you registered at console.tinode.co
"token": "SoMe_LonG.RaNDoM-StRiNg.123" // authentication token obtained from console.tinode.co
}
```
Make sure the `fcm` section is disabled `"enabled": false` .
### Q: How to setup push notifications with Google FCM?<br/>
**A**: Enabling FCM push notifications requires the following steps:
2020-01-12 22:01:14 +03:00
* enable push sending from the server
* enable receiving pushes in the clients
#### Server and TinodeWeb
2019-07-20 12:12:02 +03:00
1. Create a project at https://firebase.google.com/ if you have not done so already.
2018-10-26 08:56:17 +03:00
2. Follow instructions at https://cloud.google.com/iam/docs/creating-managing-service-account-keys to download the credentials file.
2019-04-08 16:41:09 +03:00
3. Update the server config [`tinode.conf` ](../server/tinode.conf#L255 ), section `"push"` -> `"name": "fcm"` . Do _ONE_ of the following:
2019-01-06 08:02:57 -08:00
* _Either_ enter the path to the downloaded credentials file into `"credentials_file"` .
2019-07-20 12:12:02 +03:00
* _OR_ copy the file contents to `"credentials"` .< br />< br />
2018-10-26 09:01:07 +03:00
Remove the other entry. I.e. if you have updated `"credentials_file"` , remove `"credentials"` and vice versa.
2020-01-12 22:01:14 +03:00
4. Update [TinodeWeb ](/tinode/webapp/ ) config [`firebase-init.js` ](https://github.com/tinode/webapp/blob/master/firebase-init.js ): update `apiKey` , `messagingSenderId` , `projectId` , `appId` , `messagingVapidKey` . See more info at https://github.com/tinode/webapp/#push_notifications
2018-10-26 08:56:17 +03:00
2020-01-12 22:01:14 +03:00
#### iOS and Android
2020-03-30 15:54:08 +03:00
1. If you are using an Android client, add `google-services.json` to [Tindroid ](/tinode/tindroid/ ) by following instructions at https://developers.google.com/android/guides/google-services-plugin and recompile the client. You may also optionally submit it to Google Play Store.
2020-01-12 22:01:14 +03:00
See more info at https://github.com/tinode/tindroid/#push_notifications
2020-03-30 15:54:08 +03:00
2. If you are using an iOS client, add `GoogleService-Info.plist` to [Tinodios ](/tinode/ios/ ) by following instructions at https://firebase.google.com/docs/cloud-messaging/ios/client) and recompile the client. You may optionally submit the app to Apple AppStore.
2020-01-12 22:01:14 +03:00
See more info at https://github.com/tinode/ios/#push_notifications
2018-12-14 14:13:25 +03:00
2019-10-13 11:17:55 +03:00
### Q: How can new users be added to Tinode?<br/>
2019-01-05 14:45:57 -08:00
**A**: There are three ways to create accounts:
2019-10-13 11:17:55 +03:00
* A user can create a new account using one of the applications (web, Android, iOS).
2019-04-08 16:41:09 +03:00
* A new account can be created using [tn-cli ](../tn-cli/ ) (`acc` command). The process can be scripted.
2019-01-05 15:09:39 -08:00
* If the user already exists in an external database, the Tinode account can be automatically created on the first login using the [rest authenticator ](../server/auth/rest/ ).
2019-01-05 14:45:57 -08:00
2018-12-14 14:13:25 +03:00
### Q: How to create a `root` user?<br/>
2018-12-26 15:26:18 +03:00
**A**: The `root` access can be granted to a user only by executing a database query. First create or choose the user you want to promote to `root` then execute the query:
2018-12-14 14:13:25 +03:00
* RethinkDB:
```js
r.db("tinode").table("auth").get("basic:login-of-the-user-to-make-root").update({authLvl: 30})
```
* MySQL:
```sql
2020-03-21 15:40:45 +01:00
USE 'tinode';
2018-12-14 14:13:25 +03:00
UPDATE auth SET authlvl=30 WHERE uname='basic:login-of-the-user-to-make-root';
```
The test database has a stock user `xena` which has root access.