Skip to content
 
 

Repository files navigation

Drive banner

GitHub commit activity GitHub closed issues GitHub closed issues

Chat on Matrix - Documentation - Getting started - Reach out

La Suite Drive: Collaborative File Sharing

Drive where your files become collaborative assets through seamless teamwork.

Apoze Fork Notes

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.

Why use Drive ❓

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

  • 🔐 Store your files securely in a centralized location
  • 🌐 Access your files from anywhere with our web-based interface

Find

  • 🔍 Powerful search capabilities to quickly locate files and folders
  • 📂 Organized file structure with intuitive navigation and filtering

Collaborate

  • 🤝 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

Self-host

  • 🚀 Easy to install, scalable and secure file storage solution

Getting started 🔧

Prerequisite

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 with sudo but this can be avoided by assigning your user to the docker group.

Bootstrap project

The easiest way to start working on the project is to use GNU Make:

$ make bootstrap

This 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 run

You can check all available Make rules using:

$ make help

⚠️ For the frontend developer, it is often better to run the frontend in development mode locally.

To 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

Django admin

You can access the Django admin site at http://localhost:8071/admin.

You first need to create a superuser account:

$ make superuser

You can then login with sub admin@example.com and password admin.

Local E2E environment

The standard Playwright E2E contract is documented in:

Official origins:

  • LAN/local dev stack:
    • http://192.168.10.123:3000
    • http://192.168.10.123:8071
    • http://192.168.10.123:8083
    • http://192.168.10.123:9000
  • CI-like local E2E stack:
    • http://127.0.0.1:3000
    • http://127.0.0.1:8071
    • http://127.0.0.1:8083
    • http://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
EOF

The resolver reads this gitignored file automatically. Supported alternative:

export DRIVE_E2E_S2S_TOKEN=***

Bootstrap the E2E backend stack:

make bootstrap-e2e

Start the E2E frontend against that stack:

make run-frontend-e2e

Run the standard wrapper on an existing E2E stack:

bash run_env_e2e.sh --reuse

Run the standard wrapper from scratch:

bash run_env_e2e.sh --from-scratch

Useful 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-chromium

Current worker/browser policy:

  • local CI-like E2E defaults to PLAYWRIGHT_WORKERS=4
  • PR CI runs Chromium only at workers=1
  • main and workflow_dispatch CI run Chromium + WebKit + Firefox at workers=1

Feedback 🙋‍♂️🙋‍♀️

We'd love to hear your thoughts and hear about your experiments, so come and say hi on Matrix.

Contributing 🙌

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.

License 📝

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.

Credits ❤️

Drive is built on top of Django Rest Framework, Next.js. We thank the contributors of all these projects for their awesome work!

About

A collaborative file sharing and document management platform that scales. Built with Django and React.

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages