Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions Assets/schema.ts
Original file line number Diff line number Diff line change
Expand Up @@ -229,6 +229,10 @@ export type Config = {
* The SMTP server port to use for sending emails.
*/
Port: number
/**
* Whether to use a secure connection (TLS) when connecting to the SMTP server. This should usually be true for port 465 and false for ports 587 and 25.
*/
Secure: boolean
/**
* The username to use for authentication with the SMTP server. The corresponding password should be configured in your environment variables.
*/
Expand Down
370 changes: 139 additions & 231 deletions Docs/bun.lock

Large diffs are not rendered by default.

20 changes: 10 additions & 10 deletions Docs/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,20 +3,20 @@
"type": "module",
"version": "0.0.1",
"scripts": {
"dev": "astro dev",
"start": "astro dev",
"build": "astro build",
"preview": "astro preview",
"astro": "astro"
"dev": "bun x -b astro dev",
"start": "bun x -b astro dev",
"build": "bun x -b astro build",
"preview": "bun x -b astro preview",
"astro": "bun x -b astro"
},
"devDependencies": {
"@biomejs/biome": "^2.4.4"
"@biomejs/biome": "^2.4.6"
},
"dependencies": {
"@astrojs/markdoc": "^0.15.10",
"@astrojs/starlight": "^0.37.6",
"@astrojs/starlight-markdoc": "^0.5.1",
"astro": "^5.18.0",
"@astrojs/markdoc": "^1.0.0",
"@astrojs/starlight": "^0.38.1",
"@astrojs/starlight-markdoc": "^0.6.0",
"astro": "^6.0.3",
"sharp": "^0.34.5"
}
}
2 changes: 1 addition & 1 deletion Docs/src/content/docs/guides/config.mdoc
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ title: Configuration guide
description: Guidance on modifying the configuration file for Mercury Core.
---

