Giter Site home page Giter Site logo

docker-bungeecord's Introduction

This is a Docker image of BungeeCord and is intended to be used at the front-end of a cluster of itzg/minecraft-server containers.

GitHub Workflow Status

Using with itzg/minecraft-server image

When using with the server image itzg/minecraft-server you can disable online mode, which is required by bungeecord, by setting ONLINE_MODE=FALSE, such as

docker run ... -e ONLINE_MODE=FALSE itzg/minecraft-server

Here is an example Docker Compose file.

Healthcheck

This image contains mc-monitor and uses its status command to continually check on the container's. That can be observed from the STATUS column of docker ps

CONTAINER ID    IMAGE    COMMAND                         CREATED           STATUS                     PORTS                       NAMES
b418af073764    mc       "/usr/bin/run-bungeecord.sh"    43 seconds ago    Up 41 seconds (healthy)    0.0.0.0:25577->25577/tcp    mc

You can also query the container's health in a script friendly way:

> docker container inspect -f "{{.State.Health.Status}}" mc
healthy

Environment Settings

  • TYPE=BUNGEECORD

    The type of the server. When the type is set to CUSTOM, the environment setting BUNGEE_JAR_URL is required.

    Possible values:

  • MEMORY=512m

    The Java memory heap size to specify to the JVM. Setting this to an empty string will let the JVM calculate the heap size from the container declared memory limit. Be sure to consider adding -XX:MaxRAMPercentage=<n> (with <n> replaced) to JVM_XX_OPTS, where the JVM default is 25%.

  • ICON

    Setting this to an image URL will download and (if required) convert the icon to a 64x64 PNG, and place it in /server/server-icon.png.

  • OVERRIDE_ICON

    Will override any pre-existing server-icon.png file in the /server directory if ICON is set.

  • INIT_MEMORY=${MEMORY}

    Can be set to use a different initial heap size.

  • MAX_MEMORY=${MEMORY}

    Can be set to use a different max heap size.

  • JVM_OPTS / JVM_XX_OPTS

    Additional space-separated options to pass to the JVM, where JVM_XX_OPTS will be added to the java command-line before JVM_OPTS.

  • NETWORKADDRESS_CACHE_TTL=60

    Number of seconds to cache the successful network address lookups. A lower value is helpful when Minecraft server containers are restarted and/or rescheduled and re-assigned a new container IP address.

  • PLUGINS

    Used to download a comma seperated list of *.jar urls to the plugins folder.

    -e PLUGINS=https://www.example.com/plugin1.jar,https://www.example.com/plugin2.jar
    
  • SPIGET_PLUGINS

    The SPIGET_PLUGINS variable can be set with a comma-separated list of SpigotMC resource IDs to automatically download SpigotMC plugins using the spiget API. Resources that are zip files will be expanded into the plugins directory and resources that are simply jar files will be moved there.

    NOTE: the variable is purposely spelled SPIGET with an "E"

    The resource ID can be located from the numerical part of the URL after the shortname and a dot. For example, the ID is 313 from

    https://www.spigotmc.org/resources/bungeetablistplus.313/
                                                         ===
    
  • MODRINTH_PROJECTS

    Comma or newline separated list of project slugs (short name) or IDs. The project ID is located in the "Technical information" section. The slug is the part of the page URL that follows /mod/:

      https://modrinth.com/mod/fabric-api
                               ----------
                                |
                                +-- project slug
    

    Also, a specific version/type can be declared using colon symbol and version id/type after the project slug. The version id can be found in the 'Metadata' section. Valid version types are release, beta, alpha.

    NOTE The variable MINECRAFT_VERSION must be set to the corresponding Minecraft version.

  • ENABLE_RCON

    Enable the rcon server (uses a third-party plugin to work).

  • RCON_PORT

    Define the port for rcon

  • RCON_PASSWORD

    Define the password for rcon

Optional Environment Settings

  • BUNGEE_JOB_ID=lastStableBuild

    The Jenkins job ID of the artifact to download and run and is used when deriving the default value of BUNGEE_JAR_URL

  • BUNGEE_JAR_REVISION

    Defaults to the value of ${BUNGEE_JOB_ID}, but can be set to an arbitrarily incremented value to force an upgrade of the downloaded BungeeCord jar file.

  • BUNGEE_BASE_URL

    Default to:

    Used to derive the default value of BUNGEE_JAR_URL

  • BUNGEE_JAR_URL

    If set, can specify a custom, fully qualified URL of the BungeeCord.jar; however, you won't be able reference the other environment variables from within a docker run a compose file. Defaults to:

    • (type: BUNGEECORD): ${BUNGEE_BASE_URL}/${BUNGEE_JOB_ID}/artifact/bootstrap/target/BungeeCord.jar

    This takes precedence over BUNGEE_JAR_FILE.

  • BUNGEE_JAR_FILE

    For TYPE=CUSTOM, allows setting a custom BungeeCord JAR that is located inside the container.

    Must be a valid path of an existing file.

  • WATERFALL_VERSION=latest

    For TYPE=WATERFALL, allows downloading a specific release stream of Waterfall.

  • WATERFALL_BUILD_ID=latest

    For TYPE=WATERFALL, allows downloading a specific build of Waterfall within the given version.

  • VELOCITY_VERSION=latest

    For TYPE=VELOCITY, specifies the version of Velocity to download and run.

  • VELOCITY_BUILD_ID=latest

    For TYPE=VELOCITY, allows downloading a specific build of Velocity within the given version.

  • HEALTH_HOST=localhost

    Allows for configuring the host contacted for container health check.

  • HEALTH_USE_PROXY=false

    Set to "true" when using Bungeecord's proxy_protocol option

  • ENABLE_JMX=false

    To enable remote JMX, such as for profiling with VisualVM or JMC, add the environment variable ENABLE_JMX=true, set JMX_HOST to the IP/host running the Docker container, and add a port forwarding of TCP port 7091

Volumes

  • /server

    The working directory where BungeeCord is started. This is the directory where its config.yml will be loaded.

  • /plugins

    Plugins will be copied across from this directory before the server is started.

  • /config

    The contents of this directory will be synchronized into the /server directory. Variable placeholders within the files will be processed as described in the section below unless REPLACE_ENV_DURING_SYNC is set to "false".

Ports

  • 25577

    The listening port of BungeeCord, which you will typically want to port map to the standard Minecraft server port of 25565 using:

    -p 25565:25577
    

Java Versions

The following table shows the Java versions and CPU architectures supported by the image tags:

Tag Java Architectures
latest 17 amd64, arm64, armv7
java8 8 amd64, arm64, armv7
java11 11 amd64, arm64, armv7

Interacting with the server

RCON is enabled by default, so you can exec into the container to access the Bungeecord server console:

docker exec -i mc rcon-cli

Note: The -i is required for interactive use of rcon-cli.

To run a simple, one-shot command, such as stopping a Bungeecord server, pass the command as arguments to rcon-cli, such as:

docker exec mc rcon-cli en

