Skip to content
/ flink Public

A self-hosted file-uploader for family & friends.

Notifications You must be signed in to change notification settings

4nickel/flink

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

[f]link

a minimalist self-hosted file-uploader for friends & family

 

Screengrab of the login screen

Screengrab of the ui screen

Installation

In order to build the project, you need to install:

  • build-essentials
  • make
  • rsync
  • cargo & rustup with a recent nightly toolchain
  • compass (install via rubygems)
  • diesel-cli

It is recommended to install diesel-cli via cargo:

cargo install diesel_cli --force --no-default-features --features sqlite

As mentioned, the server requires a nightly toolchain. Configure it globally, or set a local override using:

cd flink/server
rustup override set nightly

The database and file directory are set via environment variables:

export DATABASE_URL="db.sqlite3"
export FLINK_DIR="/path/to/uploads"

When all build-dependencies are installed, run:

$ git clone https://github.com/4nickel/flink
$ cd flink
$ make
$ make service

Once the service is running, navigate to http://localhost:8000.

User Management

You have to add users manually using a command-line interface - flink doesn't provide an admin interface. You can find the flink binary in server/target/release.

$ flink user add $username $password
$ flink user del $username
Security

Rocket doesn't support SSL yet, so you'll have to run this upstream of an appropriate reverse-proxy server like nginx or apache. If you don't know what that means please make sure you do before running this service in the wild.

Powered by..
  • Rocket - A simple, fast and secure framework for writing web-services in Rust
  • Diesel - A safe, extensible ORM and query-builder for Rust
  • AngularJs - Google's Javascript framework for extending HTML
  • Compass - An open-source CSS authoring framework