Files
mus-fuse/README.md

84 lines
2.2 KiB
Markdown
Raw Normal View History

2020-04-17 18:20:20 +03:00
# MusFuse
2020-04-17 19:02:25 +03:00
[![Build Status](https://github.com/house-of-vanity/mus_fuse/workflows/Build%20and%20publish/badge.svg)](https://github.com/house-of-vanity/mus_fuse/actions)
2020-04-17 18:20:20 +03:00
MusFuse is a FUSE filesystem over HTTP for music. It is using [playongo](https://github.com/nixargh/playongo) media library. It's completely written in Rust stable.
# Features
- Using self hosted media library.
- Security relies on HTTPS.
- Any player can be used. (tested on [Cmus](https://github.com/cmus/cmus))
- Using cache.
- Leverages Rust correctness.
2020-04-19 04:18:45 +03:00
## How to use
2020-04-25 22:56:22 +03:00
Here is a [binary release](https://github.com/house-of-vanity/mus_fuse/releases/latest) or compile it yourself. Anyway mind about dependencies listed below. Also there is a systemd unit file for managing service. Place it into `~/.config/systemd/user/mus-fuse.service`
2020-04-19 04:18:45 +03:00
```sh
2020-04-26 14:55:30 +03:00
# Compile binary
2020-04-19 04:18:45 +03:00
$ cargo build --release
2020-04-26 14:55:30 +03:00
# Making DEB package
$ cargo install cargo-deb
$ cargo deb
# package will be appear in ./target/debian/
2020-04-19 04:18:45 +03:00
# And run
# to baypass Basic Auth set
# $HTTP_USER and $HTTP_PASS
# environment variables before run.
2020-04-25 22:56:22 +03:00
$ ./target/release/mus-fuse -m <mountpoint> -s <server>
2020-04-19 04:18:45 +03:00
# To get metrics
$ cat <mountpoint>/METRICS.TXT
http_requests: 1818
ingress: 243595644
hit_len_cache: 1878
hit_data_cache: 82
miss_len_cache: 11
miss_data_cache: 11
server_addr: https://mus.hexor.ru
```
2020-04-17 18:20:20 +03:00
2020-04-17 18:38:20 +03:00
## Dependencies
FUSE must be installed to build or run programs that use fuse-rs (i.e. kernel driver and libraries. Some platforms may also require userland utils like `fusermount`). A default installation of FUSE is usually sufficient.
To build fuse-rs or any program that depends on it, `pkg-config` needs to be installed as well.
### Linux
[FUSE for Linux][libfuse] is available in most Linux distributions and usually called `fuse`.
Install on Arch Linux:
```sh
sudo pacman -S fuse
```
Install on Debian based system:
```sh
sudo apt-get install fuse
```
Install on CentOS:
```sh
sudo yum install fuse
```
To build, FUSE libraries and headers are required. The package is usually called `libfuse-dev` or `fuse-devel`. Also `pkg-config` is required for locating libraries and headers.
```sh
sudo apt-get install libfuse-dev pkg-config
```
```sh
sudo yum install fuse-devel pkgconfig
```
2020-04-19 02:47:13 +03:00