MagicMirror Package Manager

Bee-Mar, updated 🕥 2023-03-26 03:32:51

PayPal License Travis CI Docker Pulls PyPI version MagicMirror Package Manager

| Author | Contact | | --------------- | --------------------------------- | | Brandon Marlowe | [email protected] |

MMPM, the MagicMirror Package Manager is a self updating command line and graphical interface designed to simplify the installation, removal, and maintenance of MagicMirror packages.

The MagicMirror Package Manager is featured as an alternative installation method on the MagicMirror Documentation.

Features

  • Installation, removal, updating, and upgrading of packages
  • Search for and show package details
  • Adding external packages (think of it like PPAs for Ubuntu)
  • Tab-Autocompletion for the CLI
  • Quick MagicMirror config editing access
  • Installing MagicMirror
  • Hide/Show MagicMirror modules
  • Start/Stop/Restart MagicMirror (works with npm, pm2, and docker-compose)
  • RaspberryPi 3 screen rotation

Quick Installation Guide

sh sudo apt install libffi-dev nginx-full -y python3 -m pip install --upgrade --no-cache-dir mmpm mmpm --guided-setup echo 'export PATH="$PATH:$HOME/.local/bin"' >> ~/.bashrc source ~/.bashrc

Possible Installation Error

If you happen to see the following after installing and running a mmpm command:

sh Traceback (most recent call last): File "setup.py", line 2, in <module> from setuptools import setup, find_packages File "/usr/local/lib/python3.7/site-packages/setuptools/__init__.py", line 12, in <module> from setuptools.extension import Extension File "/usr/local/lib/python3.7/site-packages/setuptools/extension.py", line 7, in <module> from setuptools.dist import _get_unpatched File "/usr/local/lib/python3.7/site-packages/setuptools/dist.py", line 16, in <module> import pkg_resources File "/usr/local/lib/python3.7/site-packages/pkg_resources.py", line 1479, in <module> register_loader_type(importlib_bootstrap.SourceFileLoader, DefaultProvider) AttributeError: module 'importlib._bootstrap' has no attribute 'SourceFileLoader'

Run the following command to shore up your pip version:

sh python -m ensurepip --upgrade # you may need to call python3 instead of python

Look to the Wiki

Make sure you've followed all the instructions for installation, configuring environment variables, and the hide/show modules feature setup.

Note: the Environment Variables setup is extremely important.

Creating Issues

Consult the Wiki before posting any issues, and use one of the provided templates (if possible) when filing an issue.

For any bugs encountered, examine the log files by running mmpm log. If creating a GitHub issue is needed, use one of the issue templates, and please attach the log files, your config.js, and provide what steps can be take to reproduce the bug. You can create a ZIP archive of the MMPM log files files through the Control Center of the GUI, or by running mmpm log --zip through the CLI. If for some reason you cannot access mmpm log --zip, you can find the files in ~/.config/mmpm/log and /var/log/nginx. All log files for MMPM in /var/log/nginx will be prefixed with either mmpm-access or mmpm-error.

GUI Preview

Control Center:

GUI Control Center

Config Editor:

GUI Config Editor

Active Processes:

GUI Active Processes

MMPM/MagicMirror Marketplace:

GUI MarketPlace

MMPM/MagicMirror Locally Installed Packages:

GUI LocalPackages

Potential Problems

This project is entirely dependent on the structure of the MagicMirror 3rd Party Modules page. The HTML is parsed, and the appropriate text of each module is extracted. If for some reason any of the information is not displayed correctly, it is most likely due to someone changing the structure of the page. Ideally, in the future, a database will be constructed, and things will be handeled in a more formal, predictable way.

Issues

Bump http-cache-semantics from 4.1.0 to 4.1.1 in /gui

opened on 2023-02-04 22:18:15 by dependabot[bot]

Bumps http-cache-semantics from 4.1.0 to 4.1.1.

Commits


Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) - `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language - `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language - `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language - `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/Bee-Mar/mmpm/network/alerts).

BUG: Unable to retrieve active modules and can't edit config files in the web interface

opened on 2023-02-01 14:59:08 by LightTemplar

Describe the Bug In the web Interface of MMPM there is a message "Unable to retrieve active modules" and I can't edit config files in the web interface - they all are shown empty.