The -i is not needed in this case.

In order to attach and interact with the Bungeecord server, add -it when starting the container, such as

docker run -d -it -p 25565:25577 --name mc itzg/bungeecord

With that you can attach and interact at any time using

docker attach mc

and then Control-p Control-q to detach.

For remote access, configure your Docker daemon to use a tcp socket (such as -H tcp://0.0.0.0:2375) and attach from another machine:

docker -H $HOST:2375 attach mc

Unless you're on a home/private LAN, you should enable TLS access.

BungeeCord Configuration

BungeeCord Configuration Guide

Generic pack files

To install all the server content (jars, mods, plugins, configs, etc.) from a zip or tgz file, then set GENERIC_PACK to the container path or URL of the archive file.

If multiple generic packs need to be applied together, set GENERIC_PACKS instead, with a comma separated list of archive file paths and/or URLs to files.

To avoid repetition, each entry will be prefixed by the value of GENERIC_PACKS_PREFIX and suffixed by the value of GENERIC_PACKS_SUFFIX, both of which are optional. For example, the following variables

GENERIC_PACKS=configs-v9.0.1,mods-v4.3.6
GENERIC_PACKS_PREFIX=https://cdn.example.org/
GENERIC_PACKS_SUFFIX=.zip

would expand to https://cdn.example.org/configs-v9.0.1.zip,https://cdn.example.org/mods-v4.3.6.zip.

Replacing variables inside configs

Sometimes you have mods or plugins that require configuration information that is only available at runtime. For example if you need to configure a plugin to connect to a database, you don't want to include this information in your Git repository or Docker image. Or maybe you have some runtime information like the server name that needs to be set in your config files after the container starts.

For those cases there is the option to replace defined variables inside your configs with environment variables defined at container runtime.

If you set the environment variable REPLACE_ENV_VARIABLES to TRUE the startup script will go through all files inside your /server volume and replace variables that match your defined environment variables. Variables that you want to replace need to be declared as ${YOUR_VARIABLE}, which is common with shell scripting languages.

With REPLACE_ENV_VARIABLE_PREFIX you can define a prefix, where the default is CFG_, to only match predefined environment variables.

If you want to use a file for a value (such as when using Docker secrets) you can add suffix _FILE to your variable name (in run command). For example, ${CFG_PASSWORD_FILE} would be replaced with the contents of the file specified by the CFG_PASSWORD_FILE environment variable.

Here is a full example where we want to replace values inside a database.yml.

---
database:
  host: ${CFG_DB_HOST}
  name: ${CFG_DB_NAME}
  password: ${CFG_DB_PASSWORD}

This is how your docker-compose.yml file could look like:

version: "3.8"
# Other docker-compose examples in /examples

services:
  proxy:
    image: itzg/bungeecord
    ports:
      - "25577:25577"
    volumes:
      - "proxy:/server"
    environment:
      # enable env variable replacement
      REPLACE_ENV_VARIABLES: "TRUE"
      # define an optional prefix for your env variables you want to replace
      ENV_VARIABLE_PREFIX: "CFG_"
      # and here are the actual variables
      CFG_DB_HOST: "http://localhost:3306"
      CFG_DB_NAME: "minecraft"
      CFG_DB_PASSWORD_FILE: "/run/secrets/db_password"
    restart: always

volumes:
  proxy:

secrets:
  db_password:
    file: ./db_password

The content of db_password:

ug23u3bg39o-ogADSs

Patching existing files

JSON path based patches can be applied to one or more existing files by setting the variable PATCH_DEFINITIONS to the path of a directory that contains one or more patch definition json files or a patch set json file.

JSON path based patches can be applied to one or more existing files by setting the variable PATCH_DEFINITIONS to the path of a directory that contains one or more patch definition json files or a patch set json file.

The file and value fields of the patch definitions may contain ${...} variable placeholders. The allowed environment variables in placeholders can be restricted by setting REPLACE_ENV_VARIABLE_PREFIX, which defaults to "CFG_".

The following example shows a patch-set file were various fields in the paper.yaml configuration file can be modified and added:

{
  "patches": [
    {
      "file": "/data/paper.yml",
      "ops": [
        {
          "$set": {
            "path": "$.verbose",
            "value": true
          }
        },
        {
          "$set": {
            "path": "$.settings['velocity-support'].enabled",
            "value": "${CFG_VELOCITY_ENABLED}",
            "value-type": "bool"
          }
        },
        {
          "$put": {
            "path": "$.settings",
            "key": "my-test-setting",
            "value": "testing"
          }
        }
      ]
    }
  ]
}

Supports the file formats:

  • JSON
  • JSON5
  • Yaml
  • TOML, but processed output is not pretty

Scenarios

Running non-root

This image may be run as a non-root user but does require an attached /server volume that is writable by that uid, such as:

docker run ... -u $uid -v $(pwd)/data:/server itzg/bungeecord

docker-bungeecord's People

Contributors

bartkk0 avatar bensuperpc avatar celestecaprine avatar chipwolf avatar dependabot[bot] avatar dev0louis avatar exhq avatar f0xde avatar fluxcapacitor2 avatar growlf avatar growlyx avatar itzg avatar jade-thecat avatar jaecam avatar janl1 avatar k-jiang avatar nidotls avatar nikhiljha avatar orblazer avatar repository avatar silthus avatar tropicalshadow avatar weihao avatar whitehoodhacker avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

docker-bungeecord's Issues

Can't connect to paper lobby server

I can't join my server made on dockers, I have linux mint as core with docker, docker compose and cockpit.

As proxy I use Velocity becose of simple setup.
I have one server cur. it is Paper 1.16.1
code - yml(with removed Unique IDs)

Sorry for this down but it made yml code crazy there.

{
# Config version. Do not change this
config-version = "1.0"

# What port should the proxy be bound to? By default, we'll bind to all addresses on port 25577.
bind = "0.0.0.0:25577"

# What should be the MOTD? This gets displayed when the player adds your server to
# their server list. Legacy color codes and JSON are accepted.
motd = "&3A PerCraft Network"

# What should we display for the maximum number of players? (Velocity does not support a cap
# on the number of players online.)
show-max-players = 100

# Should we authenticate players with Mojang? By default, this is on.
online-mode = true

# Should we forward IP addresses and other data to backend servers?
# Available options:
# - "none":   No forwarding will be done. All players will appear to be connecting from the
#             proxy and will have offline-mode UUIDs.
# - "legacy": Forward player IPs and UUIDs in a BungeeCord-compatible format. Use this if
#             you run servers using Minecraft 1.12 or lower.
# - "modern": Forward player IPs and UUIDs as part of the login process using Velocity's 
#             native forwarding. Only applicable for Minecraft 1.13 or higher.
player-info-forwarding-mode = "LEGACY"

# If you are using modern IP forwarding, configure an unique secret here.
forwarding-secret = ""

# Announce whether or not your server supports Forge. If you run a modded server, we
# suggest turning this on.
announce-forge = false

[servers]
# Configure your servers here. Each key represents the server's name, and the value
# represents the IP address of the server to connect to.
lobby = "lobby:25566"

# In what order we should try servers when a player logs in or is kicked from aserver.
try = [
  "lobby"
]

[forced-hosts]
# Configure your forced hosts here.
"lobby.percraft.otzo.com" = [
  "lobby"
]

[advanced]
# How large a Minecraft packet has to be before we compress it. Setting this to zero will
# compress all packets, and setting it to -1 will disable compression entirely.
compression-threshold = 256

# How much compression should be done (from 0-9). The default is -1, which uses the
# default level of 6.
compression-level = -1

# How fast (in milliseconds) are clients allowed to connect after the last connection? By
# default, this is three seconds. Disable this by setting this to 0.
login-ratelimit = 2000

# Specify a custom timeout for connection timeouts here. The default is five seconds.
connection-timeout = 5000

# Specify a read timeout for connections here. The default is 30 seconds.
read-timeout = 30000

# Enables compatibility with HAProxy.
proxy-protocol = false

[query]
# Whether to enable responding to GameSpy 4 query responses or not.
enabled = true

# If query is enabled, on what port should the query protocol listen on?
port = 25577

# This is the map name that is reported to the query services.
map = "Velocity"

# Whether plugins should be shown in query response by default or not
show-plugins = false

[metrics]
# Whether metrics will be reported to bStats (https://bstats.org).
# bStats collects some basic information, like how many people use Velocity and their
# player count. We recommend keeping bStats enabled, but if you're not comfortable with
# this, you can turn this setting off. There is no performance penalty associated with
# having metrics enabled, and data sent to bStats can't identify your server.
enabled = true

# A unique, anonymous ID to identify this proxy with.
id = ""

log-failure = true
}

All runs with no errors but I can't join server it gives error "Unable to conect to lobby. Try again later."

proxy_protocol option breaks health check

In a Docker environment with a HAProxy the proxy_protocol setting is essential, unfortunately then mc-status does not work anymore. Is there a possibility to extend mc-status with query packets or to implement the protocol adjustments optionally?

If this is the wrong place, I'm happy to create the issue directly in the mc-status github issue area

Could not connect to default server with docker compose

I had checked #13 but my situation is a bit different from that case.

I tried to use docker compose so that I can do quick start-ups. Before that I was using docker compose for servers exposing port to the machine network and start bungee manually without docker, and everything works. After moving bungee into docker compose, user start to fail connecting to servers via bungee.

I noticed that the address in config.yml should different from localhost:port when bungee is in docker environment.
image
And I did make a change to that but it still not works.

Since docker compose would give containers a generated name rather than container name in docker-compose.yml. For example, my compose config is in /mc/pc and the content is pasted below.

version: '3.7'

services:
  lobby:
    image: itzg/minecraft-server
    environment:
      EULA: "TRUE"
      TYPE: "PAPER"
      MAX_MEMORY: "4G"
      VERSION: "1.15.2"
      USE_AIKAR_FLAGS: "TRUE"
    volumes:
      - /mc/pc/lobby:/data
    command: --noconsole
    restart: always

  bungee:
    image: itzg/bungeecord
    ports:
      - 25565:25577
    volumes:
      - /mc/pc/bungee/server:/server
    restart: always
    links:
      - lobby

image
The lobby container is now named pc_lobby_1 but not lobby.

So I tried both

servers:
  lobby:
    motd: ...
    address: lobby:20000
    restricted: false

and

servers:
  lobby:
    motd: ...
    address: pc_lobby_1:20000
    restricted: false

The first config show a same error when attempt to connect server locally, and the second one crashes the bungee server directly:

image

I'm not sure if I had provided enough message, if any other config file is required to trace the issue I could paste them below.

Thanks in advanced!

Clean up old jars following upgrades

If the proxy version changes, the old jar sticks around.
Especially if you allow the container to pull the latest jar on start, this makes some mess.

This is a feature request to clean up following upgrades.

Error on startup using Velocity

When starting the container I het the following in the log: Warning: Illegal date format for -z, --time-cond (and not a file name). This is the first part of the debug log containing the error

[init] Resolving type given VELOCITY,
[init] Downloading https://versions.velocitypowered.com/download/latest.jar,
+ extraCurlArgs=(-v),
+ log 'Resolving type given VELOCITY',
+ echo '[init] Resolving type given VELOCITY',
+ case "${TYPE^^}" in,
+ : latest,
+ BUNGEE_JAR_URL=https://versions.velocitypowered.com/download/latest.jar,
+ BUNGEE_JAR=/server/Velocity-latest.jar,
+ isTrue true,
+ local value=true,�,
=,
+ case ${value} in,
+ result=0,
+ return 0,
+ '[' -f /server/Velocity-latest.jar ']',
+ zarg='-z '\''/server/Velocity-latest.jar'\''',
+ log 'Downloading https://versions.velocitypowered.com/download/latest.jar',
+ echo '[init] Downloading https://versions.velocitypowered.com/download/latest.jar',
+ curl -o /server/Velocity-latest.jar -z ''\''/server/Velocity-latest.jar'\''' -fsSL  https://versions.velocitypowered.com/download/latest.jar,
Warning: Illegal date format for -z, --time-cond (and not a file name). ,
Warning: Disabling time condition. See curl_getdate(3) for valid date syntax.,
+ '[' -d /plugins ']',
+ [[ -n '' ]],
+ [[ -n '' ]],

Keeping all branches in sync

For example, the java8 branch does not yet have the correct permissions set for health.sh. The same is true for the README changes. Is this handled with the tags/releases and docker-versions-create.sh?

Plugins folder only copy newer files

if [ -d /plugins ]; then
    echo "Copying BungeeCord plugins over..."
    cp -r /plugins $BUNGEE_HOME
fi

Add a -u update flag to the operation to avoid overwrites in this scenerio:

  1. initialize container
  2. plugins copied over
  3. saved user-generated data to plugins folder
  4. container restarts
  5. plugins folder copied over and overwrite all the data

Unable to setup proxy using own jar

Hi, I'm trying to setup my proxy using custom jar. Currently I'm getting error:

proxy_1  | Resolving type given CUSTOM
proxy_1  | Using custom server jar at proxy.jar ...
proxy_1  | Downloading proxy.jar
proxy_1  | curl: (6) Could not resolve host: proxy.jar
proxy_1  | ERROR: failed to download

with docker-compose.yml:

  proxy:
    stdin_open: true
    tty: true
    image: itzg/bungeecord
    ports:
      - '25565:25565'
    volumes:
      - './bungee-vol:/server'
    environment:
      TYPE: "CUSTOM"
      BUNGEE_JAR_URL: "proxy.jar"
      MEMORY: "2G"

With minecraft-server custom jar works perfectly fine.

Docker-compose lost prefix in logging.

bungeecord1    | WARNING: An illegal reflective access operation has occurred
bungeecord1    | WARNING: Illegal reflective access by us.myles.ViaVersion.bungee.platform.BungeeViaInjector (file:/server/plugins/ViaVersion-3.2.2-SNAPSHOT.jar) to field java.lang.reflect.Field.modifiers
bungeecord1    | WARNING: Please consider reporting this to the maintainers of us.myles.ViaVersion.bungee.platform.BungeeViaInjector
bungeecord1    | WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
bungeecord1    | WARNING: All illegal access operations will be denied in a future release
survival_1     | [00:51:09 INFO]:         __
survival_1     | [00:51:09 INFO]:   |    |__)   LuckPerms v5.3.3
survival_1     | [00:51:09 INFO]:   |___ |      Running on Bukkit - Paper
survival_1     | [00:51:09 INFO]:
survival_1     | [00:51:09 INFO]: [LuckPerms] Loading configuration...
lobby2_1       | [00:51:09 INFO]: [LuckPerms] Loading storage provider... [MYSQL]
00:51:09 [INFO] [ViaVersion] Loading 1.16 -> 1.16.2 mappings...
00:51:09 [INFO] [ViaVersion] ViaVersion detected server version: 1.8.x (47)
00:51:09 [INFO] Enabled plugin ViaVersion version 3.2.2-SNAPSHOT by _MylesC, creeper123123321, Gerrygames, KennyTV, Matsv
00:51:09 [INFO] Enabled plugin cmd_server version git:cmd_server:1.16-R0.5-SNAPSHOT:d49e97c:1575 by SpigotMC
00:51:09 [INFO] Enabled plugin cmd_alert version git:cmd_alert:1.16-R0.5-SNAPSHOT:d49e97c:1575 by SpigotMC
00:51:09 [INFO] Enabled plugin cmd_send version git:cmd_send:1.16-R0.5-SNAPSHOT:d49e97c:1575 by SpigotMC
lobby1_1       | [00:51:09 INFO]: [FancyCropTrample] Loading FancyCropTrample v1.2.2
lobby1_1       | [00:51:09 INFO]: [VoidGenerator] Loading VoidGenerator v1.7.0
lobby1_1       | [00:51:09 INFO]: Server permissions file permissions.yml is empty, ignoring it
lobby1_1       | [00:51:09 INFO]: [LuckPerms] Enabling LuckPerms v5.3.3
lobby2_1       | [00:51:09 INFO]: [me.lucko.luckperms.lib.hikari.HikariDataSource] luckperms-hikari - Starting...
lobby2_1       | [00:51:09 INFO]: [me.lucko.luckperms.lib.hikari.HikariDataSource] luckperms-hikari - Start completed.
00:51:10 [INFO] [ServerManager] Couldn't check for an update
00:51:10 [INFO] [ServerManager] You're on the latest version!
00:51:10 [INFO] [ViaVersion] Finished mapping loading, shutting down loader executor!
00:51:10 [INFO] [ServerManager] Couldn't check for an update
00:51:10 [INFO] [ServerManager] You're on the latest version!

