https://github.com/medowic/filelink
Fast data transfer and secure access in your browser
https://github.com/medowic/filelink
file-sharing linux web windows
Last synced: 2 months ago
JSON representation
Fast data transfer and secure access in your browser
- Host: GitHub
- URL: https://github.com/medowic/filelink
- Owner: medowic
- License: mit
- Created: 2025-06-05T17:29:29.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-07-20T03:37:27.000Z (12 months ago)
- Last Synced: 2025-07-20T05:44:34.251Z (12 months ago)
- Topics: file-sharing, linux, web, windows
- Language: HTML
- Homepage:
- Size: 547 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Fast data transfer and secure access in your browser
#
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](#how-to-use) 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](#installation) 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](#configuration))
3. [Run](#start) 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
```
2. 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`
```sh
git clone https://github.com/medowic/filelink.git
```
2. Move to the directory where Filelink is located and install dependencies from `requirements.txt`
```sh
cd filelink
pip3 install -r requirements.txt
```
> [!IMPORTANT]
> For global-wide install, use `--break-system-packages`
```sh
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`
```sh
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**
```sh
chmod +x setup.sh
./setup.sh
```
For global-wide install of dependencies, use `--break-system-packages`:
```sh
./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](https://github.com/medowic/filelink-daemon)
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
```sh
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](#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:
```yaml
server:
address: 0.0.0.0 # all addresses
```
### Port
Set port:
```yaml
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
```yaml
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
```yaml
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.
```yaml
custom:
path: /path/to/files
```