@sdetweil Also, I am using Ubuntu Server so no GUI.
The MMM-Config module does not work, I’m guessing because it is a docker installation and maybe permissions are a thing?
[11.03.2025 11:44.21.236] [ERROR] (node:1) UnhandledPromiseRejectionWarning: ReferenceError: fetch is not defined
magicmirror | at buildFormData (/opt/magic_mirror/modules/MMM-Config/module_installer/runserver.js:135:20)
magicmirror | at module.exports (/opt/magic_mirror/modules/MMM-Config/module_installer/runserver.js:73:3)
magicmirror | at Class.startit (/opt/magic_mirror/modules/MMM-Config/node_helper.js:329:5)
magicmirror | at Class.setConfig (/opt/magic_mirror/modules/MMM-Config/node_helper.js:163:10)
magicmirror | at Class.start (/opt/magic_mirror/modules/MMM-Config/node_helper.js:169:10)
magicmirror | at /opt/magic_mirror/js/app.js:232:18
magicmirror | at new Server (/opt/magic_mirror/js/server.js:93:3)
magicmirror | at /opt/magic_mirror/js/app.js:226:20
magicmirror | at loadNextModule (/opt/magic_mirror/js/app.js:171:5)
magicmirror | at /opt/magic_mirror/js/app.js:166:6
magicmirror | [11.03.2025 11:44.21.236] [ERROR] (node:1) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)
magicmirror | [11.03.2025 11:44.21.237] [ERROR] (node:1) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
magicmirror | [11.03.2025 11:44.22.054] [ERROR] stderr 2: grep: ../../js/animateCSS.js: No such file or directory
magicmirror | cp: cannot stat '../../js/animateCSS.js': No such file or directory
That is from the docker compose up command.
Then when I hit: http://ip:2222/configure I am greeted with this:

Also to prove I’m not doing anything, crazy… I removed the custom.css file I had that I was looking at and here is what it looks like (this is what it looked like default:

As you can see, lots of room to breathe for those modules. Here is what the config.js looks like:
/* Magic Mirror Config Sample
*
* By Michael Teeuw http://michaelteeuw.nl
* MIT Licensed.
*
* For more information how you can configurate this file
* See https://github.com/MichMich/MagicMirror#configuration
*
*/
var config = {
address: "0.0.0.0", // Address to listen on, can be:
// - "localhost", "127.0.0.1", "::1" to listen on loopback interface
// - another specific IPv4/6 to listen on a specific interface
// - "0.0.0.0" to listen on any interface
// Default, when address config is left out, is "localhost"
port: 8080,
ipWhitelist: [], // Set [] to allow all IP addresses
// or add a specific IPv4 of 192.168.1.5 :
// ["127.0.0.1", "::ffff:127.0.0.1", "::1", "::ffff:192.168.1.5"],
// or IPv4 range of 192.168.3.0 --> 192.168.3.15 use CIDR format :
// ["127.0.0.1", "::ffff:127.0.0.1", "::1", "::ffff:192.168.3.0/28"],
language: "en",
timeFormat: 12,
units: "imperial",
modules: [
{
module: "alert",
},
{
module: "updatenotification",
position: "top_bar"
},
{
module: "clock",
position: "top_center"
},
{
module: "calendar",
header: "US Holidays",
position: "bottom_left",
config: {
calendars: [
{
symbol: "calendar-check",
url: "webcal://www.calendarlabs.com/ical-calendar/ics/76/US_Holidays.ics"
}
]
}
},
{
module: "compliments",
position: "middle_center"
},
{
module: "currentweather",
position: "top_right",
config: {
location: "Lutz",
locationID: "4163033", //ID from http://bulk.openweathermap.org/sample/city.list.json.gz; unzip the gz file and find your city
appid: "YOUR_OPENWEATHER_API_KEY"
}
},
{
module: "weatherforecast",
position: "top_right",
header: "Weather Forecast",
config: {
location: "Lutz",
locationID: "4163033", //ID from http://bulk.openweathermap.org/sample/city.list.json.gz; unzip the gz file and find your city
appid: "YOUR_OPENWEATHER_API_KEY"
}
},
{
module:"MMM-Config",
position:"top_right",
// the QR code (if requested) will appear here
showQR:"True",
config:{
}
},
{
module: "newsfeed",
position: "bottom_bar",
config: {
feeds: [
{
title: "New York Times",
url: "http://www.nytimes.com/services/xml/rss/nyt/HomePage.xml"
}
],
showSourceTitle: true,
showPublishDate: true,
broadcastNewsFeeds: true,
broadcastNewsUpdates: true
}
},
]
};
/*************** DO NOT EDIT THE LINE BELOW ***************/
if (typeof module !== "undefined") { module.exports = config; }
This is the config that comes with the docker-compose that I posted earlier. I’m guessing someone made this and there is issues and really I need to do a default install and try from there.