As you can see, when running bungee docker image as service, it is not prepending container names to the logs.

  bungeecord1: # does not label the logs
    image: itzg/bungeecord
    container_name: "bungeecord1" # does not label the logs
    ports:
      - "25566:25565"
      # - "19132:19132/udp"
    volumes:
      - "./bungeecord/plugins:/plugins/:ro" # <-
      - "./bungeecord/config:/config/:ro"
    environment: 
      MEMORY: "4096m"
    restart: always
    depends_on:
      - "redis"
      - "db"

container not listening to provided container

Hi,
So we have managed to get bungeecord working on 25565, however.. it seems like it's just running not caring about when we change the config and doesn't really load the plugins in bungeecord. It's all simply just default.
This is our docker-compose-yml:
https://justpaste.it/7gbgy

Could you help us with this? Thanks

Possible HEALTHCHECK using Dinnerbone/mcstatus

For the sake of consistency, adding an identical (or similar) healthcheck to this image would be a good idea. I'm making this an issue rather than a PR right away because I need to test whether the library works with Bungee proxies. I'm assuming it does, but looking at some of the handshaking code used in Dinnerbone's lib, it's probably a good idea to test it before going to a PR.

Timeout Reached

I start the container and in the logs I see this:

Downloading https://ci.md-5.net/job/BungeeCord/lastStableBuild/artifact/bootstrap/target/BungeeCord.jar
curl: (28) Timeout was reached
ERROR: failed to download

