Dominik V. Salonen 09e5769373 | ||
---|---|---|
QuadFile | ||
static | ||
templates | ||
.gitignore | ||
LICENSE.md | ||
README.md | ||
__init__.py | ||
conf.py.sample | ||
requirements.txt | ||
run.py | ||
schema.sql | ||
wsgi.py |
README.md
QuadFile Version 2
A temporary (or permanent, depending on configuration) file sharing service written in Flask.
Features
- Automatically remove files that aren't accessed often enough
- Supports all filetypes
- Prevents duplicate filenames
- Works on all platforms (as long as they can use basic JavaScript)
- Both easy to set up and use
- Threaded for effective use of resources (Unless you're not on SSD, in which case, enjoy your I/O clogs m8)
- Color-coded and real-time console log
- Easy to use with most applications, such as ShareX
Requirements
Needed:
- Python 3 (Python 2 might work, dunno, i don't test that, don't care either)
- sqlite3 package for your OS (To create the database)
- Install flask, currently that should be the only requirement and hopefully forever (
pip install -r requirements.txt
)
Recommended:
- nginx, great for proxy_pass
- gunicorn, allows you to use QuadFile with multiple workers
Using the thing
Test deployment
- Clone the repo somewhere
pip install -r requirements.txt
- Do
cp conf.py.sample conf.py
- Edit
conf.py
so that the information is correct sqlite3 files.db < schema.sql
chmod +x run.py
and then./run.py
- ???
- PROFIT (Hopefully)
Production deployment
- Clone the repo somewhere
- Set up a virtual environment for QuadFile
pip install -r requirements.txt
- Do
cp conf.py.sample conf.py
- Edit
conf.py
so that the information is correct sqlite3 files.db < schema.sql
gunicorn wsgi:app -w 4 --bind 127.0.0.1:8282 --log-file $HOME/quadfile.log
(Use supervisor to run it on boot if needed)- Configure nginx and proxy_pass it to gunicorn
- ???
- PROFIT (Hopefully)