A flask web application for securely uploading files with user authentication and password-protected downloads.
- User Authentication: Only registered users can upload files
- Password-Protected Downloads: Users can download files with a password
- File Management: View a list of all uploaded files (only accessible to logged-in users)
- Zero JavaScript: This application is built without any Javascript
- docker-compose
Clone the repository
git clone https://github.com/lytexdev/FileUpload.git
cd FileUpload
Copy and rename .env.example
to .env
cp .env.example .env
Insert a Flask secret key in .env
FLASK_SECRET_KEY=your-secret-key
Build and run the Docker image
# with docker-compose-v2
docker compose up -d
# with docker-compose-v1
docker-compose up -d
By default it runs on port 8080
docker exec -it fileupload-web-1 sh -c "python3 user.py create"
docker exec -it fileupload-web-1 sh -c "python3 user.py delete"
- Upload a file: navigate to
http://localhost:8080/upload
and select a file to upload
- View a list of all uploaded files: navigate to
http://localhost:8080/files
- Download a file: navigate to
http://localhost:8080/file/<file_name|custom_route>
This project is licensed under the MIT License. See the LICENSE file for details.