diff --git a/.github/faq-updater/index.js b/.github/faq-updater/index.js index 0925078..62fc50b 100644 --- a/.github/faq-updater/index.js +++ b/.github/faq-updater/index.js @@ -1,5 +1,6 @@ import { Client } from "discord.js"; import { readFile } from "node:fs/promises"; +import path from "node:path"; const client = new Client({ intents: [], @@ -107,10 +108,14 @@ function splitMessage(message) { } async function getNewMessages() { - const rawContent = await readFile("../../wiki/FAQ.md", "utf8"); - const [_frontmatter, rawQuestions] = rawContent.split("# FAQ", 2).map((section) => section.trim()); + const faqPath = "../../wiki/FAQ.md"; + const rawContent = await readFile(faqPath, "utf8"); + const [_frontmatter, rawQuestions] = rawContent + .split("# FAQ", 2) + .map((section) => section.trim()); + const baseUrl = "https://bluemap.bluecolored.de"; return rawQuestions - .replace(/{{site.baseurl}}/g, "https://bluemap.bluecolored.de") + .replace(/{{site.baseurl}}/g, baseUrl) .split(/^###? /m) .slice(1) .flatMap((question) => { @@ -118,14 +123,18 @@ async function getNewMessages() { const content = lines .join("\n") .trimEnd() - .replace(/\n{2,}/g, s => "
".repeat(s.length)) - .replace(/\s{2,}\n|\s*\\\n|\s*\n(?=\s*-)/g,"
") - .replace(/\n\s*/g," ") + .replace(/\n{2,}/g, (s) => "
".repeat(s.length)) + .replace(/\s{2,}\n|\s*\\\n|\s*\n(?=\s*-)/g, "
") + .replace(/\n\s*/g, " ") .replace(/
/g, "\n") .replace(/\[([^\]]+)]\(([^)]+)\)/g, (_match, name, link) => { if (name === link) return `<${link}>`; if (link.startsWith("https://discord.com/channels/")) return link; - if (link.startsWith("#")) return name; + if (link.startsWith("#")) return `[${name}](<${baseUrl}/wiki/FAQ.html${link}>)`; + if (link.startsWith(".")) + return `[${name}](<${baseUrl}/${path + .relative("../../", path.join(path.dirname(faqPath), link)) + .replace(/\.md/, ".html")}>)`; return `[${name}](<${link}>)`; }); const message = `## ${title}\n${content}`; diff --git a/3rdPartySupport.md b/3rdPartySupport.md index 6c627b5..b226522 100644 --- a/3rdPartySupport.md +++ b/3rdPartySupport.md @@ -46,4 +46,4 @@ Reasons for a removal of an addon include: - Malware, Spyware and other intentionally harmful software If you feel like an addon on this list should be removed, please report it -on [Github](https://github.com/BlueMap-Minecraft/BlueMapWiki/issues/new) or [Discord](https://discord.gg/zmkyJa3)! \ No newline at end of file +on [GitHub](https://github.com/BlueMap-Minecraft/BlueMapWiki/issues/new) or [Discord](https://discord.gg/zmkyJa3)! diff --git a/community/BluemapLazyServer.md b/community/BluemapLazyServer.md index a61fc4a..cc17d1c 100644 --- a/community/BluemapLazyServer.md +++ b/community/BluemapLazyServer.md @@ -41,7 +41,7 @@ this work for `SQL`-type storage and uncompressed map data as well, but it will extra work not covered by this guide. Since we're going to be using an external webserver there's no need to expose the BlueMap integrated -webserver to the world. To make the server local-only, in `webserver.conf`, add `ip: "127.0.0.1"` +webserver to the world. To make the server local-only, in [`webserver.conf`](../wiki/configs/Webserver.md), add `ip: "127.0.0.1"` just above the existing `port: ` setting. Make a note of what `` is in your config since you'll need it later. diff --git a/community/CaveRendering.md b/community/CaveRendering.md index 46839dc..d8a4278 100644 --- a/community/CaveRendering.md +++ b/community/CaveRendering.md @@ -13,10 +13,10 @@ nav_order: 3 ## By default -By default BlueMap defines a cave as a place where the sun light is zero. +By default, BlueMap defines a cave as a place where the sunlight is zero. To avoid removing important places which are just... dark, BlueMap also relies on the height information of blocks. -By default in an overworld, BlueMap will only consider such blocks as "cave" +By default, in an overworld, BlueMap will only consider such blocks as "cave" if they are below the y-level of 55 AND 5 blocks below the ocean-floor heightmap (highest block which blocks motion). diff --git a/community/Chat.md b/community/Chat.md index bd956ed..a1972d4 100644 --- a/community/Chat.md +++ b/community/Chat.md @@ -16,10 +16,10 @@ nav_order: 14 In the world of BlueMap where we have to support all these platforms and server configurations it is impossible to write guides and addons that cover everyone's needs. That's why this guide will just go through an example case of turning a regular old boring BlueMap installation on a Paper server running on a Debian VPS to a fancy one with -a web chat. You will most likely need to adapt this guide to your specific situation or find a more tech savvy friend +a web chat. You will most likely need to adapt this guide to your specific situation or find a more tech-savvy friend to help you. You can also hire the writer of this guide ([Antti.Codes](https://antti.codes/)) for consultation for 90€/h. -Though as he is way too kind hearted he will help as much as possible on the `#3rd-party-support` channel in the official -BlueMap Discord for free. +Though as he is way too kind-hearted he will help as much as possible on the [`#3rd-party-support`](https://discord.com/channels/665868367416131594/863844716047106068) channel +in [the official BlueMap Discord](https://bluecolo.red/map-discord) for free. ## Requirements @@ -30,7 +30,7 @@ Requirement keywords as per [RFC 2119](https://datatracker.ietf.org/doc/html/rfc - You **MUST NOT** run a server network with Bungeecord, Velocity or similar. The addon only supports one global chat. - You **SHOULD** have a public IP address. If you don't you will need to figure out exposing ports to the internet yourself. - You **SHOULD** know the basics of navigating around the command line, otherwise this will be painful. -- You **SHOULD** have a domain. Have fun figuring out self signed certificates without a domain. +- You **SHOULD** have a domain. Have fun figuring out self-signed certificates without a domain. - You **SHOULD NOT** run any chat plugins. The addon does not support them and the behaviour is undefined. - You **MAY** grab a sysadmin friend to help you. @@ -39,11 +39,11 @@ The guide assumes all the recommendations are followed. ## The starting situation We've got a VPS running Debian. The VPS has a public IP. There is a Paper Minecraft server running on port `25565` and -BlueMap installed as a plugin running on port `8100`. The BlueMap is accesible at `http://12.34.56.789:8100/`. +BlueMap installed as a plugin running on port `8100`. The BlueMap is accessible at `http://12.34.56.789:8100/`. In my case the Minecraft server is run with a Docker container as seen below. -![Contents of compose.yml and files in the data directory]({{site.baseurl}}/assets/chat/starting-situation.png) -![BlueMap already working at http://12.34.56.789:8100/]({{site.baseurl}}/assets/chat/bluemap-already-working.png) +![Contents of compose.yml and files in the data directory](../assets/chat/starting-situation.png) +![BlueMap already working at http://12.34.56.789:8100/](../assets/chat/bluemap-already-working.png) ## Proxying with nginx @@ -52,7 +52,7 @@ This is needed as we want HTTPS, NGINX auth request module and combine many serv Install NGINX using `sudo apt install -y nginx`. You should now be able to observe NGINX working at `http://12.34.56.789/` -![Welcome to nginx!]({{site.baseurl}}/assets/chat/nginx-installed.png) +![Welcome to nginx!](../assets/chat/nginx-installed.png) Next we should navigate to `/etc/nginx` to start configuring our fresh installation We shall start by removing the default configuration files with `sudo rm -rf ./sites-available/default ./sites-enabled/default /var/www/html` @@ -69,24 +69,25 @@ server { } ``` -Next we have to enable the create configuration file with `sudo ln -s ../sites-available/bluemap.conf ./sites-enabled/bluemap.conf`. +Next we have to enable the created configuration file with `sudo ln -s ../sites-available/bluemap.conf ./sites-enabled/bluemap.conf`. Then after reloading NGINX with `sudo nginx -s reload` we should see our BlueMap at the location which had NGINX welcome page earlier. -![BlueMap running through nginx proxy]({{site.baseurl}}/assets/chat/http-proxied-bluemap.png) +![BlueMap running through nginx proxy](../assets/chat/http-proxied-bluemap.png) As we no longer use BlueMap's own port for accessing it. We should prevent it from being exposed. In our `compose.yml` file we can do `"127.0.0.1:8100:8100/tcp"` instead of `"8100:8100/tcp"`. -If you don't use Docker, instead of changing Docker's port bindings, change the IP address BlueMap uses by editing `plugins/BlueMap/webserver.conf` and adding `ip: "127.0.0.1"`. +If you don't use Docker, instead of changing Docker's port bindings, +change the IP address BlueMap uses by editing [`webserver.conf`](../wiki/configs/Webserver.md) and adding `ip: "127.0.0.1"`. ## Domain and HTTPS Proxying is cool and all but it's pretty much a no-op right now. So open up your DNS management interface, in my case Cloudflare, and add an A record for the IP address of the server. -![DNS record at Cloudflare]({{site.baseurl}}/assets/chat/dns-cloudflare.png) +![DNS record at Cloudflare](../assets/chat/dns-cloudflare.png) Change the server name in NGINX `sites-available/bluemap.conf` file to match your chosen domain like this `server_name your.domain;` -The BlueMap should be accesible at the domain, just without HTTPS still. +The BlueMap should be accessible at the domain, just without HTTPS still. To get the most out of our domain we want to use free SSL certificates to secure the connection. And to do that we need a tool to acquire certificates, like `acme.sh`, which is really cool. To install `acme.sh` we want to change to root user @@ -97,7 +98,7 @@ Run `acme.sh --issue --nginx -d your.domain` to acquire the certificates for you Though these certificates are not ready for use yet. First we want to prepare a couple of files and permissions so everything goes smoothly with NGINX. -Run the following commmands: +Run the following commands: ```sh addgroup certs @@ -111,7 +112,7 @@ chmod 770 /etc/nginx/certs chmod 660 /etc/nginx/certs/* ``` -These will setup a `certs` groups and a `certs` folder which only the users in the group (root and NGINX) are allowed to access. +These will set up a `certs` groups and a `certs` folder which only the users in the group (root and NGINX) are allowed to access. Now we can install the certificates we acquired earlier: ```sh @@ -121,7 +122,7 @@ acme.sh --install-cert -d your.domain \ --reloadcmd "systemctl reload nginx" ``` -We can now logout of the root user and get back to our normal user (unless you just do everything on root anyway...). +We can now log out of the root user and get back to our normal user (unless you just do everything on root anyway...). Let's revise the NGINX `sites-available/bluemap.conf` to use them. ```nginx @@ -148,7 +149,7 @@ server { After reloading NGINX with `sudo nginx -s reload` we should have a working BlueMap website with HTTPS. Hurray! -![BlueMap with HTTPS]({{site.baseurl}}/assets/chat/bluemap-with-https.png) +![BlueMap with HTTPS](../assets/chat/bluemap-with-https.png) ## Authentication @@ -158,7 +159,7 @@ Copy them to the server plugins folder. You can do this with scp for example `scp ~/Downloads/{Authentication,BlueMap-Auth}*.jar 12.34.56.789:~/minecraft-server/data/plugins`. Do notice the above links are for specific releases used at the time of writing (v0.4.0 and v0.2.1), there may be newer versions available that you may want to use. If you do use newer releases, -keep in mind that some steps might differ and you should refer to the official up-to-date documentation. +keep in mind that some steps might differ, and you should refer to the official up-to-date documentation. Now let's restart the server to generate configuration files. Edit `plugins/Authentication/config.yml` to have `optional_authentication: true`. @@ -257,13 +258,13 @@ server { } ``` -Your BlueMap should now have a log in button in the menu. +Your BlueMap should now have a login button in the menu. -![A wild Log in button appears]({{site.baseurl}}/assets/chat/login-button.png) +![A wild Log in button appears](../assets/chat/login-button.png) -![The authentication screen]({{site.baseurl}}/assets/chat/authentication-screen.png) +![The authentication screen](../assets/chat/authentication-screen.png) -![BlueMap menu has your Minecraft head now]({{site.baseurl}}/assets/chat/logged-in-bluemap.png) +![BlueMap menu has your Minecraft head now](../assets/chat/logged-in-bluemap.png) ## Chat @@ -286,9 +287,9 @@ Next, in the NGINX config, add the following above the "Other addons go here" te } ``` -![The chat in the webapp]({{site.baseurl}}/assets/chat/chat-in-web.png) +![The chat in the webapp](../assets/chat/chat-in-web.png) -![The chat in Minecraft]({{site.baseurl}}/assets/chat/chat-in-mc.png) +![The chat in Minecraft](../assets/chat/chat-in-mc.png) ## 🎉 You have successfully installed a fantastic web chat for BlueMap!!! {: .no_toc } diff --git a/community/CloudflareR2.md b/community/CloudflareR2.md index 7a50567..9d9f419 100644 --- a/community/CloudflareR2.md +++ b/community/CloudflareR2.md @@ -34,13 +34,13 @@ Cloudflare R2 is a service that allows you to host files on Cloudflare's network Go to Websites, click on “Add a site” then write your domain name. 1. “Select your plan” - - You can choose Free plan at the bottom. + - You can choose Free plan at the bottom. 2. “Review DNS records” - - You can skip it because we don't need to set a DNS for this method. + - You can skip it because we don't need to set a DNS for this method. 3. “Change your nameservers” - - Go to the site where you bought your domain and change nameservers to Cloudflare's nameservers. + - Go to the site where you bought your domain and change nameservers to Cloudflare's nameservers. ## Creating a bucket & uploading files with rclone @@ -72,16 +72,16 @@ Go to Websites, click on “Add a site” then write your domain name. 2. Navigate in the terminal to the directory where your BlueMap *web* files are located. You should be in the directory that contains the file `index.html`. 3. Run the following command to upload the files to your R2 bucket: - ```bash - rclone sync . R2:bluemap/ --transfers=60 --checkers=120 -P - ``` - - `rclone` — the program you are calling. - - `sync` — the command to synchronize files — files which are not present in the destination will be copied there and files which are not present in the source will be deleted in the destination. - - `.` — the current directory. - - `R2:bluemap/` — the remote you configured in the rclone configuration plus the name of your bucket. - - `--transfers=60` — the number of parallel transfers — BlueMap consists of numerous small files, so a high number of transfers is beneficial. - - `--checkers=120` — the number of parallel checks — BlueMap consists of numerous small files, so a high number of checks is beneficial. Checkers compare your local files to those remote. - - `-P` — shows you the progress. + ```bash + rclone sync . R2:bluemap/ --transfers=60 --checkers=120 -P + ``` + - `rclone` — the program you are calling. + - `sync` — the command to synchronize files — files which are not present in the destination will be copied there and files which are not present in the source will be deleted in the destination. + - `.` — the current directory. + - `R2:bluemap/` — the remote you configured in the rclone configuration plus the name of your bucket. + - `--transfers=60` — the number of parallel transfers — BlueMap consists of numerous small files, so a high number of transfers is beneficial. + - `--checkers=120` — the number of parallel checks — BlueMap consists of numerous small files, so a high number of checks is beneficial. Checkers compare your local files to those remote. + - `-P` — shows you the progress. 4. While the files are uploading, you can continue with the next step. @@ -96,7 +96,7 @@ Go to Websites, click on “Add a site” then write your domain name.       3. In the first field select `URI Path` and in the Operator field select `ends with`. In the value field, enter `/`.    2. Further down under Path, select `Rewrite to...`.       1. In the first field select `Dynamic` and in the second field enter `concat(http.request.uri.path, "index.html")`. -   3. It should look similar to this: ![Screenshot of the index rule in Cloudflare]({{site.baseurl}}/assets/r2/index_rule.png) +   3. It should look similar to this: ![Screenshot of the index rule in Cloudflare](../assets/r2/index_rule.png)    4. Save the rule. 3. Create another Transform rule here and give it a name, e.g. `BlueMap: gzip`. This rule allows Cloudflare to serve the compressed files when the textures or the .prbm files are requested. @@ -110,7 +110,7 @@ Go to Websites, click on “Add a site” then write your domain name.       7. In the first field select `URI Path` and in the Operator field select `ends with`. In the value field, enter `.prbm`.    2. Further down under Path, select `Rewrite to...`.       1. In the first field select `Dynamic` and in the second field enter `concat(http.request.uri.path, ".gz")`. -   3. It should look similar to this: ![Screenshot of the gzip rule in Cloudflare]({{site.baseurl}}/assets/r2/gzip_rule.png) +   3. It should look similar to this: ![Screenshot of the gzip rule in Cloudflare](../assets/r2/gzip_rule.png)    4. Save the rule. 4. Now click on the `Modify Response Header` tab and create a new rule. This rule marks the compressed files as compressed, so your browser knows how to handle them when it requests them. @@ -123,7 +123,7 @@ Go to Websites, click on “Add a site” then write your domain name.       5.  In the first field, select `URI Path`. In the Operator field, select `ends with`. In the value field, enter `.prbm`.    3. Further down under `Modify response header`.       1. In the first field, select `Set static`. In the Header name field, enter `Content-Encoding`. In the Header value field, enter `gzip`. -   4. It should look similar to this: ![Screenshot of the Content-Encoding rule in Cloudflare]({{site.baseurl}}/assets/r2/encoding_rule.png) +   4. It should look similar to this: ![Screenshot of the Content-Encoding rule in Cloudflare](../assets/r2/encoding_rule.png)    5. Save the rule. ## Making optional configurations @@ -139,7 +139,7 @@ Every time a file is requested from your bucket, that counts as an operation. Ev       1. Now select `Ignore cache-control header and use this TTL` and set `Input time-to-live (TTL)` to a value you are comfortable with. I set it to 1 year, this will cache the files on Cloudflare's edge servers for up to 1 year.    5. Further down under `Browser TTL` click on `Add Setting`.       1. Now select `Override origin and use this TTL` and set `Input time-to-live (TTL)` to a value you are comfortable with. I set it to 1 year, this will cache the files in the browser for up to 1 year. -   6. It should look similar to this: ![Screenshot of the Cache rule in Cloudflare]({{site.baseurl}}/assets/r2/cache_rule.png) +   6. It should look similar to this: ![Screenshot of the Cache rule in Cloudflare](../assets/r2/cache_rule.png)    7. Save the rule. -2. If you have a paid plan, you can potentially use “Custom error responses” to change 404 errors to 204 errors as suggested by the [External Web server documentation]({{site.baseurl}}/wiki/webserver/ExternalWebserversFile). This is however, not necessary for BlueMap to work. Since this documentation is about Cloudflare R2 and the free domain plan, I will not go into detail about this. +2. If you have a paid plan, you can potentially use “Custom error responses” to change 404 errors to 204 errors as suggested by the [External Web server documentation](../wiki/webserver/ExternalWebserversFile.md). This is however, not necessary for BlueMap to work. Since this documentation is about Cloudflare R2 and the free domain plan, I will not go into detail about this. diff --git a/community/CoolifyAndTraefikProxy.md b/community/CoolifyAndTraefikProxy.md index ffe3d4a..b87b569 100644 --- a/community/CoolifyAndTraefikProxy.md +++ b/community/CoolifyAndTraefikProxy.md @@ -20,7 +20,7 @@ This is useful if you want to integrate your map in your website and you're usin > **Warning:**
> Telling the internal-webserver to connect to one specific address like e.g. `127.0.0.1`, ->
from `webserver.conf` by adding `ip: "127.0.0.1"` WILL GIVE A **BAD GATEWAY** ERROR. +>
from [`webserver.conf`](../wiki/configs/Webserver.md) by adding `ip: "127.0.0.1"` WILL GIVE A **BAD GATEWAY** ERROR. {: .info } ## BlueMap on a subdomain diff --git a/community/Customisation.md b/community/Customisation.md index 80ce259..390a3ca 100644 --- a/community/Customisation.md +++ b/community/Customisation.md @@ -31,7 +31,7 @@ Custom styles are not limited to any specific platform; they work on all platfor To get started with BlueMap CSS, you should create a `.css` file in your webroot (usually `/bluemap/web/`). Then you need to register that stylesheet with BlueMap, so it'll actually load it. -You do this in `webapp.conf`, by putting the file name in the `styles: [ ]` list. +You do this in [`webapp.conf`](../wiki/configs/Webapp.md), by putting the file name in the `styles: [ ]` list. After adding it to the list, you'll want to reload BlueMap, so BlueMap applies the changes you've made to the configs. You can do so with the `/bluemap reload light` command. @@ -52,7 +52,7 @@ styles: [ This should make all BlueMap's buttons fully red. From here on, you can customise any BlueMap class you want. -You can also find some pre-made styles for BlueMap in the [3rd Party Addons section of this wiki]({{site.baseurl}}/3rdPartySupport.html?platform=script), +You can also find some pre-made styles for BlueMap in the [3rd Party Addons section of this wiki](../3rdPartySupport.md?platform=script), under the "style" platform filter. Feel free to take inspiration from these! Styling is tricky. ## Custom Scripts (Behaviour) @@ -66,7 +66,7 @@ Custom scripts are not limited to any specific platform; they work on all platfo To get started with BlueMap JavaScript, you should create a `.js` file in your webroot (usually `/bluemap/web/`). Then you need to register that script with BlueMap, so it'll actually load it. -You do this in `webapp.conf`, by putting the file name in the `scripts: [ ]` list. +You do this in [`webapp.conf`](../wiki/configs/Webapp.md), by putting the file name in the `scripts: [ ]` list. After adding it to the list, you'll want to reload BlueMap, so BlueMap applies the changes you've made to the configs. You can do so with the `/bluemap reload light` command. @@ -85,13 +85,13 @@ scripts: [ This should log a message to the browser console. From here on, you can program any additional behaviour you want! -You can find some pre-made scripts in the [3rd Party Addons section of this wiki]({{site.baseurl}}/3rdPartySupport.html?platform=script), +You can find some pre-made scripts in the [3rd Party Addons section of this wiki](../3rdPartySupport.md?platform=script), under the "script" platform filter. Feel free to take inspiration from these! Scripting is hard. ## Embed -In some places, when you share a link to your map, it'll embed a bit of extra info. In Discord it looks like this: +In some places, when you share a link to your map, it'll embed a bit of extra info. In Discord, it looks like this: -![Screenshot of the default BlueMap embed in Discord]({{site.baseurl}}/assets/BlueMapDiscordEmbed.png) +![Screenshot of the default BlueMap embed in Discord](../assets/BlueMapDiscordEmbed.png) You can change how this looks by editing the `bluemap/web/index.html` file. The options you can safely change are the `description`, `theme-color`, `og:site_name`, `og:title`, `og:description`, and `og:image`. @@ -118,7 +118,7 @@ In `/bluemap/web/lang/settings.conf` is the setting `default`, which you can cha ## Info menu BlueMap has an *Info* menu in the sidebar, which is also completely customisable. -You can edit it in the each language file, which are at `/bluemap/web/lang/`. +You can edit it in each language file, which are at `/bluemap/web/lang/`. The option `info: { content:` is the one you need to edit for this. It accepts any normal HTML. @@ -143,7 +143,7 @@ Putting BlueMap onto a (sub)domain is best done in multiple steps: 3. If you have more control over your server (for example, if you host at home or rent a VPS), you can install an external webserver and make it run on your domain. We generally recommend nginx. Here is a nice Getting Started guide for it: [nginx.org/en/docs/beginners_guide](https://nginx.org/en/docs/beginners_guide.html) 4. Once you have your external webserver set up, you need to reverse-proxy BlueMap with it. - We have a some example setups for reverse proxies with a few external webservers here: [Reverse-Proxy]({{site.baseurl}}/wiki/webserver/ReverseProxy.html) + We have a some example setups for reverse proxies with a few external webservers here: [Reverse-Proxy](../wiki/webserver/ReverseProxy.md) 5. Once you have that, you can even set up SSL/TLS (HTTPS) ## Advanced Webapp Customisation diff --git a/community/FixLighting.md b/community/FixLighting.md index c1e34aa..6bc8e97 100644 --- a/community/FixLighting.md +++ b/community/FixLighting.md @@ -19,7 +19,7 @@ We recommend using Chunky since it is supported on most platforms that BlueMap r ## Chunky Instructions First make sure you have Chunky installed. You can download it at [modrinth.com/plugin/chunky](https://modrinth.com/plugin/chunky) -Now to fix lighting issues in the world, we will want to force re-loading of all of the chunks in the world. This can be done using the steps outlined below: +Now to fix lighting issues in the world, we will want to force re-loading of all the chunks in the world. This can be done using the steps outlined below: 1. Open the config file for Chunky: `Chunky/config.yml` 2. Set the option `force-load-existing-chunks` to `true`, and save the file 3. Restart the server, or run `chunky reload` to reload the configuration file on the server diff --git a/community/LogIn.md b/community/LogIn.md index 479b506..09745de 100644 --- a/community/LogIn.md +++ b/community/LogIn.md @@ -32,7 +32,7 @@ Before you even begin, your map should already be running behind an external web or a proxy for HTTP**S** so that credentials aren't sent plaintext over the internet. You should also have basic understanding of hosting web applications (webservers, dns, ssl/tls). -## Basic auth (easy, a bit inconvient and ugly) +## Basic auth (easy, a bit inconvenient and ugly) Basic auth is the most... basic... form of authentication. It simply asks for a username and password which are configured in a file. @@ -40,8 +40,8 @@ It is often handled by an external webserver such as Nginx or Apache. You can create the config file with the `htpasswd` utility by Apache. On Debian based distros it is in the `apache2-utils` package, or the `httpd-tools` package on RedHat based distros (RHEL/CentOS/Oracle Linux). -To create a new file and the first user use `htpasswd -c /path/to/file/.htpasswd user`. -To create a new user use use `htpasswd /path/to/file/.htpasswd another_user`. +To create a new file and the first user, use `htpasswd -c /path/to/file/.htpasswd user`. +To create a new user, use `htpasswd /path/to/file/.htpasswd another_user`. ### [Nginx](https://docs.nginx.com/nginx/admin-guide/security-controls/configuring-http-basic-authentication/) diff --git a/community/OCIConfiguration.md b/community/OCIConfiguration.md index 2fbd3c2..c2486e8 100644 --- a/community/OCIConfiguration.md +++ b/community/OCIConfiguration.md @@ -10,7 +10,7 @@ nav_order: 11 > **Info about this guide:** > In this guide, I'll only cover the ports management, both on OCI console and on the server itself. -> Focus will be held for BlueMap access, not your minecraft server or the way to setup it. +> Focus will be held for BlueMap access, not your minecraft server or the way to set that up. {: .info } 1. TOC @@ -21,19 +21,19 @@ nav_order: 11 Go to your console ([Oracle Cloud Login page](https://cloud.oracle.com/)), next in the menu, go to "Networking" and then select "Virtual Cloud Networks" -![Screenshot of the OCI web configuration menu]({{site.baseurl}}/assets/ociconf/OCI_01.png) +![Screenshot of the OCI web configuration menu](../assets/ociconf/OCI_01.png) On the new page, you should see your virtual network (in the form of "vcn-....", by default), select it. After that, select your subnet and then, the "Default Security List" (only one of each). You should get a page similar to this screenshot: -![Screenshot of the default OCI network rules]({{site.baseurl}}/assets/ociconf/OCI_02.png) +![Screenshot of the default OCI network rules](../assets/ociconf/OCI_02.png) Select "Add Ingress Rules" The first rule we add is for accessing BlueMap: -![Screenshot of the rule configuration for port opening of BlueMap]({{site.baseurl}}/assets/ociconf/OCI_03.png) +![Screenshot of the rule configuration for port opening of BlueMap](../assets/ociconf/OCI_03.png) So, as the source, we set it to ANY, so: `0.0.0.0/0` For the port, if you left the default one: `8100` @@ -41,13 +41,13 @@ The protocol is TCP (standard for HTTP services) Then, we also need to allow the access to our Minecraft server, if not done yet (depends on which version you installed and/or mods to allow either clients to connect to your Java server) -![Screenshot of the rule configuration for port opening of Minecraft Server]({{site.baseurl}}/assets/ociconf/OCI_04.png) +![Screenshot of the rule configuration for port opening of Minecraft Server](../assets/ociconf/OCI_04.png) For all those settings, adapt the destination ports to your needs. After that, you should have some rules like those ones: -![Screenshot of the OCI network rules summary]({{site.baseurl}}/assets/ociconf/OCI_05.png) +![Screenshot of the OCI network rules summary](../assets/ociconf/OCI_05.png) Now, a quick explanations here on what we did above: @@ -71,7 +71,7 @@ But, here is the summary on what you have to do for your Oracle Linux setup: {: .info } First, check that `firewall-cmd` command is available on your system. -You can check it's presence with this command: +You can check its presence with this command: ``` sudo firewall-cmd --version ``` @@ -158,7 +158,7 @@ COMMIT > By not following this, the firewall could apply, by default, the "deny" rule (sometime this could work, but just not everytime). {: .info .important } -Now, save the file and after that, you can either chose to reboot the server or run the following command: +Now, save the file and after that, you can either choose to reboot the server or run the following command: **If you are NOT using the root privileges:** ``` @@ -174,4 +174,4 @@ iptables-restore < /etc/iptables/rules.v4 If you did arrive there, you should be able to access your web map with the address: `http://Your_Server_Public_IP:Your_BlueMap_Web_Port` (port, by default is `8100`). -If you want to use a custom DNS and/or HTTPS, you can find some information in the Webserver Wiki ([Reverse proxy BlueMap with NGINX](https://bluemap.bluecolored.de/wiki/webserver/NginxProxy.html)) +If you want to use a custom DNS and/or HTTPS, you can find some information in the Webserver Wiki ([Reverse proxy BlueMap](../wiki/webserver/ReverseProxy.md)) diff --git a/community/PterodactylNginxProxy.md b/community/PterodactylNginxProxy.md index 9d1501a..1b11472 100644 --- a/community/PterodactylNginxProxy.md +++ b/community/PterodactylNginxProxy.md @@ -20,7 +20,7 @@ Extended guide for setting up a reverse proxy for BlueMap with Pterodactyl and N - BlueMaps integrated webserver is running on port `8100`. *(Again, just replace `8100` with the actual port below)* > **Info:**
-> We advise you to read the [Reverse Proxy BlueMap with NGINX](https://bluemap.bluecolored.de/wiki/webserver/NginxProxy.html) guide first. +> We advise you to read the [Reverse Proxy BlueMap with NGINX](../wiki/webserver/NginxProxy.md) guide first. > And also the [Pterodactyl Minecraft community guide](https://pterodactyl.io/community/games/minecraft.html) it contains useful info about the allocations. {: .info } @@ -32,14 +32,14 @@ This is done by creating a new allocation in the Pterodactyl panel. 2. Create a new allocation on the desired node for the server you want to create the proxy for. > Set the `IP Address` to `172.18.0.1` along with your desired port 3. Add the newly created allocation to the server you want to create the proxy for. -> If you changed the port make sure to edit it in the `webserver.conf` file as well. +> If you changed the port make sure to edit it in the [`webserver.conf`](../wiki/configs/Webserver.md) file as well. ## Usage in NGINX config blocks You need to use the Pterodactyl pass-through IP (`172.18.0.1`) in the config blocks for the reverse proxy to work. You can usually locate the config file to be edited in `/etc/nginx/sites-available/`. ### BlueMap on a subdirectory of your website -Same as in [Reverse Proxy BlueMap with NGINX](https://bluemap.bluecolored.de/wiki/webserver/NginxProxy.html) except you need to use the Pterodactyl pass-through IP (`172.18.0.1`). +Same as in [Reverse Proxy BlueMap with NGINX](../wiki/webserver/NginxProxy.md) except you need to use the Pterodactyl pass-through IP (`172.18.0.1`). If you have a normal website hosted with NGINX and want your map on `/map` (e.g `https://mydomain.com/map`) then you can just add this to your NGINX configuration: ```nginx @@ -54,7 +54,7 @@ server { ``` ### BlueMap on a subdomain of your website -Same as in [Reverse Proxy BlueMap with NGINX](https://bluemap.bluecolored.de/wiki/webserver/NginxProxy.html) except you need to use the Pterodactyl pass-through IP (`172.18.0.1`). +Same as in [Reverse Proxy BlueMap](../wiki/webserver/ReverseProxy.md) except you need to use the Pterodactyl pass-through IP (`172.18.0.1`). If you want BlueMap on a subdomain e.g. `https://map.mydomain.com/` then you'd add something like this to your NGINX config: ```nginx diff --git a/community/TraefikProxy.md b/community/TraefikProxy.md index 802b49a..2fcb2fa 100644 --- a/community/TraefikProxy.md +++ b/community/TraefikProxy.md @@ -22,7 +22,7 @@ This is useful if you want to integrate your map in your website, or want to add > **Info:**
> If you want, you can tell the internal-webserver to only connect to one specific address like e.g. `127.0.0.1`, > so it is no longer accessible from the outside (by default it just connects to all available interfaces): -> To do this, just open the `webserver.conf` and add the `ip: "127.0.0.1"` setting somewhere. +> To do this, just open the [`webserver.conf`](../wiki/configs/Webserver.md) and add the `ip: "127.0.0.1"` setting somewhere. {: .info } ## BlueMap on a subdomain @@ -45,7 +45,7 @@ http: ``` ## BlueMap on a subdirectory of your website -If you want BlueMap on a subdirectory e.g `https://www.example.com/bluemap` then like this: +If you want BlueMap on a subdirectory e.g. `https://www.example.com/bluemap` then like this: ```yaml http: routers: diff --git a/community/Translating.md b/community/Translating.md index 1fe31ea..7e6a5e7 100644 --- a/community/Translating.md +++ b/community/Translating.md @@ -9,12 +9,12 @@ nav_order: 15 *Everyone can help to translate BlueMap to their language.* -This guide is for doing everything from the GitHub web interface but you can do them locally via git if you know how to. +This guide is for doing everything from the GitHub web interface, but you can do them locally via git if you know how to. -Here are the steps to do so: +Here are the steps: 1. You need to create a GitHub account at -2. Then go to and press the fork button on the top right corner +2. Then go to and press the fork button in the top-right corner 3. After it has finished forking go inside the folder `BlueMapCommon/webapp/public/lang` and create a new file from the top right of the file selector, name this file with code of your language (`fi.conf`, `ru.conf`, etc) and copy the contents of the `en.conf` to it. 4. Translate the english strings inside `""`'s to your language 5. Scroll down and press "commit changes" diff --git a/community/WorldBorder.md b/community/WorldBorder.md index 8b72073..ee00daa 100644 --- a/community/WorldBorder.md +++ b/community/WorldBorder.md @@ -46,7 +46,7 @@ marker-sets: { } } ``` -For more information on how to create markers, please refer to the [official Markers Guide]({{site.baseurl}}/wiki/customization/Markers.html). +For more information on how to create markers, please refer to the [official Markers Guide](../wiki/customization/Markers.md). ## Manual with commands You can manually also create markers with the popular 3rd-party addon, [BlueMap Marker Manager](https://modrinth.com/plugin/bmarker). (Available as a Paper plugin and as a Fabric mod.) @@ -104,5 +104,5 @@ or like this: For more information on how to use Chunky and ChunkyBorder, please visit their respective wiki's: [Chunky Wiki](https://github.com/pop4959/Chunky/wiki) and [ChunkyBorder Wiki](https://github.com/pop4959/ChunkyBorder/wiki) You can choose the colour for your border in the config file. -If this is an Earth map that you got from from [earth.motfe.net](https://earth.motfe.net/), then you can find the exact commands and coordinates to add your border on this website: [docs.apocmc.us/minecraft-earth-map/map-borders](https://docs.apocmc.us/minecraft-earth-map/map-borders#id-1-500-scale-map) +If this is an Earth map that you got from [earth.motfe.net](https://earth.motfe.net/), then you can find the exact commands and coordinates to add your border on this website: [docs.apocmc.us/minecraft-earth-map/map-borders](https://docs.apocmc.us/minecraft-earth-map/map-borders#id-1-500-scale-map) Please note that you do _not_ have to run `/chunky start`, though, like this website suggests! diff --git a/community/python-screenshots.md b/community/python-screenshots.md index 8cc4cbc..0326155 100644 --- a/community/python-screenshots.md +++ b/community/python-screenshots.md @@ -9,14 +9,14 @@ nav_order: 12 ## What and why ? I needed to export images of worlds from python, for a big project. First I tried to make my own renderer, and when you don't have any experience with OpenGL, or any other such frameworks, it is nearly impossible. So I looked at other projects that already renders `nbt` files or maps, such as [deepslate](https://github.com/misode/deepslate) or [prismarine-viewer](https://github.com/PrismarineJS/prismarine-viewer), but, unfortunately, I'm a python guy, so I'm lazy and want easy stuff. -Then I remembered that when I had a server on [minestrator](https://minestrator.com), I had the LiveMap option activated, and that it was awesome. So I looked at the program used for this, and I found BlueMap. But now, how would I automate screenshoting a world ? +Then I remembered that when I had a server on [minestrator](https://minestrator.com), I had the LiveMap option activated, and that it was awesome. So I looked at the program used for this, and I found BlueMap. But now, how would I automate screenshotting a world ? ## Tutorial ### Setup -- Follow the [installation instructions for **BlueMap-CLI**](https://bluemap.bluecolored.de/wiki/getting-started/Installation.html#using-bluemap-on-the-cli--standalone). It even worked on my Mac, how amazing is that. +- Follow the [installation instructions for **BlueMap-CLI**](../wiki/getting-started/Installation.md#using-bluemap-on-the-cli--standalone). It even worked on my Mac, how amazing is that. - Install Python. For this example, I am using **Python 3.11**, but it should work on other versions as long as the dependencies are supported. - `aiofiles`, used to **write and read files asynchronously**. Install it with: `pip install aiofiles`. - - `playwright`, used to **open headless browsers that executes JS**, and interract with them. + - `playwright`, used to **open headless browsers that executes JS**, and interact with them. Install it with: `pip install playwright`. Then execute: `playwright install chromium`. @@ -85,7 +85,7 @@ Now, back inside the `main` function, I will set the callback. *I am using lambd ```py page.on('download', lambda download: on_download(output_path, download)) ``` -And now, I have to interract with the page to **click on the "Take screenshot" button** in the menu. +And now, I have to interact with the page to **click on the "Take screenshot" button** in the menu. For this, I am using the following lines, that opens the menu, and then takes the screenshot using the button. ```py await page.get_by_title('Menu').click() @@ -102,7 +102,7 @@ Then I am waiting `.5` seconds to make sure the downloading is done. It takes ap await asyncio.sleep(.5) await page.close() ``` -*If you want to export many images, you probably don't want to close the page and open the `playwright` object after each screenshots, so I suggest you to make a loop before the page is created, and to close all after you are done with all the screenshots.* +*If you want to export many images, you probably don't want to close the page and open the `playwright` object after each screenshot, so I suggest you to make a loop before the page is created, and to close all after you are done with all the screenshots.* And here is my screenshot, **generated all automatically**: ![](https://github.com/BlueMap-Minecraft/BlueMapWiki/assets/85891169/c62739a7-1b19-494b-a457-491a199208af) diff --git a/index.md b/index.md index dd82a4b..ff63cb3 100644 --- a/index.md +++ b/index.md @@ -4,7 +4,7 @@ title: Home nav_order: 0 --- -[![title-banner](https://bluecolored.de/paste/BluemapBanner.png)](https://bluemap.bluecolored.de/) +[![title-banner](./assets/BluemapBanner.png)](https://bluemap.bluecolored.de/) create **3D**-maps of your Minecraft worlds and display them in your browser **>> [DEMO MAP](https://bluecolored.de/bluemap) <<** @@ -33,8 +33,8 @@ So as long as your CPU is not fully utilized, your server should not be slowed d ## Using BlueMap You can download BlueMap from [here](https://github.com/BlueMap-Minecraft/BlueMap/releases). -Read the [installation instructions](https://bluemap.bluecolored.de/wiki/getting-started/Installation.html) to get started! -And [here](https://bluemap.bluecolored.de/3rdPartySupport.html) is a list of addons and tools that work with bluemap. +Read the [installation instructions](./wiki/getting-started/Installation.md) to get started! +And [here](./3rdPartySupport.md) is a list of addons and tools that work with bluemap. Here you can see how many servers are using BlueMap: @@ -46,6 +46,6 @@ If you have questions or need help, you can always join the [Discord-Server for --- -[![JetBrainsLogo](https://bluemap.bluecolored.de/assets/jetbrains.svg)](https://www.jetbrains.com/?from=BlueMap)
+[![JetBrainsLogo](./assets/jetbrains.svg)](https://www.jetbrains.com/?from=BlueMap)

Special thanks to [JetBrains](https://www.jetbrains.com/?from=BlueMap) for giving out an OpenSource-Licence for BlueMap development! diff --git a/wiki/FAQ.md b/wiki/FAQ.md index f914cce..8b03ecc 100644 --- a/wiki/FAQ.md +++ b/wiki/FAQ.md @@ -25,8 +25,9 @@ Here is a checklist: on the port? If you don't know this **ask your server-host how you can open a second port for BlueMap!**. ### Q: I am getting `404 - Not Found` when I open the map -Check your `core.conf` configuration file, did you set `accept-download` to `true`? -If yes, check if your `webroot` settings in `webapp.conf` and `webserver.conf` are set to the correct (same) folder. +Check your [`core.conf`](./configs/Core.md) configuration file, did you set [`accept-download`](./configs/Core.md#accept-download) to `true`? +If yes, check if your [`webroot`](./configs/Webapp.md#webroot) settings in [`webapp.conf`](./configs/Webapp.md#webroot) +and [`webserver.conf`](./configs/Webserver.md#webroot) are set to the correct (same) folder. ### Q: My map isn't updating! BlueMap needs to wait until the server saves the world data to disk, so it may take some time for changes to appear @@ -41,8 +42,8 @@ Those steps will be clearly listed on the update page. browser has not cached anything weird. - Use `/bluemap` to check if BlueMap is rendering something! It might be busy rendering a different map first. - Use `/bluemap unfreeze ` to make sure it's not frozen. -- Make sure that the `world:`-setting in your map-config is set to the correct world-folder. -- Make sure that the `dimension:`-setting in your map-config is correct. +- Make sure that the [`world`](./configs/Maps.md#world)-setting in your map-config is set to the correct world-folder. +- Make sure that the [`dimension`](./configs/Maps.md#dimension)-setting in your map-config is correct. - Make sure your BlueMap-version supports the minecraft-version you are trying to render. *(You can see that on BlueMap's [official download-page](https://github.com/BlueMap-Minecraft/BlueMap/releases/latest))* - BlueMap can only render the parts of your world that have already been generated by Minecraft! *(E.g., by exploring @@ -56,10 +57,9 @@ Those steps will be clearly listed on the update page. Then, chunks that have not been visited by a player **might** not have their light-data generated yet. BlueMap needs the light data and ignores chunks that don't have it. So it will only render chunks that have been loaded by a player at least once. - Here is a dedicated guide to fixing lighting issues in your world: - + [Here](../community/FixLighting.md) is a dedicated guide to fixing lighting issues in your world. -If nothing else works, you can try to set `ignore-missing-light-data: true` in your +If nothing else works, you can try to set [`ignore-missing-light-data`](./configs/Maps.md#ignore-missing-light-data) to `true` in your map-config. *(And then use `/bluemap purge ` to update your map)* This will ignore potentially missing light data while rendering, with some drawbacks: - Cave-rendering will always be enabled in those chunks, because it is using the sun-light data to detect the "caves" @@ -71,14 +71,14 @@ This could be caused by one of these things: - You have updated BlueMap, but did not update BlueMap's webapp properly. Try to delete the `/index.html` and reload BlueMap. - You disabled the hires tiles in your map config. - Set `enable-hires` to `true` in your map config and purge your map so bluemap re-renders it with the hires tiles enabled. + Set [`enable-hires`](./configs/Maps.md#enable-hires) to `true` in your map config and purge your map so bluemap re-renders it with the hires tiles enabled. - You haven't set up your external webserver correctly. - Please make sure you've read the [External Webservers]({{site.baseurl}}/wiki/webserver/) guide to see how to do that. + Please make sure you've read the [External Webservers](./webserver/) guide to see how to do that. If you're still having issues, please visit [#support](https://discord.com/channels/665868367416131594/751804128749027421) in our [Discord](https://bluecolo.red/map-discord). ### Q: I have black/pink-checkered blocks on my map! -Read this: +Read [the wiki page on mods](./customization/Mods.md). ### Q: The map (web-app) has low FPS (lagging) Make sure you have **hardware-acceleration enabled** on your browser! @@ -100,14 +100,14 @@ almost entirely dependent on the network speed between your server and your own You can debug this by using your browser's built-in developer tools (Network tab) to check how long each request is taking, and where the bottleneck is. -If you're certain the connection speed between your server and you is adequate, +If you're certain the connection speed between your server and yourself is adequate, make sure you're on the latest version of BlueMap, as there may have been optimisations since. ### Q: Why is BlueMap using so much of my servers CPU? When you install BlueMap for the first time, it needs to convert all of your world(s) into 3d models. This is a pretty intensive process, so it's not strange at all to see BlueMap using up a lot of CPU power for a while after it's been installed. -In the BlueMap config file `core.conf` you can set how many threads BlueMap will use for the conversion process. +In the BlueMap config file [`core.conf`](./configs/Core.md) you can set how many threads BlueMap will use for the conversion process via [`render-thread-count`](./configs/Core.md#render-thread-count). BlueMap runs asynchronously to your server-thread, so as long as the CPU isn't maxed out, it should not slow down your server. After the conversion process is done for the first time, it won't ever have to render the whole map again! @@ -116,13 +116,13 @@ From then on, BlueMap will keep track of your world and convert only the chunks If you do `/bluemap`, you can see the progress of the conversions and an estimated time that is left. ### Q: How can I add or remove maps? -To add a map, copy a map-config from the `maps`-folder next to the other config-files, open it and tweak the settings +To add a map, copy a map-config from the [`maps`](./configs/Maps.md)-folder next to the other config-files, open it and tweak the settings for your new map. To remove a map, just delete the config-file. -Read [this guide](https://bluemap.bluecolored.de/wiki/getting-started/Configuration.html#configuring-your-maps-adding--removing-maps) for more info. +Read [this guide](./getting-started/Configuration.md#configuring-your-maps-adding--removing-maps) for more info. ### Q: How can I add SSL (HTTPS) to my map? BlueMaps integrated webserver does not (and will not) support SSL on its own, -but you can e.g. [use NGINX to reverse-proxy your map]({{site.baseurl}}/wiki/webserver/NginxProxy.html) +but you can e.g. [use NGINX to reverse-proxy your map](./webserver/NginxProxy.md) and add SSL that way. ### Q: How do I add authentication to my map? diff --git a/wiki/configs/Maps.md b/wiki/configs/Maps.md index bdfd407..935777b 100644 --- a/wiki/configs/Maps.md +++ b/wiki/configs/Maps.md @@ -137,7 +137,7 @@ Please check out [this wiki page](/wiki/customization/Masks.md) for more detaile _Default is no mask; BlueMap will render everything that exists._ ## `render-edges` -Using this, BlueMap pretends that every Block outside of the defined render-mask is AIR, +Using this, BlueMap pretends that every Block outside the defined render-mask is AIR, this means you can see the blocks where the world is cut (instead of having a see-through/xray view). This has only an effect if you set some [`render-mask`](#render-mask) above. @@ -146,7 +146,7 @@ This has only an effect if you set some [`render-mask`](#render-mask) above. _Default is_ `true` ## `edge-light-strength` -The sun-light strength that blocks at map-edges will recieve if render-edges is enabled. +The sun-light strength that blocks at map-edges will receive if render-edges is enabled. Should be a value between `0` and `15` diff --git a/wiki/configs/Webserver.md b/wiki/configs/Webserver.md index 3588f88..2b3a76d 100644 --- a/wiki/configs/Webserver.md +++ b/wiki/configs/Webserver.md @@ -51,7 +51,7 @@ Whether the logger should append to an existing file, or overwrite it _Default is_ `false` ### `format` -The format of the webserver-acivity logs. +The format of the webserver-activity logs. The syntax is the [Java String formatting](https://docs.oracle.com/javase/8/docs/api/java/util/Formatter.html). diff --git a/wiki/customization/Markers.md b/wiki/customization/Markers.md index f894bf7..2857273 100644 --- a/wiki/customization/Markers.md +++ b/wiki/customization/Markers.md @@ -13,7 +13,7 @@ BlueMap allows you to add various markers to your map. You can do this either by map-config or by having a 3rd-party plugin that uses BlueMap's [API](https://github.com/BlueMap-Minecraft/BlueMapAPI) to manage markers. -A list of known 3rd-party plugins that use BlueMap's API is available [here]({{site.baseurl}}/community/3rdPartySupport.html). +A list of known 3rd-party plugins that use BlueMap's API is available [here](../../3rdPartySupport.md). 1. TOC {:toc} @@ -59,7 +59,7 @@ There are different types of markers that you can use, depending on what you nee The POI Marker is the most basic marker. It's a simple icon-image that can be placed anywhere on the map. When clicked, it shows its label. -![qLZpKw97EU](https://user-images.githubusercontent.com/10765470/211083198-93d034fc-9d6b-4ee9-aef2-08db0958c1ee.png) +![](https://user-images.githubusercontent.com/10765470/211083198-93d034fc-9d6b-4ee9-aef2-08db0958c1ee.png) Here is an example config for a POI marker: ```hocon @@ -84,7 +84,7 @@ example-poi-marker: { **Specific POI-Marker properties are:** - `detail` is the text that is shown when you click on the icon. This property allows using any html-tags. - It default to the label of the marker. + It defaults to the label of the marker. - `icon`, which is any url to an image that will be used as the marker's icon. Can be a local file or a remote url. The image is not resized, so the image should be exactly as big as you want the icon to be on the map. All image-formats that can be used in a html-img-tag are supported @@ -97,9 +97,9 @@ example-poi-marker: { HTML Markers are used to add any HTML-Element to the map. This gives you full freedom if you want to add just a simple text, any image, a button or even ... embed a video ;D. -![ESQgDvgzHg](https://user-images.githubusercontent.com/10765470/211083264-ca89c1b5-0051-4a82-af45-d9ebec9e9c35.png) +![](https://user-images.githubusercontent.com/10765470/211083264-ca89c1b5-0051-4a82-af45-d9ebec9e9c35.png) -Here is an example config for a HTML Marker: +Here is an example config for an HTML Marker: ```hocon example-html-marker: { type: "html" @@ -129,7 +129,7 @@ example-html-marker: { Line Markers do what their name suggests. They are used to draw a line on the map. If you click on that line, it shows the marker's `detail`. -![dIZ7W6zjG2](https://user-images.githubusercontent.com/10765470/211083298-0116588c-15c8-4e84-8690-1a2936ae5c0c.png) +![](https://user-images.githubusercontent.com/10765470/211083298-0116588c-15c8-4e84-8690-1a2936ae5c0c.png) Here is an example config for a Line Marker: ```hocon @@ -176,7 +176,7 @@ things like render-order. Make sure this is always roughly in the middle of the A shape marker is any flat shape (polygon) placed somewhere on the map. You can use it to mark areas, for example. If you click on the shape, it shows the marker's `detail`. -![xDcmgynWv7](https://user-images.githubusercontent.com/10765470/211083324-04829ca3-515b-4b6b-8223-c9edaffbd07a.png) +![](https://user-images.githubusercontent.com/10765470/211083324-04829ca3-515b-4b6b-8223-c9edaffbd07a.png) Here is an example config for a Shape Marker: ```hocon @@ -233,9 +233,9 @@ example-shape-marker: { Extrude Markers are the same as a shape-marker, but the shape is extruded between two heights. With this you can mark areas that are limited to specific y-positions. -![SqRL5ouEDS](https://user-images.githubusercontent.com/10765470/211083342-211b5d8b-81a3-407f-849b-af555707b85d.png) +![](https://user-images.githubusercontent.com/10765470/211083342-211b5d8b-81a3-407f-849b-af555707b85d.png) -Here is an example config for a Extrude Marker: +Here is an example config for an Extrude Marker: ```hocon example-extrude-marker: { type: "extrude" diff --git a/wiki/customization/Masks.md b/wiki/customization/Masks.md index 5672f3f..8a61f14 100644 --- a/wiki/customization/Masks.md +++ b/wiki/customization/Masks.md @@ -15,7 +15,7 @@ By default, BlueMap renders the entire (generated) world. With masks, you can de This can be useful to make sure the map only renders **inside** your world-border, or if you want to hide a specific area from the map. In the nether the default config uses masks to remove the nethers ceiling so you can see below the top bedrock-layer. -Render masks are configured in the **map config file**: +Render masks are configured in the [map config file](../configs/Maps.md#render-mask): ```hocon render-mask: [ diff --git a/wiki/customization/Mods.md b/wiki/customization/Mods.md index 4ef50b8..5b567e1 100644 --- a/wiki/customization/Mods.md +++ b/wiki/customization/Mods.md @@ -15,7 +15,7 @@ nav_order: 5 ## General BlueMap is automatically looking for mods and datapacks in your server-files. If it finds them it will try to load them and parse its resources to be able to render any additional blocks. -If you don't want this, you can turn this auto-discovery off in the `core.conf` -> `scan-for-mod-resources`. +If you don't want this, you can turn this auto-discovery off in the [`core.conf` → `scan-for-mod-resources`](../configs/Core.md#scan-for-mod-resources). BlueMap might not be able to parse all blocks and resources for a mod. For example, if a mod generates its resources/block-models at runtime, BlueMap won't be able to find them in the `mod.jar` and will not be able to render them correctly! diff --git a/wiki/customization/Storages.md b/wiki/customization/Storages.md index d5bcf9d..09c0f6b 100644 --- a/wiki/customization/Storages.md +++ b/wiki/customization/Storages.md @@ -16,10 +16,10 @@ nav_order: 3 With BlueMap you can define one or more **Storages** where you want your maps to be stored. Theoretically you could store each map in a different storage. -To configure your storages, you can use the `storages` folder in your config folder. +To configure your storages, you can use the [`storages`](../configs/storages/) folder in your config folder. In the same way as with the maps, the name of these config-file (without the `.conf`-extension) determines the identifier of the storage. Which means you can also add and remove storages. In your map-configs you can -then use the `storage`-setting to select the storage this map should be stored in. +then use the [`storage` setting](../configs/Maps.md#storage) to select the storage this map should be stored in. **For example:** If you have a config file `storages/mystorage.conf` then in your map configs you can set `storage: "mystorage"` to make that map use it. @@ -28,7 +28,7 @@ set `storage: "mystorage"` to make that map use it. The file-storage is the default storage. It is simply a folder where BlueMap will store the map-tiles as separate files. Exactly like the webapp expects them. Usually that folder is in your webapp's webroot: `./bluemap/web/maps`. But you can change this folder however you like -using the `root` setting. +using the [`root`](../configs/storages/File.md#root) setting. ## MySQL, MariaDB & Postgres To use a MySQL, MariaDB or Postgres database, you can use the `sql.conf` template and enter your database information there. diff --git a/wiki/getting-started/Commands.md b/wiki/getting-started/Commands.md index ebf8b5f..a078cf5 100644 --- a/wiki/getting-started/Commands.md +++ b/wiki/getting-started/Commands.md @@ -44,4 +44,4 @@ Here is a table with all commands and their permissions that you can use if you | `/bluemap troubleshoot [map] [x z]` | bluemap.troubleshoot | tries to find potential issues with the map or world at the players (or defined) position and gives suggestions on how to fix them | | `/bluemap debug world [map] [x y z]` | bluemap.debug.world | prints some debug info about the world at the players (or defined) position | | `/bluemap debug map [map] [x z]` | bluemap.debug.map | prints some debug info about the map-tile at the players (or defined) position | -| `/bluemap debug dump` | bluemap.debug.dump | creates a file `./bluemap/dump.json` containing lots of info about bluemaps current state | +| `/bluemap debug dump` | bluemap.debug.dump | creates a file `./bluemap/dump.json` containing lots of info about BlueMap's current state | diff --git a/wiki/getting-started/Configuration.md b/wiki/getting-started/Configuration.md index 10357b2..dbc28a2 100644 --- a/wiki/getting-started/Configuration.md +++ b/wiki/getting-started/Configuration.md @@ -21,8 +21,8 @@ In those generated config files every field has a comment above it with what it *(if it has one)*. Read those! They'll explain a lot! :) ## Configuring your maps *(adding & removing maps)* -In your config-folder you can find a folder called `maps`. This folder contains a `.conf` file for each map that you want -BlueMap to render, update and/or show on the web-app. +In your config-folder you can find a folder called [`maps`](../configs/Maps.md). +This folder contains a `.conf` file for each map that you want BlueMap to render, update and/or show on the web-app. The name of those config-files (without the `.conf`-extension) will be the identifier of your map. E.g. you will use that identifier in your commands to select the map. If you rename a config-file, it will be like creating a new map, since BlueMap @@ -42,26 +42,26 @@ Everything is explained there. ## Performance tweaking BlueMap is rendering asynchronously to your server-thread. This means at no time it will block your server-thread directly. So as long as your CPU is not fully utilized, your server should not be slowed down while BlueMap is rendering. -You can control how many CPU-Cores BlueMap is (roughly) using by changing the `render-thread-count` in BlueMap's `core.conf`. +You can control how many CPU-Cores BlueMap is (roughly) using by changing the [`render-thread-count` in BlueMap's `core.conf`](../configs/Core.md#render-thread-count). The more threads you give it, the more CPU-Cores it will use, but also the faster it will render. Minecraft itself can't utilize many CPU-Cores. The main server-thread will always only use one CPU-Core, and then there might be some additional usage for world-generation or Network-Threads. But altogether it can't usually utilize more than about 3 cores. This means you can give the rest of those cores to BlueMap if you want to optimize the render-speed. -If you have 4 or fewer cores on your Server-CPU you probably want to set the `render-thread-count` to 1. +If you have 4 or fewer cores on your Server-CPU you probably want to set the [`render-thread-count`](../configs/Core.md#render-thread-count) to 1. If you still have issues with lag and think it is caused by BlueMap, then you can tell BlueMap to not render at all if -there is a certain number of players online: The `player-render-limit` setting in BlueMap's `plugin.conf` controls this. +there is a certain number of players online: The [`player-render-limit` setting in BlueMap's `plugin.conf`](../configs/Plugin.md#player-render-limit) controls this. ## Hosting static maps If you have an old map of a world that doesn't exist anymore or a map that was rendered on a different server, you can still display it on the web-app. All BlueMap needs is to know the identifier (see [Configuring the map-storages](../customization/Storages.md)) of the map and the storage that it is stored in. -So we can just add a new map-config named like the identifier of the map with the only setting being the `storage`-setting. +So we can just add a new map-config named like the identifier of the map with the only setting being the [`storage` option](../configs/Maps.md#storage). -E.g. if you have a map with the identifier `mymap` and it is stored in the `storages/sql.conf` storage, you can add a new map-config -`maps/mymap.conf` with the following content: +E.g. if you have a map with the identifier `mymap` and it is stored in the [`storages/sql.conf`](../configs/storages/SQL.md) storage, +you can add a new map-config `maps/mymap.conf` with the following content: ```hocon storage: "sql" ``` diff --git a/wiki/getting-started/Installation.md b/wiki/getting-started/Installation.md index 158900a..465f1fd 100644 --- a/wiki/getting-started/Installation.md +++ b/wiki/getting-started/Installation.md @@ -42,8 +42,8 @@ and host a small webserver to serve the map-files and the webapp where you can v ### Prerequisites - A Spigot/Paper, Sponge, Fabric or Forge server -- Any **second port** that you can use, besides the one that is used by the minecraft-server - *(Ask your hosting service if & how you can open a second port)* +- Any **additional port** that you can use, besides the one that is used by the minecraft-server + *(Ask your hosting service if & how you can open an additional port)* ### Steps - First you want to download the bluemap-jar. You can choose and download a version @@ -51,11 +51,11 @@ and host a small webserver to serve the map-files and the webapp where you can v Make sure it fits to the version of your server! - Put the downloaded jar in the `plugins` or `mods`-folder of your server and restart the server. - BlueMap will now generate the default config-files and pre-configure one map for each world it finds on your server. -- Open the `core.conf` config-file, read through the comments and agree to downloading some extra resources from Mojang - by changing `accept-download` to `true`. -- Open the `webserver.conf` config-file and change the `port` to the **second port** that you got from your hosting-provider to use. +- Open the [`core.conf`](../configs/Core.md) config-file, read through the comments and agree to downloading some extra resources from Mojang + by changing [`accept-download`](../configs/Core.md#accept-download) to `true`. +- Open the [`webserver.conf`](../configs/Webserver.md) config-file and change the [`port`](../configs/Webserver.md#port) to the **additional port** that you got from your hosting-provider to use. - Now you can go through the rest of the config-files and change the settings to your liking. - *(More info for configuring BlueMap can be found [here]({{site.baseurl}}/wiki/getting-started/Configuration))* + *(More info for configuring BlueMap can be found [here](./Configuration.md))* - After you have edited the configs, use the command `/bluemap reload` on your server or restart the server. If everything is set up correctly, BlueMap should start to render your maps. Check the console/logs for any errors or warnings. @@ -71,10 +71,10 @@ This setup extends the basic setup by using an SQL-Server to store your maps. ### Steps - Use the basic setup above to install BlueMap like normal -- In your config-files, open the `storages/sql.conf`-file and configure the connection to your SQL-Server. - *(See [this page]({{site.baseurl}}/wiki/customization/Storages.html#mysql-mariadb--postgres) +- In your config-files, open the [`storages/sql.conf`](../configs/storages/SQL.md)-file and configure the connection to your SQL-Server. + *(See [this page](../customization/Storages.md#mysql-mariadb--postgres) for more info about this config-file)* -- Now open each of your map-config-files and set `storage` to `"sql"`. +- Now open each of your [map-config files](../configs/Maps.md) and set [`storage`](../configs/Maps.md#storage) to `"sql"`. - Reload BlueMap with `/bluemap reload`. - Now that your maps are stored on your database, you should delete the old map data from your filesystem, to prevent it from interfering. You can do this by running the command `/bluemap storages file delete ` for each of the maps you have just switched to SQL. @@ -102,22 +102,21 @@ This is useful if you want to render a map of a minecraft-world, but don't want - Open the CLI and change your [cwd](https://en.wikipedia.org/wiki/Working_directory) to the folder containing your jar. *(usually using the command `cd `)* - Run `java -jar BlueMap-cli.jar` so BlueMap generates the configuration-files next to the jar in your cwd. -- Open the `core.conf` config-file, read through the comments and agree to downloading some extra resources from Mojang - by changing `accept-download` to `true`. +- Open the [`core.conf`](../configs/Core.md) config-file, read through the comments and agree to downloading some extra resources from Mojang + by changing [`accept-download`](../configs/Core.md#accept-download) to `true`. - Set up your map-configs for the world(s) you want to render. - Now you can go through the rest of the config-files and change the settings to your liking. - *(More info for configuring BlueMap can be found [here]({{site.baseurl}}/wiki/getting-started/Configuration))* + *(More info for configuring BlueMap can be found [here](./Configuration.md))* - After you have edited the configs run `java -jar BlueMap-cli.jar -r` to start the render. - With `java -jar BlueMap-cli.jar -w` you can also start the builtin web-server to be able to view your map. - Or you can read [this]({{site.baseurl}}/wiki/webserver) to learn how to setup NGINX or - Apache for BlueMap. + Or you can read [this](../webserver/) to learn how to set up NGINX or Apache for BlueMap. - Use `java -jar BlueMap-cli.jar -h` to get a list and explanation for all available flags. ## Using BlueMap Docker image You can use [BlueMap CLI](#using-bluemap-on-the-cli--standalone) in a Docker container. This is perfect for container loving sysadmins. The image is available on GitHub container registry as `ghcr.io/bluemap-minecraft/bluemap`. For latest and greatest the `latest` tag is the latest release (which can be a pre-release) and `master` the latest git commit. -You can also choose a latest minor of a major with tags such as `v3` or a specific version tag such as `v3.14`. +You can also choose a latest minor of a major with tags such as `v5` or a specific version tag such as `v5.13`. For production usage you should **always** pin the version to the minor version as even the latest minor might still be a pre-release. You can see the list of available Docker tags on [GitHub](https://github.com/BlueMap-Minecraft/BlueMap/pkgs/container/bluemap). The documentation will from now on substitute the version with ``. @@ -134,7 +133,7 @@ The documentation will from now on substitute the version with ``. | /app/config | Default config folder | | /app/web | Default web application | | /app/web/maps | Default render data (included in web mount) | -| /app/data | Other persistant data | +| /app/data | Other persistent data | | /app/world | Your world (you can also mount others) | You can also change these paths to be whatever you want in the configs. diff --git a/wiki/getting-started/ServerNetworks.md b/wiki/getting-started/ServerNetworks.md index 16b9642..de16612 100644 --- a/wiki/getting-started/ServerNetworks.md +++ b/wiki/getting-started/ServerNetworks.md @@ -11,7 +11,7 @@ You can use BlueMap on Server-Networks (BungeeCord/Velocity) and show all your m There are multiple ways to achieve this. ## General Setup -For all setups you will need to install BlueMap [like normally]({{site.baseurl}}/wiki/getting-started/Installation) +For all setups you will need to install BlueMap [like normally](./Installation.md) on every game-server in your network that you want to render maps on. **Make sure that the map-configs are NAMED DIFFERENTLY across the entire network!** @@ -25,11 +25,11 @@ Either you have an SQL-Server to which you can connect from all your game-server same folder from them all (e.g. mounting a shared drive/folder). Either of them can be used to combine all the map-data from different servers. ### Steps -- configure either the `storages/sql.conf` on all server to the same sql-server, or the `storages/file.conf` on - all server to the same (shared) folder +- configure either the [`storages/sql.conf`](../configs/storages/SQL.md) on all servers to the same sql-server, + or the [`storages/file.conf`](../configs/storages/File.md) on all servers to the same (shared) folder - configure all maps on all servers to use that storage - choose one of those servers to be the server that will host the web-app. - **On this server:** create an extra map-config like [here: "Hosting static maps"]({{site.baseurl}}/wiki/getting-started/Configuration#hosting-static-maps) for each + **On this server:** create an extra map-config like [here: "Hosting static maps"](./Configuration.md#hosting-static-maps) for each map that is on the **other** servers. *(example below)* Now the maps from the other servers should be visible on the web-app of this one server. @@ -65,11 +65,12 @@ Now the maps from the other servers should be visible on the web-app of this one > nothing else. ### Live updates -If you want to have live updating markers and player-markers on all maps, turn on the `write-markers-interval` and the -`write-players-interval` in each `plugin.conf` on the other servers. +If you want to have live updating markers and player-markers on all maps, turn on the +[`write-markers-interval` and `write-players-interval`](../configs/Plugin.md#write-markers-interval-and-write-players-interval) +options in each [`plugin.conf`](../configs/Plugin.md) on the other servers. **Or** if you plan on hosting the entire map with an external-webserver you can reverse-proxy each maps live-interface to the correct -game-server. See: [External Webserver (File-Storage)]({{site.baseurl}}/wiki/webserver/ExternalWebserversFile) and -[External Webserver (SQL-Storage)]({{site.baseurl}}/wiki/webserver/ExternalWebserversSQL). +game-server. See: [External Webserver (File-Storage)](../webserver/ExternalWebserversFile.md) and +[External Webserver (SQL-Storage)](../webserver/ExternalWebserversSQL.md). ## Using an external-webserver and different storages If you can't store all maps on the same storage, you can also use an external-webserver to host the webapp, and just diff --git a/wiki/index.md b/wiki/index.md index 4b8f6e6..bc56ead 100644 --- a/wiki/index.md +++ b/wiki/index.md @@ -7,7 +7,7 @@ nav_order: 1 # Welcome to the BlueMap Wiki! -Here you can find some basic information on how to setup and use BlueMap! +Here you can find some basic information on how to set up and use BlueMap! If you need any help, you can always visit our [Discord](https://discord.gg/zmkyJa3) :) -We also have some [Community Guides]({{site.baseurl}}/community/) for more specific and complex topics. \ No newline at end of file +We also have some [Community Guides](../community/) for more specific and complex topics. diff --git a/wiki/webserver/ExternalWebserversFile.md b/wiki/webserver/ExternalWebserversFile.md index fa538a5..537f487 100644 --- a/wiki/webserver/ExternalWebserversFile.md +++ b/wiki/webserver/ExternalWebserversFile.md @@ -48,7 +48,7 @@ Optionally: external web-server you will also need to reverse-proxy all requests to `/maps/*/live/*` to the builtin web-server. ## NGINX -With NGINX it is actually only one config-line that does both things *(finding gz-files and setting the header)*: +With NGINX, it is actually only one config-line that does both things *(finding gz-files and setting the header)*: `gzip_static always;` So with some context your website-config could look like this: diff --git a/wiki/webserver/ReverseProxy.md b/wiki/webserver/ReverseProxy.md index dca3b7b..e557839 100644 --- a/wiki/webserver/ReverseProxy.md +++ b/wiki/webserver/ReverseProxy.md @@ -23,7 +23,7 @@ This is useful if you want to integrate your map in your website, or want to add > **Info:**
> If you want, you can tell the internal-webserver to only connect to one specific address like e.g. `127.0.0.1`, > so it is no longer accessible from the outside (by default it just connects to all available interfaces): -> To do this, just open the `webserver.conf` and add the `ip: "127.0.0.1"` setting somewhere. +> To do this, just open the [`webserver.conf`](../configs/Webserver.md) and add the `ip: "127.0.0.1"` setting somewhere. {: .info } ## BlueMap on a subdirectory of your website