Read the statement by Michael Teeuw here.
MM Server Mode in Docker on Raspberry
-
Good day, Ladies and Gentlemen,
Following instructions at https://github.com/MichMich/MagicMirror and https://github.com/bastilimbach/docker-MagicMirror.
The following steps has been done:
- Downloaded and flashed to SD card latest clean Raspbian Stretch with desktop (kernel version 4.14) from raspberry.org.
- Connected Raspberry to WiFi network.
- Installed Docker by executing
curl -sSL https://get.docker.com | sh- Get Docker autostart
sudo systemctl enable docker- added member to docker’s group
sudo usermod -aG docker pi- Reboot system to changes take place
sudo reboot- Downloaded container with magicmirror for raspberry
docker pull bastilimbach/docker-magicmirror:raspberry- Executed container start according to instructions at MM docker page:
docker run -d \ --publish 80:8080 \ --restart always \ --volume ~/magic_mirror/config:/opt/magic_mirror/config \ --volume ~/magic_mirror/modules:/opt/magic_mirror/modules \ --name magic_mirror \ bastilimbach/docker-magicmirror:raspberry- Created config.js file in “/home/pi/magic_mirror/config”
sudo nano config.js-
Edited config.js in “/home/pi/magic_mirror/config” to the following lines:
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"], if (typeof module !== "undefined") { module.exports = config; } language: "en", timeFormat: 24, units: "metric", modules: [ { module: "alert", }, { module: "updatenotification", position: "top_bar" }, { module: "clock", position: "top_left" }, // OTHER MODULES CONFIGURATIONS DELETED HERE FOR SIMPLICITY ] }; /*************** DO NOT EDIT THE LINE BELOW ***************/ if (typeof module !== "undefined") {module.exports = config;} -
Reboot the system
sudo reboot- Checked IP addresses
ifconfigpi@raspberrypi:/ $ ifconfig docker0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 172.17.0.1 netmask 255.255.0.0 broadcast 172.17.255.255 inet6 fe80::36c7:71e6:4c9c:d8d9 prefixlen 64 scopeid 0x20<link> ether 02:42:50:41:f1:09 txqueuelen 0 (Ethernet) RX packets 13 bytes 1775 (1.7 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 174 bytes 40644 (39.6 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 eth0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500 ether b8:27:eb:fd:40:7d txqueuelen 1000 (Ethernet) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 0 bytes 0 (0.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> loop txqueuelen 1000 (Local Loopback) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 0 bytes 0 (0.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 veth0275d60: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 169.254.222.123 netmask 255.255.0.0 broadcast 169.254.255.255 inet6 fe80::6069:90ff:fec9:a75a prefixlen 64 scopeid 0x20<link> ether 62:69:90:c9:a7:5a txqueuelen 0 (Ethernet) RX packets 13 bytes 1957 (1.9 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 350 bytes 82319 (80.3 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.43.78 netmask 255.255.255.0 broadcast 192.168.43.255 inet6 fe80::fff4:43e5:edc6:cc9e prefixlen 64 scopeid 0x20<link> ether b8:27:eb:a8:15:28 txqueuelen 1000 (Ethernet) RX packets 4833 bytes 3587709 (3.4 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 4613 bytes 610563 (596.2 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0- Tried to connect by a local Chromium to the MM server by entering the following addresses into browser’s address line:
127.0.0.1:8080 localhost:8080 127.0.0.1:80 localhost:80Got in browser:
This site can’t be reached The connection was reset. ERR_CONNECTION_RESET- Tried to connect from phone which is connected to the same WiFi network via browser by enetring to the Browser’s address line:
192.168.43.78:8080 192.168.43.78:80Result is the same,
This site can’t be reached The connection was reset. ERR_CONNECTION_RESETFor reference, list of files and folders in home/pi/magic_mirror
pi@raspberrypi:~/magic_mirror $ ls -R .: config modules ./config: config.js config.js.sample ./modules: default node_modules README.md ./modules/default: alert calendar clock compliments currentweather defaultmodules.js helloworld newsfeed updatenotification weather weatherforecast ./modules/default/alert: alert.js classie.js modernizr.custom.js notificationFx.js ns-default.css README.md translations ./modules/default/alert/translations: bg.json da.json de.json en.json es.json fr.json hu.json nl.json ru.json ./modules/default/calendar: calendar.css calendarfetcher.js calendar.js debug.js node_helper.js README.md vendor ./modules/default/calendar/vendor: ical.js ./modules/default/calendar/vendor/ical.js: example.js ical.js index.js LICENSE node-ical.js NOTICE package.json readme.md test ./modules/default/calendar/vendor/ical.js/test: test10.ics test11.ics test1.ics test2.ics test3.ics test4.ics test5.ics test6.ics test7.ics test8.ics test9.ics test.js ./modules/default/clock: clock.js clock_screenshot.png clock_styles.css faces README.md ./modules/default/clock/faces: face-001.svg face-002.svg face-003.svg face-004.svg face-005.svg face-006.svg face-007.svg face-008.svg face-009.svg face-010.svg face-011.svg face-012.svg ./modules/default/compliments: compliments.js compliments_screenshot.png README.md ./modules/default/currentweather: currentweather.css currentweather.js README.md weather_screenshot.png ./modules/default/helloworld: helloworld.js helloworld.njk README.md ./modules/default/newsfeed: fetcher.js newsfeed.js newsfeed_screenshot.png node_helper.js README.md translations ./modules/default/newsfeed/translations: de.json en.json es.json fr.json ./modules/default/updatenotification: node_helper.js README.md updatenotification.js ./modules/default/weather: current.njk current.png forecast.njk forecast.png providers README.md weather.css weather.js weatherobject.js weatherprovider.js ./modules/default/weather/providers: darksky.js openweathermap.js README.md ./modules/default/weatherforecast: forecast_screenshot.png README.md weatherforecast.css weatherforecast.js ./modules/node_modules: node_helper ./modules/node_modules/node_helper: index.jsCould anyone advise what I am doing wrong here?
-
@Serge said in MM Server Mode in Docker on Raspberry:
docker run -d
–publish 80:8080 \is the container running?
dodocker psbecause the docker run did
docker run -d \ --publish 80:8080 \the way to access is thru port 80 on the host machine…
(no other app is trying to use port 80 already, right?, webserver)also,
typically --volume doesn’t like relative file system links--volume ~/magic_mirror/config -
@sdetweil
thanx. I have put into container RUN command direct links--volume /home/pi/magic_mirror/configinstead of relative ones
--volume ~/magic_mirror/configSo the RUN command looked like:
docker run -d \ --publish 80:8080 \ --restart always \ --volume /home/pi/magic_mirror/config:/opt/magic_mirror/config \ --volume /home/pi/magic_mirror/modules:/opt/magic_mirror/modules \ --name magic_mirror \ bastilimbach/docker-magicmirror:raspberryI also changed config, as I understood I should wrote port 80 there, so m,y config.js is the following:
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: 80, 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"], if (typeof module !== "undefined") { module.exports = config; } language: "en", timeFormat: 24, units: "metric", modules: [ { module: "alert", }, { module: "updatenotification", position: "top_bar" }, { module: "clock", position: "top_left" }, // OTHER MODULES CONFIGURATIONS DELETED HERE FOR SIMPLICITY ] }; /*************** DO NOT EDIT THE LINE BELOW ***************/ if (typeof module !== "undefined") {module.exports = config;}I have did once more all the steps
Here is log from terminal
pi@raspberrypi:/ $ docker run -d \ > --publish 80:8080 \ > --restart always \ > --volume /home/pi/magic_mirror/config:/opt/magic_mirror/config \ > --volume /home/pi/magic_mirror/modules:/opt/magic_mirror/modules \ > --name magic_mirror \ > bastilimbach/docker-magicmirror:raspberry 37638fe6e1d0dee6b3ff9973c8ec7e2c7d6b0fa71b4c095e94738b197387074e pi@raspberrypi:/ $ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 37638fe6e1d0 bastilimbach/docker-magicmirror:raspberry "/opt/docker-entrypo…" 11 seconds ago Up 7 seconds 0.0.0.0:80->8080/tcp magic_mirror pi@raspberrypi:/ $ cd /home/pi/magic_mirror/config pi@raspberrypi:~/magic_mirror/config $ sudo nano config.js pi@raspberrypi:~/magic_mirror/config $ cd / pi@raspberrypi:/ $ ifconfig docker0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 172.17.0.1 netmask 255.255.0.0 broadcast 172.17.255.255 inet6 fe80::5b8a:414d:261e:c2f3 prefixlen 64 scopeid 0x20<link> ether 02:42:cf:fa:cf:16 txqueuelen 0 (Ethernet) RX packets 12 bytes 1601 (1.5 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 170 bytes 28294 (27.6 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 eth0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500 ether b8:27:eb:fd:40:7d txqueuelen 1000 (Ethernet) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 0 bytes 0 (0.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> loop txqueuelen 1000 (Local Loopback) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 0 bytes 0 (0.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 veth2d3c6a7: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 169.254.32.50 netmask 255.255.0.0 broadcast 169.254.255.255 inet6 fe80::ef51:3415:a096:b052 prefixlen 64 scopeid 0x20<link> ether 9a:4f:36:79:b3:72 txqueuelen 0 (Ethernet) RX packets 4 bytes 651 (651.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 127 bytes 19147 (18.6 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.43.78 netmask 255.255.255.0 broadcast 192.168.43.255 inet6 fe80::fff4:43e5:edc6:cc9e prefixlen 64 scopeid 0x20<link> ether b8:27:eb:a8:15:28 txqueuelen 1000 (Ethernet) RX packets 13597 bytes 14840294 (14.1 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 11414 bytes 1524830 (1.4 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 pi@raspberrypi:/ $ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 37638fe6e1d0 bastilimbach/docker-magicmirror:raspberry "/opt/docker-entrypo…" About a minute ago Up About a minute 0.0.0.0:80->8080/tcp magic_mirror pi@raspberrypi:/ $When I trying to reach through
localhost:80, 127.0.0.1:80 the browser returnsThis site can’t be reached The connection was reset.Try: Checking the connection Checking the proxy and the firewall ERR_CONNECTION_RESETWhen I am trying to reach through the address
localhost:8080, 127.0.0.1:8080This site can’t be reached 127.0.0.1 refused to connect. Try: Checking the connection, Checking the proxy and the firewall ERR_CONNECTION_REFUSEDSo the errors are different (connection is reset and refused, respectively).
What else should I check , @sdetweil could you please advice me? -
@Serge ok, so you changed the magicmirror config to use port 80 inside the container
your run command -p should be-p host_port:container_port so -p 80:80requests to the host port 80 are forwarded to the container port 80
to make sure that MM in the container is working
do
docker inspect 37638fe6e1d0 | grep -i -m 1 \"ipaddressand look for the ip address assigned to the container
should be"IPAddress": "172.17.0.?????? is most likely 2
then use your local system browser to go to
http://172.17.0.???:80skipping the port forwarding
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