@@ -38,8 +38,7 @@ All Minecraft backend servers are internal-only and can only be reached through
|
|||||||
Velocity is the public-facing entry point and the logical "hub" of the server network.
|
Velocity is the public-facing entry point and the logical "hub" of the server network.
|
||||||
|
|
||||||
- Accepts player connections
|
- Accepts player connections
|
||||||
- Allows players to link their Minecraft account to their Discord account
|
- Uses a whitelist to control access to the server network at the proxy level
|
||||||
- Uses Discord membership to whitelist access to backend servers
|
|
||||||
- Forwards traffic to backend servers using modern forwarding
|
- Forwards traffic to backend servers using modern forwarding
|
||||||
- Integrated with LuckPerms for centralized permissions
|
- Integrated with LuckPerms for centralized permissions
|
||||||
- Handles chat messages and tab list to allow seamless communication between backend servers
|
- Handles chat messages and tab list to allow seamless communication between backend servers
|
||||||
@@ -123,6 +122,7 @@ The `init` container is a one-shot helper service that prepares the environment
|
|||||||
|
|
||||||
- Initialize and prepare named Docker volumes
|
- Initialize and prepare named Docker volumes
|
||||||
- Ensure the correct directory structure within volumes
|
- Ensure the correct directory structure within volumes
|
||||||
|
- Copy configuration files into volumes
|
||||||
- Set appropriate ownership and permissions for volume contents
|
- Set appropriate ownership and permissions for volume contents
|
||||||
- Support backup and restore scripts by managing volume data
|
- Support backup and restore scripts by managing volume data
|
||||||
|
|
||||||
@@ -151,7 +151,7 @@ Persistent server data, schematics, and databases are stored in named Docker vol
|
|||||||
The server stack is configured via environment variables, which are injected into the containers and, in some cases, the configuration files. These variables allow the stack to:
|
The server stack is configured via environment variables, which are injected into the containers and, in some cases, the configuration files. These variables allow the stack to:
|
||||||
|
|
||||||
- Configure network ports, secrets, and authentication mechanisms
|
- Configure network ports, secrets, and authentication mechanisms
|
||||||
- Provide centralized credentials for services such as RCON, LuckPerms, and Discord integration
|
- Provide centralized credentials for services such as RCON and LuckPerms
|
||||||
- Enable dynamic, environment-specific configuration without changing modifying repository files
|
- Enable dynamic, environment-specific configuration without changing modifying repository files
|
||||||
|
|
||||||
### CI/CD Integration
|
### CI/CD Integration
|
||||||
@@ -161,7 +161,7 @@ In deployments, the repository provides a `template.env` file that defines all t
|
|||||||
This approach allows:
|
This approach allows:
|
||||||
|
|
||||||
- **Environment-specific configuration:** the same repository can be deployed to different environments (local, staging, production) with appropriate variables injected at deployment time.
|
- **Environment-specific configuration:** the same repository can be deployed to different environments (local, staging, production) with appropriate variables injected at deployment time.
|
||||||
- **Secure injection of secrets:** sensitive values (RCON passwords, forwarding secrets, Discord bot tokens, etc.) are never stored directly in the repository, but are provided by the CI/CD system.
|
- **Secure injection of secrets:** sensitive values (RCON passwords, forwarding secrets, etc.) are never stored directly in the repository, but are provided by the CI/CD system.
|
||||||
- **Consistent container setup:** each service receives the variables it needs, and configuration files that reference `CFG_` variables are automatically populated at runtime.
|
- **Consistent container setup:** each service receives the variables it needs, and configuration files that reference `CFG_` variables are automatically populated at runtime.
|
||||||
|
|
||||||
### Key Variables
|
### Key Variables
|
||||||
@@ -172,17 +172,6 @@ This approach allows:
|
|||||||
| `BLUEMAP_PORT` | Host port where the BlueMap web interface is exposed. |
|
| `BLUEMAP_PORT` | Host port where the BlueMap web interface is exposed. |
|
||||||
| `RCON_PASSWORD` | The password for Remote Console (RCON) access. |
|
| `RCON_PASSWORD` | The password for Remote Console (RCON) access. |
|
||||||
| `FORWARDING_SECRET` | Secret key enabling secure communication between Velocity and backend servers. |
|
| `FORWARDING_SECRET` | Secret key enabling secure communication between Velocity and backend servers. |
|
||||||
| `DCLINK_GUILD` | Discord server (guild) ID where the linking bot operates. |
|
|
||||||
| `DCLINK_CHANNEL` | Discord channel ID used by the linking bot. |
|
|
||||||
| `DCLINK_ROLE` | Role ID assigned to Discord members when they link accounts. |
|
|
||||||
| `DCLINK_TOKEN` | Discord bot token for API authentication. |
|
|
||||||
| `LUCKPERMS_PASSWORD` | Password for the LuckPerms database user. |
|
| `LUCKPERMS_PASSWORD` | Password for the LuckPerms database user. |
|
||||||
| `LUCKPERMS_PORT` | Host port for external access to the LuckPerms PostgreSQL database (used mainly for monitoring or admin tools) |
|
| `LUCKPERMS_PORT` | Host port for external access to the LuckPerms PostgreSQL database (used mainly for monitoring or admin tools) |
|
||||||
|
|
||||||
## dclink
|
|
||||||
|
|
||||||
This server uses [dclink](https://github.com/Kalimero2Team/dclink), a plugin that allows players to link their Minecraft and Discord accounts using a Discord bot. Server access is restricted to members of the configured Discord server, effectively using Discord membership as the whitelist.
|
|
||||||
|
|
||||||
Details on the Discord bot configuration can be found in the [dclink documentation](https://github.com/LaapulliDev/dclink/wiki).
|
|
||||||
|
|
||||||
**Note:** Account information is stored in a local database and used solely for access control purposes. The only data stored are the Minecraft account UUID and the corresponding Discord account ID.
|
|
||||||
|
|||||||
Reference in New Issue
Block a user