Skip to content

Commit

Permalink
Merge pull request #14 from admon84/feat/server-status
Browse files Browse the repository at this point in the history
feat: server status
  • Loading branch information
CarsonBurke authored Jun 22, 2024
2 parents 0b1e9e8 + c55a8bd commit 9e642e0
Show file tree
Hide file tree
Showing 11 changed files with 1,215 additions and 165 deletions.
11 changes: 9 additions & 2 deletions .releaserc.json
Original file line number Diff line number Diff line change
@@ -1,12 +1,19 @@
{
"branches": [ "main" ],
"branches": [
"main"
],
"plugins": [
"@semantic-release/commit-analyzer",
"@semantic-release/release-notes-generator",
"@semantic-release/npm",
{
"@semantic-release/github": {
"assets": [ "dist/**", "public/**" ]
"assets": [
"dist/**",
"public/**",
"settings/**",
"views/**"
]
}
}
]
Expand Down
49 changes: 44 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

### Overview

The Screepers Steamless Client is a package that allows you to run the [Screeps](https://screeps.com/) game client in your browser. It's designed for users who have purchased [Screeps](https://store.steampowered.com/app/464350/Screeps/) on Steam. The official Screeps client, which uses an older version of [NW.js](https://nwjs.io/), lacks support for many macOS devices. This client serves the Screeps files installed via Steam, enabling you to run Screeps in your browser on macOS, Linux, and Windows.
The Screepers Steamless Client is a web proxy that allows you to run [Screeps: World](https://store.steampowered.com/app/464350/Screeps/), a game purchased via Steam, directly in your browser. It overcomes compatibility issues with the official Screeps client on many macOS devices. This client uses the Screeps files installed with Steam and enables gameplay on official and private servers across macOS, Linux, and Windows using the browser of your choice.

### Installation & Usage

Expand Down Expand Up @@ -30,29 +30,38 @@ Steam OpenId support is required on your local server. Enable it with [screepsmo
- `--package`: Specifies the path to the Screeps client package.nw file. Only needed if the path isn't automatically detected.
- `--host`: Changes the host address. (default: `localhost`)
- `--port`: Changes the port. (default: `8080`)
- `--server_list`: Specifies the path to a custom server list json file to use for the Server List page.
- `--beautify`: Formats .js files loaded in the client for debugging.

### Examples

Set the path to the Screeps client package.nw file (only if not automatically detected):
#### Package path

Specify the path to the Screeps client package.nw if not automatically detected:

```sh
npx screepers-steamless-client --package ~/Screeps/package.nw
```

Proxy a server directly (server list disabled):
#### Backend proxy

Proxy a server directly (disables the server list page):

```sh
npx screepers-steamless-client --backend https://screeps.com
npx screepers-steamless-client --backend http://localhost:21025
```

Example usage with Jomik's [screeps-server](https://github.com/Jomik/screeps-server).
#### Docker compose

Example usage with Jomik's [screeps-server](https://github.com/Jomik/screeps-server). You can copy the `client` service into your docker-compose.yml file (into the `services` section and before `volumes` section)

```yaml
# docker-compose.yml
version: '3'
version: "3"
services:
# ... existing services ...

client:
image: node:16
command: sh -c 'npx screepers-steamless-client --package /screeps.nw --host 0.0.0.0 --internal_backend http://screeps:21025 --backend http://localhost:21025'
Expand All @@ -68,6 +77,36 @@ services:
SCREEPS_NW_PATH="~/Library/Application Support/Steam/steamapps/common/Screeps/package.nw"
```

#### Custom server list

Specify the path to your custom server list json file:

```sh
npx screepers-steamless-client --server_list ./custom_server_list.json
```

The custom server list json file should follow the same format as the provided [server_list.json](server_list.json). Each object in the json file should include a `type`, `name`, and `url`:
* `type`: This is used to organize servers into sections.
* `name`: This is the name of the server.
* `url`: This is used to create a link to the server.

```json
[
{
"type": "official",
"name": "Official Server",
"url": "https://screeps.com",
"subdomain": "mmo"
},
{
"type": "private",
"name": "Local Server",
"url": "http://localhost:21025",
"subdomain": "private"
}
]
```

### Development Scripts

This project includes several scripts for development purposes:
Expand Down
Loading

0 comments on commit 9e642e0

Please sign in to comment.