Java 16 (and eventually Java 17) Image Support

With Mojang's decision to make Minecraft 1.17 require Java 16 or later and servers like Spigot/Paper following suite, Java 16+ will be required for some plugins to continue to function even on Bungeecord. The ViaVersion plugin is already one I have seen give Java version warnings.

This is a feature request to have Java 16+ Images available.

Running non-root, curl return error

Hey guys,

I'm trying to start the container with a non-root user, so I made this command:

docker run -it -v ~/data_bungee:/server --user $(id -u) itzg/bungeecord

But CURL return an error while downloading the initial .jar:

Downloading https://ci.md-5.net/job/BungeeCord/lastStableBuild/artifact/bootstrap/target/BungeeCord.jar
curl: (23) Failed writing body (0 != 744)
ERROR: failed to download

It's weird because itzg/minecraft-server works perfectly fine with the same command.

Won't detect variables in Environment

So I wanted to update to latest version of Bungecord so tried ot add the variables to my docker-compose.

mcb-bungee:
container_name: mcb-bungee
image: itzg/bungeecord
ports:
- "25565:25577"
- "127.0.0.1:1030:1025"
volumes:
- "./mcb-bungee/server:/server"
- "./mcb-bungee/plugins:/plugins"
- "./mcb-bungee/config:/config"
environment:
BUNGEE_JOB_ID: "lastStableBuild"
BUNGEE_BASE_URL: "https://ci.md-5.net/job/BungeeCord"
BUNGEE_JAR_URL: "${BUNGEE_BASE_URL}/${BUNGEE_JOB_ID}/artifact/bootstrap/target/BungeeCord.jar"
BUNGEE_JAR: "BungeeCord.jar"
restart: unless-stopped
networks:
- mc
depends_on:
- mcdb

However when the server starts it complains that the variables are not set.

The BUNGEE_BASE_URL variable is not set. Defaulting to a blank string.
The BUNGEE_JOB_ID variable is not set. Defaulting to a blank string.
Recreating mcb-bungee ... done

And then it still complains in the log about beeing outdated.

*** Warning, this build is outdated ***
*** Please download a new build from http://ci.md-5.net/job/BungeeCord ***
*** You will get NO support regarding this build ***
*** Server will start in 10 seconds ***

Helm chart

Hey, any chance of a helm chart for this one?

Thanks

Error starting container

Hi, just tried the latest (saw you pushed 4 hours ago or so), and getting the following error:

ERROR: for bungeecord Cannot start service bungeecord: OCI runtime create failed: container_linux.go:380: starting container process caused: exec: "/usr/bin/run-bungeecord.sh": permission denied: unknown

Is this a permissions issue during the build of the docker container?

