![Rdio Scanner](../images/rdio-scanner.png?raw=true)\

\pagebreak{}

# What is it ?

[Rdio Scanner](https://github.com/chuot/rdio-scanner) is an open source software that ingest and distribute audio files generated by various software-defined radio recorders. Its interface tries to reproduce the user experience of a real police scanner, while adding its own touch.

You can listen to [Rdio Scanner](https://github.com/chuot/rdio-scanner) on any modern browsers using the integrated web app.

# Recorders compatibility

[Rdio Scanner](https://github.com/chuot/rdio-scanner) works with any radio recorder, as long as they can create audio files separated by conversations or transmissions.

Here is a list of recorders known to work with [Rdio Scanner](https://github.com/chuot/rdio-scanner):

| Recorder                                                       | API | Dirwatch |
| -------------------------------------------------------------- | --- | -------- |
| [Trunk Recorder](https://github.com/robotastic/trunk-recorder) | X   | X        |
| [RTLSDR-Airband](https://github.com/szpajder/RTLSDR-Airband)   |     | X        |
| [sdrtrunk](https://github.com/DSheirer/sdrtrunk)               |     | X        |
| [voxcall](https://github.com/aaknitt/voxcall)                  | X   |          |
| [ProScan](https://www.proscan.org/)                            |     | X        |

# Improve your experience on the go

You can enjoy your [Rdio Scanner](https://github.com/chuot/rdio-scanner) on the go on your mobile device with the native app.

[![Available on the App Store](../images/app-store-badge.png?raw=true)](https://apps.apple.com/us/app/rdio-scanner/id1563065667#?platform=iphone)
[![Get it on Google Play](../images/google-play-badge.png?raw=true)](https://play.google.com/store/apps/details?id=solutions.saubeo.rdioScanner)

\pagebreak{}

# Quick start

ALWAYS DOWNLOAD THE LATEST VERSION OF [RDIO SCANNER](https://github.com/chuot/rdio-scanner) FROM ITS OFFICIAL REPOSITORY AT **[HTTPS://GITHUB.COM/CHUOT/RDIO-SCANNER](https://github.com/chuot/rdio-scanner)**. PRECOMPILED VERSIONS ARE LOCATED UNDER THE [RELEASES TAB](https://github.com/chuot/rdio-scanner/releases).

1. Make sure you have the latest version of [Rdio Scanner](https://github.com/chuot/rdio-scanner).

2. Extract the contents of the archive somewhere on your computer. The configuration file and the database file will be created in this same folder.

        [rdio@pc-linux ~]$ mkdir rdio-scanner
        [rdio@pc-linux ~]$ cd rdio-scanner
        [rdio@pc-linux rdio-scanner]$ unzip \
        > ~/Downloads/rdio-scanner-linux-amd64-v6.1.8.zip 
        Archive:  /home/rdio/Downloads/rdio-scanner-linux-amd64-v6.1.8.zip
          inflating: rdio-scanner            
          inflating: rdio-scanner.pdf     

3. Run the executable.

        [rdio@pc-linux rdio-scanner]$ ./rdio-scanner 
        
        Rdio Scanner v6.1.8
        ----------------------------------
        2022/01/28 09:11:48 server started
        2022/01/28 09:11:48 main interface at http://pc-linux:3000
        2022/01/28 09:11:48 admin interface at http://pc-linux:3000/admin

4. Access the administrative dashboard to finalize the configuration.

> _Note that the default password is **rdio-scanner**_

![admin dashboard login](../images/admin-login.png?raw=true)\

5. Configure your [Rdio Scanner](https://github.com/chuot/rdio-scanner) instance.

![admin dashboard todos](../images/admin-todos.png?raw=true)\

# Advanced customizations

## Listening on an alternate port

Here we want our [Rdio Scanner](https://guthub.com/chuot/rdio-scanner) instance to listen for connections on the standard HTTP port.

> Because privileged ports requires root privileges, we need to run the command as _root_.

        [rdio@pc-linux rdio-scanner]$ sudo ./rdio-scanner -listen :80
        [sudo] password for rdio: 
        
        Rdio Scanner v6.1.8
        ----------------------------------
        2022/01/28 09:14:00 server started
        2022/01/28 09:14:00 main interface at http://pc-linux
        2022/01/28 09:14:00 admin interface at http://pc-linux/admin

## Listening with SSL with self-signed certificates

It is advised to share your [Rdio Scanner](https://github.com/chuot/rdio-scanner) instance over the Internet by listening to a SSL port.

We can create such self-signed certificates by running [Rdio Scanner](https://github.com/chuot/rdio-scanner) with the **-ssl_create** argument.

        [rdio@pc-linux rdio-scanner]$ ./rdio-scanner -ssl_create
        2022/01/28 09:15:03 generating ssl certificate files
        2022/01/28 09:15:05 ssl files created

This has generated these files in the same folder as your [Rdio Scanner](https://github.com/chuot/rdio-scanner) executable.

- **ca.crt** - self-signed certificate authority.
- **ca.key** - certificate authority private key.
- **server.crt** - self-signed server certificate.
- **server.key** - server private key.

Now we use the self-signed server certificate to run our instance.

        [rdio@pc-linux rdio-scanner]$ sudo ./rdio-scanner \
        > -listen :80                                     \
        > -ssl_cert_file server.crt                       \
        > -ssl_key_file server.key                        \
        > -ssl_listen :443
        [sudo] password for rdio: 
        
        Rdio Scanner v6.1.8
        ----------------------------------
        2022/01/28 09:16:47 server started
        2022/01/28 09:16:47 main interface at http://pc-linux
        2022/01/28 09:16:47 main interface at https://pc-linux
        2022/01/28 09:16:47 admin interface at https://pc-linux/admin

## Save your advanced configuration to a config file

You don't want to have to type everytime a long list of arguments. No problem, you can save your advanced configuration to a file by adding the **-config_save** argument.

        [rdio@pc-linux rdio-scanner]$ ./rdio-scanner \
        > -listen :80                                \
        > -ssl_cert_file server.crt                  \
        > -ssl_key_file server.key                   \
        > -ssl_listen :443                           \
        > -config_save
        2022/01/28 09:19:29 rdio-scanner.ini file created

All of your parameters passed as arguments to [Rdio Scanner](https://github.com/chuot/rdio-scanner) have been saved to an INI file which has the same arguments/values list.

        db_file = rdio-scanner.db
        db_type = sqlite
        listen = :80
        ssl_cert_file = server.crt
        ssl_key_file = server.key
        ssl_listen = :443

Then simply run [Rdio Scanner](https://github.com/chuot/rdio-scanner) without any arguments.

        [rdio@pc-linux rdio-scanner]$ sudo ./rdio-scanner 
        [sudo] Mot de passe de rdio : 
        
        Rdio Scanner v6.1.8
        ----------------------------------
        2022/01/28 09:20:40 server started
        2022/01/28 09:20:40 main interface at http://pc-linux
        2022/01/28 09:20:40 main interface at https://pc-linux
        2022/01/28 09:20:40 admin interface at https://pc-linux/admin

## Install Rdio Scanner as a service

Everything looks ok now, but you do not want to manualy start [Rdio Scanner](https://github.com/chuot/rdio-scanner) after every reboot. No problem, you can install your server instance as a service. **Note that you will be required to proceed in a command prompt that is running as Administrator**.

        [rdio@pc-linux rdio-scanner]$ sudo ./rdio-scanner -service install
        [sudo] Mot de passe de rdio : 
        [rdio@pc-linux rdio-scanner]$ sudo ./rdio-scanner -service start
        [rdio@pc-linux rdio-scanner]$ ps ax | grep rdio
         107957 ?        Ssl    0:00 /home/chuot/rdio-scanner/rdio-scanner -service run
         107976 pts/0    S+     0:00 grep --color=auto rdio

\pagebreak{}

## Get the full list of arguments

To get the whole list of arguments you can pass to [Rdio Scanner](https://github.com/chuot/rdio-scanner), simply pass the argument **-h**.

        [rdio@pc-linux rdio-scanner]$ ./rdio-scanner -h
        Usage of ./rdio-scanner:
          -admin_password string
                change admin password
          -base_dir string
                base directory where all data will be written
          -config string
                server config file (default "rdio-scanner.ini")
          -config_save
                save configuration to rdio-scanner.ini
          -db_file string
                sqlite database file (default "rdio-scanner.db")
          -db_host string
                database host ip or hostname (default "localhost")
          -db_name string
                database name
          -db_pass string
                database password
          -db_port uint
                database host port (default 3306)
          -db_type string
                database type, one of sqlite, mariadb, mysql (default "sqlite")
          -db_user string
                database user name
          -listen string
                listening address (default ":3000")
          -service string
                service command, one of start, stop, restart, install, uninstall
          -ssl_auto_cert string
                domain name for Let's Encrypt automatic certificate
          -ssl_cert_file string
                ssl PEM formated certificate
          -ssl_create
                create self-signed certificates
          -ssl_key_file string
                ssl PEM formated key
          -ssl_listen string
                listening address for ssl
          -version
                show application version
        [rdio@pc-linux rdio-scanner]$

\pagebreak{}

# Need help ?

You can ask your questions or post your comments on the [Rdio Scanner Discussions](https://github.com/chuot/rdio-scanner/discussions) at **[https://github.com/chuot/rdio-scanner/discussions](https://github.com/chuot/rdio-scanner/discussions)** or on the [Gitter Rdio Scanner Lobby](https://gitter.im/rdio-scanner/Lobby) at **[https://gitter.im/rdio-scanner/Lobby](https://gitter.im/rdio-scanner/Lobby)**.

# Show your appreciation, support the author

If you like [Rdio Scanner](https://github.com/chuot/rdio-scanner), **[consider starring the GitHub repository](https://github.com/chuot/rdio-scanner)** to show you appreciation to the author for his hard work. It cost nothing but is really appreciated.

If you use [Rdio Scanner](https://github.com/chuot/rdio-scanner) for commercial purposes or derive income from it, **[consider sponsoring the project](https://github.com/sponsors/chuot)** to help support continued development.

# Commercial support

Commercial support is available at **[https://saubeo.solutions/](https://saubeo.solutions)**.

**Happy Rdio scanning !**

\pagebreak{}