Prerequisites
Environment Setup
To get started contributing to Spacedrive, follow this guide carefully.
This project uses Cargo and pnpm.
Installation
Clone repo
git clone https://github.com/spacedriveapp/spacedrive && cd spacedrive
Run setup script
For Linux or MacOS users run:
./.github/scripts/setup-system.sh
This will install FFmpeg and any other required dependencies for Spacedrive to build.
...or for Windows users run using PowerShell:
.\.github\scripts\setup-system.ps1
This will install pnpm, LLVM, FFmpeg and any other required dependencies for Spacedrive to build. Ensure you run it like documented above as it expects it is executed from the root of the repository.
Install dependencies
pnpm i
Run codegen & build required dependencies
pnpm prep
Running apps
- Desktop:
pnpm desktop dev
- Landing:
pnpm landing dev
- Server:
DATA_DIR=/path/to/library cargo run -p sdcore
- Webapp:
pnpm web dev
note
When changing branches, make sure to run pnpm prep
command right after. This ensures all the codegen is up to date.
Mobile app
To run mobile app
- Install Android Studio for Android and Xcode for IOS development
./.github/scripts/setup-system.sh mobile
The should setup most of the dependencies for the mobile app to build.- You must also ensure you have NDK 24.0.8215888 and CMake in Android Studio
cd apps/mobile && pnpm i
- This is a separate workspace, you need to do this!pnpm android
- runs on Android Emulatorpnpm ios
- runs on iOS Emulatorpnpm dev
- For already bundled app - This is only temporarily supported. The final app will require the Spacedrive Rust code which isn't included in Expo Go.
Troubleshooting
If you are having issues ensure you are using the following versions of Rust and Node:
- Rust version: 1.67.0
- Node version: 17