Read the statement by Michael Teeuw here.
Are you tired of editing config.js, or have trouble doing it, see my new module
-
@DarkV it takes a little bit of info
a url contains
a protocol type secure(https) or not (http)
a server name or address
a port
a path
and optionally some parametersfor MMM-Config
just protocol, server, port and path
on your local network, we dont need to build our everything for secure encrypted communications
if the machine you are opening the browser on is the same machine as MagicMirror is running, then you can use localhost
otherwise you need to know the MagicMirror server ip address or network namethe port value comes from the MagicMirror config.js, default is 8080
(if you dont see a port specified in a url, then the browser uses the default for the protocol, 80 or 443 not/secure, as appropriate)and then the path, for MMM-Config there are two :
for configuration
/configure
and for module installation
/installerhttp://ip:port/configure
on the same machine, using defaults
http://localhost:8080/configure -
Hello, Newbie here, how do you go about using this? What do I need to get started? Do I need Node.js? Have it installed, yet completely lost. How about a guide or video. Thanks
-
@IamWayne did you add the module to config.js?
and restart MagicMirror?if so then the url from the doc
http://ip:mm_port/configure
but by default the MagicMirror config only allows apps from inside the same system to connect, so you would have to minimize MagicMirror then launch a browser to
http://localhost:8080/configure
or for the module installer
-
Oh I think that I understand now. I have to add this to the MM installer in the correct folder, correct?
-
@IamWayne this is an add on module, not part of the base
see the 1st link in my signature below for short topic about installing modules
-
this module works very well , thanks for the hard work and time . makes this project simple and fun !!
-
@sdetweil Still no joy, I am going to reinstall.I cannot display the QR code as I do not have any zones left and cannot load the web page