EDIT: I built the image locally after setting +x on run-bungeecord.sh and it at least starts up now, though it's saying that it's unhealthy. Looking into it.

EDIT2: It's working, depite the "unhealthy" message in docker ps

Unhealthy Container

I am able to connect to the Waterfall proxy and the two servers connected to it. However I started getting an Unhealthy Container notification.

failed to ping localhost:25577 : json: cannot unmarshal number -1 into Go struct field Version.version.protocol of type uint

Repo does not exist

Forgive me if I'm missing something that's much more simple. As of about 24 hours ago, the repo [itzg/docker-bungeecord:latest] does not appear to exist. The same issue does not appear with the itzg/minecaft-server image. Both of which are awesome.

Unable to find image 'itzg/docker-bungeecord:latest' locally
docker: Error response from daemon: pull access denied for itzg/docker-bungeecord, repository does not exist or may require 'docker login': denied: requested access to the resource is denied.
See 'docker run --help'.

403 on download core

Error 403 appears when downloading bungeecord. I requested it through curl, it turned out to ask to pass a captcha.
image

Java version tags

I'd love for tags like on itzg/minecraft-server for specific Java versions, as some of my plugins require Java 11+.

Support for environment variable passthrough

Hi,

I'm currently using itzg/minecraft-server to host my MC servers, which has the ability to passthrough environment variables like so:

minecraft:
  image: itzg/minecraft-server
  restart: always
  environment:
    EULA: "true"
    ONLINE_MODE: "false"
    TYPE: PAPER
    VERSION: 1.16.1
    MEMORY: 6G
    VAULT_TOKEN: ~
    MONGO_VAULT_CREDENTIAL: ~
    REDIS_VAULT_CREDENTIAL: ~
    MAX_PLAYERS: 200
    ALLOW_NETHER: "false"
    GENERATE_STRUCTURES: "false"
    USE_AIKAR_FLAGS: "true"
  volumes:
    - /data/minecraft/plugins:/plugins
  networks:
    - myNetwork
  deploy:
    mode: replicated
    replicas: 1

Note that, VAULT_TOKEN, MONGO_VAULT_CREDENTIAL and REDIS_VAULT_CREDENTIAL are all set on the Minecraft server.

When doing the same using itzg/bungeecord, the environment variables are not passed through to the app, like this:

bungeecord:
  image: itzg/bungeecord
  restart: always
  ports:
    - "25565:25577"
  environment:
    TYPE: WATERFALL
    MEMORY: 2G
    VAULT_TOKEN: ~
    MONGO_VAULT_CREDENTIAL: ~
    REDIS_VAULT_CREDENTIAL: ~
  volumes:
    - /data/bungeecord/plugins:/plugins
    - /data/bungeecord/config:/config
    - /data/bungeecord/server:/server
  networks:
    - myNetwork
  deploy:
    mode: replicated
    replicas: 1

The same environment variables are not set, or at the very least, they are not visible in System#getenv() and are null in System#getenv(String)

Is this intentional/something Bungee related? I've looked through the Dockerfile and haven't spotted anything that sticks out in terms of scraping the environment variables out, nor is there any documentation of a prefix that is required to pass through.

Connection limit

I'm using this image in pair with itzg/minecraft-server and I can't have more than 10 users connected to one BungeeCord container. When I'm having 2 BungeeCord instances leading to one PaperSpigot server, I can have 20 players connected to it. I'm also using Docker's internal bridge network to make contact between these containers. Here's a screenshot of this problem:
image

Access bungeecord console

Is there any way to get access to the bungeecord console? With the minecraft container this is possible with rcon-cli as you know but this is not working for bungeecord.

Thanks in advance.

Docker image inconsistency

Why is bungeecord using FROM adoptopenjdk:11-jre-hotspot and server using adoptopenjdk/openjdk11:alpine-jre?

BungeeCord can't see Users real IP Adress

Hey there,

I am using your image for my networks BungeeCord instance and I'd like that bungeecord can see the real IP adress of the User for banning reasons and that stufft.

I already tried to disable the userland-proxy but this didn't solve the problem.
All users are still connecting from the same IP: 10.0.0.2 in my case

nginx fore example sees the users real ip

could you fix this or is this a "BungeeCord in a container" problem?

Option to download plugins via url

It would be great if the bungeecord image would have the same support for the "-e MODS=" parameter included in the minecraft server image just for the plugin folder.
In addition the override parameter would be helpful as well.

Thanks

Player visibility issues

I've just finished getting all setup with itzg/bungeecord and itzg/minecraft-server, however when clients connect via Bungee they are invisible. Other entities/actions work fine, can throw items and they show up on both clients, destroy/place blocks, etc.

Could this be an issue relating to the Docker images, or perhaps an issue with Bungee/Paper. I have tried both BungeeCord and Waterfall, have not yet swapped away from Paper.

I have a VPN setup inside the Docker swarm network, which allows me to direct connect to the MC servers, upon doing this both clients are visible. If 1 client is connected to Bungee and 1 to Paper, both clients are visible. If both clients are connected via Bungee, both are invisible.

Edit: Also tried with standard Spigot, same issue.
Edit 2: Removed all plugins from the Paper server and still experiencing the same issue

Feature request: copy `waterfall.yml`, `modules.yml` and `server-icon.png` from /config to /server if exists.

We are trying to use this docker image for a Waterfall server. We want to be able to customize settings in waterfall.yml, modules.yml as well as uploading a server-icon.png to the container. But it seems that the startup script only copy 'config.yml' from volume /config to /server.

Can we have the ability to copy waterfall.yml, modules.yml and server-icon.png to /server if it is exists in the /config volume please? Thanks!

(P.S. we can do a PR on this if preferred)

Plugin crashes on latest container release

Dear itzg,

I just pulled your latest bungeecord container from docker hub, running waterfall. https://hub.docker.com/layers/itzg/bungeecord/latest/images/sha256-87ec2c830b1dc393b8cbd35d19dc9add305a9c38cf7f0426ea0b2f9acd1b9281

I am now unable to run PLAN, it throws the error below. Reverting the container to the the version before the latest solves the issue.

