https://github.com/apocalypsecalculator/feck
A simple, robust online file drive system created in Node.js using the Express framework.
https://github.com/apocalypsecalculator/feck
drive expressjs nodejs
Last synced: about 1 year ago
JSON representation
A simple, robust online file drive system created in Node.js using the Express framework.
- Host: GitHub
- URL: https://github.com/apocalypsecalculator/feck
- Owner: ApocalypseCalculator
- License: apache-2.0
- Created: 2021-03-08T16:41:50.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2023-12-13T01:37:58.000Z (over 2 years ago)
- Last Synced: 2025-03-26T22:12:55.654Z (over 1 year ago)
- Topics: drive, expressjs, nodejs
- Language: TypeScript
- Homepage:
- Size: 729 KB
- Stars: 4
- Watchers: 1
- Forks: 0
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Feck Files

[](https://github.com/ApocalypseCalculator/Feck)
A simple, robust online file drive system created in Node.js
This is a fork of my original project and has since become the official repository
## Installation
Download the latest release onto your pc
Run
```
npm install
```
Build client
```
npm install -g vite
cd client
vite build
cd ..
```
Migrate db schema
```
npx prisma migrate dev
```
After you finish that, start the server using
```
node .
```
If you are using it in production I highly suggest using a script to monitor crashes and automatically restart and/or add it as a system service.
**Installing on a Linux server? Follow [this guide](https://github.com/ApocalypseCalculator/Feck/blob/master/installation.md)**
If you have trouble setting it up, you can DM me on Discord for help at ApocalypseCalculator#7096
## Configuration
`name` your own name
`email` your email so that site users can contact you
`filelimit`
- `anon` file upload limit for anonymous users represented in bytes. Default 200MB
- `registered` file upload limit for registered users represented in bytes. Default 2GB
- `server` server allowed limit for saving files. The server will guaranteed this field's amount of space is free in the uploads folder. Default 5MB
`ratelimit`
- `time` ratelimit cooldown in minutes
- `requests` amount of requests allowed within `time`
`discord`
- `on` whether to turn on Discord notifications or not (true for on false for off)
- `webhook` the Discord webhook link (only required if on is set to true)
`workers` number of workers you want to spawn. Usually just 1 or 2 is enough. Must be between 1 and your machine CPU count.
## Tus Implementation
This project implements the official Tus 1.0.0 protocol, with a few additional features:
In particular:
- For the `Creation` extension, the `Upload-Metadata` header is ignored. Instead a custom `Base64-Meta` header is required.
- For uploads by logged in users, a valid `Authorization` header is required otherwise a 403 will be returned.
- The upload endpoint also allows `GET` requests to fetch additional information like the `fileid`.
## Licensing and others
This code is open source :>
As for the site icon, I got it off a google search. I did not make that icon, and I am currently unable to find who made it.