Recently, I spent a lot of time diving into the Minecraft mod/plugin Dynmap.
It’s an awesome tool and if you run a Minecraft server and don’t know about it, you should check it out!
While trying to figure out how to setup a standalone web server for Dynmap, I came across LiveAtlas. It’s an alternative frontend for Dynmap (and also supports Squaremap, Pl3xmap and Overviewer) that adds a much sleeker interface to the web ui, as well as some cool features like being able to right-click on the map and get a context menu:
These kinds of things are big part of why I love the Minecraft community! The amount of high quality tools/plugs/mods that people have poured their time and skills into for the community are immense.
Installation
Installing LiveAtlas on your Minecraft server is extremely straightforward and easy. It literally functions as a “drop-in” replacement for Dynmap’s web GUI.
Download the latest release of LiveAtlas
Extract that into your dynmap/web folder
Prevent Dynmap from overwriting the LiveAtlas index.html by changing the update-webpath-files to false in Dynmap’s Configuration.txt file (verions of Dynmap older than 3.3.2 need to set the index.html file to read-only)
The index.html file can be modified to add custom favicons and additional customization.
Are you using Dynmap or LiveAtlas on your server? How do you have it setup? Drop a comment below and let me know!
I run a Forge-modded server for some friends and use a mod called Dynmap (which is also a popular plugin by the same name). This mod allows players to view a map of the entire Minecraft world in their browser and see the locations of other players.
This had been working out beautifully until our world started to grow rather large in file size. You see, Dynmap renders/generates map tiles based on chunks in your world and the larger your world is, the more map tiles there are. For some context, my world is about 9GB and the Dynmap files that make up the map come in around ~43GB.
That’s a lot of space! And I knew that was going to be an issue as our world grew.
I manage my Minecraft server using AMP and it lives within an Ubuntu virtual machine dedicated to Minecraft, which lives on a node in a Proxmox cluster.
I could have just assigned more space to the VM and called it a day (which is what I did as a short-term solution), BUT I have a NAS with lots of space hosted on another node within the same Proxmox cluster, on the same local network, and I began to wonder if there was a way to offload the storage component of Dynmap from the Minecraft server to the NAS.
Last year I assisted an organization with the rollout of Jamf Connect using OKTA as their IdP. While I was putting together the standard configuration profiles for the Login Window and Menu Bar, I looked at the documentation to double-check my work and realized I had pulled up the documentation for a much older version of Jamf Connect.
Some of the keys listed in that old document were no longer listed on the up-to-date one and that got me wondering about undocumented key pairs and if there were any that were still usable. In turn, this led me down a rabbit hole on the MacAdmins Slack, which finally led me to Custom Menu Bar Action Items.
What the heck are those, you ask?
To put it simply, the Jamf Connect Menu Bar is extensible and allows for custom interactive menu items.
You can leverage this to do things like: launch Applications (this can be useful for connecting to VPN), display information/links, and run scripts.
Now, while I was plenty comfortable with setting up and rolling out Jamf Connect, Custom Menu Bar Action Items weren’t something I had played around with before, so I was immediately interested!
After a few hours of tinkering this is what I ended up with:
The “Information” menu displays the machine’s name, IP address, and Operating System. I also included two links at the bottom relating to password resetting. Really anything can be put here, this use-case focused on quick information for the service desk in the event any troubleshooting was needed.
That’s the WHAT and WHY, let’s get to HOW!
First thing we’ll need to do is modify our existing Menu Bar Configuration Profile. If you’re just starting to roll out Jamf Connect and haven’t setup a Menu Bar Configuration Profile yet, I would recommend using the Jamf Connect Configuration tool provided by Jamf as part of the Jamf Connect DMG installer.
In our existing Menu Bar Configuration Profile we need to add the key actions, which is calling out a Custom Action Item. We’re using Information as the string but you can call this whatever you’d like. This will be what the pop-out menu from the first screenshot will be labeled.
Next we need to actually create the configuration for our Custom Action Items. Using the example provided by Jamf as a foundation, I began checking GitHub and Slack for other examples to see what all could be done. Once I realized that small commands could be run within each “button” a whole world opened up!
This is what the chunk of the profile looks like that displays the IP Address in the Menu Bar:
Are you using Custom Action Items in your Jamf Connect setup? If so, I’d love to hear about it!
Gatekeeper is a security feature on macOS that is designed to protect your system from malicious software by limiting the apps that can be installed and run on your system. Only allowing apps that are downloaded from either the Mac App Store or from those who have signed their apps with a certificate issued by Apple.
While it’s extremely useful for keeping your macOS environment secure, there are times when a user may need to disable Gatekeeper temporarily.
My organization’s use-case for this is that we have a team of developers who are often running test builds of applications that are unsigned because they’re in development. So we have a process for user’s to go through to disable Gatekeeper temporarily.
However, we want to ensure that there are no gaps and that Gatekeeper will always be re-enabled across the environment.
To accomplish this, we leverage Jamf Pro’s Smart Groups to detect if Gatekeeper is disabled (the status of machines in this group will update after an inventory scan on each device) and a script deployed via a Jamf policy to re-enable it on the machines that show up in our smart group.
A Device Collection is a grouping of devices that share common characteristics or properties, such as hardware or software inventory, operating system, location, and organizational unit. Device collections are used to organize and manage devices in SCCM, and are a key element in deploying software updates, applications, and other software to groups of devices
How to create a Device Collection?
Launch the SCCM Management Console and navigate to the Assets and Compliance workspace.
Expand the Overview node, then expand the Device Collections.
Right click anywhere in the whitespace and click Create New Device Collection
Docker Compose is a tool for defining and running multi-container Docker applications. It allows developers to define the services that make up their application and how they interact with each other, all in a single file. In this article, we’ll cover everything you need to know to get started with creating a Docker Compose file, including examples of how to define services and configure networking.
Some Prerequisites:
Before we dive into creating a Docker Compose file, let’s make sure you have the necessary prerequisites:
A Docker Compose file is a YAML file that defines the services, networks, and volumes for your Docker application.
The beginning of a Compose file always starts with the version key. This key is used to specify the version of the Docker Compose syntax being used in the file. This is important because Docker Compose has gone through several major revisions, and each revision introduces new features or changes to the syntax.
Currently, the latest version of the Docker Compose syntax is version 3.9. When you specify the version tag as “3.9”, Docker Compose will use the latest syntax and recognize all of the latest features and syntax changes.
After defining the version of the Compose file it’s time to define the services that will be run in the containers.
In a previous post I went over how I use Docker Compose to build out and manage my self-hosted services. In this post, I want to introduce you to one of my favorites: Komga!
Komga is an open-source comic book/manga web server that allows you organize and serve all of your CBZ/CBR/EPUB’s in one place! As I mentioned above, it can be run in Docker so you can basically run it on anything. It has an integrated web reader and offers an API that can be used with many popular comic/manga readers.
Why do I like it so much, you ask?
Well, a few years ago I was running Ubooquity to host my comic library and while it worked, there were a lot things I wasn’t happy with:
Recently I moved my home lab environment over to Proxmox and started containerizing all of my services.
I’ll admit, when I first started playing around with Docker I was confused as hell!
At its core, it’s all pretty simple but you can get lost in abstraction pretty quickly if you let yourself get side-tracked. That being said, let’s get on track!
Docker Compose is a tool for defining and running multiple Docker containers at once. It allows you to create, start, and stop containers with multiple interconnected services, such as databases, web servers, and APIs, all using a single YAML file.
Okay, so what is a stack you ask?
A stack is basically a grouping of services that you have configured in a single Docker Compose/YAML file.
Our stack will be called HostedMediaServices and will be used to serve our media libraries out to our local network (and beyond). This will include Plex (for sharing movies and TV shows), Komga (for sharing comic books/manga), and FireShare (for sharing small, self-hosted clips with unique links).