All Projects → bastilimbach → Docker Magicmirror

bastilimbach / Docker Magicmirror

Licence: mit
Docker image for the Magic Mirror 2 project by Michael Teeuw.

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Docker Magicmirror

Mic hat
2 Mic Array for Raspberry Pi
Stars: ✭ 69 (-43.44%)
Mutual labels:  raspberrypi
Gpiozero
A simple interface to GPIO devices with Raspberry Pi
Stars: ✭ 1,302 (+967.21%)
Mutual labels:  raspberrypi
Rpi Tempruntime
基于树莓派3B,DHT11/DHT22,LCD1602的一个实时温度湿度检测系统
Stars: ✭ 109 (-10.66%)
Mutual labels:  raspberrypi
Inkyshot
Get a daily random inspirational quote delivered direct to your desk with Inkyshot. Build multiple Inkyshots and share the inspiration with your friends, family and loved ones ❤️
Stars: ✭ 72 (-40.98%)
Mutual labels:  raspberrypi
Docker Jdownloader
JDownloader 2 Docker Image (Multiarch) - Passed 40M Downloads
Stars: ✭ 85 (-30.33%)
Mutual labels:  raspberrypi
Wifimeshraspberrypi
Workshop to create a sensor application over a WiFi Mesh network
Stars: ✭ 99 (-18.85%)
Mutual labels:  raspberrypi
Q3lite
Q3lite, an OpenGL ES port of Quake III Arena for embedded Linux systems.
Stars: ✭ 64 (-47.54%)
Mutual labels:  raspberrypi
Crankshaft
Crankshaft: A turnkey GNU/Linux solution that transforms a Raspberry Pi to an Android Auto head unit.
Stars: ✭ 1,703 (+1295.9%)
Mutual labels:  raspberrypi
Balena Sound
Build a single or multi-room streamer for an existing audio device using a Raspberry Pi! Supports Bluetooth, Airplay and Spotify Connect
Stars: ✭ 1,306 (+970.49%)
Mutual labels:  raspberrypi
Create
Software for the HifiBerry/BeoCreate Re-Create project for upcycling vintage loudspeakers
Stars: ✭ 103 (-15.57%)
Mutual labels:  raspberrypi
Noisy
Simple random DNS, HTTP/S internet traffic noise generator
Stars: ✭ 1,208 (+890.16%)
Mutual labels:  raspberrypi
Grove.py
Python library for Seeedstudio Grove devices
Stars: ✭ 85 (-30.33%)
Mutual labels:  raspberrypi
Keras Oneclassanomalydetection
[5 FPS - 150 FPS] Learning Deep Features for One-Class Classification (AnomalyDetection). Corresponds RaspberryPi3. Convert to Tensorflow, ONNX, Caffe, PyTorch. Implementation by Python + OpenVINO/Tensorflow Lite.
Stars: ✭ 102 (-16.39%)
Mutual labels:  raspberrypi
Homekitcam
A project to make a Raspberry Pi driven, HomeKit Enabled camera.
Stars: ✭ 69 (-43.44%)
Mutual labels:  raspberrypi
Cameracontrollerapi
The CameraControlerApi is an attempt to control a DSLR via REST functionality.
Stars: ✭ 110 (-9.84%)
Mutual labels:  raspberrypi
Rpi Vk Driver
VK driver for the Raspberry Pi (Broadcom Videocore IV)
Stars: ✭ 1,160 (+850.82%)
Mutual labels:  raspberrypi
Nwjs rpi
[NW.js port for Raspberry Pi] binary compiled for the ARMv6 used in Raspberry Pi (compatible with RPi 2 and RPi 3)
Stars: ✭ 91 (-25.41%)
Mutual labels:  raspberrypi
Gitlab
GitLab CE (Docker image) for ARM devices, this is a mirror repository of
Stars: ✭ 121 (-0.82%)
Mutual labels:  raspberrypi
Yahm
Yet Another Homematic Management - Skripte zur Einrichtung der Homematic CCU Oberfläche in einem LXC Container unter Debian Jessie auf ARM CPU (z.B.: Raspberry Pi & Co)
Stars: ✭ 113 (-7.38%)
Mutual labels:  raspberrypi
Core
Ultibo Core
Stars: ✭ 102 (-16.39%)
Mutual labels:  raspberrypi

