Skip to content

medowic/filelink

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Filelink

License

Fast data transfer and secure access in your browser

Demo

Share your folder with files with self-hosted server, locally or worldwide just in browser

Why Filelink?

  • Self-hosted: run it right on your PC
  • Easy to use: 4 steps to get access to the files
  • Lightweight: less than 1 MB - you can take it anywhere!
  • Cross-platform: Windows or Linux
  • Secure: nobody can get access without a passkey
  • No limits: share and download as many files as you want

How to use?

As client (user):

  1. Open the link where Filelink is hosted in your browser
  2. Click to show files button
  3. Enter the passkey that you received from host
  4. Get access to the folder and start downloading!

Tip

Also, you can use the ?passkey= key in link for direct access to the folder or to the file download

Direct access (with auto-auth)

To get direct access to the folder you need to set passkey on/access page after ?passkey=

For example:

http://localhost:8080/access?passkey=enter-passkey

To download file direcly (without visit Filelink home page) you need to set passkey on /download/[filename] link after ?passkey=

For example:

http://localhost:8080/download/your-file?passkey=enter-passkey

Important

Get direct access may be only on /access and /download/[filename] pages

As server (host):

  1. Install Filelink Server
  2. Locate your files into standard files directory where Filelink is located or locate files in a path that you have set in config/config.yaml (see Configuration)
  3. Run Filelink Server
  4. Share passkey with users

Installation

Requirements:

  • python3 with pip3

Note

Also, this project based on Flask and Waitress

Windows

  1. Download source code or clone repository by using git
git clone https://github.com/medowic/filelink.git
  1. Open the terminal in the folder where Filelink is located and install dependencies from the requirements.txt file
pip install -r requirements.txt

Tip

Also, you can use the setup.cmd, located in the same directory, for automatic installation

It makes the same things

Linux

  1. Clone repository

Warning

Installing using git clone include support for automatic updates using git or scripts

It's not recommended to install Filelink without git

git clone https://github.com/medowic/filelink.git
  1. Move to the directory where Filelink is located and install dependencies from requirements.txt
cd filelink
pip3 install -r requirements.txt

Important

For global-wide install, use --break-system-packages

pip3 install -r requirements.txt --break-system-packages

Important

Also, on some Debian-based systems with apt, Flask can't be installed using pip3

To install it, use apt

apt install python3-flask

Tip

Also, you can use the setup.sh, located in the same directory, for automatic installation

It makes the same things

chmod +x setup.sh
./setup.sh

For global-wide install of dependencies, use --break-system-packages:

./setup.sh --break-system-packages

Install as daemon

If you need a daemon to run Filelink as a background task (e. g. on a server), see Filelink Daemon repository

Installation and how-to-run instructions will be provided there

Start

In the parent directory, find the run.py file and run it

Windows

python run.py

Tip

Also, in the same directory, you can find the start.cmd file for quick running in a separate window

Linux

python3 run.py

Note

By default, the server will start at 0.0.0.0:8080. You can change this in config/config.yaml (see Configuration)

Setting up using arguments

In any system you can setting up Filelink using arguments

Set folder for file sharing

Use -f or --folder option

> run.py -f /path/to/files
> run.py --folder /path/to/files

Disable update check

Use -o or --no-updates option

> run.py -o
> run.py --no-updates

Configuration

In config/config.yaml, you can change some settings

Server

Address

Set what adresses will be listen by server:

server:
  address: 0.0.0.0 # all addresses

Port

Set port:

server:
  port: 8080

Custom

There you can set some user parameters

If the custom parameter is not set, all these settings are will be created automatically or generated by Filelink

Passkey

Set passkey, if you need customize it. If not specified, the auto-generated string will contain 64 characters

custom:
  passkey: some-passkey

Username

Set the username, which will be indicated in the line Hosted by: on website. If not specified, the auto-generated string will contain the username from your machine

custom:
  username: filelink-user

Path

Set the path to be used for file sharing. If not specified, the files directory will be used by default.

custom:
  path: /path/to/files

About

Fast data transfer and secure access in your browser

Topics

Resources

License

Stars

Watchers

Forks