-
@DarkV you dont need the qr code
can you show the messages from npm start?
if using pm2 thenpm2 logs --lines=100 -
@sdetweil How do I get logs? I am a noob regarding MM
I found this[08.01.2025 00:49.42.199] [ERROR] Failed to retrieve repo info for MMM-Tools: Error: Command failed: cd /home/junior/MagicMirror/modules/MMM-Tools && git fetch -n --dry-run
fatal: unable to access ‘https://github.com/bugsounet/MMM-Tools/’: Could not resolve host: github.com -
This post is deleted! -
@DarkV way back further in the log, back 50 lines maybe
as using pm2 the good and error lines are separated into two lists
none of the bugsounet repos are online any more
so if you dont want to see those errors, you can exclude them from the updatenotification module scans -
@sdetweil [31mSyntaxError: Unexpected identifier 'config’[39m
[31m at internalCompileFunction (node:internal/vm:73:18)[39m
[31m at wrapSafe (node:internal/modules/cjs/loader:1185:20)[39m
[31m at Module._compile (node:internal/modules/cjs/loader:1227:27)[39m
[31m at Object…js (node:internal/modules/cjs/loader:1326:10)[39m
[31m at Module.load (node:internal/modules/cjs/loader:1126:32)[39m
[31m at node:internal/modules/cjs/loader:967:12[39m
[31m at Function._load (node:electron/js2c/node_init:2:13357)[39m
[31m at Module.require (node:internal/modules/cjs/loader:1150:19)[39m
[31m at require (node:internal/modules/cjs/helpers:121:18)[39m
[31m at loadConfig (/home/junior/MagicMirror/js/app.js:118:14)[39m
[31m at App.start (/home/junior/MagicMirror/js/app.js:248:18)[39m
[31m at Object. (/home/junior/MagicMirror/js/electron.js:192:7)[39m
[31m at Module._compile (node:internal/modules/cjs/loader:1271:14)[39m
[31m at Object…js (node:internal/modules/cjs/loader:1326:10)[39m
[31m at Module.load (node:internal/modules/cjs/loader:1126:32)[39m
[31m at node:internal/modules/cjs/loader:967:12[39m
/home/junior/MagicMirror/node_modules/electron/dist/electron exited with signal SIGINT
[27.03.2025 09:44.46.126] [WARN] Version is incorrect. Skip module: ‘MMM-Config’
Warning: vkCreateInstance: Found no drivers!
Warning: vkCreateInstance failed with VK_ERROR_INCOMPATIBLE_DRIVER
at CheckVkSuccessImpl (…/…/third_party/dawn/src/dawn/native/vulkan/VulkanError.cpp:88)
at CreateVkInstance (…/…/third_party/dawn/src/dawn/native/vulkan/BackendVk.cpp:458)
at Initialize (…/…/third_party/dawn/src/dawn/native/vulkan/BackendVk.cpp:344)
at Create (…/…/third_party/dawn/src/dawn/native/vulkan/BackendVk.cpp:266)
at operator() (…/…/third_party/dawn/src/dawn/native/vulkan/BackendVk.cpp:521)[27.03.2025 09:46.55.825] [ERROR] [31mWARNING! Could not validate config file. Starting with default configuration. Please correct syntax errors at or above this line: /home/junior/MagicMirror/config/config.js:122[39m
[31m config: {[39m
[31m ^^^^^^[39m[31mSyntaxError: Unexpected identifier 'config’[39m
[31m at internalCompileFunction (node:internal/vm:73:18)[39m
[31m at wrapSafe (node:internal/modules/cjs/loader:1185:20)[39m
[31m at Module._compile (node:internal/modules/cjs/loader:1227:27)[39m
[31m at Object…js (node:internal/modules/cjs/loader:1326:10)[39m
[31m at Module.load (node:internal/modules/cjs/loader:1126:32)[39m
[31m at node:internal/modules/cjs/loader:967:12[39m
[31m at Function._load (node:electron/js2c/node_init:2:13357)[39m
[31m at Module.require (node:internal/modules/cjs/loader:1150:19)[39m
[31m at require (node:internal/modules/cjs/helpers:121:18)[39m
[31m at loadConfig (/home/junior/MagicMirror/js/app.js:118:14)[39m
[31m at App.start (/home/junior/MagicMirror/js/app.js:248:18)[39m
[31m at Object. (/home/junior/MagicMirror/js/electron.js:192:7)[39m
[31m at Module._compile (node:internal/modules/cjs/loader:1271:14)[39m
[31m at Object…js (node:internal/modules/cjs/loader:1326:10)[39m
[31m at Module.load (node:internal/modules/cjs/loader:1126:32)[39m
[31m at node:internal/modules/cjs/loader:967:12[39m
/home/junior/MagicMirror/node_modules/electron/dist/electron exited with signal SIGINT
[27.03.2025 09:47.26.134] [WARN] Version is incorrect. Skip module: ‘MMM-Config’
Warning: vkCreateInstance: Found no drivers!
Warning: vkCreateInstance failed with VK_ERROR_INCOMPATIBLE_DRIVER
at CheckVkSuccessImpl (…/…/third_party/dawn/src/dawn/native/vulkan/VulkanError.cpp:88)
at CreateVkInstance (…/…/third_party/dawn/src/dawn/native/vulkan/BackendVk.cpp:458)
at Initialize (…/…/third_party/dawn/src/dawn/native/vulkan/BackendVk.cpp:344)
at Create (…/…/third_party/dawn/src/dawn/native/vulkan/BackendVk.cpp:266)
at operator() (…/…/third_party/dawn/src/dawn/native/vulkan/BackendVk.cpp:521)/home/junior/MagicMirror/node_modules/electron/dist/electron exited with signal SIGINT
[27.03.2025 09:53.43.417] [WARN] Version is incorrect. Skip module: ‘MMM-Config’
Warning: vkCreateInstance: Found no drivers!
Warning: vkCreateInstance failed with VK_ERROR_INCOMPATIBLE_DRIVER
at CheckVkSuccessImpl (…/…/third_party/dawn/src/dawn/native/vulkan/VulkanError.cpp:88)
at CreateVkInstance (…/…/third_party/dawn/src/dawn/native/vulkan/BackendVk.cpp:458)
at Initialize (…/…/third_party/dawn/src/dawn/native/vulkan/BackendVk.cpp:344)
at Create (…/…/third_party/dawn/src/dawn/native/vulkan/BackendVk.cpp:266)
at operator() (…/…/third_party/dawn/src/dawn/native/vulkan/BackendVk.cpp:521)/home/junior/MagicMirror/node_modules/electron/dist/electron exited with signal SIGINT
[27.03.2025 09:59.04.576] [WARN] Version is incorrect. Skip module: ‘MMM-Config’
Warning: vkCreateInstance: Found no drivers!
Warning: vkCreateInstance failed with VK_ERROR_INCOMPATIBLE_DRIVER
at CheckVkSuccessImpl (…/…/third_party/dawn/src/dawn/native/vulkan/VulkanError.cpp:88)
at CreateVkInstance (…/…/third_party/dawn/src/dawn/native/vulkan/BackendVk.cpp:458)
at Initialize (…/…/third_party/dawn/src/dawn/native/vulkan/BackendVk.cpp:344)
at Create (…/…/third_party/dawn/src/dawn/native/vulkan/BackendVk.cpp:266)
at operator() (…/…/third_party/dawn/src/dawn/native/vulkan/BackendVk.cpp:521)/home/junior/MagicMirror/node_modules/electron/dist/electron exited with signal SIGINT
[27.03.2025 10:02.53.766] [WARN] Version is incorrect. Skip module: ‘MMM-Config’
Warning: vkCreateInstance: Found no drivers!
Warning: vkCreateInstance failed with VK_ERROR_INCOMPATIBLE_DRIVER
at CheckVkSuccessImpl (…/…/third_party/dawn/src/dawn/native/vulkan/VulkanError.cpp:88)
at CreateVkInstance (…/…/third_party/dawn/src/dawn/native/vulkan/BackendVk.cpp:458)
at Initialize (…/…/third_party/dawn/src/dawn/native/vulkan/BackendVk.cpp:344)
at Create (…/…/third_party/dawn/src/dawn/native/vulkan/BackendVk.cpp:266)
at operator() (…/…/third_party/dawn/src/dawn/native/vulkan/BackendVk.cpp:521)/home/junior/MagicMirror/node_modules/electron/dist/electron exited with signal SIGINT
[27.03.2025 10:15.08.770] [ERROR] [31mWARNING! Could not validate config file. Starting with default configuration. Please correct syntax errors at or above this line: /home/junior/MagicMirror/config/config.js:130[39m
[31m {[39m
[31m ^[39m[31mSyntaxError: Unexpected token '{'[39m
[31m at internalCompileFunction (node:internal/vm:73:18)[39m
[31m at wrapSafe (node:internal/modules/cjs/loader:1185:20)[39m
[31m at Module._compile (node:internal/modules/cjs/loader:1227:27)[39m
[31m at Object…js (node:internal/modules/cjs/loader:1326:10)[39m
[31m at Module.load (node:internal/modules/cjs/loader:1126:32)[39m
[31m at node:internal/modules/cjs/loader:967:12[39m
[31m at Function._load (node:electron/js2c/node_init:2:13357)[39m
[31m at Module.require (node:internal/modules/cjs/loader:1150:19)[39m
[31m at require (node:internal/modules/cjs/helpers:121:18)[39m
[31m at loadConfig (/home/junior/MagicMirror/js/app.js:118:14)[39m
[31m at App.start (/home/junior/MagicMirror/js/app.js:248:18)[39m
[31m at Object. (/home/junior/MagicMirror/js/electron.js:192:7)[39m
[31m at Module._compile (node:internal/modules/cjs/loader:1271:14)[39m
[31m at Object…js (node:internal/modules/cjs/loader:1326:10)[39m
[31m at Module.load (node:internal/modules/cjs/loader:1126:32)[39m
[31m at node:internal/modules/cjs/loader:967:12[39m
/home/junior/MagicMirror/node_modules/electron/dist/electron exited with signal SIGINT
[27.03.2025 10:15.58.981] [WARN] Version is incorrect. Skip module: ‘MMM-Config’
Warning: vkCreateInstance: Found no drivers!
Warning: vkCreateInstance failed with VK_ERROR_INCOMPATIBLE_DRIVER
at CheckVkSuccessImpl (…/…/third_party/dawn/src/dawn/native/vulkan/VulkanError.cpp:88)
at CreateVkInstance (…/…/third_party/dawn/src/dawn/native/vulkan/BackendVk.cpp:458)
at Initialize (…/…/third_party/dawn/src/dawn/native/vulkan/BackendVk.cpp:344)
at Create (…/…/third_party/dawn/src/dawn/native/vulkan/BackendVk.cpp:266)
at operator() (…/…/third_party/dawn/src/dawn/native/vulkan/BackendVk.cpp:521)/home/junior/MagicMirror/node_modules/electron/dist/electron exited with signal SIGSEGV
[27.03.2025 10:22.57.762] [WARN] Version is incorrect. Skip module: ‘MMM-Config’
Warning: vkCreateInstance: Found no drivers!
Warning: vkCreateInstance failed with VK_ERROR_INCOMPATIBLE_DRIVER
at CheckVkSuccessImpl (…/…/third_party/dawn/src/dawn/native/vulkan/VulkanError.cpp:88)
at CreateVkInstance (…/…/third_party/dawn/src/dawn/native/vulkan/BackendVk.cpp:458)
at Initialize (…/…/third_party/dawn/src/dawn/native/vulkan/BackendVk.cpp:344)
at Create (…/…/third_party/dawn/src/dawn/native/vulkan/BackendVk.cpp:266)
at operator() (…/…/third_party/dawn/src/dawn/native/vulkan/BackendVk.cpp:521)/home/junior/MagicMirror/node_modules/electron/dist/electron exited with signal SIGINT
[27.03.2025 10:29.29.494] [ERROR] [31mWARNING! Could not validate config file. Starting with default configuration. Please correct syntax errors at or above this line: /home/junior/MagicMirror/config/config.js:130[39m
[31m {[39m
[31m ^[39m[31mSyntaxError: Unexpected token '{'[39m
[31m at internalCompileFunction (node:internal/vm:73:18)[39m
[31m at wrapSafe (node:internal/modules/cjs/loader:1185:20)[39m
[31m at Module._compile (node:internal/modules/cjs/loader:1227:27)[39m
[31m at Object…js (node:internal/modules/cjs/loader:1326:10)[39m
[31m at Module.load (node:internal/modules/cjs/loader:1126:32)[39m
[31m at node:internal/modules/cjs/loader:967:12[39m
[31m at Function._load (node:electron/js2c/node_init:2:13357)[39m
[31m at Module.require (node:internal/modules/cjs/loader:1150:19)[39m
[31m at require (node:internal/modules/cjs/helpers:121:18)[39m
[31m at loadConfig (/home/junior/MagicMirror/js/app.js:118:14)[39m
[31m at App.start (/home/junior/MagicMirror/js/app.js:248:18)[39m
[31m at Object. (/home/junior/MagicMirror/js/electron.js:192:7)[39m
[31m at Module._compile (node:internal/modules/cjs/loader:1271:14)[39m
[31m at Object…js (node:internal/modules/cjs/loader:1326:10)[39m
[31m at Module.load (node:internal/modules/cjs/loader:1126:32)[39m
[31m at node:internal/modules/cjs/loader:967:12[39m
/home/junior/MagicMirror/node_modules/electron/dist/electron exited with signal SIGINT
[27.03.2025 10:30.26.627] [ERROR] [31mWARNING! Could not validate config file. Starting with default configuration. Please correct syntax errors at or above this line: /home/junior/MagicMirror/config/config.js:130[39m
[31m {[39m
[31m ^[39m -
@DarkV mmm-config requires MagicMirror version 2.28 or higher
also, you have some syntax error around line 122 in config.js
pm2 flush to empty the logs
and see what hsppens after you fix that config.js error
-
@sdetweil, I’m sorry. Can you please highlight where I have the error? I am considering reinstalling it as I cannot even update Magic Mirror. I want to back up Config.js, but if it contains faults, then I will be back to square one.
/* * MagicMirror² Config Sample * * By Michael Teeuw https://michaelteeuw.nl * MIT Licensed. * * For more information on how you can configure this file * see https://docs.magicmirror.builders/configuration/introduction.html * and https://docs.magicmirror.builders/modules/configuration.html */ let config = { address: "localhost", // 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 or empty, is "localhost" port: 8080, basePath: "/", // The URL path where MagicMirror² is hosted. If you are using a Reverse proxy // you must set the sub path here. basePath must end with a / ipWhitelist: [], // Set [] to allow all IP addresses // or add a specific IPv4 of 192.168.2.49 : // ["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"], useHttps: false, // Support HTTPS or not, default "false" will use HTTP httpsPrivateKey: "", // HTTPS private key path, only require when useHttps is true httpsCertificate: "", // HTTPS Certificate path, only require when useHttps is true language: "en", locale: "en-US", logLevel: ["INFO", "LOG", "WARN", "ERROR"], // Add "DEBUG" for even more logging timeFormat: 24, units: "metric", // serverOnly: true/false/"local" , // local for armv6l processors, default // starts serveronly and then starts chrome browser // false, default for all NON-armv6l devices // true, force serveronly mode, because you want to.. no UI on this device modules: [ { module: 'MMM-MovieListings', position: 'bottom_center', // This can be any of the regions. Best results in left or$ config: { apiKey: '', region: 'GB', language: 'en-UK', interface: 'poster', //'list', 'poster', 'detailed' includeMoviePlot: false, maxPlotLength: 198, header: 'Kinofilme', moviesPerPage: 0, refreshInterval: 1000 * 60 * 60 * 24, //Once a day baseUrl: 'https://api.themoviedb.org/3/movie/now_playing', animationSpeed: 2.5 * 1000, pageChangeInterval: 35 * 1000 } }, { module: 'MMM-Globe', position: 'bottom_left', config: { style: 'geoColor', imageSize: 300, ownImagePath:'', updateInterval: 10*60*1000 } }, { module: 'MMM-Tools', position: 'bottom_right', config: { refresh: 1000 * 5, containerSize: null, itemSize: null } }, { module: "MMM-EyeCandy", position: "top_center", config: { maxWidth: "75%", // Sizes the images. Retains aspect ratio. style: '1', // Style number or use ownImagePath to override style ownImagePath: '', // 'modules/MMM-EyeCandy/pix/name-graphics-lisa-596441.jpg' } }, { module: "alert", }, { module: "updatenotification", position: "top_bar" }, { module: "clock", position: "top_right" }, { module: "calendar", header: "UK Holidays", position: "top_right", config: { calendars: [ { symbol: "calendar-check-o ", url: "https://www.calendarlabs.com/ical-calendar/ics/75/UK_Holidays.ics" } ] } }, { module: "compliments", position: "top_bar" }, { module: "MMM-OpenmapWeather", position: "top_left", // This can be any of the regions. Best results in left or right regions. header: "Current Weather", //Location is the default value if header is empty or not defined. config: { // See 'Configuration options' for more information. location: "CROYDON,LONDON", locationID: "2651817", //Location ID from http://openweathermap.org/help/city_list.txt appid: "", //openweathermap.org API key colorIcon: true } }, { module:"MMM-Config", position:"top_left", // the QR code (if requested) will appear here config:{ showQR: true } }, { module: "weather", position: "top_left", header: "Weather Forecast", config: { weatherProvider: "openweathermap", type: "forecast", location: "London", locationID: "2651817", //ID from http://bulk.openweathermap.org/sample/city.list.json.gz; unzip the gz file and find your city apiKey: "" } }, { module: "newsfeed", position: "bottom_bar", config: { feeds: [ { title: "BBC UK News", url: "http://feeds.bbci.co.uk/news/uk/rss.xml" } ], showSourceTitle: true, showPublishDate: true, broadcastNewsFeeds: true, broadcastNewsUpdates: true } }, ] }; /*************** DO NOT EDIT THE LINE BELOW ***************/ if (typeof module !== "undefined") {module.exports = config;} -
@DarkV i do not SEE anything, but i am away from my computer all day, driving.
so i cannot run it thru the
cd ~/MagicMirror npm run config:checkcommand
-
@sdetweil said in Are you tired of editing config.js, or have trouble doing it, see my new module:
npm run config:check
[04.04.2025 16:09.03.683] [INFO] Checking file… /home/junior/MagicMirror/config/config.js
[04.04.2025 16:09.03.781] [INFO] Your configuration file doesn’t contain syntax errors :)
junior@MAGIC-MIRROR:~/MagicMirror $ -
@DarkV ok
now docd ~/MagicMirror/MMM-Config ./test-convert.sh overrideyou should get one message
completed -
@sdetweil
Results
junior@MAGIC-MIRROR:~/MagicMirror/modules/MMM-Config $ ./test-convert.sh override
-bash: ./test-convert.sh: No such file or directory
junior@MAGIC-MIRROR:~/MagicMirror/modules/MMM-Config $I used a fresh SD card for the reinstallation, but some of her modules are incompatible with the new setup. Consequently, my wife has firmly decided to stick with the current version until her modules stop functioning. Unfortunately, since one of the modules doesn’t work with the old MagicMirror version, I’m at an impasse. It is a pity, I wanted this as due to dyslexia, this would have been perfect for my situation
-
@DarkV ok,my fault
cd ~/MagicMirror/modules/MMM-Config ./test_convert.sh override -
@sdetweil said in Are you tired of editing config.js, or have trouble doing it, see my new module:
./test_convert.sh override
junior@MAGIC-MIRROR:~/MagicMirror/modules/MMM-Config $ ./test_convert.sh overri de
--------------------MMM-Config
module updatenotification-defaults has an error in the construction of its defau lts section
the error line is disabled: true;
please change it to the literal value of the referenced variable
and restart MagicMirror
--------------------MMM-Config
junior@MAGIC-MIRROR:~/MagicMirror/modules/MMM-Config $
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login
