mirror of
https://github.com/MichMich/MagicMirror.git
synced 2025-07-04 22:58:03 +00:00
Merge pull request #673 from bastilimbach/feature/docker
Added Docker support for server only mode
This commit is contained in:
commit
049d249609
72
.dockerignore
Normal file
72
.dockerignore
Normal file
@ -0,0 +1,72 @@
|
|||||||
|
# Various Node ignoramuses.
|
||||||
|
|
||||||
|
logs
|
||||||
|
*.log
|
||||||
|
npm-debug.log*
|
||||||
|
pids
|
||||||
|
*.pid
|
||||||
|
*.seed
|
||||||
|
lib-cov
|
||||||
|
coverage
|
||||||
|
.grunt
|
||||||
|
.lock-wscript
|
||||||
|
build/Release
|
||||||
|
node_modules
|
||||||
|
jspm_modules
|
||||||
|
.npm
|
||||||
|
.node_repl_history
|
||||||
|
|
||||||
|
# Various Windows ignoramuses.
|
||||||
|
Thumbs.db
|
||||||
|
ehthumbs.db
|
||||||
|
Desktop.ini
|
||||||
|
$RECYCLE.BIN/
|
||||||
|
*.cab
|
||||||
|
*.msi
|
||||||
|
*.msm
|
||||||
|
*.msp
|
||||||
|
*.lnk
|
||||||
|
|
||||||
|
# Various OSX ignoramuses.
|
||||||
|
.DS_Store
|
||||||
|
.AppleDouble
|
||||||
|
.LSOverride
|
||||||
|
Icon
|
||||||
|
._*
|
||||||
|
.DocumentRevisions-V100
|
||||||
|
.fseventsd
|
||||||
|
.Spotlight-V100
|
||||||
|
.TemporaryItems
|
||||||
|
.Trashes
|
||||||
|
.VolumeIcon.icns
|
||||||
|
.AppleDB
|
||||||
|
.AppleDesktop
|
||||||
|
Network Trash Folder
|
||||||
|
Temporary Items
|
||||||
|
.apdisk
|
||||||
|
|
||||||
|
# Various Linux ignoramuses.
|
||||||
|
|
||||||
|
.fuse_hidden*
|
||||||
|
.directory
|
||||||
|
.Trash-*
|
||||||
|
|
||||||
|
# Various Magic Mirror ignoramuses and anti-ignoramuses.
|
||||||
|
|
||||||
|
# Don't ignore the node_helper core module.
|
||||||
|
!/modules/node_helper
|
||||||
|
!/modules/node_helper/**
|
||||||
|
|
||||||
|
# Ignore all modules except the default modules.
|
||||||
|
/modules/**
|
||||||
|
!/modules/default/**
|
||||||
|
|
||||||
|
# Ignore changes to the custom css files.
|
||||||
|
/css/custom.css
|
||||||
|
|
||||||
|
# Ignore unnecessary files for docker
|
||||||
|
CHANGELOG.md
|
||||||
|
LICENSE.md
|
||||||
|
README.md
|
||||||
|
Gruntfile.js
|
||||||
|
.*
|
2
.gitignore
vendored
2
.gitignore
vendored
@ -53,7 +53,7 @@ Temporary Items
|
|||||||
|
|
||||||
# Various Magic Mirror ignoramuses and anti-ignoramuses.
|
# Various Magic Mirror ignoramuses and anti-ignoramuses.
|
||||||
|
|
||||||
# Don't ignore the node_helper nore module.
|
# Don't ignore the node_helper core module.
|
||||||
!/modules/node_helper
|
!/modules/node_helper
|
||||||
!/modules/node_helper/**
|
!/modules/node_helper/**
|
||||||
|
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
All notable changes to this project will be documented in this file.
|
All notable changes to this project will be documented in this file.
|
||||||
This project adheres to [Semantic Versioning](http://semver.org/).
|
This project adheres to [Semantic Versioning](http://semver.org/).
|
||||||
|
|
||||||
|
|
||||||
## [2.1.1] - Unreleased
|
## [2.1.1] - Unreleased
|
||||||
|
|
||||||
**Note:** This update uses new dependencies. Please update using the following command: `git pull && npm install`
|
**Note:** This update uses new dependencies. Please update using the following command: `git pull && npm install`
|
||||||
@ -19,6 +20,7 @@ This project adheres to [Semantic Versioning](http://semver.org/).
|
|||||||
- Run task jsonlint to check translation files.
|
- Run task jsonlint to check translation files.
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
- Added Docker support (Pull Request [#673](https://github.com/MichMich/MagicMirror/pull/673))
|
||||||
- Calendar-specific support for `maximumEntries`, and ` maximumNumberOfDays`
|
- Calendar-specific support for `maximumEntries`, and ` maximumNumberOfDays`
|
||||||
- Add loaded function to modules, providing an async callback.
|
- Add loaded function to modules, providing an async callback.
|
||||||
- Made default newsfeed module aware of gesture events from [MMM-Gestures](https://github.com/thobach/MMM-Gestures)
|
- Made default newsfeed module aware of gesture events from [MMM-Gestures](https://github.com/thobach/MMM-Gestures)
|
||||||
|
15
Dockerfile
Normal file
15
Dockerfile
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
FROM node:latest
|
||||||
|
|
||||||
|
WORKDIR /opt/magic_mirror
|
||||||
|
COPY . .
|
||||||
|
COPY /modules unmount_modules
|
||||||
|
COPY /config unmount_config
|
||||||
|
|
||||||
|
ENV NODE_ENV production
|
||||||
|
ENV MM_PORT 8080
|
||||||
|
|
||||||
|
RUN npm install
|
||||||
|
RUN ["chmod", "+x", "docker-entrypoint.sh"]
|
||||||
|
|
||||||
|
EXPOSE $MM_PORT
|
||||||
|
ENTRYPOINT ["/opt/magic_mirror/docker-entrypoint.sh"]
|
35
README.md
35
README.md
@ -46,8 +46,41 @@ curl -sL https://raw.githubusercontent.com/MichMich/MagicMirror/master/installer
|
|||||||
**Note:** if you want to debug on Raspberry Pi you can use `npm start dev` which will start the MagicMirror app with Dev Tools enabled.
|
**Note:** if you want to debug on Raspberry Pi you can use `npm start dev` which will start the MagicMirror app with Dev Tools enabled.
|
||||||
|
|
||||||
### Server Only
|
### Server Only
|
||||||
|
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. Detailed description below.
|
||||||
|
|
||||||
In some cases, you want to start the application without an actual app window. In this case, execute the following command from the MagicMirror folder: `node serveronly`. This will start the server, after which you can open the application in your browser of choice.
|
#### Docker
|
||||||
|
|
||||||
|
MagicMirror² in server only mode can be deployed using [Docker](https://docker.com). After a successful [Docker installation](https://docs.docker.com/engine/installation/) you just need to execute the following command in the shell:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
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 \
|
||||||
|
MichMich/MagicMirror
|
||||||
|
```
|
||||||
|
|
||||||
|
| **Volumes** | **Description** |
|
||||||
|
| --- | --- |
|
||||||
|
| `/opt/magic_mirror/config` | Mount this volume to insert your own config into the docker container. |
|
||||||
|
| `/opt/magic_mirror/modules` | Mount this volume to add your own custom modules into the docker container. |
|
||||||
|
|
||||||
|
You may need to add your Docker Host IP to your `ipWhitelist` option. If you have some issues setting up this configuration, check [this forum post](https://forum.magicmirror.builders/topic/1326/ipwhitelist-howto).
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
var config = {
|
||||||
|
ipWhitelist: ["127.0.0.1", "::ffff:127.0.0.1", "::1", "::ffff:172.17.0.1"]
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Manual
|
||||||
|
|
||||||
|
1. Download and install the latest Node.js version.
|
||||||
|
2. Clone the repository and check out the master branch: `git clone https://github.com/MichMich/MagicMirror`
|
||||||
|
3. Enter the repository: `cd ~/MagicMirror`
|
||||||
|
4. Install and run the app: `npm install && node serveronly`
|
||||||
|
|
||||||
### Raspberry Configuration & Auto Start.
|
### Raspberry Configuration & Auto Start.
|
||||||
|
|
||||||
|
11
docker-entrypoint.sh
Normal file
11
docker-entrypoint.sh
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
if [ ! -f /opt/magic_mirror/modules ]; then
|
||||||
|
cp -R /opt/magic_mirror/unmount_modules/. /opt/magic_mirror/modules
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -f /opt/magic_mirror/config ]; then
|
||||||
|
cp -R /opt/magic_mirror/unmount_config/. /opt/magic_mirror/config
|
||||||
|
fi
|
||||||
|
|
||||||
|
node serveronly
|
@ -8,7 +8,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
var defaults = {
|
var defaults = {
|
||||||
port: 8080,
|
port: process.env.MM_PORT || 8080,
|
||||||
kioskmode: false,
|
kioskmode: false,
|
||||||
electronOptions: {},
|
electronOptions: {},
|
||||||
ipWhitelist: ["127.0.0.1", "::ffff:127.0.0.1", "::1"],
|
ipWhitelist: ["127.0.0.1", "::ffff:127.0.0.1", "::1"],
|
||||||
|
Loading…
x
Reference in New Issue
Block a user