Exception encountered when loading plugin: Plan
java.lang.UnsatisfiedLinkError: sun.management.OperatingSystemImpl.getSystemCpuLoad()D
        at sun.management.OperatingSystemImpl.getSystemCpuLoad(Native Method) ~[?:1.8.0_212]
        at com.djrapitops.plan.gathering.SystemUsage.getAverageSystemLoad(SystemUsage.java:59) ~[?:?]
        at com.djrapitops.plan.gathering.timed.SystemUsageBuffer.warmUp(SystemUsageBuffer.java:51) ~[?:?]
        at com.djrapitops.plan.gathering.timed.SystemUsageBuffer.<init>(SystemUsageBuffer.java:47) ~[?:?]
        at com.djrapitops.plan.gathering.timed.SystemUsageBuffer_Factory.newInstance(SystemUsageBuffer_Factory.java:25) ~[?:?]
        at com.djrapitops.plan.gathering.timed.SystemUsageBuffer_Factory.get(SystemUsageBuffer_Factory.java:17) ~[?:?]
        at com.djrapitops.plan.gathering.timed.SystemUsageBuffer_Factory.get(SystemUsageBuffer_Factory.java:6) ~[?:?]
        at plan.dagger.internal.DoubleCheck.get(DoubleCheck.java:47) ~[?:?]
        at com.djrapitops.plan.gathering.timed.ProxyTPSCounter_Factory.get(ProxyTPSCounter_Factory.java:47) ~[?:?]
        at com.djrapitops.plan.gathering.timed.ProxyTPSCounter_Factory.get(ProxyTPSCounter_Factory.java:12) ~[?:?]
        at plan.dagger.internal.DoubleCheck.get(DoubleCheck.java:47) ~[?:?]
        at plan.dagger.internal.SetFactory.get(SetFactory.java:126) ~[?:?]
        at plan.dagger.internal.SetFactory.get(SetFactory.java:37) ~[?:?]
        at com.djrapitops.plan.TaskSystem_Factory.get(TaskSystem_Factory.java:30) ~[?:?]
        at com.djrapitops.plan.TaskSystem_Factory.get(TaskSystem_Factory.java:9) ~[?:?]
        at plan.dagger.internal.DoubleCheck.get(DoubleCheck.java:47) ~[?:?]
        at com.djrapitops.plan.PlanSystem_Factory.get(PlanSystem_Factory.java:120) ~[?:?]
        at com.djrapitops.plan.PlanSystem_Factory.get(PlanSystem_Factory.java:28) ~[?:?]
        at plan.dagger.internal.DoubleCheck.get(DoubleCheck.java:47) ~[?:?]
        at com.djrapitops.plan.DaggerPlanBungeeComponent.system(DaggerPlanBungeeComponent.java:767) ~[?:?]
        at com.djrapitops.plan.PlanBungee.onEnable(PlanBungee.java:71) ~[?:?]
        at net.md_5.bungee.api.plugin.PluginManager.enablePlugins(PluginManager.java:300) ~[Waterfall-1.16-403.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:7395ab3:403]
        at net.md_5.bungee.BungeeCord.start(BungeeCord.java:289) ~[Waterfall-1.16-403.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:7395ab3:403]
        at net.md_5.bungee.BungeeCordLauncher.main(BungeeCordLauncher.java:62) ~[Waterfall-1.16-403.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:7395ab3:403]
        at net.md_5.bungee.Bootstrap.main(Bootstrap.java:15) ~[Waterfall-1.16-403.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:7395ab3:403]

availableProcessors has to be more than 1

I've tried using the image in docker-compose, though when starting the following comes up:

14:32:00 [SEVERE] Exception in thread "main"
14:32:00 [SEVERE] java.lang.ExceptionInInitializerError
14:32:00 [SEVERE]     at net.md_5.bungee.netty.PipelineUtils.newEventLoopGroup(PipelineUtils.java:123)
14:32:00 [SEVERE]     at net.md_5.bungee.BungeeCord.start(BungeeCord.java:263)
14:32:00 [SEVERE]     at net.md_5.bungee.BungeeCordLauncher.main(BungeeCordLauncher.java:62)
14:32:00 [SEVERE]     at net.md_5.bungee.Bootstrap.main(Bootstrap.java:15)
14:32:00 [SEVERE] Caused by: java.lang.IllegalArgumentException: availableProcessors: 0 (expected: > 0)
14:32:00 [SEVERE]     at io.netty.util.internal.ObjectUtil.checkPositive(ObjectUtil.java:44)
14:32:00 [SEVERE]     at io.netty.util.NettyRuntime$AvailableProcessorsHolder.setAvailableProcessors(NettyRuntime.java:44)
14:32:00 [SEVERE]     at io.netty.util.NettyRuntime$AvailableProcessorsHolder.availableProcessors(NettyRuntime.java:70)
14:32:00 [SEVERE]     at io.netty.util.NettyRuntime.availableProcessors(NettyRuntime.java:98)
14:32:00 [SEVERE]     at io.netty.channel.MultithreadEventLoopGroup.<clinit>(MultithreadEventLoopGroup.java:41)
14:32:00 [SEVERE]     ... 4 more

docker-compose.yml:

version: '3.8'

services:
  lobby:
    image: itzg/minecraft-server:adopt11
    volumes:
      - ./lobby:/data
    environment:
      - TYPE=SPIGOT
      - VERSION=Spigot-1.8.8-R0.1-SNAPSHOT-latest
      - EULA=TRUE
      - ONLINE_MODE=FALSE
    restart: always
  bungeecord:
    image: itzg/bungeecord
    ports:
     - 25565:25577
#    environment:
#      - MEMORY=1028m
    volumes:
      - ./bungeecord:/server
    restart: always
    deploy:
      resources:
        limits:
          cpus: '1'

Thanks in advance :)

[FEAT] Tag published images

Hello,
I make that issue for propose to tag the images when is published.

That is useful for fix version of image without pass the hash like itzg/bungeecord:latest@sha256:fd084c6d9a456226e3c17e2318a47db2fd7842a171709c20dc03b0e0211ff888.

Thanks.

Proxy unable to bridge connection to minecrafter-server container

Sorry in advance for the text wall. I wanted to include logs and configs up front.

I've been trying for a couple days now to get the bungeecord proxy to connect the backend spigot server. When running the jar files directly on the host, or in the VM, I'm able to connect without issue. However, when containerized, the proxy doesn't seem to be able to reach the mc server.

I am able to connect to the containerized mc server directly in either env. So that at least is working.

Notice that the minecraft logs don't indicate connection activity. That makes me think that I'm either missing something in the configs, or am misunderstanding something to do with docker networking.

In both environments, I get this when connecting to containerized bungeecord:
disconnected with: Could not connect to a default or fallback server, please try again later: io.netty.channel.AbstractChannel$AnnotatedConnectException

In both cases, the minecraft GUI shows that it can see the bungeecord server.

Things I've tried

  • changing the minecraft server ports in server.properties and corresponding values in config.yaml
  • changing the port that bungeecord listens on and the corresponding docker port
  • starting bungeecord before minecraft, and vice versa
  • setting server.properties/server-ip= to localhost and the IP of the vm.
  • exposing the minecraft ports, hoping that bungeecord can reach them.
  • running the docker-compose.yml example

Env 1:
Mac OS X (Mojave 10.14.6)
Docker Desktop CE 2.1.0.4

Env 2:
Ubuntu 19.10 (VM, using mhost network)
Docker 19.03.2

Image Versions:

itzg/minecraft-server   latest              9a49bf0206ad        13 days ago         333MB
itzg/bungeecord         latest              24a259c44966        8 weeks ago         86.6MB

Commands, in seperate tmux panes:
bungeecord:

docker run -it -v $(pwd)/bg/server:/server -v $(pwd)/bg/config:/config -p 25565:25577 itzg/bungeecord

minecraft:

docker run --name mc -v $(pwd)/mc:/data -e TYPE=SPIGOT -e VERSION=1.14.4 -e EULA=TRUE -e ONLINE_MODE=FALSE itzg/minecraft-server --noconsole

Configs

bungeecord

connection_throttle_limit: 3
disabled_commands:
- disabledcommandhere
online_mode: true
log_commands: false
network_compression_threshold: 256
listeners:
- query_port: 25577
  motd: '&1Another Bungee server'
  tab_list: GLOBAL_PING
  query_enabled: false
  proxy_protocol: false
  forced_hosts:
    pvp.md-5.net: pvp
  ping_passthrough: false
  priorities:
  - lobby
  bind_local_address: true
  host: 0.0.0.0:25577
  max_players: 1
  tab_size: 60
  force_default_server: false
connection_throttle: 4000
groups:
  md_5:
  - admin
log_pings: true
player_limit: -1
prevent_proxy_connections: false
forge_support: false
stats: 4d8c17c3-1f85-4451-b656-5bad3dea0878
permissions:
  default:
  - bungeecord.command.server
  - bungeecord.command.list
  admin:
  - bungeecord.command.alert
  - bungeecord.command.end
  - bungeecord.command.ip
  - bungeecord.command.reload
ip_forward: false
timeout: 30000
servers:
  lobby:
    motd: '&1Just another BungeeCord - Forced Host'
    address: localhost:25565
    restricted: false

minecraft

#Minecraft server properties
#Tue Dec 10 21:23:25 GMT 2019
spawn-protection=16
max-tick-time=60000
query.port=25565
generator-settings=
force-gamemode=false
allow-nether=true
enforce-whitelist=false
gamemode=survival
broadcast-console-to-ops=true
enable-query=false
player-idle-timeout=0
difficulty=easy
spawn-monsters=true
broadcast-rcon-to-ops=true
op-permission-level=4
pvp=true
snooper-enabled=true
level-type=default
hardcore=false
enable-command-block=true
max-players=20
network-compression-threshold=256
resource-pack-sha1=
max-world-size=29999984
function-permission-level=2
rcon.port=25575
server-port=25565
debug=false
texture-pack=
server-ip=
spawn-npcs=true
allow-flight=false
level-name=world
view-distance=10
resource-pack=
spawn-animals=true
white-list=false
rcon.password=minecraft
generate-structures=true
online-mode=false
max-build-height=256
level-seed=
use-native-transport=true
prevent-proxy-connections=false
motd=A Spigot Minecraft Server powered by Docker
enable-rcon=true

Logs

BungeeCord Logs

