mirror of
https://github.com/Drop-OSS/drop-wiki.git
synced 2025-11-09 20:12:15 +10:00
Compare commits
4 Commits
b61f897a64
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 9cf4310d39 | |||
| f889f51b60 | |||
| 293e22261d | |||
| 1f407d6019 |
@ -8,6 +8,10 @@ export default defineConfig({
|
||||
head: [["link", { rel: "icon", href: "/drop.svg" }]],
|
||||
themeConfig: {
|
||||
logo: "/drop.svg",
|
||||
footer: {
|
||||
message:
|
||||
"If you have any suggestions to update this wiki, please submit them on our GitHub",
|
||||
},
|
||||
|
||||
// https://vitepress.dev/reference/default-theme-config
|
||||
nav: [
|
||||
@ -17,6 +21,7 @@ export default defineConfig({
|
||||
|
||||
sidebar: [
|
||||
{ text: "What is Drop?", link: "/about" },
|
||||
{ text: "Roadmap", link: "/roadmap" },
|
||||
{
|
||||
text: "Admin Guides",
|
||||
items: [
|
||||
@ -41,6 +46,12 @@ export default defineConfig({
|
||||
text: "Metadata",
|
||||
items: [{ text: "GiantBomb", link: "/metadata/giantbomb" }],
|
||||
},
|
||||
{
|
||||
text: "Advanced",
|
||||
items: [
|
||||
{ text: "Building for other platforms", link: "/advanced/building" },
|
||||
],
|
||||
},
|
||||
{
|
||||
text: "Documentation",
|
||||
items: [{ text: "Library", link: "/docs/library" }],
|
||||
|
||||
@ -24,7 +24,7 @@ A game distribution service is one that... distributes games. Think of Steam, GO
|
||||
Instead however, instead of a massive centralized website, each admin runs their own copy, and adds *their own games* to their own copy of Drop. Also, there's no payment processing, nothing has a price.
|
||||
|
||||
## Platform
|
||||
Drop does a lot more than just game distribution. As of `v0.1.0-beta`, a lot hasn't been implemented. But, in future, Drop will be able to handle things such as:
|
||||
Drop does a lot more than just game distribution. As of `v0.2.0-beta`, a lot hasn't been implemented. But, in future, Drop will be able to handle things such as:
|
||||
|
||||
- Dedicated servers
|
||||
- Matchmaking & P2P games
|
||||
|
||||
79
docs/advanced/building.md
Normal file
79
docs/advanced/building.md
Normal file
@ -0,0 +1,79 @@
|
||||
# Building Drop server for other platforms
|
||||
|
||||
Unfortunately, we don't have the time or resources to build and debug our software for platforms other than x86-64. However, we offer this guide as a way to get it running, at your own risk.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
To compile:
|
||||
|
||||
- Rust (stable)
|
||||
- Node.js v20
|
||||
- `yarn` (v1/legacy) package manager
|
||||
- `git` VCS
|
||||
- Docker
|
||||
|
||||
To run:
|
||||
|
||||
- Docker
|
||||
|
||||
## Building `droplet`
|
||||
|
||||
`droplet` is a high-performance utility package for the Drop server. It's a `napi.rs` module, meaning it's written in Rust and then compiled to an NPM module.
|
||||
|
||||
Get started by cloning the `droplet` source code, and then enter the directory:
|
||||
|
||||
```shell
|
||||
git clone https://github.com/Drop-OSS/droplet.git
|
||||
```
|
||||
|
||||
Install the dependencies with `yarn`:
|
||||
|
||||
```shell
|
||||
yarn
|
||||
```
|
||||
|
||||
And then compile the package with the build script:
|
||||
|
||||
```shell
|
||||
yarn build
|
||||
```
|
||||
|
||||
Because we're building this locally, setup the yarn link so we can use this package while building the server:
|
||||
|
||||
```shell
|
||||
yarn link
|
||||
```
|
||||
|
||||
## Building `drop`
|
||||
|
||||
`drop` is the self hosted server. It's a Nuxt 3 project, but depends on the `droplet` package so isn't easily transportable.
|
||||
|
||||
Get started by cloning the `drop` source code, and then enter the directory:
|
||||
|
||||
```shell
|
||||
git clone https://github.com/Drop-OSS/drop.git
|
||||
```
|
||||
|
||||
Then, link your build `droplet` package:
|
||||
|
||||
```shell
|
||||
yarn link "@drop/droplet"
|
||||
```
|
||||
|
||||
Then, install dependencies:
|
||||
|
||||
```shell
|
||||
yarn
|
||||
```
|
||||
|
||||
Then, build the application:
|
||||
|
||||
```
|
||||
yarn build
|
||||
```
|
||||
|
||||
To package it into a Docker container, remove the build commands in the provided `Dockerfile`'s build-system (`yarn install` and `yarn build`), and then build the Docker image:
|
||||
|
||||
```shell
|
||||
docker build . -t drop
|
||||
```
|
||||
@ -10,3 +10,7 @@ Add `WEBKIT_DISABLE_DMABUF_RENDERER=1` to the Drop .desktop file:
|
||||
## "Server's and client's time is out of sync..." or HTTP 0
|
||||
|
||||
The server and client must be within 30 seconds of each other for security reasons. Drop uses short-lived tokens to authenticate securely, and they are valid for those 30 seconds. If you are the server administrator, please ensure both your server and client have the correct time. If you are a user, please double check your own system before asking your admin.
|
||||
|
||||
## Default Apps / Deep Links not registering
|
||||
On Windows, it appears that Deep Links are not updating between Drop releases. To resolve this issue, navigate to your Default Apps in
|
||||
Settings and press "Reset Default Apps". This will, however, result in resetting all of your default apps.
|
||||
@ -12,7 +12,7 @@ as the connection URL when setting up your Drop client.
|
||||
## Reverse Proxy
|
||||
If you are unsure how to set up a reverse proxy, or even what one is, this guide isn't for you. There are far better guides out there, so follow them to set up your reverse proxy.
|
||||
|
||||
As of `v0.1.0-beta` there is no special configuration required to run Drop behind a reverse proxy.
|
||||
As of `v0.2.0-beta` there is no special configuration required to run Drop behind a reverse proxy.
|
||||
|
||||
## VPN
|
||||
If you are unsure how to setup a VPN for remote access, please find and follow a far better guide than this one.
|
||||
|
||||
@ -25,7 +25,7 @@ services:
|
||||
- POSTGRES_USER=drop
|
||||
- POSTGRES_DB=drop
|
||||
drop:
|
||||
image: registry.deepcore.dev/drop-oss/drop/main:latest
|
||||
image: decduck/drop-oss:v0.2.0-beta
|
||||
depends_on:
|
||||
postgres:
|
||||
condition: service_healthy
|
||||
@ -51,7 +51,7 @@ services:
|
||||
|
||||
**In addition, configure your chosen metadata provider:**
|
||||
|
||||
- [GiantBomb](/metadata/giantbomb.md) (only one supported as of v0.1.0-beta)
|
||||
- [GiantBomb](/metadata/giantbomb.md) (only one supported as of v0.2.0-beta)
|
||||
|
||||
::: tip
|
||||
If you want to, you can generate a more secure PostgreSQL username & password.
|
||||
|
||||
@ -10,8 +10,8 @@ hero:
|
||||
text: Quick start
|
||||
link: /guides/quickstart
|
||||
- theme: alt
|
||||
text: Guides ->
|
||||
link: /guides/
|
||||
text: About ->
|
||||
link: /about/
|
||||
|
||||
features:
|
||||
- title: Open-source
|
||||
|
||||
53
docs/roadmap.md
Normal file
53
docs/roadmap.md
Normal file
@ -0,0 +1,53 @@
|
||||
# Roadmap
|
||||
|
||||
While we're moving towards a major release, here's a few features that you can look forward to over the
|
||||
next few minor ones:
|
||||
|
||||
## Short-term
|
||||
### Better authentication
|
||||
Support for more authentication methods, such as discord, google, oauth, etc.
|
||||
|
||||
Accounts shouldn't be locked down to just Drop. We'd like to not only support username / password login,
|
||||
but OAuth, 2FA, U2F, magic links, and as many other authentication methods as we can.
|
||||
|
||||
Along with that, setting up user / group permissions are also planned, to give admins a more fine-grained
|
||||
control over who has access to what.
|
||||
|
||||
### Connecting to multiple servers (client-side only)
|
||||
Let users connect to and manage games from more than one server
|
||||
|
||||
This one is especially something that we've had requested from indie devs, but being able to access
|
||||
multiple Drop servers could lead to a much larger ecosystem where it's realistic for an indie dev
|
||||
to self-host their own games without Steam's 30%
|
||||
|
||||
## Mid-term
|
||||
### Launch tooling
|
||||
Open support for customising the toolchain with which your games are run with
|
||||
|
||||
While [UMU](https://github.com/Open-Wine-Components/umu-launcher) is great, people often have specific
|
||||
configurations that we can't really account for out of the box. To remedy this, we'd like to open Drop
|
||||
up to essentially fully customised launch sequences for any game, such as setting launch args from the
|
||||
client, configuring, deleting, and backing up prefixes, or setting ENV values.
|
||||
|
||||
We also recognise the value in being able to completely customise the way that your games are run,
|
||||
whether it be by passing them through a remote-play app, an emulator, or anything else of the sort.
|
||||
|
||||
### Cloud save management
|
||||
Support for cloud saves, making it easier to manage saves across different devices and operating systems.
|
||||
|
||||
We're looking at using the [ludusavi manifest](https://github.com/mtkennerly/ludusavi-manifest) to figure
|
||||
out relevant folders and files to be backed up to ideally any remote location.
|
||||
|
||||
## Long-term
|
||||
### Social features
|
||||
Support for social features, such as friends, groups, and other social interactions like current game status.
|
||||
|
||||
People don't always play games with themselves, and so we'd like to add a variety of chat features, friends
|
||||
updates, and other various features that can also be found in Steam's "Friends" and "Community" tabs.
|
||||
|
||||
### Multiplayer support
|
||||
Support for multiplayer server management, such as discovering servers, joining servers, and leaving servers.
|
||||
|
||||
Intended as a drop-in replacement for the SteamWorks API, we'd like to provide support for multiplayer support
|
||||
through the drop server, referencing the [Goldberg Emulator](https://gitlab.com/Mr_Goldberg/goldberg_emulator),
|
||||
as it has the most complete collection of headers that we can find.
|
||||
Reference in New Issue
Block a user