Skip to content

house-of-vanity/furumi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Furumi

FUSE filesystem working over NGINX JSON autoindex.
Written in Rust stable.

Build and publish

Features

  • Using NGINX for indexing remote files.
  • Security relies on HTTPS.
  • Using cache.

Usage

Here is a binary release 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

# Compile binary
$ cargo build --release

# Create config
cat > furumi.ylm <<EOF
---
server: https://server
mountpoint: /mnt
# Basic auth creds
username: user
password: pass

# Run
$ ./target/release/furumi --conf furumi.yml

NGINX config

Example of nginx config:

server {
    listen 80;
    listen [::]:80;
    server_name music;

    root /storage/music;

    location / {
        autoindex on;
        autoindex_format json;
        try_files $uri $uri/ =404;
    }
}

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:

sudo pacman -S fuse

Install on Debian based system:

sudo apt-get install fuse

Install on CentOS:

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.

sudo apt-get install libfuse-dev pkg-config
sudo yum install fuse-devel pkgconfig