51 lines
2.3 KiB
Markdown
51 lines
2.3 KiB
Markdown
# 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
|
|
|
|
1. Create a virtual environment `venv` (`python3 -m venv venv`)
|
|
2. Activate (`. venv/bin/activate`)
|
|
3. Install prerequisite python packages (`pip install -r requirements.txt`)
|
|
4. You will have to create a folder to store uploaded files (default is `./data`)
|
|
5. Copy files `settings.example.cfg` and `settings.example.py` to `settings.cfg` and `settings.py` and adjust parameters
|
|
6. You can start the test server with `python fs.py`
|
|
|
|
## Configuration an deployment
|
|
|
|
For deployment, see [Flask documentation](https://flask.palletsprojects.com/en/1.1.x/deploying/).
|
|
|
|
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 file
|
|
* `db.py` defines the database structure
|
|
* `templates` folder contains all web views to be rendered with Jinja2
|
|
* `static` 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
|