feat: add gitlab ci and sync next docs with 0.3.0

This commit is contained in:
DecDuck
2025-08-03 11:19:16 +10:00
parent 908251ef75
commit 037ecfcea9
6 changed files with 61 additions and 16 deletions

23
.gitlab-ci.yml Normal file
View File

@@ -0,0 +1,23 @@
image: node:18-alpine3.20
stages:
- test
- deploy
test:
stage: test
script:
- yarn install
- yarn build
rules:
- if: $CI_COMMIT_REF_NAME != $CI_DEFAULT_BRANCH
create-pages:
stage: deploy
script:
- yarn install
- yarn build
- mv ./build public
pages: true
rules:
- if: $CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH

View File

@@ -50,12 +50,10 @@ yarn link
`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 and clone its submodules:
Get started by cloning the `drop` source code, and then enter the directory:
```shell
git clone https://github.com/Drop-OSS/drop.git
cd drop
git submodule update --init --recursive
```
Then, link your build `droplet` package:
@@ -89,7 +87,6 @@ To build drop-app, run:
```shell
git clone https://github.com/Drop-OSS/drop-app.git
cd drop-app
git submodule update --init --recursive
git checkout main
yarn
yarn tauri build

View File

@@ -6,12 +6,13 @@ OpenID Connect is a OAuth2 extension support by most identity providers.
To configure OIDC, you must set the following environment variables:
| Variable | Usage |
| -------------------------------- | ------------------------------------------------------------------------------------------------- |
| `OIDC_CLIENT_ID` | Client ID from your identity provider. |
| `OIDC_CLIENT_SECRET` | Client secret from your identity provider. |
| `OIDC_ADMIN_GROUP` | Grant admin to users with this group configured in your identity provider. Tested with Authentik. |
| `DISABLE_SIMPLE_AUTH` (optional) | Disable simple auth |
| Variable | Usage |
| -------------------------------- | --------------------------------------------------------------------------------------------------- |
| `OIDC_CLIENT_ID` | Client ID from your identity provider. |
| `OIDC_CLIENT_SECRET` | Client secret from your identity provider. |
| `OIDC_ADMIN_GROUP` | Grant admin to users with this group configured in your identity provider. Tested with Authentik. |
| `DISABLE_SIMPLE_AUTH` (optional) | Disable simple auth |
| `OIDC_USERNAME_CLAIM` (optional) | Change the field that Drop pulls the username claim from. Users are merged based on their usernames |
And then, you must configure **either**:
@@ -27,3 +28,7 @@ And then, you must configure **either**:
| `OIDC_TOKEN` | Token endpoint. Usually ends with `token`. |
| `OIDC_USERINFO` | Userinfo endpoint. Usually ends with `userinfo`. |
| `OIDC_SCOPES` | Comma separated list of scopes. Requires, at least, `openid` and `email`. |
## Redirect URL
Drop uses the `EXTERNAL_URL` environment variable to create the callback URL: `$EXTERNAL_URL/auth/callback/oidc`.

View File

@@ -1,6 +1,12 @@
# Exposing your instance
Exposing your instance allows it to be accessible from other computers than the one you're hosting it on.
## Setting `EXTERNAL_URL`
Drop uses `EXTERNAL_URL` for creating invitation links, OIDC redirects, and everything else. It should be passed as an environment variable, and include the protocol, ip/domain, and port (if applicable). Examples include:
- `http://192.168.0.100:3000`
- `https://drop.my.domain/`
- `http://drop.home.arpa:3000`
## LAN
The `compose.yaml` provided in the [Quickstart guide](./quickstart.md) already exposes the Drop instance on port 3000. If you're on the same LAN as your Drop instance, you can find it's IP and then use:
```
@@ -17,4 +23,4 @@ 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.
Accessing Drop over a VPN works very similarly to [accessing via LAN](#lan), so follow those steps.
Accessing Drop over a VPN works very similarly to [accessing via LAN](#lan), so follow those steps.

View File

@@ -25,7 +25,7 @@ services:
- POSTGRES_USER=drop
- POSTGRES_DB=drop
drop:
image: ghcr.io/drop-oss/drop:nightly
image: ghcr.io/drop-oss/drop:latest
depends_on:
postgres:
condition: service_healthy
@@ -36,6 +36,7 @@ services:
- ./data:/data
environment:
- DATABASE_URL=postgres://drop:drop@postgres:5432/drop
- EXTERNAL_URL=http://localhost:3000 # default, customise if accessing from another computer or behind a reverse proxy
```
**The main things in this `compose.yaml` is the volumes attached to the `drop` service:**
@@ -61,7 +62,7 @@ Once your instance is running, it will log a URL that takes you to the setup wiz
## Setting up a client
To set up a client, your Drop instance will have to be accessible from it. See [Exposing your instance](./exposing.md) for information on how to do that.
To set up a client, your Drop instance will have to be accessible from it. See [Exposing your instance](/docs/guides/exposing.md) for information on how to do that.
First, download the latest client for your platform from [the GitHub releases page](https://github.com/Drop-OSS/drop-app/releases). Then, install it for your platform. If we don't have a binary available for your platform, please create an issue on [the Drop app repository](https://github.com/Drop-OSS/drop-app) and we'll investigate it.

View File

@@ -16,9 +16,22 @@ The Drop style library format enables all the Drop features, but isn't compatibl
Drop uses a very particular structure to organise your games library. Generally, to get started, you need to create two folders for a game:
1. `{LIBRARY}/My Game Name` - The game folder. This contains **only** folders, as described as below.
2. `{LIBRARY}/My Game Name/my-version-name` - The version folder or file. This folder contains all the files for the game. Currently Drop supports this being a folder, or an archive in the format:
- `.zip`
```
/
MyGame/ # The game folder. This contains **only** folders, as described as below.
version-1/ # The version folder or file. This folder contains all the files for the game. Currently Drop supports this being a folder, or an archive
game.exe
...
version-2/
...
MyOtherGame/
version1.zip
version2/
...
..etc...
```
Once in the UI, you'll be prompted to "import" each folder separately: