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:
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:
docker-compose up -d
Option B: Manual Installation
For advanced users, see the Building Drop OSS 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:
# 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.
If you can't find the setup key or URL, restart the container and check the logs again:
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)
- Create account: Visit GiantBomb's signup page
- Get API key: Go to GiantBomb API page and copy your key
- Add to environment: Add
GIANT_BOMB_API_KEY=your_key_here
to yourcompose.yaml
For detailed instructions, see GiantBomb Configuration.
IGDB (Alternative option)
- Follow setup guide: Visit IGDB API documentation
- Get credentials: You'll need both
IGDB_CLIENT_ID
andIGDB_CLIENT_SECRET
- Add to environment: Add both variables to your
compose.yaml
For detailed instructions, see IGDB Configuration.
PCGamingWiki (Optional)
For additional game information, see PCGamingWiki Configuration.
Step 4: Access the Setup Wizard
- Open your browser and navigate to the setup URL you copied from the logs
- The setup key will be automatically included in the URL
- Create your admin account with a secure username and password
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.
Setting Up Your Library Source
- In the admin interface, go to "Library Sources"
- Click "Create source"
- 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
)
- Save the configuration
Step 6: Import Your Games
Importing Game Metadata
- Navigate to your library in the admin interface
- For each game folder, click "Import Game"
- Search for your game using the metadata provider
- Select the correct game from the search results
- Confirm the import - this links the folder to game metadata
Game metadata import only happens once per game. This pulls in descriptions, images, and other metadata.
Importing Game Versions
- For each version folder/file, click "Import Version"
- Wait for processing - Drop will scan all files and generate checksums
- Review the import - check file count and size
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 yourcompose.yaml
:environment:
- EXTERNAL_URL=http://[your-drop-server-ip]:3000 - Restart the container:
docker-compose down && docker-compose up -d
For advanced exposure options, see Exposing Your Instance.
Installing Drop Client
- Download the client from https://droposs.org/download
- Install for your platform
- Open the client and follow the connection wizard
- Enter your server URL (e.g.,
http://[your-drop-server-ip]:3000
) - Sign in with your admin credentials
Step 8: Advanced Configuration
User Management
- Create additional users in the admin interface
- Set up authentication - see 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
- Set up automatic imports for new games
Troubleshooting
If you encounter issues:
-
Check server logs:
docker-compose logs drop
-
Verify metadata provider configuration
-
Check file permissions on your library directory
-
Review the troubleshooting guides:
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.