MagicMirror²: The open source modular smart mirror platform.

MagicMirror² is an open source modular smart mirror platform. With a growing list of installable modules, the MagicMirror² allows you to convert your hallway or bathroom mirror into your personal assistant.

DockerHub Badge

Why Docker? Build Status

In some cases, you want to start the application without an actual app window. In this case, you can start MagicMirror² in server only mode by manually running node serveronly or using Docker. This will start the server, after which you can open the application in your browser of choice.

Tags

  • latest - The latest stable release of MagicMirror.
  • develop - Image based on the develop branch.
  • vX.Y.Z- Specific MagicMirror release. Take a look at the releases page in the MagicMirror repository to get the correct version number.

The respective docker images are getting updated daily by a cron job from Travis CI.

Run MagicMirror² in server only mode

After a successful Docker installation you just need to execute the following command in the shell:

docker run  -d \
    --publish 80:8080 \
    --restart always \
    --volume ~/magic_mirror/config:/opt/magic_mirror/config \
    --volume ~/magic_mirror/modules:/opt/magic_mirror/modules \
    --volume /etc/localtime:/etc/localtime:ro \
    --name magic_mirror \
    bastilimbach/docker-magicmirror

Environment variables

Environment variables can be passed to the docker container using the --env flag.

Variable Description
TZ Let the environment variable TZ reflect the time zone. Without the correct time zone the MagicMirror² calendar or other modules might show the wrong time of an event. Find you time zone here https://en.wikipedia.org/wiki/List_of_tz_database_time_zones

Volumes

Volume Description
/opt/magic_mirror/config Mount this folder to insert your own config into the docker container. If the folder is empty the container will create a default configuration which can be adapted to you likings.
/opt/magic_mirror/modules Mount this folder to add your own custom modules into the docker container. If the folder is empty the container will copy the default modules from the MagicMirror² repository into the volume.
/opt/magic_mirror/css/custom.css Mount this file to add your own custom css into the docker container.

Important: You need to create the file before you run the container. Otherwise Docker will create a custom.css folder.
/etc/localtime:/etc/localtime:ro Add this to syncronize the time of the host with the docker container.

Important: This is for linux hosts. If you run your docker on other OS, you will need to change this.

Build arguments

Build variable Description
branch Specify a branch or tag of the MagicMirror repository which should be used for building the image. Default: master

Config

If you start the container without providing a custom configuration it will create a default config inside the config volume if it is empty. This config can then be adapted to your likings.

To keep passwords and API secrets out of the config file add .template as extension to the config file (config.js.template) and use shell variable syntax (${MY_API_TOKEN}) as placeholder for your secrets in the config file. Don't forget to pass the template variables as environment to the container. For example: --env MY_API_TOKEN=secret-token or in docker compose file:

    environment:
      - MY_API_TOKEN=secret-token

If you want to build the configuration by yourself be sure to set the following configuration properties accordingly:

var config = {
    address: "0.0.0.0", // Needs to be "0.0.0.0" to make MagicMirror listen on any interface.
    port: 8080, // If you change the port, be sure to also adapt the "--publish" flag in your docker run command. e.g: --publish 80:3000
    ipWhitelist: [] // This is required to allow all IP addresses to access MagicMirror. Can also be set to the docker subnet.
}

Docker compose

If docker-compose is your game, here is an example of such. It will publish the MagicMirror² server on port 8888.

version: '3'
services:
  magicmirror:
    container_name: magicmirror
    image: bastilimbach/docker-magicmirror
    restart: unless-stopped
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - ~/magic_mirror/config:/opt/magic_mirror/config
      - ~/magic_mirror/modules:/opt/magic_mirror/modules
    ports:
      - 8888:8080

Remarks

Time zones

When it comes to time and time zones, MagicMirror² and the individual modules might use these differently. The device that presents the generated page must have the correct time and time zones settings as well. The MagicMirror² default clock uses the local device's time zone to render the time.

E.g: If you use a Raspberry Pi to show the generated result of the MagicMirror² docker, set the time zone on the RPi with

sudo raspi-config

and choose 'Localisation options'

Contribution

I'm happy to accept Pull Requests! Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.

License

MIT ❤️

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].