@mumblebaj Of course ! This is all my config file:
/* Config Sample
*
* 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
*
* You can use environment variables using a `config.js.template` file instead of `config.js`
* which will be converted to `config.js` while starting. For more information
* see https://docs.magicmirror.builders/configuration/introduction.html#enviromnent-variables
*/
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: ["127.0.0.1", "::ffff:127.0.0.1", "::1"], // 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"],
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: "es",
locale: "es-ES",
logLevel: ["INFO", "LOG", "WARN", "ERROR"], // Add "DEBUG" for even more logging
timeFormat: 24,
units: "metric",
modules: [
{
module: "alert",
},
{
module: "clock",
position: "top_left"
},
{
module: "calendar",
position: "top_left",
config: {
broadcastPastEvents: true,
calendars: [
{
url: "calendar.ics",
name: "ufransa",
color: "orange"
},
{
url: "calendar.ics",
name: "lupita",
color: "green"
},
]
}
},
{
module: "MMM-CustomElementTime"
},
{
module: "MMM-CountEvents",
position: "top_right",
config: {
/* Common default properties */
locale: null,
refresh: 1000 * 60,
unit: "days",
repeat: false,
ignoreBefore: false,
ignoreAfter: false,
className: "default",
output: `<dl><dt class="title"></dt><dd class="output"></dd></dl>`,
numericAlways: false,
reverse: false,
numberOnly: false,
numberSign: false,
useQuarter: false,
onPassed: null,
onUpdated: null,
events: [
{
title: "the event",
targetTime: "2025-07-12",
ignoreAfter: 1000 * 60 * 60 * 24,
},
]
}
},
{
module: "weather",
position: "top_right",
config: {
weatherProvider: "openmeteo",
type: "current",
lat: 40.5290869,
lon: -3.4765786
}
},
{
module: "weather",
position: "top_right",
header: "Weather Forecast",
config: {
weatherProvider: "openmeteo",
type: "forecast",
lat: 40.5290869,
lon: -3.4765786
}
},
{
module: "MMM-CalendarExt3",
position: "bottom_bar",
title: "",
config: {
mode: "month",
instanceId: "basicCalendar",
locale: 'es-ES',
maxEventLines: 5,
firstDayOfWeek: 1,
// eventHeight: 22,
fontSize: 50,
calendarSet: ['ufransa', 'lupita'],
}
},
{
module: "MMM-NewsAPI",
header: "Noticias del mundo",
position: "bottom_bar",
config: {
apiKey: "APIKEY",
type: "horizontal",
choice: "everything",
pageSize: 20,
sortBy: "publishedAt",
drawInterval: 1000 * 30,
templateFile: "template.html",
fetchInterval: 1000 * 60 * 60,
query: {
country: "",
category: "",
q: "",
qInTitle: "",
sources: "",
domains: "",
excludeDomains: "",
language: "en"
}
}
},
]
};
/*************** DO NOT EDIT THE LINE BELOW ***************/
if (typeof module !== "undefined") { module.exports = config; }