Add Windows build section and comprehensive Getting Started (#6)

* feat: add building on windows section

* feat: new getting started guide thats like more wholeistic

* fix: fix download links

* fix: fix libarary sources

---------

Co-authored-by: Aden Lindsay <lindsaya542@gmail.com>
This commit is contained in:
DecDuck
2025-08-03 12:12:38 +10:00
committed by GitHub
parent 254ba5ae8d
commit bd358d3fb2
4 changed files with 431 additions and 1 deletions

View File

@@ -0,0 +1,173 @@
# Building drop-app on Windows
## Prerequisites
To compile drop-app on Windows, you'll need:
- Node.js v22
- `yarn` (v1/legacy) package manager
- `git` VCS
- Rust (stable)
- Microsoft Visual Studio Build Tools or Visual Studio Community
- Windows 10/11
## Installing Node.js with Node Version Manager (nvm-windows)
We recommend using Node Version Manager for Windows to easily switch between Node.js versions.
### 1. Install nvm-windows
1. **Download nvm-windows:**
- Go to [nvm-windows releases](https://github.com/coreybutler/nvm-windows/releases)
- Download the latest `nvm-setup.exe` file
- Run the installer as Administrator
2. **Verify installation:**
```shell
nvm version
```
### 2. Install Node.js v22
```shell
nvm install 22.18.0
nvm use 22.18.0
```
### 3. Verify Node.js installation
```shell
node --version
npm --version
```
### 4. Install yarn
```shell
npm install -g yarn
yarn --version
```
## Installing Rust
### 1. Download Rust installer
1. **Visit the official Rust website:**
- Go to [https://www.rust-lang.org/tools/install](https://www.rust-lang.org/tools/install)
- Click "Download rustup-init.exe (64-bit)"
2. **Run the installer:**
- Execute the downloaded `rustup-init.exe` file
- Follow the installation prompts
- Choose option 1 for default installation
### 2. Verify Rust installation
Open a new Command Prompt or PowerShell window and run:
```shell
rustc --version
cargo --version
```
### 3. Switch to nightly version
```shell
rustup toolchain install nightly
rustup default nightly
```
### 4. Verify nightly installation
```shell
rustc --version
cargo --version
```
### 5. Update Rust (if needed)
```shell
rustup update
```
## Building drop-app
Now that you have all prerequisites installed, you can build drop-app:
```shell
git clone https://github.com/Drop-OSS/drop-app.git
cd drop-app
git checkout develop
yarn
yarn tauri build
```
**Important:** Make sure to use the `develop` branch for the latest features and fixes.
If the command is successful, you can find the generated assets in: `src-tauri/target/release/bundle`. You can find the Windows installer in the `msi` folder.
If the `yarn tauri build` command fails, you can try adding `--verbose` to get the error details.
## Development Mode
For live development with real-time updates, use the development mode:
```shell
yarn tauri dev
```
This will start the application in development mode with hot reloading, allowing you to see changes immediately as you modify the code. The app will automatically restart when you save changes to your rust files.
## Troubleshooting
### Common Issues
If you encounter build errors, try the following:
1. **Ensure Rust is properly installed:**
```shell
rustc --version
cargo --version
```
2. **Install Visual Studio Build Tools:**
- Download and install [Visual Studio Build Tools](https://visualstudio.microsoft.com/downloads/#build-tools-for-visual-studio-2022)
- Make sure to include the "C++ build tools" workload
- Restart your terminal after installation
3. **Verify Node.js version:**
```shell
node --version
nvm list
nvm use 22.18.0
```
4. **Set up environment variables:**
- Ensure `PATH` includes Rust and Node.js
- Set `RUST_BACKTRACE=1` for detailed error messages
- Restart your terminal after installing Rust
5. **Clean and rebuild:**
```shell
yarn clean
yarn
yarn tauri build
```
### Windows-Specific Issues
1. **PowerShell execution policy:**
If you get execution policy errors, run PowerShell as Administrator and execute:
```powershell
Set-ExecutionPolicy RemoteSigned
```
2. **Long path issues:**
- Enable long path support in Windows Registry
- Or clone the repository to a shorter path (e.g., `C:\drop-app`)
3. **Antivirus interference:**
- Temporarily disable antivirus during build
- Add the project directory to antivirus exclusions
**Note:** This page provides Windows-specific build instructions for drop-app. For general building information, see the [Building Drop OSS](building.md) page.

View File

@@ -111,4 +111,6 @@ NO_STRIP=true yarn tauri build
```
This is a known issue in [Tauri](https://github.com/tauri-apps/tauri/issues/5781#issuecomment-1758815710).
**Note:** For Windows-specific build instructions, see the [Building drop-app on Windows](building-windows.md) page.
\*\*

View File

@@ -0,0 +1,253 @@
# Getting Started with Drop
This comprehensive guide walks you through the complete setup process for Drop, from initial deployment to configuring your library and metadata providers.
## Prerequisites
Before starting, ensure you have:
- Docker and Docker Compose installed
- A machine with at least 4GB RAM and 10GB free disk space
- Network access for downloading game metadata
## Step 1: Deploy Drop Server
### Option A: Docker Compose (Recommended)
Create a `compose.yaml` file in your desired directory:
```yaml
services:
postgres:
image: postgres:14-alpine
ports:
- 5432:5432
healthcheck:
test: pg_isready -d drop -U drop
interval: 30s
timeout: 60s
retries: 5
start_period: 10s
volumes:
- ./db:/var/lib/postgresql/data
environment:
- POSTGRES_PASSWORD=drop
- POSTGRES_USER=drop
- POSTGRES_DB=drop
drop:
image: ghcr.io/drop-oss/drop:latest
depends_on:
postgres:
condition: service_healthy
ports:
- 3000:3000
volumes:
- ./library:/library
- ./data:/data
environment:
- DATABASE_URL=postgres://drop:drop@postgres:5432/drop
- EXTERNAL_URL=http://localhost:3000
```
**Important volumes:**
- `./library`: Where you'll place your games for import
- `./data`: Where Drop stores metadata and objects
Start the services:
```bash
docker-compose up -d
```
### Option B: Manual Installation
For advanced users, see the [Building Drop OSS](../advanced/building.md) guide.
## Step 2: Extract Setup Key and Link from Server Logs
After starting the server, you need to extract the setup key and link from the logs:
```bash
# View the logs to find the setup key and link
docker-compose logs drop
```
Look for lines similar to:
```
Setup URL: http://localhost:3000/setup?key=abc123def456ghi789jkl012mno345pqr678stu901vwx234yz
```
**Copy both the setup key and the setup URL** - you'll need them for the next step.
:::tip
If you can't find the setup key or URL, restart the container and check the logs again:
```bash
docker-compose restart drop
docker-compose logs drop
```
:::
## Step 3: Configure Metadata Providers
Drop requires at least one metadata provider to fetch game information. Choose one or more:
### GiantBomb (Recommended for beginners)
1. **Create account:** Visit [GiantBomb's signup page](https://www.giantbomb.com/login-signup/)
2. **Get API key:** Go to [GiantBomb API page](https://www.giantbomb.com/api/) and copy your key
3. **Add to environment:** Add `GIANT_BOMB_API_KEY=your_key_here` to your `compose.yaml`
For detailed instructions, see [GiantBomb Configuration](../metadata/giantbomb.md).
### IGDB (Alternative option)
1. **Follow setup guide:** Visit [IGDB API documentation](https://api-docs.igdb.com/#getting-started)
2. **Get credentials:** You'll need both `IGDB_CLIENT_ID` and `IGDB_CLIENT_SECRET`
3. **Add to environment:** Add both variables to your `compose.yaml`
For detailed instructions, see [IGDB Configuration](../metadata/igdb.md).
### PCGamingWiki (Optional)
For additional game information, see [PCGamingWiki Configuration](../metadata/pcgamingwiki.md).
## Step 4: Access the Setup Wizard
1. **Open your browser** and navigate to the setup URL you copied from the logs
2. **The setup key will be automatically included** in the URL
3. **Create your admin account** with a secure username and password
:::warning
Keep your admin credentials secure - you'll need them to manage your Drop instance.
:::
## Step 5: Configure Your Library
### Understanding Drop's Library Structure
Drop supports two library formats:
#### Drop-style (Recommended)
```
/library/
MyGame/
version-1/
game.exe
data/
version-2/
game.exe
data/
AnotherGame/
version1.zip
```
#### Flat-style (Compatibility)
```
/library/
MyGame/
game.exe
data/
AnotherGame.zip
```
For detailed information, see [Library Sources](../library.md).
### Setting Up Your Library Source
1. **In the admin interface**, go to "Library Sources"
2. **Click "Create source"**
3. **Configure your library source:**
- **Name:** Enter a descriptive name for your source (e.g., "My Game Library")
- **Type:** Choose from:
- **Filesystem:** Imports games from a path on disk. Requires version-based folder structure, and supports archived games. Use this for new Drop-style libraries.
- **FlatFilesystem:** Imports games from a path on disk, but without a separate version subfolder. Useful when migrating an existing library to Drop.
- **Path:** Enter the path to your game library in your docker container (e.g., `/library`)
4. **Save the configuration**
## Step 6: Import Your Games
### Importing Game Metadata
1. **Navigate to your library** in the admin interface
2. **For each game folder**, click "Import Game"
3. **Search for your game** using the metadata provider
4. **Select the correct game** from the search results
5. **Confirm the import** - this links the folder to game metadata
:::tip
Game metadata import only happens once per game. This pulls in descriptions, images, and other metadata.
:::
### Importing Game Versions
1. **For each version folder/file**, click "Import Version"
2. **Wait for processing** - Drop will scan all files and generate checksums
3. **Review the import** - check file count and size
:::tip
Version imports happen for each update. This generates the data clients need to download games.
:::
## Step 7: Set Up Client Access
### Exposing Your Instance
For clients to connect, your Drop instance needs to be accessible:
#### Local Network Access
- **Find your server's IP address**
- **Update `EXTERNAL_URL`** in your `compose.yaml`:
```yaml
environment:
- EXTERNAL_URL=http://[your-drop-server-ip]:3000
```
- **Restart the container:**
```bash
docker-compose down && docker-compose up -d
```
For advanced exposure options, see [Exposing Your Instance](exposing.md).
### Installing Drop Client
1. **Download the client** from [https://droposs.org/download](https://droposs.org/download)
2. **Install for your platform**
3. **Open the client** and follow the connection wizard
4. **Enter your server URL** (e.g., `http://[your-drop-server-ip]:3000`)
5. **Sign in** with your admin credentials
## Step 8: Advanced Configuration
### User Management
- **Create additional users** in the admin interface
- **Set up authentication** - see [Authentication](../authentication/) for OIDC options
- **Manage permissions** for different user roles
### Library Management
- **Add multiple library sources** to combine different game collections
- **Configure version deltas** for efficient storage - see [Library Sources](../library.md#version-deltas--ordering)
- **Set up automatic imports** for new games
### Troubleshooting
If you encounter issues:
1. **Check server logs:**
```bash
docker-compose logs drop
```
2. **Verify metadata provider configuration**
3. **Check file permissions** on your library directory
4. **Review the troubleshooting guides:**
- [Server Troubleshooting](server-troubleshooting.md)
- [Client Troubleshooting](client-troubleshooting.md)
## Next Steps
- **Explore the admin interface** to customize your setup
- **Add more games** to your library
- **Configure additional metadata providers** for better game information
- **Join the community** for support and feature requests
For detailed information on any topic, refer to the specific documentation pages linked throughout this guide.

View File

@@ -4,6 +4,7 @@
"type": "category",
"label": "Admin Guides",
"items": [
"guides/getting-started",
"guides/quickstart",
"guides/exposing",
"guides/server-troubleshooting"
@@ -38,7 +39,8 @@
"type": "category",
"label": "Advanced",
"items": [
"advanced/building"
"advanced/building",
"advanced/building-windows"
]
},
{