Files
furumi/README.md

98 lines
2.0 KiB
Markdown
Raw Permalink Normal View History

2020-06-06 00:14:05 +03:00
<h1 align="center">
<code>Furumi</code>
</h1>
<div align="center">
<strong>
2020-06-06 00:15:18 +03:00
FUSE filesystem working over NGINX JSON autoindex. <br />
2020-06-06 00:14:05 +03:00
Written in Rust stable.
</strong>
2020-06-06 00:15:18 +03:00
<br />
2020-06-06 00:14:05 +03:00
<img src="https://github.com/house-of-vanity/furumi/workflows/Build%20and%20publish/badge.svg" alt="Build and publish"/>
</div>
2020-06-05 21:15:25 +03:00
# Features
- Using NGINX for indexing remote files.
- Security relies on HTTPS.
- Using cache.
## Usage
Here is a [binary release](https://github.com/house-of-vanity/furumi/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/furumi.service`
```sh
# Compile binary
$ cargo build --release
# Create config
cat > furumi.ylm <<EOF
---
server: https://server
mountpoint: /mnt
# Basic auth creds
username: user
password: pass
# Run
2020-06-06 00:09:03 +03:00
$ ./target/release/furumi --conf furumi.yml
2020-06-05 21:15:25 +03:00
```
2020-06-05 23:21:01 +03:00
## NGINX config
Example of nginx config:
```nginx
server {
listen 80;
listen [::]:80;
server_name music;
root /storage/music;
location / {
autoindex on;
autoindex_format json;
try_files $uri $uri/ =404;
}
}
```
2020-06-05 21:15:25 +03:00
## Dependencies
FUSE must be installed to build and run furumi. (i.e. kernel driver and libraries. Some platforms may also require userland utils like `fusermount`). A default installation of FUSE is usually sufficient.
### 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
```