Now it's native, more asynchronous, and does not require to mess your server up with a monstrous third-party interpreter.
The configuration file is compatible with Zhabogram 2.0, so you can easily copy your existing `config.yml`.
### Build ###
Prerequisites: Go links the binary against the `glibc` version present in the system where the build process happens, so it should be less or equal to the version of `glibc` in the system where Telegabber will run.
* Build TDLib according to [TDLib build instructions](https://tdlib.github.io/td/build.html). The 1.5.0 version is needed currently; for switching to it, run this after `cd td`:
First of all, you need to create component listener on your Jabber server.
For example, for ejabberd in **/etc/ejabberd/ejabberd.yml**:
```
listen:
-
port: 8888
module: ejabberd_service
access: all
shaper_rule: fast
ip: "127.0.0.1"
service_check_from: false
hosts:
"tlgrm.localhost":
password: "secret"
```
Next, rename **config.yml.example** to **config.yml** and edit **xmpp** section to match your component listener:
```
:xmpp:
db 'users.db'
jid: 'tlgrm.localhost'
host: 'localhost'
port: 8888
secret: 'secret'
loglevel: :warn
```
### Configuration ###
It is good idea to obtain Telegram API ID from [**https://my.telegram.org**](https://my.telegram.org) to remove demo key requests limit, and then edit in **config.yml**:
```
:telegram:
:tdlib:
:lib_path: 'lib/'
:client:
:api_id: '845316' # telegram API ID (my.telegram.org) #
:api_hash: '27fe5224bc822bf3a45e015b4f9dfdb7' # telegram API HASH (my.telegram.org) #
...
```
### How to receive files from Telegram ###
First of all, you need to set up web server that will serve some directory in your filesystem.
Example nginx config:
```
server {
listen 80;
server_name tlgrm.localhost;
location /content {
alias /var/zhabogram;
}
}
```
You need to set `:content: → :path: and :link:`**config.yml**.
Set `:path:` according to location (for our example it will be `/var/zhabogram/content`).
Set `:link:` according to server_name (for our example it will be `http://tlgrm.localhost`)
### How to send files to Telegram chats ###
You need to setup `mod_http_upload` for your XMPP server.
For example, for ejabberd in **/etc/ejabberd/ejabberd.yml**
```
modules:
mod_http_upload:
docroot: "/var/ejabberd/upload" # this must be a valid path, user ownership and SELinux flags must be set accordingly