100% open source file storage, sharing, and collaboration
Website | Community | Documentation | Forum
Frappe Drive is a secure and open-source cloud storage platform with a modern user interface that makes storing, collaborating, and sharing files effortless. Create and manage documents, spreadsheets, and multimedia across teams to accelerate project completion.
The idea of building a drive-like application has been floating around in Frappe since atleast 2015. While Frappe Framework has rather robust file handling itself, the need arose for building a standalone solution. As we dug deeper, what began as a simple file-sharing platform evolved into a comprehensive collaboration tool.
Core — the file manager
- Large file uploads using multi-part uploads
- Folder uploads to maintain your structure in Drive
- Preview files directly in your browser, supported file previews
- Stream videos directly from the server
- Search for all your files and files shared shared with you
- View activity logs of a file to glance at the changes in permissions and file metadata
- Share files and folders with users, groups, everyone on the site or publish publicly
- Add guest users who have limited and controlled access to your site
- Pool storage of all users together or assign a quota of storage to each user
Writer — the document editor
- Collaborate with other users or guests in real time
- Annotate, resolve and reply to other users to give suggestions
- Manually version your documents to always be able to go back to an older version
- Automatic versioning to make sure you never lose data
- Import docx documents into the editor
-
Frappe Framework: A full-stack web application framework written in Python and Javascript. The framework provides a robust foundation for building web applications, including a database abstraction layer, user authentication, and a REST API.
-
Frappe UI: A Vue-based UI library, to provide a modern user interface. The Frappe UI library provides a variety of components that can be used to build single-page applications on top of the Frappe Framework.
-
TipTap: Tiptap is a wrapper over ProseMirror that provides some friendlier APIs and defaults.
-
ProseMirror: ProseMirror is a flexible, extensible toolkit for building rich-text editors with precise control over document structure and behavior.
-
YJS: The Content Free Replicated Data type (CRDT) at the core of the real time collaboration in both the document and annotation system.
You can try Frappe Cloud, a simple, user-friendly and sophisticated open-source platform to host Frappe applications.
It takes care of installation, setup, upgrades, monitoring, maintenance and support of your Frappe deployments. It is a fully featured developer platform with an ability to manage and control multiple Frappe deployments.
Follow these steps to set up Frappe Drive in production:
Step 1: Download the easy install script
wget https://frappe.io/easy-install.py
Step 2: Run the deployment command
python3 ./easy-install.py deploy \
--project=drive_prod_setup \
[email protected] \
--image=ghcr.io/frappe/drive \
--version=stable \
--app=drive \
--sitename subdomain.domain.tld
Replace the following parameters with your values:
[email protected]
: Your email addresssubdomain.domain.tld
: Your domain name where Drive will be hosted
The script will set up a production-ready instance of Frappe Drive with all the necessary configurations.
To set up the repository locally, follow the steps mentioned below:
The quickest way to set up Frappe Drive and take it for a test drive.
Frappe framework is multi-tenant and supports multiple apps by default. This docker compose is just a standalone version with Frappe Drive pre-installed. Just put it behind your desired reverse-proxy if needed, and you're good to go.
If you wish to use multiple Frappe apps or need multi-tenancy. I suggest moving over to our production ready self-hosted workflow, or join us on Frappe Cloud to get first party support and hassle-free hosting.
Step 1: Setup folder and download the required files
mkdir frappe-drive
cd frappe-drive
Step 2: Download the required files
Docker Compose File:
wget -O docker-compose.yml https://raw.githubusercontent.com/frappe/drive/main/docker/docker-compose.yml
Frappe Drive Bench Setup Script
wget -O init.sh https://raw.githubusercontent.com/frappe/drive/main/docker/init.sh
Step 3: Run the container and daemonize it
docker compose up -d
Install bench and set up a frappe-bench
directory by following the installation steps.
Step 1: Install Bench.
Step 2: Provided bench is all set up you can proceed to install Frappe Drive
bench get-app drive --branch main
Step 3: Install some Drive specific system packages
Ubuntu/Debian (apt based distros)
sudo apt install ffmpeg libmagic
MacOs
brew install libmagic ffmpeg
Step 4: Install drive once it's downloaded
bench install-app drive
Step 5: Start bench if it's not already running
bench start
Frappe Drive should be accessible at localhost:8000
or sitename:8000
There are many ways you can contribute even if you don't code:
- You can start by giving a star to this repository!
- If you find any issues, even if it is a typo, you can raise an issue to inform us.
Warning
If you're self hosting Frappe Drive. Do not use the app as the only way to store your files. Always have backup strategy for your files.
Otherwise, consider our managed hosting on Frappe Cloud. It's the same exact code as from the main
branch here, but with better support tooling and automated backups.