To Reproduce 1. I installed Magic Mirror and MMPM in Docker using docker compose from this template: https://gitlab.com/khassel/magicmirror/-/blob/master/run/serveronly_mmpm.yml, set own volume and ports. 2. in the ~/.config/mmpm/mmpm-env.json I tried many values for MMPM_MAGICMIRROR_URI: http://172.23.0.2:8080 (ip from docker container), http://mm:8080 (container name), http://myserver:10080 (my server with docker containers and outter port) and restarted both containers - nothing helped.

Expected behavior I wanted to manage plugins of Magic Mirror

Operating System, Python3 Version, and Web Browser\

- output from cat /etc/os-release couldn't login into container shell. - output from python3 --version couldn't login into container shell.

- Web Browser (firefox, chrome, safari, chromium, etc) Brave: [Version 1.47.186 Chromium: 109.0.5414.119 (Official Build) (64-bit)]

MMPM Environment Settings

- output from mmpm env couldn't login into container shell. So I attached a mmpm-env.json

MMPM Log Files

- Attach the file produced Download MMPM log files within the Control Center of the GUI or from the mmpm log --zip Downloading MMPM log files doesn't work as well - hitting the button does nothing. But I attached a non empty file from ~/.config/mmpm/log folder.

MagicMirror Config

- your MagicMirror config.js see attachment. mmpm.zip

BUG: Having a heck of a time Installing

opened on 2023-01-28 16:31:17 by JeremyGarrard

Describe the Bug

Is this an issue with the CLI or GUI?

Is this something that should be put in the Wiki?

A clear and concise description of what the bug is. I've been trying to install for a while now and I don't know what's wrong! I am able to get into the GUI but I'm met with 'Unable to retrieve active modules' every time. I have installed the new version, made sure my ipwhitelist is an empty array, downloaded the module, etc etc.

Sorry for being a pest but I could really use a hand! This module is just so cool!

thank you for any help

To Reproduce Steps to reproduce the behavior: 1. Go to '...' 2. Click on '....' 3. Scroll down to '....' 4. See error

Expected behavior A clear and concise description of what you expected to happen.

Screenshots If applicable, add screenshots to help explain your problem.

Operating System, Python3 Version, and Web Browser\ (Please complete the following information)

  • output from cat /etc/os-release

  • output from python3 --version

  • Web Browser (firefox, chrome, safari, chromium, etc)

MMPM Environment Settings

  • output from mmpm env

MMPM Log Files

  • Attach the file produced Download MMPM log files within the Control Center of the GUI or from the mmpm log --zip

MagicMirror Config

BUG: unable to see config editor, marketplace in gui

opened on 2023-01-25 05:06:54 by fpy-homeb

Describe the Bug

Is this an issue with the CLI or GUI?

Is this something that should be put in the Wiki?

A clear and concise description of what the bug is.

To Reproduce Steps to reproduce the behavior: 1. Go to '...' 2. Click on '....' 3. Scroll down to '....' 4. See error

Expected behavior A clear and concise description of what you expected to happen.

Screenshots If applicable, add screenshots to help explain your problem.

Operating System, Python3 Version, and Web Browser\ (Please complete the following information)

  • output from cat /etc/os-release

  • output from python3 --version

  • Web Browser (firefox, chrome, safari, chromium, etc)

MMPM Environment Settings

  • output from mmpm env

MMPM Log Files

  • Attach the file produced Download MMPM log files within the Control Center of the GUI or from the mmpm log --zip

MagicMirror Config

  • your MagicMirror config.js

Hey, This might be a "me" issue, I have got the control centre working, I can show hide modules. But anything which involves the pi eg restart, config editor, marketplace etc don't work or show a blank screen?

Might I have missed something within the setup?

Any help on a install step I might have missed would be great! Thanks

Bump minimatch from 3.0.4 to 3.1.2 in /gui

opened on 2023-01-23 03:07:35 by dependabot[bot]

Bumps minimatch from 3.0.4 to 3.1.2.

Commits


Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) - `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language - `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language - `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language - `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/Bee-Mar/mmpm/network/alerts).

Bump @angular/core from 13.3.12 to 14.0.0 in /gui

opened on 2023-01-23 03:05:15 by dependabot[bot]

Bumps @angular/core from 13.3.12 to 14.0.0.

Release notes

Sourced from @​angular/core's releases.

v14.0.0

14.0.0 (2022-06-02)

Breaking Changes

animations

  • The AnimationDriver.getParentElement method has become required, so any implementors of this interface are now required to provide an implementation for this method. This breakage is unlikely to affect application developers, as AnimationDriver is not expected to be implemented in user code.