20:57:32 [INFO] Using mbed TLS based native cipher.
20:57:32 [INFO] Using zlib based native compressor.
20:57:32 [INFO] Enabled BungeeCord version git:BungeeCord-Bootstrap:1.14-SNAPSHOT:70038c9:1425
20:57:32 [INFO] Not on Windows, attempting to use enhanced EpollEventLoop
20:57:32 [INFO] Epoll is working, utilising it!
20:57:32 [INFO] Discovered module: ModuleSpec(name=cmd_alert, file=modules/cmd_alert.jar, provider=JenkinsModuleSource())
20:57:32 [INFO] Discovered module: ModuleSpec(name=cmd_find, file=modules/cmd_find.jar, provider=JenkinsModuleSource())
20:57:32 [INFO] Discovered module: ModuleSpec(name=cmd_list, file=modules/cmd_list.jar, provider=JenkinsModuleSource())
20:57:32 [INFO] Discovered module: ModuleSpec(name=cmd_send, file=modules/cmd_send.jar, provider=JenkinsModuleSource())
20:57:32 [INFO] Discovered module: ModuleSpec(name=cmd_server, file=modules/cmd_server.jar, provider=JenkinsModuleSource())
20:57:32 [INFO] Discovered module: ModuleSpec(name=reconnect_yaml, file=modules/reconnect_yaml.jar, provider=JenkinsModuleSource())
20:57:32 [INFO] Attempting to update plugin from null to ModuleVersion(build=1425, git=70038c9)
20:57:32 [INFO] Attempting to Jenkins download module cmd_alert v1425
20:57:32 [INFO] Download complete
20:57:32 [INFO] Attempting to update plugin from null to ModuleVersion(build=1425, git=70038c9)
20:57:32 [INFO] Attempting to Jenkins download module cmd_find v1425
20:57:33 [INFO] Download complete
20:57:33 [INFO] Attempting to update plugin from null to ModuleVersion(build=1425, git=70038c9)
20:57:33 [INFO] Attempting to Jenkins download module cmd_list v1425
20:57:33 [INFO] Download complete
20:57:33 [INFO] Attempting to update plugin from null to ModuleVersion(build=1425, git=70038c9)
20:57:33 [INFO] Attempting to Jenkins download module cmd_send v1425
20:57:33 [INFO] Download complete
20:57:33 [INFO] Attempting to update plugin from null to ModuleVersion(build=1425, git=70038c9)
20:57:33 [INFO] Attempting to Jenkins download module cmd_server v1425
20:57:33 [INFO] Download complete
20:57:33 [INFO] Attempting to update plugin from null to ModuleVersion(build=1425, git=70038c9)
20:57:33 [INFO] Attempting to Jenkins download module reconnect_yaml v1425
20:57:33 [INFO] Download complete
20:57:33 [INFO] Loaded plugin reconnect_yaml version git:reconnect_yaml:1.14-SNAPSHOT:70038c9:1425 by SpigotMC
20:57:33 [INFO] Loaded plugin cmd_find version git:cmd_find:1.14-SNAPSHOT:70038c9:1425 by SpigotMC
20:57:33 [INFO] Loaded plugin cmd_server version git:cmd_server:1.14-SNAPSHOT:70038c9:1425 by SpigotMC
20:57:33 [INFO] Loaded plugin cmd_alert version git:cmd_alert:1.14-SNAPSHOT:70038c9:1425 by SpigotMC
20:57:33 [INFO] Loaded plugin cmd_send version git:cmd_send:1.14-SNAPSHOT:70038c9:1425 by SpigotMC
20:57:33 [INFO] Loaded plugin cmd_list version git:cmd_list:1.14-SNAPSHOT:70038c9:1425 by SpigotMC
20:57:33 [WARNING] Forced host server pvp is not defined
20:57:33 [INFO] Enabled plugin reconnect_yaml version git:reconnect_yaml:1.14-SNAPSHOT:70038c9:1425 by SpigotMC
20:57:33 [INFO] Enabled plugin cmd_find version git:cmd_find:1.14-SNAPSHOT:70038c9:1425 by SpigotMC
20:57:33 [INFO] Enabled plugin cmd_server version git:cmd_server:1.14-SNAPSHOT:70038c9:1425 by SpigotMC
20:57:33 [INFO] Enabled plugin cmd_alert version git:cmd_alert:1.14-SNAPSHOT:70038c9:1425 by SpigotMC
20:57:33 [INFO] Enabled plugin cmd_send version git:cmd_send:1.14-SNAPSHOT:70038c9:1425 by SpigotMC
20:57:33 [INFO] Enabled plugin cmd_list version git:cmd_list:1.14-SNAPSHOT:70038c9:1425 by SpigotMC
20:57:33 [INFO] Listening on /0.0.0.0:25577
20:57:41 [INFO] [/192.168.119.1:61423] <-> InitialHandler has connected
20:57:48 [WARNING] [/192.168.119.1:61423] <-> InitialHandler - NativeIoException: readAddress(..) failed: Connection reset by peer
20:57:48 [INFO] [/192.168.119.1:61432] <-> InitialHandler has connected
20:57:49 [INFO] [JonOfArabia] disconnected with: §cCould not connect to a default or fallback server, please try again later: io.netty.channel.AbstractChannel$AnnotatedConnectException
20:57:49 [INFO] [JonOfArabia] -> UpstreamBridge has disconnected
21:21:23 [INFO] Using mbed TLS based native cipher.
21:21:23 [INFO] Using zlib based native compressor.
21:21:23 [INFO] Enabled BungeeCord version git:BungeeCord-Bootstrap:1.14-SNAPSHOT:70038c9:1425
21:21:23 [INFO] Not on Windows, attempting to use enhanced EpollEventLoop
21:21:23 [INFO] Epoll is working, utilising it!
21:21:23 [INFO] Discovered module: ModuleSpec(name=cmd_alert, file=modules/cmd_alert.jar, provider=JenkinsModuleSource())
21:21:23 [INFO] Discovered module: ModuleSpec(name=cmd_find, file=modules/cmd_find.jar, provider=JenkinsModuleSource())
21:21:23 [INFO] Discovered module: ModuleSpec(name=cmd_list, file=modules/cmd_list.jar, provider=JenkinsModuleSource())
21:21:23 [INFO] Discovered module: ModuleSpec(name=cmd_send, file=modules/cmd_send.jar, provider=JenkinsModuleSource())
21:21:23 [INFO] Discovered module: ModuleSpec(name=cmd_server, file=modules/cmd_server.jar, provider=JenkinsModuleSource())
21:21:23 [INFO] Discovered module: ModuleSpec(name=reconnect_yaml, file=modules/reconnect_yaml.jar, provider=JenkinsModuleSource())
21:21:23 [INFO] Loaded plugin reconnect_yaml version git:reconnect_yaml:1.14-SNAPSHOT:70038c9:1425 by SpigotMC
21:21:23 [INFO] Loaded plugin cmd_find version git:cmd_find:1.14-SNAPSHOT:70038c9:1425 by SpigotMC
21:21:23 [INFO] Loaded plugin cmd_server version git:cmd_server:1.14-SNAPSHOT:70038c9:1425 by SpigotMC
21:21:23 [INFO] Loaded plugin cmd_alert version git:cmd_alert:1.14-SNAPSHOT:70038c9:1425 by SpigotMC
21:21:23 [INFO] Loaded plugin cmd_send version git:cmd_send:1.14-SNAPSHOT:70038c9:1425 by SpigotMC
21:21:23 [INFO] Loaded plugin cmd_list version git:cmd_list:1.14-SNAPSHOT:70038c9:1425 by SpigotMC
21:21:23 [WARNING] Forced host server pvp is not defined
21:21:23 [INFO] Enabled plugin reconnect_yaml version git:reconnect_yaml:1.14-SNAPSHOT:70038c9:1425 by SpigotMC
21:21:23 [INFO] Enabled plugin cmd_find version git:cmd_find:1.14-SNAPSHOT:70038c9:1425 by SpigotMC
21:21:23 [INFO] Enabled plugin cmd_server version git:cmd_server:1.14-SNAPSHOT:70038c9:1425 by SpigotMC
21:21:23 [INFO] Enabled plugin cmd_alert version git:cmd_alert:1.14-SNAPSHOT:70038c9:1425 by SpigotMC
21:21:23 [INFO] Enabled plugin cmd_send version git:cmd_send:1.14-SNAPSHOT:70038c9:1425 by SpigotMC
21:21:23 [INFO] Enabled plugin cmd_list version git:cmd_list:1.14-SNAPSHOT:70038c9:1425 by SpigotMC
21:21:24 [INFO] Listening on /0.0.0.0:25577
21:21:32 [INFO] [/192.168.119.1:63272] <-> InitialHandler has connected
21:21:33 [INFO] [/192.168.119.1:63276] <-> InitialHandler has connected
21:21:34 [INFO] [JonOfArabia] disconnected with: §cCould not connect to a default or fallback server, please try again later: io.netty.channel.AbstractChannel$AnnotatedConnectException
21:21:34 [INFO] [JonOfArabia] -> UpstreamBridge has disconnected

Minecraft Logs

[21:23:29] [Server thread/INFO]: Starting minecraft server version 1.14.4
[21:23:29] [Server thread/INFO]: Loading properties
[21:23:29] [Server thread/INFO]: This server is running CraftBukkit version git-Spigot-9de398a-9c887d4 (MC: 1.14.4) (Implementing API version 1.14.4-R0.1-SNAPSHOT)
[21:23:29] [Server thread/INFO]: Console input is disabled due to --noconsole command argument
[21:23:29] [Server thread/INFO]: Server Ping Player Sample Count: 12
[21:23:29] [Server thread/INFO]: Using 4 threads for Netty based IO
[21:23:29] [Server thread/INFO]: Debug logging is disabled
[21:23:29] [Server thread/INFO]: Default game type: SURVIVAL
[21:23:29] [Server thread/INFO]: Generating keypair
[21:23:30] [Server thread/INFO]: Starting Minecraft server on *:25565
[21:23:30] [Server thread/INFO]: Using epoll channel type
[21:23:30] [Server thread/WARN]: **** SERVER IS RUNNING IN OFFLINE/INSECURE MODE!
[21:23:30] [Server thread/WARN]: The server will make no attempt to authenticate usernames. Beware.
[21:23:30] [Server thread/WARN]: While this makes the game possible to play without internet access, it also opens up the ability for hackers to connect with any username they choose.
[21:23:30] [Server thread/WARN]: To change this, set "online-mode" to "true" in the server.properties file.
[21:23:30] [Server thread/INFO]: Preparing level "world"
[21:23:30] [Server thread/INFO]: Reloading ResourceManager: Default, bukkit
[21:23:32] [Server thread/INFO]: Loaded 6 recipes

<Omitting world settings, doesn't look relevant>

[21:24:02] [Server thread/INFO]: Time elapsed: 1163 ms
[21:24:02] [Server thread/INFO]: Server permissions file permissions.yml is empty, ignoring it
[21:24:02] [Server thread/INFO]: Done (32.038s)! For help, type "help"
[21:24:02] [Server thread/INFO]: Starting remote control listener
[21:24:02] [RCON Listener #1/INFO]: RCON running on 0.0.0.0:25575

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.