mirror of
https://github.com/Drop-OSS/drop-docs.git
synced 2026-08-27 19:39:58 -04:00
266 lines
7.5 KiB
Markdown
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.
|