common

  • Adds new required class member that any implementors of the LocationStrategy will need to satisfy. Location does not depend on PlatformLocation anymore.

compiler

  • Keyframes names are now prefixed with the component's "scope name". For example, the following keyframes rule in a component definition, whose "scope name" is host-my-cmp:

    @​keyframes foo { ... }

    will become:

    @​keyframes host-my-cmp_foo { ... }

    Any TypeScript/JavaScript code which relied on the names of keyframes rules will no longer match.

    The recommended solutions in this case are to either:

    • change the component's view encapsulation to the None or ShadowDom
    • define keyframes rules in global stylesheets (e.g styles.css)
    • define keyframes rules programmatically in code.
  • Keyframes names are now prefixed with the component's "scope name". For example, the following keyframes rule in a component definition, whose "scope name" is host-my-cmp:

    @​keyframes foo { ... }

    will become:

    @​keyframes host-my-cmp_foo { ... }

    Any TypeScript/JavaScript code which relied on the names of keyframes rules will no longer match.

    The recommended solutions in this case are to either:

    • change the component's view encapsulation to the None or ShadowDom
    • define keyframes rules in global stylesheets (e.g styles.css)
    • define keyframes rules programmatically in code.

core

  • Support for Node.js v12 has been removed as it will become EOL on 2022-04-30. Please use Node.js v14.15 or later.
  • TypeScript versions older than 4.6 are no longer supported.

... (truncated)

Changelog

Sourced from @​angular/core's changelog.

13.3.12 (2022-11-21)

Breaking Changes

core

  • Existing iframe usages may have security-sensitive attributes applied as an attribute or property binding in a template or via host bindings in a directive. Such usages would require an update to ensure compliance with the new stricter rules around iframe bindings.

core

Commit Type Description
b1d7b79ff4 fix hardening attribute and property binding rules for elements (#48029)

Special Thanks

Andrew Kushnir, Andrew Scott, George Looshch, Joey Perrott and Paul Gschwendtner

14.2.12 (2022-11-21)

Breaking Changes

core

  • Existing iframe usages may have security-sensitive attributes applied as an attribute or property binding in a template or via host bindings in a directive. Such usages would require an update to ensure compliance with the new stricter rules around iframe bindings.

core

Commit Type Description
54814c8e9b fix hardening attribute and property binding rules for elements (#48028)

Special Thanks

Andrew Kushnir

15.0.0 (2022-11-16)

Blog post "Angular v15 is now available".

Breaking Changes

compiler

  • Keyframes names are now prefixed with the component's "scope name". For example, the following keyframes rule in a component definition, whose "scope name" is host-my-cmp:

    @​keyframes foo { ... }

    will become:

    @​keyframes host-my-cmp_foo { ... }

    Any TypeScript/JavaScript code which relied on the names of keyframes rules will no longer match.

    The recommended solutions in this case are to either:

    • change the component's view encapsulation to the None or ShadowDom
    • define keyframes rules in global stylesheets (e.g styles.css)

... (truncated)

Commits
  • bf6b44b docs(core): mark the standalone APIs as Developer Preview (#46050)
  • 536939e docs(core): improve standalone-related docs and add more usage examples (#46202)
  • c901934 docs: add the Standalone guide link to API docs of component/directive/pipe d...
  • 51baa0b docs(core): improve inject function docs (#46168)
  • ba9f30c fix(core): include component name into unknown element/property error message...
  • 5dee53b docs: create a dedicated page for the NG0203 error (#46166)
  • 35653ce fix(core): add more details to the MISSING_INJECTION_CONTEXT error (#46166)
  • 724e88e fix(compiler-cli): preserve forwardRef for component scopes (#46139)
  • 0bc77f4 fix(core): better error message when unknown property is present (#46147)
  • ddce357 fix(core): improve TestBed declarations standalone error message (#45999)
  • Additional commits viewable in compare view


Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) - `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language - `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language - `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language - `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/Bee-Mar/mmpm/network/alerts).

Releases

2023-01-15 22:13:52

2022-04-30 21:36:34

2022-04-30 14:47:47

2.12 2021-12-15 04:10:53

2021-05-11 15:02:07

2020-12-15 12:12:40

Brandon Marlowe

Master of Computer Science -- Open source consumer, proprietary producer, and professional software engineer. C++, Python, security, and all things Linux

GitHub Repository

magicmirror magicmirror2 python python3 cli raspberry-pi raspberry-pi-3 angular mypy monaco-editor socketio