Chat on Matrix - Documentation - Getting started - Reach out
Drive where your files become collaborative assets through seamless teamwork.
This repository is the Apoze/drive fork of suitenumerique/drive.
High-level fork context:
- backend: Django + Django REST Framework
- frontend: Next.js + TypeScript
- regular Drive items use S3-compatible object storage through SeaweedFS
- mounts use a separate MountProvider contract for filesystem-like backends such as SMB
- integrations that must remain stable include WOPI, Collabora, and ONLYOFFICE
Important architectural rule:
- S3 for regular Drive items is direct storage access, not a MountProvider backend
- MountProvider is the abstraction layer for mounted filesystem-like storages and future providers
If you are starting a new Codex or contributor thread, start with AGENTS.md.
It owns the current task-to-document routing and should be treated as the
canonical entry point. Read the specialized docs it names only when the task
matches that area.
Drive empowers teams to securely store, share, and collaborate on files while maintaining full control over their data through a user-friendly, open-source platform.
- 🔐 Store your files securely in a centralized location
- 🌐 Access your files from anywhere with our web-based interface
- 🔍 Powerful search capabilities to quickly locate files and folders
- 📂 Organized file structure with intuitive navigation and filtering
- 🤝 Share files and folders with your team members
- 👥 Granular access control to ensure your information is secure and only shared with the right people
- 🏢 Create workspaces to organize team collaboration and manage shared resources
- 🚀 Easy to install, scalable and secure file storage solution
Make sure you have a recent version of Docker and Docker Compose installed on your laptop:
$ docker -v
Docker version 27.5.1, build 9f9e405
$ docker compose version
Docker Compose version v2.32.4
⚠️ You may need to run the following commands withsudobut this can be avoided by assigning your user to thedockergroup.
The easiest way to start working on the project is to use GNU Make:
$ make bootstrapThis command builds the app-dev and frontend-dev containers, installs dependencies, performs
database migrations and compile translations. It's a good idea to use this
command each time you are pulling code from the project repository to avoid
dependency-related or migration-related issues.
Your Docker services should now be up and running! 🎉
By default, the Docker Compose stack uses SeaweedFS S3 gateway as the S3-compatible storage backend (published at http://localhost:9000).
MinIO remains available as an optional non-baseline fixture via the minio-fixture compose profile.
You can access the project by going to http://localhost:3000.
You will be prompted to log in. The default credentials are:
username: drive
password: drive
Note that if you need to run them afterward, you can use the eponym Make rule:
$ make runYou can check all available Make rules using:
$ make helpTo do so, install the frontend dependencies with the following command:
$ make frontend-development-install
And run the frontend locally in development mode with the following command:
$ make run-frontend-development
To start all the services, except the frontend container, you can use the following command:
$ make run-backend
You can access the Django admin site at http://localhost:8071/admin.
You first need to create a superuser account:
$ make superuserYou can then login with sub admin@example.com and password admin.
The standard Playwright E2E contract is documented in:
Official origins:
- LAN/local dev stack:
http://192.168.10.123:3000http://192.168.10.123:8071http://192.168.10.123:8083http://192.168.10.123:9000
- CI-like local E2E stack:
http://127.0.0.1:3000http://127.0.0.1:8071http://127.0.0.1:8083http://127.0.0.1:9000
For CI-like local E2E runs, use:
cat > env.d/development/e2e.tokens.local <<'EOF'
DRIVE_E2E_S2S_TOKEN=drive-e2e-s2s
EOFThe resolver reads this gitignored file automatically. Supported alternative:
export DRIVE_E2E_S2S_TOKEN=***Bootstrap the E2E backend stack:
make bootstrap-e2eStart the E2E frontend against that stack:
make run-frontend-e2eRun the standard wrapper on an existing E2E stack:
bash run_env_e2e.sh --reuseRun the standard wrapper from scratch:
bash run_env_e2e.sh --from-scratchUseful E2E Make targets:
make run-tests-e2e-readiness
make run-tests-e2e-full
make run-tests-e2e-full-chromium
make run-tests-e2e-benchmark-local
make run-tests-e2e-from-scratch
make run-tests-e2e-from-scratch-chromiumCurrent worker/browser policy:
- local CI-like E2E defaults to
PLAYWRIGHT_WORKERS=4 - PR CI runs Chromium only at
workers=1 mainandworkflow_dispatchCI run Chromium + WebKit + Firefox atworkers=1
We'd love to hear your thoughts and hear about your experiments, so come and say hi on Matrix.
This project is intended to be community-driven, so please, do not hesitate to get in touch if you have any question related to our implementation or design decisions.
This work is released under the MIT License (see LICENSE).
While Drive is a public driven initiative our licence choice is an invitation for private sector actors to use, sell and contribute to the project.
Drive is built on top of Django Rest Framework, Next.js. We thank the contributors of all these projects for their awesome work!