This guide provides information on the configuration file for Mercury Core, located at the root of the repository as [**mercury.core.ts**](https://github.com/tp-link-extender/MercuryCore/blob/main/mercury.core.ts). If the file is open in an editor with a Typescript language server, then each property can be hovered over to give a description of its purpose and usage, as well as the expected type of value that it should be set to.
This guide provides information on the configuration file for Mercury Core, located at the root of the repository as [**mercury.core.ts**](https://github.com/tp-link-extender/MercuryCore/blob/main/mercury.core.ts). If the file is open in an editor with a Typescript language server, then each property can be hovered over to give a description of its purpose and usage, as well as the expected type of value that it should be set to.

{% aside title="Source code modification" %}
While the configuration file aims to give control over as many options as possible in a pragmatic manner, the most effective way to tweak Mercury Core and other components of the Mercury suite will always be to modify their source code directly.
Expand Down
2 changes: 1 addition & 1 deletion Docs/src/content/docs/guides/coresetup.mdoc
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ An example repository, holding most Loadscripts, Plugins, and Privileged assets

{% aside type="caution" title="Omissions" %}
Some of the less useful or untestable Corescripts, such as those for handling badges and gamepass/product purchases, have been deliberately removed from the example repository. This is because the functionality for these features is not implemented in Mercury Core, mainly due to the trust required between the Site and gameservers to handle communications securely. As such, they can't be implemented in a revival platform that allows users to host their own gameservers.
Once we are able to test with dedicated servers, we may re-add these scripts to the example repository.
Since we are now able to test with dedicated servers, we may re-add these scripts to the example repository in the near future.
{% /aside %}

### Instructions
Expand Down
18 changes: 9 additions & 9 deletions Docs/src/content/docs/guides/devsetup.mdoc
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,13 @@ You should already have the necessary dependencies and command line tools instal

You will need:

- Latest version of [Git](https://git-scm.com) installed (expected as `git`, optional)
- Latest version of [Bun](https://bun.sh) installed (expected as `bun`, [installation guide](/install/bun))
- Latest version of [Go](https://go.dev) installed (expected as `go`, [installation guide](/install/go))
- Latest version of [SurrealDB](https://surrealdb.com) installed (expected as `surreal`, [installation guide](/install/surrealdb))
- A terminal
- A modern web browser (Early 2024 onwards for most major browsers)
- A computer, as it would be painful to live without one, wouldn't it?
- Latest version of [Git](https://git-scm.com) installed (expected as `git`, optional)
- Latest version of [Bun](https://bun.sh) installed (expected as `bun`, [installation guide](/install/bun))
- Latest version of [Go](https://go.dev) installed (expected as `go`, [installation guide](/install/go))
- Latest version of [SurrealDB](https://surrealdb.com) installed (expected as `surreal`, [installation guide](/install/surrealdb))
- A terminal
- A modern web browser (Early 2024 onwards for most major browsers)
- A computer, as it would be painful to live without one, wouldn't it?

If you wish to use containers instead of SurrealDB and Go, install the latest version of a container manager such as [Docker](https://www.docker.com) (expected as `docker`, [installation guide](/install/docker)) or an alternative container manager like [Podman](https://podman.io) ([installation guide](/install/podman)).

Expand All @@ -34,7 +34,7 @@ If you wish to use containers instead of SurrealDB and Go, install the latest ve
cd MercuryCore
```

- If not using Git, you can also [download the repository as a compressed archive file](https://github.com/tp-link-extender/MercuryCore/archive/refs/heads/main.zip) (.zip) from the GitHub page and extract it to a directory of your choice.
- If not using Git, you can also [download the repository as a compressed archive file](https://github.com/tp-link-extender/MercuryCore/archive/refs/heads/main.zip) (.zip) from the GitHub page and extract it to a directory of your choice.

2. If not using containers, navigate to the **Economy** directory, and run `go build` to compile the Economy service.

Expand Down Expand Up @@ -83,4 +83,4 @@ If you are using WSL2 on Windows, the server may not correctly reflect the chang

```ts
server: { watch: { usePolling: true } },
```
```
64 changes: 64 additions & 0 deletions Docs/src/content/docs/guides/launchersetup.mdoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
---
title: Launcher setup
description: How to set up the Launcher, the application responsible for starting and handling Client sessions, for local development and production hosting.
---

This guide details how to set up the Mercury Launcher for local development, moderation, and production publishing. More information on the Launcher is available on the [Launcher service page](/services/launcher).

## Requirements

You will need:

- Latest version of [Git](https://git-scm.com) installed (expected as `git`, optional)
- Latest version of the [.NET SDK](https://dotnet.microsoft.com) installed (expected as `dotnet`, [installation guide](/install/dotnet))
- A terminal

## Instructions

{% steps %}

1. Clone the [tp-link-extender/MercuryLauncher](https://github.com/tp-link-extender/MercuryLauncher) repository to a directory of your choice on your local machine, and navigate to the root directory of the repository.

```bash
git clone https://github.com/tp-link-extender/MercuryLauncher
cd MercuryLauncher
```

- If not using Git, you can also [download the repository as a compressed archive file](https://github.com/tp-link-extender/MercuryLauncher/archive/refs/heads/main.zip) (.zip) from the GitHub page and extract it to a directory of your choice.

2. Navigate to the **Config.fs** file and modify the configuration options as desired. See the [Launcher service page](/services/launcher#configuration) for more information on the available configuration options.

3. Run `dotnet run` to test the Launcher. If everything is set up correctly, the Launcher will start building. Once it is complete, it will start, immediately attempting to install the latest Setup deployment from the configured URL. It will not attempt to start the Client or Studio.

- If this command is being run for the first time, a welcome message similar to the following will be printed to the console:

```
Welcome to .NET 10.0!
---------------------
SDK Version: 10.0.200

Telemetry
Read more about .NET CLI Tools telemetry: https://aka.ms/dotnet-cli-telemetry

----------------
Installed an ASP.NET Core HTTPS development certificate.
To trust the certificate, run 'dotnet dev-certs https --trust'
Learn about HTTPS: https://aka.ms/dotnet-https

----------------
Write your first app: https://aka.ms/dotnet-hello-world
Find out what's new: https://aka.ms/dotnet-whats-new
Explore documentation: https://aka.ms/dotnet-docs
Report issues and find source on GitHub: https://github.com/dotnet/core
Use 'dotnet --help' to see available commands or visit: https://aka.ms/dotnet-cli
--------------------------------------------------------------------------------------
```

4. After you have modified the source code as required and are ready to publish the launcher, run the corresponding command for the operating system you wish to publish for:

- Windows: `dotnet publish --nologo -o ./out -r win-x64`
- Linux: `dotnet publish --nologo -o ./out -r linux-x64`

These commands will each place the published executable in the **out** directory.

{% /steps %}
20 changes: 10 additions & 10 deletions Docs/src/content/docs/guides/prodsetup.mdoc
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,13 @@ You should already have the necessary dependencies and command line tools instal

You will need:

- A correctly configured or modified version of Mercury Core
- Latest version of [Bun](https://bun.sh/) installed (expected as `bun`)
- Latest version of [Go](https://go.dev) installed (expected as `go`, [installation guide](/install/go))
- Latest version of [SurrealDB](https://surrealdb.com) installed (expected as `surreal`, [installation guide](/install/surrealdb))
- Latest version of [Caddy](https://caddyserver.com) installed (expected as `caddy`)
- A [server](/architecture/#server-hosting) to host it all on
- A terminal, either directly on the server or through remote access such as RDP, VNC, or SSH
- A correctly configured or modified version of Mercury Core
- Latest version of [Bun](https://bun.sh/) installed (expected as `bun`)
- Latest version of [Go](https://go.dev) installed (expected as `go`, [installation guide](/install/go))
- Latest version of [SurrealDB](https://surrealdb.com) installed (expected as `surreal`, [installation guide](/install/surrealdb))
- Latest version of [Caddy](https://caddyserver.com) installed (expected as `caddy`)
- A [server](/architecture/#server-hosting) to host it all on
- A terminal, either directly on the server or through remote access such as RDP, VNC, or SSH

If you wish to use containers instead of SurrealDB and Go, install the latest version of a container manager such as [Docker](https://www.docker.com) (expected as `docker`, [installation guide](/install/docker)) or an alternative container manager like [Podman](https://podman.io) ([installation guide](/install/podman)).

Expand All @@ -38,9 +38,9 @@ If you wish to use containers instead of SurrealDB and Go, install the latest ve
5. Run `bun prod` to install dependencies and begin building.

6. Run `caddy start` to start the Caddy reverse proxy server.
- You can also run `caddy reload` to reload the configuration file without restarting the server.
- If you're using Caddy with multiple configuration files, import the Caddyfile in the repository's root directory into a Caddyfile somewhere else, and run `caddy start` and `caddy reload` from there.
- You can also run `caddy reload` to reload the configuration file without restarting the server.
- If you're using Caddy with multiple configuration files, import the Caddyfile in the repository's root directory into a Caddyfile somewhere else, and run `caddy start` and `caddy reload` from there.

7. If using containers, run `docker compose up -d` to start the Database and Economy services.

8. Run `bun ./build` (not to be confused with `bun build`) to start Mercury Core. This will start the Database and Economy services automatically if they are not already running.
Expand Down
41 changes: 41 additions & 0 deletions Docs/src/content/docs/guides/rccsetup.mdoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
---
title: RCCService setup
description: How to set up RCCService, used for rendering images on the Site, as well as its associated proxy, for local development and production hosting.
---

This guide details how to set up RCCService for local development, moderation, and production publishing. More information, including general details on how RCC works, is available on the [RCCService service page](/services/rccservice).

For the purposes of this guide, a [proxy server](/services/rccservice#proxying) will be used to start and manage the RCC process and all communications with it. This is the recommended setup for both development and production.

## Requirements

You will need:

- Latest version of [Git](https://git-scm.com) installed (expected as `git`, optional)
- Latest version of [Go](https://go.dev) installed (expected as `go`, [installation guide](/install/go))
- A terminal

## Instructions

{% steps %}

1. Clone the [tp-link-extender/RCCService](https://github.com/tp-link-extender/RCCService) repository to a directory of your choice on your local machine, and navigate to the root directory of the repository.

```bash
git clone https://github.com/tp-link-extender/RCCService
cd RCCService
```

- If not using Git, you can also [download the repository as a compressed archive file](https://github.com/tp-link-extender/RCCService/archive/refs/heads/main.zip) (.zip) from the GitHub page and extract it to a directory of your choice.

2. Navigate to the **Proxy** directory. Copy the **Proxy/.env.example** file to **Proxy/.env** and modify it to set up the environment variables.

3. Run `go build` to compile the proxy server. This will produce an executable file in the same directory, either **Proxy.exe** on Windows or **Proxy** on Linux.

4. Copy both the compiled proxy executable and the **Proxy/.env** file to their parent directory, the root of the repository. The proxy executable needs to be in the same directory as the **RCCService** folder to be able to start the RCC process correctly, and the **.env** file needs to be in the same directory as the proxy executable for the proxy to read its configuration.

5. Run the proxy executable to start the proxy server and the RCC process. The proxy will automatically restart the RCC process if it crashes or is killed, and will print logs from both itself and the RCC process to the console.

{% /steps %}

If you're using RCC with Mercury Core, make sure to check its configuration to ensure that the [RCCServiceProxyURL](/guides/config#rccserviceproxyurl) property is set to the correct URL of your proxy server, including the appropriate scheme and port. The default value should work correctly if the proxy server is running on the same machine as the Site.
2 changes: 1 addition & 1 deletion Docs/src/content/docs/install/caddy.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ title: Caddy
description: Details on how to install Caddy.
---

[Caddy](https://caddyserver.com) is a web server used as a reverse proxy for the Mercury Core Site service. At the time of writing, the latest version is [**v2.10.2**](https://github.com/caddyserver/caddy/releases/tag/v2.10.2).
[Caddy](https://caddyserver.com) is a web server used as a reverse proxy for the Mercury Core Site service. At the time of writing, the latest version is [**v2.11.2**](https://github.com/caddyserver/caddy/releases/tag/v2.11.2).

Check out the [installation guide](https://caddyserver.com/docs/install) for detailed instructions.

Expand Down
10 changes: 10 additions & 0 deletions Docs/src/content/docs/install/dotnet.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
---
title: .NET SDK
description: Details on how to install the .NET SDK.
---

[.NET](https://dotnet.microsoft.com) is a software framework used for building and running applications, working on multiple desktop platforms. The .NET SDK (Software Development Kit) includes the tools and libraries needed to develop .NET applications. At the time of writing, the latest version is [**v10.0.200**](https://dotnet.microsoft.com/en-us/download/dotnet/10.0).

Copilot AI Mar 12, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There is a leading space at the beginning of line 6. The paragraph starts with [.NET] instead of [.NET].

Suggested change
[.NET](https://dotnet.microsoft.com) is a software framework used for building and running applications, working on multiple desktop platforms. The .NET SDK (Software Development Kit) includes the tools and libraries needed to develop .NET applications. At the time of writing, the latest version is [**v10.0.200**](https://dotnet.microsoft.com/en-us/download/dotnet/10.0).
[.NET](https://dotnet.microsoft.com) is a software framework used for building and running applications, working on multiple desktop platforms. The .NET SDK (Software Development Kit) includes the tools and libraries needed to develop .NET applications. At the time of writing, the latest version is [**v10.0.200**](https://dotnet.microsoft.com/en-us/download/dotnet/10.0).

Copilot uses AI. Check for mistakes.

Check out the [installation guide](https://learn.microsoft.com/dotnet/core/install/) for detailed instructions. Alternatively, it may be possible to install the .NET SDK using a package manager of your choice.

After installation, the .NET SDK should be available from the command line with `dotnet`.
2 changes: 1 addition & 1 deletion Docs/src/content/docs/install/go.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ title: Go
description: Details on how to install Go.
---

[Go](https://go.dev) is a programming language and toolchain for building and managing software. It is used for parts of certain Mercury Core services. At the time of writing, the latest version is [**v1.26.0**](https://github.com/golang/go/releases/tag/go1.26.0).
[Go](https://go.dev) is a programming language and toolchain for building and managing software. It is used for parts of certain Mercury Core services. At the time of writing, the latest version is [**v1.26.1**](https://github.com/golang/go/releases/tag/go1.26.1).

To install, download the latest [binary release](https://go.dev/dl/) and follow the installation instructions. Alternatively, it may be possible to install Go using a package manager of your choice.

Expand Down
13 changes: 9 additions & 4 deletions Docs/src/content/docs/install/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,9 @@ title: Installation
description: Tools needed to use and develop Mercury Core, and how to install them.
---

This page describes how to install and manage the tools for development and production environments for Mercury Core.
This page describes how to install and manage the tools for development and production environments for Mercury Core and other tools in the Mercury Suite.


In the near future, we may provide a program for setting up and installing the necessary tools automatically. Please let us know if you would find that helpful.
In the near future, we may provide a program for setting up and installing the necessary tools automatically. Please let us know if you would find that helpful. Similar discussion is available on issue [#352](https://github.com/tp-link-extender/MercuryCore/issues/352) on the Mercury Core GitHub repository.

## Baseline tools

Expand Down Expand Up @@ -35,10 +34,16 @@ For running without containers, install the following tools directly.
To set up a development environment, install all tools from the [Baseline tools](#baseline-tools) section, as well as the following.

- [Go](/install/go)
- It's possible to use the container instead if developing the Economy service, though this will be slower to start than compiling and running it directly with Go.
- It's possible to use the container instead if developing the Economy service, though this will be slower to start than compiling and running it directly with Go.

## Production tools

To set up a production environment, install all tools from the [Baseline tools](#baseline-tools) section, as well as the following.

- [Caddy](/install/caddy)

## Other tools

These are the tools needed to set up other parts of the Mercury Suite. They are not required for running Mercury Core.

- The [.NET SDK](/install/dotnet), used to build the [Launcher](/services/launcher)
2 changes: 1 addition & 1 deletion Docs/src/content/docs/install/surrealdb.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ title: SurrealDB
description: Details on how to install SurrealDB.
---

[SurrealDB](https://surrealdb.com) is a multi-model database that combines the flexibility of document databases with the power of graph databases. It is used as the main data storage mechanism for Mercury Core. At the time of writing, the latest version is [**v3.0.1**](https://github.com/surrealdb/surrealdb/releases/tag/v3.0.1).
[SurrealDB](https://surrealdb.com) is a multi-model database that combines the flexibility of document databases with the power of graph databases. It is used as the main data storage mechanism for Mercury Core. At the time of writing, the latest version is [**v3.0.3**](https://github.com/surrealdb/surrealdb/releases/tag/v3.0.3).

Check out the [installation guide](https://surrealdb.com/docs/surrealdb/installation) for detailed instructions, or install the latest version on Linux or macOS with the following shell command:

Expand Down
Loading
Loading