Compare commits

...

4 Commits

Author SHA1 Message Date
9cf4310d39 feat: add instructions on building for other platforms 2025-01-26 23:55:09 +11:00
f889f51b60 chore: Update version 2025-01-25 17:34:30 +11:00
293e22261d docs(roadmap): Added roadmap 2025-01-25 17:32:15 +11:00
1f407d6019 feat: Added edit footer and Deep Link issue resolution
Signed-off-by: quexeky <git@quexeky.dev>
2025-01-21 18:04:50 +11:00
8 changed files with 153 additions and 6 deletions

View File

@ -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" }],

View File

@ -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
View 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
```

View File

@ -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.

View File

@ -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.

View File

@ -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.

View File

@ -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
View 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.