Skip to content

Repository files navigation

FileSpace: Simple personal file storage.
Written in Python/Django

Features

  • Upload single files, multiple files or entire folders with drag & drop support
  • Download files with original filenames preserved
  • Preview files (text, images, PDFs) directly in the browser
  • Recursive folder downloads as .zip archives
  • Unlimited nested folder hierarchy support
  • File and folder search
  • Recursive file and folder deletion
  • Secure user authentication and isolated per user file storage
  • Multi-factor authentication for extra account protection
  • Brute force login protection with rate limiting
  • UUID based secure file storage
  • Automated discord webhook alerts for new account registrations

Database Schema

Database Schema

Usage

Local Development

First install uv and sync the project dependencies:

cd path/to/root/directory
pip install uv
uv sync
uv sync --group dev  # for devs only

Migrate database:

uv run manage.py migrate

Run Django server:

uv run manage.py runserver

Access web application at http://127.0.0.1:8000 or http://localhost:8000.

Production Deployment (Docker)

Set up your environment variables:

cp .env.prod .env
nano .env  # modify file, instructions inside

Build and start the container in the background:

docker compose up -d --build

Access web application at http://127.0.0.1:8000 or http://localhost:8000.

Run Tests

uv run manage.py test

Demo Images

Drive

Drag and Drop

Upload Folder

Upload File

Folder Contents

Preview File

Search

Delete File

About

Simple personal file storage.

Topics

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Used by

Contributors

Languages