static | ||
templates | ||
.gitignore | ||
app.py | ||
db.py | ||
fs.py | ||
README.md | ||
requirements.txt | ||
settings.example.cfg | ||
settings.example.py |
SFS - Simple file system
Simple file server (web-based) to be used easily with curl. Written in python with framework flask. By default it used a simple SQLite database, but this can be adapted to your needs by editing config files.
Scripts to use with bash and curl are available in the scripts folder. You can set your default server, username and password in the header of the script.
This repository is licensed under GPL v3.
Installation
- Create a virtual environment
venv
(python3 -m venv venv
) - Activate (
. venv/bin/activate
) - Install prerequisite python packages (
pip install -r requirements.txt
) - You will have to create a folder to store uploaded files (default is
./data
) - Copy files
settings.example.cfg
andsettings.example.py
tosettings.cfg
andsettings.py
and adjust parameters - You can start the test server with
python fs.py
Configuration an deployment
For deployment, see Flask documentation.
Configuration of uploading server and limitation of file size, as well as listening url for web server is configured in settings.py
. Configuration of database is done in settings.cfg
(use of SQLAlchemy, see corresponding documentation for advanced parameterizations).
Principe
fs.py
is the core filedb.py
defines the database structuretemplates
folder contains all web views to be rendered with Jinja2static
folder contains scripts, css and images
If at running time, there is no user in database, a first user is created with admin
rights. The login is admin
and password is admin
. You have to change it before
deployment, of course !
Licence
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/
Copyright (C) 2020 L. Viallon-Galinier