Larmo is a command line music player that streams audio files to the server to play them remotely.
The server needs to start remote-player executable. It will wait for connections from clients to do their bidding.
There is an authentication system in place based on SSL/TLS so all communication is encrypted.
First command on the client’s system should be:
remote-control daemonIt will create a daemon that will work as a proxy between the server and the command line utility. It works in the background. For the foreground mode use:
remote-control daemon --foregroundWhen the daemon is running you can, for example, use:
remote-control play /path/to/file.mp3You can check the available commands with:
remote-control --helpBoth the server and the client can read all necessary settings from the configuration file. For example:
passphrase = my_pass
grpc_port = 5345
grpc_host = my_hostname
cert_file = /path/to/server.crtFor now, by default it searches the working directory for the configuration file: lrm.conf, although it can be manually selected by:
remote-player --config=/path/to/my_lrm_config.confThe certificate needs to be generated in place with the CN being the hostname that the client will use to connect to the server.
The server needs to have access to the private key that signed the certificate. It will expect to find it in the working dir, named server.key. For now there is no option to configure its path.
- mpv
- grpc (>= 1.3.2)
- asio (>= 1.12.1)
- gcc or clang (must support c++17)
- meson
apt update && \
apt install -y git g++ pkg-config meson libprotobuf-dev \
protobuf-compiler libgrpc++-dev protobuf-compiler-grpc libasio-dev \
libmpv-devgit clone --recurse-submodules \
https://github.com/jakub-w/Larmo.git && \
cd Larmomeson --buildtype=release builddir && cd builddir && ninjaapt update && \
apt install -y git clang pkg-config meson libasio-dev libmpv-dev \
libprotobuf-dev protobuf-compiler libgrpc++-dev \
protobuf-compiler-grpcgit clone --recurse-submodules https://github.com/jakub-w/Larmo && \
cd Larmomeson --buildtype=release builddir && cd builddir && ninja