Files
2025-09-03 08:00:34 +10:00

266 lines
7.5 KiB
Markdown

# Getting Started
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 can _optionally_ import metadata from external sources for your library. If no metadata providers are set up and accessible, you'll have to import games without metadata and write it manually.
### 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
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
PCGamingWiki requires no additional setup and is automatically enabled, if accessible.
For more 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.