Git Product home page Git Product logo

mmpm's Introduction

PayPal License GitHub Actions 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.

MagicMirror Package Manager

Quick Installation Guide

MMPM can be installed as a Docker image, or through pip.

docker pull karsten13/mmpm
python3 -m pip install --upgrade mmpm

Ensure Your PATH is Correct

echo 'export PATH="$PATH:$HOME/.local/bin"' >> ~/.bashrc && source ~/.bashrc

Features

  • Manage packages: install, remove, update, and upgrade.
  • Search and view package details.
  • Add custom packages (similar to Ubuntu PPAs).
  • CLI tab-autocompletion.
  • Easy access to MMPM and MagicMirror configuration.
  • Manage MagicMirror: install, upgrade, remove.
  • Control MagicMirror modules: hide/show (details)
  • Control MagicMirror state: start, stop, restart (supports npm, pm2, docker-compose).

Look to the Wiki

Key Pages:

mmpm's People

Contributors

bee-mar avatar dependabot[bot] avatar devtobi avatar herostrat avatar istvanfedak avatar khassel avatar kristjanesperanto avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

mmpm's Issues

Not all package are shown and updated

Hi, i've the problem that "mmpm update" only show 2 modules and not all. What can I do?
env variables are correct. I've no idea what the problem is. All modules function properly on my mirror.

Can you help?
Thanks

500 Error when trying to control magic mirror

Having trouble with the control center. Whenever i try to interact with magic mirror (stop, restart, etc) i get a 500 error. "Start" works but i can't stop it after and have to reboot. It seems to be an issue with "rootlogger". I am able to install and configure modules, just not interact with the MM process. Here are the errors/stack trace:

Exception on /api/stop-magicmirror [GET]
Traceback (most recent call last):
  File "/home/pi/.local/lib/python3.7/site-packages/flask/app.py", line 2447, in wsgi_app
    response = self.full_dispatch_request()
  File "/home/pi/.local/lib/python3.7/site-packages/flask/app.py", line 1952, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/home/pi/.local/lib/python3.7/site-packages/flask_cors/extension.py", line 161, in wrapped_function
    return cors_after_request(app.make_response(f(*args, **kwargs)))
  File "/home/pi/.local/lib/python3.7/site-packages/flask/app.py", line 1821, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "/home/pi/.local/lib/python3.7/site-packages/flask/_compat.py", line 39, in reraise
    raise value
  File "/home/pi/.local/lib/python3.7/site-packages/flask/app.py", line 1950, in full_dispatch_request
    rv = self.dispatch_request()
  File "/home/pi/.local/lib/python3.7/site-packages/flask/app.py", line 1936, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/home/pi/.local/lib/python3.7/site-packages/mmpm/api.py", line 322, in stop_magicmirror
    utils.stop_magicmirror()
  File "/home/pi/.local/lib/python3.7/site-packages/mmpm/utils.py", line 532, in stop_magicmirror
    kill_magicmirror_processes()
  File "/home/pi/.local/lib/python3.7/site-packages/mmpm/utils.py", line 509, in kill_magicmirror_processes
    log.logger('Killing processes associated with MagicMirror: {processes}')
TypeError: 'RootLogger' object is not callable
2020-05-20 20:44:39,704.704 INFO api - after_request: Headers being added after the request
Headers being added after the request
2020-05-20 20:45:26,817.817 INFO api - after_request: Headers being added after the request
Headers being added after the request
2020-05-20 20:45:27,077.077 INFO api - after_request: Headers being added after the request
Headers being added after the request
2020-05-20 20:45:27,097.097 INFO api - after_request: Headers being added after the request
Headers being added after the request
2020-05-20 20:45:27,102.102 INFO api - after_request: Headers being added after the request
Headers being added after the request
2020-05-20 20:45:27,106.106 INFO api - get_magicmirror_config: Retrieving MagicMirror config
Retrieving MagicMirror config
2020-05-20 20:45:27,106.106 INFO api - after_request: Headers being added after the request
Headers being added after the request
2020-05-20 20:45:27,859.859 INFO api - after_request: Headers being added after the request
Headers being added after the request
2020-05-20 20:45:56,348.348 INFO api - update_magicmirror_config: Saving MagicMirror config file
Saving MagicMirror config file
2020-05-20 20:45:56,350.350 INFO api - after_request: Headers being added after the request
Headers being added after the request
2020-05-20 20:54:07,250.250 INFO api - after_request: Headers being added after the request
Headers being added after the request
2020-05-20 20:54:07,528.528 INFO api - after_request: Headers being added after the request
Headers being added after the request
2020-05-20 20:54:07,543.543 INFO api - after_request: Headers being added after the request
Headers being added after the request
2020-05-20 20:54:07,549.549 INFO api - after_request: Headers being added after the request
Headers being added after the request
2020-05-20 20:54:07,557.557 INFO api - get_magicmirror_config: Retrieving MagicMirror config
Retrieving MagicMirror config
2020-05-20 20:54:07,558.558 INFO api - after_request: Headers being added after the request
Headers being added after the request
2020-05-20 20:54:08,296.296 INFO api - after_request: Headers being added after the request
Headers being added after the request
2020-05-20 20:54:20,039.039 ERROR app - log_exception: Exception on /api/stop-magicmirror [GET]
Traceback (most recent call last):
  File "/home/pi/.local/lib/python3.7/site-packages/flask/app.py", line 2447, in wsgi_app
    response = self.full_dispatch_request()
  File "/home/pi/.local/lib/python3.7/site-packages/flask/app.py", line 1952, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/home/pi/.local/lib/python3.7/site-packages/flask_cors/extension.py", line 161, in wrapped_function
    return cors_after_request(app.make_response(f(*args, **kwargs)))
  File "/home/pi/.local/lib/python3.7/site-packages/flask/app.py", line 1821, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "/home/pi/.local/lib/python3.7/site-packages/flask/_compat.py", line 39, in reraise
    raise value
  File "/home/pi/.local/lib/python3.7/site-packages/flask/app.py", line 1950, in full_dispatch_request
    rv = self.dispatch_request()
  File "/home/pi/.local/lib/python3.7/site-packages/flask/app.py", line 1936, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/home/pi/.local/lib/python3.7/site-packages/mmpm/api.py", line 322, in stop_magicmirror
    utils.stop_magicmirror()
  File "/home/pi/.local/lib/python3.7/site-packages/mmpm/utils.py", line 532, in stop_magicmirror
    kill_magicmirror_processes()
  File "/home/pi/.local/lib/python3.7/site-packages/mmpm/utils.py", line 509, in kill_magicmirror_processes
    log.logger('Killing processes associated with MagicMirror: {processes}')
TypeError: 'RootLogger' object is not callable
Exception on /api/stop-magicmirror [GET]
Traceback (most recent call last):
  File "/home/pi/.local/lib/python3.7/site-packages/flask/app.py", line 2447, in wsgi_app
    response = self.full_dispatch_request()
  File "/home/pi/.local/lib/python3.7/site-packages/flask/app.py", line 1952, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/home/pi/.local/lib/python3.7/site-packages/flask_cors/extension.py", line 161, in wrapped_function
    return cors_after_request(app.make_response(f(*args, **kwargs)))
  File "/home/pi/.local/lib/python3.7/site-packages/flask/app.py", line 1821, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "/home/pi/.local/lib/python3.7/site-packages/flask/_compat.py", line 39, in reraise
    raise value
  File "/home/pi/.local/lib/python3.7/site-packages/flask/app.py", line 1950, in full_dispatch_request
    rv = self.dispatch_request()
  File "/home/pi/.local/lib/python3.7/site-packages/flask/app.py", line 1936, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/home/pi/.local/lib/python3.7/site-packages/mmpm/api.py", line 322, in stop_magicmirror
    utils.stop_magicmirror()
  File "/home/pi/.local/lib/python3.7/site-packages/mmpm/utils.py", line 532, in stop_magicmirror
    kill_magicmirror_processes()
  File "/home/pi/.local/lib/python3.7/site-packages/mmpm/utils.py", line 509, in kill_magicmirror_processes
    log.logger('Killing processes associated with MagicMirror: {processes}')
TypeError: 'RootLogger' object is not callable
2020-05-20 20:54:20,042.042 INFO api - after_request: Headers being added after the request
Headers being added after the request
2020-05-20 20:54:20,052.052 ERROR app - log_exception: Exception on /api/stop-magicmirror [GET]
Traceback (most recent call last):
  File "/home/pi/.local/lib/python3.7/site-packages/flask/app.py", line 2447, in wsgi_app
    response = self.full_dispatch_request()
  File "/home/pi/.local/lib/python3.7/site-packages/flask/app.py", line 1952, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/home/pi/.local/lib/python3.7/site-packages/flask_cors/extension.py", line 161, in wrapped_function
    return cors_after_request(app.make_response(f(*args, **kwargs)))
  File "/home/pi/.local/lib/python3.7/site-packages/flask/app.py", line 1821, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "/home/pi/.local/lib/python3.7/site-packages/flask/_compat.py", line 39, in reraise
    raise value
  File "/home/pi/.local/lib/python3.7/site-packages/flask/app.py", line 1950, in full_dispatch_request
    rv = self.dispatch_request()
  File "/home/pi/.local/lib/python3.7/site-packages/flask/app.py", line 1936, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/home/pi/.local/lib/python3.7/site-packages/mmpm/api.py", line 322, in stop_magicmirror
    utils.stop_magicmirror()
  File "/home/pi/.local/lib/python3.7/site-packages/mmpm/utils.py", line 532, in stop_magicmirror
    kill_magicmirror_processes()
  File "/home/pi/.local/lib/python3.7/site-packages/mmpm/utils.py", line 509, in kill_magicmirror_processes
    log.logger('Killing processes associated with MagicMirror: {processes}')
TypeError: 'RootLogger' object is not callable
Exception on /api/stop-magicmirror [GET]
Traceback (most recent call last):
  File "/home/pi/.local/lib/python3.7/site-packages/flask/app.py", line 2447, in wsgi_app
    response = self.full_dispatch_request()
  File "/home/pi/.local/lib/python3.7/site-packages/flask/app.py", line 1952, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/home/pi/.local/lib/python3.7/site-packages/flask_cors/extension.py", line 161, in wrapped_function
    return cors_after_request(app.make_response(f(*args, **kwargs)))
  File "/home/pi/.local/lib/python3.7/site-packages/flask/app.py", line 1821, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "/home/pi/.local/lib/python3.7/site-packages/flask/_compat.py", line 39, in reraise
    raise value
  File "/home/pi/.local/lib/python3.7/site-packages/flask/app.py", line 1950, in full_dispatch_request
    rv = self.dispatch_request()
  File "/home/pi/.local/lib/python3.7/site-packages/flask/app.py", line 1936, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/home/pi/.local/lib/python3.7/site-packages/mmpm/api.py", line 322, in stop_magicmirror
    utils.stop_magicmirror()
  File "/home/pi/.local/lib/python3.7/site-packages/mmpm/utils.py", line 532, in stop_magicmirror
    kill_magicmirror_processes()
  File "/home/pi/.local/lib/python3.7/site-packages/mmpm/utils.py", line 509, in kill_magicmirror_processes
    log.logger('Killing processes associated with MagicMirror: {processes}')
TypeError: 'RootLogger' object is not callable
2020-05-20 20:54:20,055.055 INFO api - after_request: Headers being added after the request
Headers being added after the request

MMPM not detecting Magic Mirror upgrade

When running โ€œmmpm updateโ€ it reports no upgrade needed for my 2.11 install when i am getting an alert that 2.12 is available.

MagicMirror Package Manager

Any suggestions?

BUG: cannt start... + Initializing MagicMirror 3rd party packages database Traceback (most recent call last): and TypeError....

Describe the Bug

Is this an issue with the CLI or GUI? with the installation

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:
pi@smartmirror:~ $ mmpm --guided-setup
Welcome to MMPM's guided setup!

I'll help you setup your environment variables, and install additional features. Pressing CTRL-C will cancel the entire process.
There are 6 to 12 questions, depending on your answers. Let's get started.

What is the absolute path to the root of your MagicMirror installation (ie. /home/pi/MagicMirror)? /home/pi/MagicMirror
Did you install MMPM as a Docker image, or using docker-compose? [yes/y] or [no/n]: n
Did you install MagicMirror using docker-compose? [yes/y] or [no/n]: n
Are you currently using PM2 with your MagicMirror? [yes/y] or [no/n]: y
What is the name of the PM2 process for MagicMirror? MagicMirror
Is http://127.0.1.1:8080 the address used to open MagicMirror in your browser? [yes/y] or [no/n]: n
What is the URL used to access MagicMirror (ie. http://192.168.0.3:8080)? http://192.168.7.159:8080
Have you ever installed any version of MMPM < 2.01? [yes/y] or [no/n]: n
Would you like to install the MMPM GUI (web interface)? [yes/y] or [no/n]: y
Would you like to hide/show MagicMirror modules through MMPM? [yes/y] or [no/n]: y
Would you like to install tab-autocomplete for the MMPM CLI? [yes/y] or [no/n]: n
Are you sure you want to install the MMPM module? [yes/y] or [no/n]: yes

  • Creating MMPM module in MagicMirror modules directory โœ“
    Run mmpm open --config and add { module: "mmpm" } to the modules array, then restart MagicMirror if running
    Are you sure you want to install the MMPM GUI? This requires sudo permission. [yes/y] or [no/n]: yes
  • MMPM SystemD service not active, nothing to do โœ“
  • MMPM-WebSSH SystemD service not active, nothing to do โœ“
  • Force removing NGINX and SystemD configs โœ“
  • Reloading SystemdD daemon โœ“
  • Restarting NGINX SystemD service โœ“
    MMPM GUI Removed!
  • Copying NGINX and SystemdD service configs โœ“
  • Cleaning confiuration files and resetting SystemdD daemons
    โœ“
  • Reloading SystemdD daemon โœ“
  • Enabling MMPM SystemdD daemon โœ“
    โœ˜
    ERROR: Failed to start MMPM SystemD service. See mmpm log for details
    Remove the MMPM GUI? [yes/y] or [no/n]: n
    pi@smartmirror:~ $
    pi@smartmirror:~ $
    pi@smartmirror:~ $ mmpm log
  • Initializing MagicMirror 3rd party packages database Traceback (most recent call last):
    File "/home/pi/.local/bin/mmpm", line 8, in
    sys.exit(main())
    File "/home/pi/.local/pipx/venvs/mmpm/lib/python3.7/site-packages/mmpm/main.py", line 12, in main
    main(args)
    File "/home/pi/.local/pipx/venvs/mmpm/lib/python3.7/site-packages/mmpm/mmpm.py", line 48, in main
    packages: Dict[str, List[MagicMirrorPackage]] = mmpm.core.load_packages(force_refresh=should_refresh)
    File "/home/pi/.local/pipx/venvs/mmpm/lib/python3.7/site-packages/mmpm/core.py", line 1112, in load_packages
    packages = retrieve_packages()
    File "/home/pi/.local/pipx/venvs/mmpm/lib/python3.7/site-packages/mmpm/core.py", line 1214, in retrieve_packages
    title = mmpm.utils.sanitize_name(td_soup[idx].contents[0].contents[0])
    File "/home/pi/.local/pipx/venvs/mmpm/lib/python3.7/site-packages/mmpm/utils.py", line 257, in sanitize_name
    return sub('[//]', '', orig_name)
    File "/usr/lib/python3.7/re.py", line 192, in sub
    return _compile(pattern, flags).sub(repl, string, count)
    TypeError: expected string or bytes-like object
    pi@smartmirror:~ $
    pi@smartmirror:~ $
    pi@smartmirror:~ $ mmpm install --gui
  • Initializing MagicMirror 3rd party packages database Traceback (most recent call last):
    File "/home/pi/.local/bin/mmpm", line 8, in
    sys.exit(main())
    File "/home/pi/.local/pipx/venvs/mmpm/lib/python3.7/site-packages/mmpm/main.py", line 12, in main
    main(args)
    File "/home/pi/.local/pipx/venvs/mmpm/lib/python3.7/site-packages/mmpm/mmpm.py", line 48, in main
    packages: Dict[str, List[MagicMirrorPackage]] = mmpm.core.load_packages(force_refresh=should_refresh)
    File "/home/pi/.local/pipx/venvs/mmpm/lib/python3.7/site-packages/mmpm/core.py", line 1112, in load_packages
    packages = retrieve_packages()
    File "/home/pi/.local/pipx/venvs/mmpm/lib/python3.7/site-packages/mmpm/core.py", line 1214, in retrieve_packages
    title = mmpm.utils.sanitize_name(td_soup[idx].contents[0].contents[0])
    File "/home/pi/.local/pipx/venvs/mmpm/lib/python3.7/site-packages/mmpm/utils.py", line 257, in sanitize_name
    return sub('[//]', '', orig_name)
    File "/usr/lib/python3.7/re.py", line 192, in sub
    return _compile(pattern, flags).sub(repl, string, count)
    TypeError: expected string or bytes-like object
    pi@smartmirror:~ $ mmpm list --gui-url
  • Initializing MagicMirror 3rd party packages database Traceback (most recent call last):
    File "/home/pi/.local/bin/mmpm", line 8, in
    sys.exit(main())
    File "/home/pi/.local/pipx/venvs/mmpm/lib/python3.7/site-packages/mmpm/main.py", line 12, in main
    main(args)
    File "/home/pi/.local/pipx/venvs/mmpm/lib/python3.7/site-packages/mmpm/mmpm.py", line 48, in main
    packages: Dict[str, List[MagicMirrorPackage]] = mmpm.core.load_packages(force_refresh=should_refresh)
    File "/home/pi/.local/pipx/venvs/mmpm/lib/python3.7/site-packages/mmpm/core.py", line 1112, in load_packages
    packages = retrieve_packages()
    File "/home/pi/.local/pipx/venvs/mmpm/lib/python3.7/site-packages/mmpm/core.py", line 1214, in retrieve_packages
    title = mmpm.utils.sanitize_name(td_soup[idx].contents[0].contents[0])
    File "/home/pi/.local/pipx/venvs/mmpm/lib/python3.7/site-packages/mmpm/utils.py", line 257, in sanitize_name
    return sub('[//]', '', orig_name)
    File "/usr/lib/python3.7/re.py", line 192, in sub
    return _compile(pattern, flags).sub(repl, string, count)
    TypeError: expected string or bytes-like object
    pi@smartmirror:~ $

Expected behavior
A clear and concise description of what you expected to happen.
I cant start mmpm

I have installed with
$ python3 -m pip install --user pipx
$ pipx install mmpm

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

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

MMPM Environment Settings

  • output from mmpm env
    pi@smartmirror:~ $ mmpm env
  • Initializing MagicMirror 3rd party packages database Traceback (most recent call last):
    File "/home/pi/.local/bin/mmpm", line 8, in
    sys.exit(main())
    File "/home/pi/.local/pipx/venvs/mmpm/lib/python3.7/site-packages/mmpm/main.py", line 12, in main
    main(args)
    File "/home/pi/.local/pipx/venvs/mmpm/lib/python3.7/site-packages/mmpm/mmpm.py", line 48, in main
    packages: Dict[str, List[MagicMirrorPackage]] = mmpm.core.load_packages(force_refresh=should_refresh)
    File "/home/pi/.local/pipx/venvs/mmpm/lib/python3.7/site-packages/mmpm/core.py", line 1112, in load_packages
    packages = retrieve_packages()
    File "/home/pi/.local/pipx/venvs/mmpm/lib/python3.7/site-packages/mmpm/core.py", line 1214, in retrieve_packages
    title = mmpm.utils.sanitize_name(td_soup[idx].contents[0].contents[0])
    File "/home/pi/.local/pipx/venvs/mmpm/lib/python3.7/site-packages/mmpm/utils.py", line 257, in sanitize_name
    return sub('[//]', '', orig_name)
    File "/usr/lib/python3.7/re.py", line 192, in sub
    return _compile(pattern, flags).sub(repl, string, count)
    TypeError: expected string or bytes-like object

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
    std sample config.js from first start. MM is running great and cann be startet in Firefox browser at mypc.

Please help... i have installed all twice an clean.

I try third with:
$ sudo apt install libffi-dev nginx-full -y
$ python3 -m pip install --upgrade --no-cache-dir mmpm
$ mmpm --guided-setup

it was sucessfull but if i try mmpm list -gui-url the same error

pi@smartmirror:/MagicMirror/modules $ python3 -m pip install --upgrade --no-cache-dir mmpm
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Collecting mmpm
Downloading https://files.pythonhosted.org/packages/b3/3d/81821c7cdd6faeb71edcecbad675c69823202e152ea221c62d483d8d1871/mmpm-2.04-py3-none-any.whl (2.9MB)
100% |โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ| 2.9MB 6.0MB/s
Requirement already satisfied, skipping upgrade: argcomplete>=1.11.1 in /home/pi/.local/lib/python3.7/site-packages (from mmpm) (1.12.0)
Collecting Flask-Cors>=3.0.8 (from mmpm)
Downloading https://files.pythonhosted.org/packages/69/7f/d0aeaaafb5c3c76c8d2141dbe2d4f6dca5d6c31872d4e5349768c1958abc/Flask_Cors-3.0.9-py2.py3-none-any.whl
Collecting eventlet==0.25.1 (from mmpm)
Downloading https://files.pythonhosted.org/packages/ef/01/83454d11bac9015f34e93cf11efcae169390ddf2df97cb73ca86de6465ed/eventlet-0.25.1-py2.py3-none-any.whl (222kB)
100% |โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ| 225kB 5.5MB/s
Collecting gunicorn>=20.0.4 (from mmpm)
Downloading https://files.pythonhosted.org/packages/69/ca/926f7cd3a2014b16870086b2d0fdc84a9e49473c68a8dff8b57f7c156f43/gunicorn-20.0.4-py2.py3-none-any.whl (77kB)
100% |โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ| 81kB 5.9MB/s
Collecting python-socketio[client]>=4.6.0 (from mmpm)
Downloading https://files.pythonhosted.org/packages/3d/97/00741edd49788510b834b60a1a4d0afb2c4942770c11b8e0f6e914371718/python_socketio-4.6.0-py2.py3-none-any.whl (51kB)
100% |โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ| 61kB 4.9MB/s
Collecting argparse>=1.1 (from mmpm)
Downloading https://files.pythonhosted.org/packages/f2/94/3af39d34be01a24a6e65433d19e107099374224905f1e0cc6bbe1fd22a2f/argparse-1.4.0-py2.py3-none-any.whl
Collecting flask==1.1.1 (from mmpm)
Downloading https://files.pythonhosted.org/packages/9b/93/628509b8d5dc749656a9641f4caf13540e2cdec85276964ff8f43bbb1d3b/Flask-1.1.1-py2.py3-none-any.whl (94kB)
100% |โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ| 102kB 5.6MB/s
Collecting flask-socketio>=4.2.1 (from mmpm)
Downloading https://files.pythonhosted.org/packages/8a/fa/ea1df958bd76a4a55b20dd87593839adf893e1fae0095b449fecdf325f21/Flask_SocketIO-4.3.1-py2.py3-none-any.whl
Collecting requests==2.23.0 (from mmpm)
Downloading https://files.pythonhosted.org/packages/1a/70/1935c770cb3be6e3a8b78ced23d7e0f3b187f5cbfab4749523ed65d7c9b1/requests-2.23.0-py2.py3-none-any.whl (58kB)
100% |โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ| 61kB 4.9MB/s
Collecting colorama>=0.4.3 (from mmpm)
Downloading https://files.pythonhosted.org/packages/c9/dc/45cdef1b4d119eb96316b3117e6d5708a08029992b2fee2c143c7a0a5cc5/colorama-0.4.3-py2.py3-none-any.whl
Requirement already satisfied, skipping upgrade: pygments>=2.3.1 in /usr/lib/python3/dist-packages (from mmpm) (2.3.1)
Collecting bs4>=0.0.1 (from mmpm)
Downloading https://www.piwheels.org/simple/bs4/bs4-0.0.1-py3-none-any.whl
Collecting webssh>=1.5.1 (from mmpm)
Downloading https://www.piwheels.org/simple/webssh/webssh-1.5.2-py2.py3-none-any.whl (162kB)
100% |โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ| 163kB 2.3MB/s
Requirement already satisfied, skipping upgrade: importlib-metadata<2,>=0.23; python_version == "3.7" in /home/pi/.local/lib/python3.7/site-packages (from argcomplete>=1.11.1->mmpm) (1.7.0)
Requirement already satisfied, skipping upgrade: Six in /usr/lib/python3/dist-packages (from Flask-Cors>=3.0.8->mmpm) (1.12.0)
Collecting monotonic>=1.4 (from eventlet==0.25.1->mmpm)
Downloading https://files.pythonhosted.org/packages/ac/aa/063eca6a416f397bd99552c534c6d11d57f58f2e94c14780f3bbf818c4cf/monotonic-1.5-py2.py3-none-any.whl
Collecting greenlet>=0.3 (from eventlet==0.25.1->mmpm)
Downloading https://www.piwheels.org/simple/greenlet/greenlet-0.4.17-cp37-cp37m-linux_armv7l.whl (47kB)
100% |โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ| 51kB 759kB/s
Collecting dnspython>=1.15.0 (from eventlet==0.25.1->mmpm)
Downloading https://files.pythonhosted.org/packages/90/49/cb426577c28ca3e35332815b795a99e467523843fc83cc85ca0d6be2515a/dnspython-2.0.0-py3-none-any.whl (208kB)
100% |โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ| 215kB 5.6MB/s
Requirement already satisfied, skipping upgrade: setuptools>=3.0 in /usr/lib/python3/dist-packages (from gunicorn>=20.0.4->mmpm) (40.8.0)
Collecting python-engineio>=3.13.0 (from python-socketio[client]>=4.6.0->mmpm)
Downloading https://files.pythonhosted.org/packages/4a/b0/602e549c6d735eb487f186b35e0b82e61c89459f57d1c24d5c7be6f56d05/python_engineio-3.13.2-py2.py3-none-any.whl (50kB)
100% |โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ| 51kB 4.6MB/s
Collecting websocket-client>=0.54.0; extra == "client" (from python-socketio[client]>=4.6.0->mmpm)
Downloading https://files.pythonhosted.org/packages/4c/5f/f61b420143ed1c8dc69f9eaec5ff1ac36109d52c80de49d66e0c36c3dfdf/websocket_client-0.57.0-py2.py3-none-any.whl (200kB)
100% |โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ| 204kB 2.3MB/s
Collecting Jinja2>=2.10.1 (from flask==1.1.1->mmpm)
Downloading https://files.pythonhosted.org/packages/30/9e/f663a2aa66a09d838042ae1a2c5659828bb9b41ea3a6efa20a20fd92b121/Jinja2-2.11.2-py2.py3-none-any.whl (125kB)
100% |โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ| 133kB 4.4MB/s
Requirement already satisfied, skipping upgrade: itsdangerous>=0.24 in /usr/lib/python3/dist-packages (from flask==1.1.1->mmpm) (0.24)
Collecting Werkzeug>=0.15 (from flask==1.1.1->mmpm)
Downloading https://files.pythonhosted.org/packages/cc/94/5f7079a0e00bd6863ef8f1da638721e9da21e5bacee597595b318f71d62e/Werkzeug-1.0.1-py2.py3-none-any.whl (298kB)
100% |โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ| 307kB 6.0MB/s
Requirement already satisfied, skipping upgrade: click>=5.1 in /usr/lib/python3/dist-packages (from flask==1.1.1->mmpm) (7.0)
Requirement already satisfied, skipping upgrade: certifi>=2017.4.17 in /usr/lib/python3/dist-packages (from requests==2.23.0->mmpm) (2018.8.24)
Requirement already satisfied, skipping upgrade: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in /usr/lib/python3/dist-packages (from requests==2.23.0->mmpm) (1.24.1)
Requirement already satisfied, skipping upgrade: chardet<4,>=3.0.2 in /usr/lib/python3/dist-packages (from requests==2.23.0->mmpm) (3.0.4)
Requirement already satisfied, skipping upgrade: idna<3,>=2.5 in /usr/lib/python3/dist-packages (from requests==2.23.0->mmpm) (2.6)
Requirement already satisfied, skipping upgrade: beautifulsoup4 in /usr/lib/python3/dist-packages (from bs4>=0.0.1->mmpm) (4.7.1)
Collecting paramiko>=2.3.1 (from webssh>=1.5.1->mmpm)
Downloading https://files.pythonhosted.org/packages/95/19/124e9287b43e6ff3ebb9cdea3e5e8e88475a873c05ccdf8b7e20d2c4201e/paramiko-2.7.2-py2.py3-none-any.whl (206kB)
100% |โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ| 215kB 4.8MB/s
Collecting tornado>=4.5.0 (from webssh>=1.5.1->mmpm)
Downloading https://www.piwheels.org/simple/tornado/tornado-6.0.4-cp37-cp37m-linux_armv7l.whl (428kB)
100% |โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ| 430kB 5.2MB/s
Requirement already satisfied, skipping upgrade: zipp>=0.5 in /home/pi/.local/lib/python3.7/site-packages (from importlib-metadata<2,>=0.23; python_version == "3.7"->argcomplete>=1.11.1->mmpm) (3.2.0)
Requirement already satisfied, skipping upgrade: MarkupSafe>=0.23 in /usr/lib/python3/dist-packages (from Jinja2>=2.10.1->flask==1.1.1->mmpm) (1.1.0)
Requirement already satisfied, skipping upgrade: cryptography>=2.5 in /usr/lib/python3/dist-packages (from paramiko>=2.3.1->webssh>=1.5.1->mmpm) (2.6.1)
Collecting pynacl>=1.0.1 (from paramiko>=2.3.1->webssh>=1.5.1->mmpm)
Downloading https://www.piwheels.org/simple/pynacl/PyNaCl-1.4.0-cp37-cp37m-linux_armv7l.whl (605kB)
100% |โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ| 614kB 7.2MB/s
Collecting bcrypt>=3.1.3 (from paramiko>=2.3.1->webssh>=1.5.1->mmpm)
Downloading https://www.piwheels.org/simple/bcrypt/bcrypt-3.2.0-cp37-cp37m-linux_armv7l.whl (57kB)
100% |โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ| 61kB 1.5MB/s
Collecting cffi>=1.4.1 (from pynacl>=1.0.1->paramiko>=2.3.1->webssh>=1.5.1->mmpm)
Downloading https://www.piwheels.org/simple/cffi/cffi-1.14.3-cp37-cp37m-linux_armv7l.whl (345kB)
100% |โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ| 348kB 3.5MB/s
Collecting pycparser (from cffi>=1.4.1->pynacl>=1.0.1->paramiko>=2.3.1->webssh>=1.5.1->mmpm)
Downloading https://files.pythonhosted.org/packages/ae/e7/d9c3a176ca4b02024debf82342dab36efadfc5776f9c8db077e8f6e71821/pycparser-2.20-py2.py3-none-any.whl (112kB)
100% |โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ| 112kB 4.0MB/s
Installing collected packages: Jinja2, Werkzeug, flask, Flask-Cors, monotonic, greenlet, dnspython, eventlet, gunicorn, python-engineio, requests, websocket-client, python-socketio, argparse, flask-socketio, colorama, bs4, pycparser, cffi, pynacl, bcrypt, paramiko, tornado, webssh, mmpm
Successfully installed Flask-Cors-3.0.9 Jinja2-2.11.2 Werkzeug-1.0.1 argparse-1.4.0 bcrypt-3.2.0 bs4-0.0.1 cffi-1.14.3 colorama-0.4.3 dnspython-2.0.0 eventlet-0.25.1 flask-1.1.1 flask-socketio-4.3.1 greenlet-0.4.17 gunicorn-20.0.4 mmpm-2.4 monotonic-1.5 paramiko-2.7.2 pycparser-2.20 pynacl-1.4.0 python-engineio-3.13.2 python-socketio-4.6.0 requests-2.23.0 tornado-6.0.4 websocket-client-0.57.0 webssh-1.5.2
pi@smartmirror:
/MagicMirror/modules $ mmpm --guided-setup
Welcome to MMPM's guided setup!

I'll help you setup your environment variables, and install additional features. Pressing CTRL-C will cancel the entire process.
There are 6 to 12 questions, depending on your answers. Let's get started.

What is the absolute path to the root of your MagicMirror installation (ie. /home/pi/MagicMirror)? /home/pi/MagicMirror
Did you install MMPM as a Docker image, or using docker-compose? [yes/y] or [no/n]: n
Did you install MagicMirror using docker-compose? [yes/y] or [no/n]: n
Are you currently using PM2 with your MagicMirror? [yes/y] or [no/n]: y
What is the name of the PM2 process for MagicMirror? MagicMirror
Is http://127.0.1.1:8080 the address used to open MagicMirror in your browser? [yes/y] or [no/n]: n
What is the URL used to access MagicMirror (ie. http://192.168.0.3:8080)? https://192.168.7.159:8080
Have you ever installed any version of MMPM < 2.01? [yes/y] or [no/n]: n
Would you like to install the MMPM GUI (web interface)? [yes/y] or [no/n]: y
Would you like to hide/show MagicMirror modules through MMPM? [yes/y] or [no/n]: y
Would you like to install tab-autocomplete for the MMPM CLI? [yes/y] or [no/n]: n
Are you sure you want to install the MMPM module? [yes/y] or [no/n]: yes

  • Creating MMPM module in MagicMirror modules directory โœ“
    Run mmpm open --config and add { module: "mmpm" } to the modules array, then restart MagicMirror if running
    Are you sure you want to install the MMPM GUI? This requires sudo permission. [yes/y] or [no/n]: yes
  • Disabling MMPM SystemD service โœ“
  • MMPM-WebSSH SystemD service not active, nothing to do โœ“
  • MMPM-WebSSH SystemD service not enabled, nothing to do โœ“
  • Force removing NGINX and SystemD configs โœ“
  • Reloading SystemdD daemon โœ“
  • Restarting NGINX SystemD service โœ“
    MMPM GUI Removed!
  • Copying NGINX and SystemdD service configs โœ“
  • Cleaning confiuration files and resetting SystemdD daemons
    โœ“
  • Reloading SystemdD daemon โœ“
  • Enabling MMPM SystemdD daemon โœ“
  • Restarting NGINX SystemD service โœ“
    MMPM GUI installed! See mmpm list --gui-url for the URI, or run mmpm open --gui to launch

Based on your responses, your environment variables have been set as:
{
"MMPM_MAGICMIRROR_ROOT": "/home/pi/MagicMirror",
"MMPM_MAGICMIRROR_URI": "https://192.168.7.159:8080",
"MMPM_MAGICMIRROR_PM2_PROCESS_NAME": "MagicMirror",
"MMPM_MAGICMIRROR_DOCKER_COMPOSE_FILE": ".",
"MMPM_IS_DOCKER_IMAGE": false
}

Run mmpm open --env to edit the variable values

Done!

Please review the above output for any additional suggested instructions.

And the Error

pi@smartmirror:~/MagicMirror/modules $ mmpm list --gui-url

  • Initializing MagicMirror 3rd party packages database Traceback (most recent call last):
    File "/home/pi/.local/bin/mmpm", line 10, in
    sys.exit(main())
    File "/home/pi/.local/lib/python3.7/site-packages/mmpm/main.py", line 12, in main
    main(args)
    File "/home/pi/.local/lib/python3.7/site-packages/mmpm/mmpm.py", line 48, in main
    packages: Dict[str, List[MagicMirrorPackage]] = mmpm.core.load_packages(force_refresh=should_refresh)
    File "/home/pi/.local/lib/python3.7/site-packages/mmpm/core.py", line 1112, in load_packages
    packages = retrieve_packages()
    File "/home/pi/.local/lib/python3.7/site-packages/mmpm/core.py", line 1214, in retrieve_packages
    title = mmpm.utils.sanitize_name(td_soup[idx].contents[0].contents[0])
    File "/home/pi/.local/lib/python3.7/site-packages/mmpm/utils.py", line 257, in sanitize_name
    return sub('[//]', '', orig_name)
    File "/usr/lib/python3.7/re.py", line 192, in sub
    return _compile(pattern, flags).sub(repl, string, count)
    TypeError: expected string or bytes-like object
    pi@smartmirror:~/MagicMirror/modules $

AttributeError: module 'pip' has no attribute 'main'

Using Python 3 on Raspbian latest. Installed mmpm package via this command:
git clone https://github.com/Bee-Mar/mmpm.git && cd mmpm && make install

Expected results:

  • Everything works fine

Actual Results:

  • Getting error: AttributeError: module 'pip' has no attribute 'main'

Removal instructions

mmpm uninstall --gui; pip3 uninstall -y mmpm

should read

mmpm remove --gui; pip3 uninstall -y mmpm

make install failed

Hi there,
i get following messages , trying to install this module as descriped in the readme:

pi@raspberrypi:~/MagicMirror/modules/mmpm $ make install
pip3 install --user bs4 pygit2 colorama
Collecting bs4
Using cached https://www.piwheels.org/simple/bs4/bs4-0.0.1-py3-none-any.whl
Collecting pygit2
Using cached https://files.pythonhosted.org/packages/4c/64/88c2a4eb2d22ca1982b364f41ff5da42d61de791d7eb68140e7f8f7eb721/pygit2-0.28.2.tar.gz
Complete output from command python setup.py egg_info:
Package libffi was not found in the pkg-config search path.
Perhaps you should add the directory containing libffi.pc' to the PKG_CONFIG_PATH environment variable No package 'libffi' found Package libffi was not found in the pkg-config search path. Perhaps you should add the directory containing libffi.pc'
to the PKG_CONFIG_PATH environment variable
No package 'libffi' found
Package libffi was not found in the pkg-config search path.
Perhaps you should add the directory containing libffi.pc' to the PKG_CONFIG_PATH environment variable No package 'libffi' found Package libffi was not found in the pkg-config search path. Perhaps you should add the directory containing libffi.pc'
to the PKG_CONFIG_PATH environment variable
No package 'libffi' found
Package libffi was not found in the pkg-config search path.
Perhaps you should add the directory containing `libffi.pc'
to the PKG_CONFIG_PATH environment variable
No package 'libffi' found
c/_cffi_backend.c:15:17: fatal error: ffi.h: Datei oder Verzeichnis nicht gefunden
#include <ffi.h>
^
compilation terminated.
Traceback (most recent call last):
File "/usr/lib/python3.5/distutils/unixccompiler.py", line 118, in _compile
extra_postargs)
File "/usr/lib/python3.5/distutils/ccompiler.py", line 909, in spawn
spawn(cmd, dry_run=self.dry_run)
File "/usr/lib/python3.5/distutils/spawn.py", line 36, in spawn
_spawn_posix(cmd, search_path, dry_run=dry_run)
File "/usr/lib/python3.5/distutils/spawn.py", line 159, in _spawn_posix
% (cmd, exit_status))
distutils.errors.DistutilsExecError: command 'arm-linux-gnueabihf-gcc' failed with exit status 1

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3.5/distutils/core.py", line 148, in setup
    dist.run_commands()
  File "/usr/lib/python3.5/distutils/dist.py", line 955, in run_commands
    self.run_command(cmd)
  File "/usr/lib/python3.5/distutils/dist.py", line 974, in run_command
    cmd_obj.run()
  File "/usr/lib/python3/dist-packages/setuptools/command/bdist_egg.py", line 161, in run
    cmd = self.call_command('install_lib', warn_dir=0)
  File "/usr/lib/python3/dist-packages/setuptools/command/bdist_egg.py", line 147, in call_command
    self.run_command(cmdname)
  File "/usr/lib/python3.5/distutils/cmd.py", line 313, in run_command
    self.distribution.run_command(command)
  File "/usr/lib/python3.5/distutils/dist.py", line 974, in run_command
    cmd_obj.run()
  File "/usr/lib/python3/dist-packages/setuptools/command/install_lib.py", line 24, in run
    self.build()
  File "/usr/lib/python3.5/distutils/command/install_lib.py", line 109, in build
    self.run_command('build_ext')
  File "/usr/lib/python3.5/distutils/cmd.py", line 313, in run_command
    self.distribution.run_command(command)
  File "/usr/lib/python3.5/distutils/dist.py", line 974, in run_command
    cmd_obj.run()
  File "/usr/lib/python3/dist-packages/setuptools/command/build_ext.py", line 75, in run
    _build_ext.run(self)
  File "/usr/lib/python3.5/distutils/command/build_ext.py", line 339, in run
    self.build_extensions()
  File "/usr/lib/python3.5/distutils/command/build_ext.py", line 448, in build_extensions
    self._build_extensions_serial()
  File "/usr/lib/python3.5/distutils/command/build_ext.py", line 473, in _build_extensions_serial
    self.build_extension(ext)
  File "/usr/lib/python3/dist-packages/setuptools/command/build_ext.py", line 196, in build_extension
    _build_ext.build_extension(self, ext)
  File "/usr/lib/python3.5/distutils/command/build_ext.py", line 533, in build_extension
    depends=ext.depends)
  File "/usr/lib/python3.5/distutils/ccompiler.py", line 574, in compile
    self._compile(obj, src, ext, cc_args, extra_postargs, pp_opts)
  File "/usr/lib/python3.5/distutils/unixccompiler.py", line 120, in _compile
    raise CompileError(msg)
distutils.errors.CompileError: command 'arm-linux-gnueabihf-gcc' failed with exit status 1

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/setuptools/sandbox.py", line 157, in save_modules
    yield saved
  File "/usr/lib/python3/dist-packages/setuptools/sandbox.py", line 198, in setup_context
    yield
  File "/usr/lib/python3/dist-packages/setuptools/sandbox.py", line 255, in run_setup
    DirectorySandbox(setup_dir).run(runner)
  File "/usr/lib/python3/dist-packages/setuptools/sandbox.py", line 285, in run
    return func()
  File "/usr/lib/python3/dist-packages/setuptools/sandbox.py", line 253, in runner
    _execfile(setup_script, ns)
  File "/usr/lib/python3/dist-packages/setuptools/sandbox.py", line 47, in _execfile
    exec(code, globals, locals)
  File "/tmp/easy_install-woinp4gl/cffi-1.12.3/setup.py", line 248, in <module>
  File "/usr/lib/python3.5/distutils/core.py", line 163, in setup
    raise SystemExit("error: " + str(msg))
SystemExit: error: command 'arm-linux-gnueabihf-gcc' failed with exit status 1

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/setuptools/command/easy_install.py", line 1131, in run_setup
    run_setup(setup_script, args)
  File "/usr/lib/python3/dist-packages/setuptools/sandbox.py", line 258, in run_setup
    raise
  File "/usr/lib/python3.5/contextlib.py", line 77, in __exit__
    self.gen.throw(type, value, traceback)
  File "/usr/lib/python3/dist-packages/setuptools/sandbox.py", line 198, in setup_context
    yield
  File "/usr/lib/python3.5/contextlib.py", line 77, in __exit__
    self.gen.throw(type, value, traceback)
  File "/usr/lib/python3/dist-packages/setuptools/sandbox.py", line 169, in save_modules
    saved_exc.resume()
  File "/usr/lib/python3/dist-packages/setuptools/sandbox.py", line 144, in resume
    six.reraise(type, exc, self._tb)
  File "/usr/lib/python3/dist-packages/pkg_resources/_vendor/six.py", line 685, in reraise
    raise value.with_traceback(tb)
  File "/usr/lib/python3/dist-packages/setuptools/sandbox.py", line 157, in save_modules
    yield saved
  File "/usr/lib/python3/dist-packages/setuptools/sandbox.py", line 198, in setup_context
    yield
  File "/usr/lib/python3/dist-packages/setuptools/sandbox.py", line 255, in run_setup
    DirectorySandbox(setup_dir).run(runner)
  File "/usr/lib/python3/dist-packages/setuptools/sandbox.py", line 285, in run
    return func()
  File "/usr/lib/python3/dist-packages/setuptools/sandbox.py", line 253, in runner
    _execfile(setup_script, ns)
  File "/usr/lib/python3/dist-packages/setuptools/sandbox.py", line 47, in _execfile
    exec(code, globals, locals)
  File "/tmp/easy_install-woinp4gl/cffi-1.12.3/setup.py", line 248, in <module>
  File "/usr/lib/python3.5/distutils/core.py", line 163, in setup
    raise SystemExit("error: " + str(msg))
SystemExit: error: command 'arm-linux-gnueabihf-gcc' failed with exit status 1

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/tmp/pip-build-m6faxa64/pygit2/setup.py", line 157, in <module>
    ext_modules=ext_modules,
  File "/usr/lib/python3.5/distutils/core.py", line 108, in setup
    _setup_distribution = dist = klass(attrs)
  File "/usr/lib/python3/dist-packages/setuptools/dist.py", line 317, in __init__
    self.fetch_build_eggs(attrs['setup_requires'])
  File "/usr/lib/python3/dist-packages/setuptools/dist.py", line 372, in fetch_build_eggs
    replace_conflicting=True,
  File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 846, in resolve
    dist = best[req.key] = env.best_match(req, ws, installer)
  File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 1118, in best_match
    return self.obtain(req, installer)
  File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 1130, in obtain
    return installer(requirement)
  File "/usr/lib/python3/dist-packages/setuptools/dist.py", line 440, in fetch_build_egg
    return cmd.easy_install(req)
  File "/usr/lib/python3/dist-packages/setuptools/command/easy_install.py", line 699, in easy_install
    return self.install_item(spec, dist.location, tmpdir, deps)
  File "/usr/lib/python3/dist-packages/setuptools/command/easy_install.py", line 725, in install_item
    dists = self.install_eggs(spec, download, tmpdir)
  File "/usr/lib/python3/dist-packages/setuptools/command/easy_install.py", line 906, in install_eggs
    return self.build_and_install(setup_script, setup_base)
  File "/usr/lib/python3/dist-packages/setuptools/command/easy_install.py", line 1145, in build_and_install
    self.run_setup(setup_script, setup_base, args)
  File "/usr/lib/python3/dist-packages/setuptools/command/easy_install.py", line 1133, in run_setup
    raise DistutilsError("Setup script exited with %s" % (v.args[0],))
distutils.errors.DistutilsError: Setup script exited with error: command 'arm-linux-gnueabihf-gcc' failed with exit status 1

----------------------------------------

Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-m6faxa64/pygit2/
Makefile:4: die Regel fรผr Ziel โ€ž-build_dependsโ€œ scheiterte
make: *** [-build_depends] Fehler 1
pi@raspberrypi:~/MagicMirror/modules/mmpm $

soupsieve not installed error

/home/pi/.local/lib/python2.7/site-packages/bs4/element.py:16: UserWarning: The soupsieve package is not installed. CSS selectors cannot be used. 'The soupsieve package is not installed. CSS selectors cannot be used.'

pi@raspberrypi:~ $ pip3 install soupsieve
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Requirement already satisfied: soupsieve in /usr/lib/python3/dist-packages (1.8)
pi@raspberrypi:~ $ pip install soupsieve
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Requirement already satisfied: soupsieve in ./.local/lib/python2.7/site-packages (1.9.5)
Requirement already satisfied: backports.functools-lru-cache; python_version < "3" in ./.local/lib/python2.7/site-packages (from soupsieve) (1.6.1)

what am I missing?

Deleting an external package deletes all external packages

Hi,

I got 3 external modules in my MMPM database, which I installed manually and set up to appear in MMPMs "External packages".
When I happened to remove one of these packages with the "remove" button from MMPM, all external packages were deleted from the page.

The physical files and folders (of all modules, including the one I wanted to remove) were not touched.

Script assumes python3 location

My python3 binary is not located at /usr/bin/python3, I made locating python more robust by changing the first line to:

#!/usr/bin/env python3

I think this change would be worthwhile to include for others, hence the issue. Thanks!

Pip error?

Traceback (most recent call last):
File "/usr/local/bin/mmpm", line 44, in
pip.main(["install", "--user", package])
AttributeError: module 'pip' has no attribute 'main'

I followed the instructions however I'm unable to get any of the mmpm commands to work, this is the only response I get!

alternative install with docker

Hi,

thank you for offering this nice module!

May someone is interested using a docker image instead of installing this stuff directly on his pi.

Did a quick setup here, this could be a starting point ...

Let me know if this is of interest ...

Running mmpm error

Hello!

I just finished installing mmpm into my Rasbian Buster build on RPi 3+ and ran into a snag. Any attempts to call mmpm from the terminal is met with an error.

Tabulate package not found. Pip installing with --user flag

Traceback (most recent call last):
File "/usr/local/bin/mmpm", line 43, in
import tabulate
ModuleNotFoundError: No module named 'tabulate'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/usr/local/bin/mmpm", line 47, in
pip.main(["install", "--user", "tabulate"])
AttributeError: module 'pip' has no attribute 'main'

This seems like it could be an easy fix but I can't tell. I followed instructions but it doesn't seem to want to play.

local package shown twice

Hi,

the local package site looks like this on my install:
grafik

The MMM-NetworkScanner module is shown twice, but I installed only the module from ianperrin.

The second one seems to be a (specialized) fork from ianperrin.

Error 502 Bad Gateway

Fresh install of Ubuntu 16.04 LTS, fresh install of MagicMirror to ~/MagicMirror, minimal layout configuration and no extra modules.

Trying to install mmpm using the all in one command provided on the install wiki. It installs successfully, however when I navigate to myipaddress:7890 I get a 502 Bad Gateway error. Initially I ran the all in one command from ~, so I did make uninstall and tried reinstalling mmpm in the MagicMirror root directory with no change.

What am i missing here?

BUG: Rotate feature not working

Describe the Bug

Using the rotate feature in the web interface throws an error.
Error Code: 500 Message: Http failure response for http://192.168.1.149:7890/api/raspberrypi/rotate-screen: 500 INTERNAL SERVER ERROR

Log file mentions the following exception:
Exception on /api/raspberrypi/rotate-screen [POST]

To Reproduce
Steps to reproduce the behavior:

  1. Go to the web interface and goto Control Center.
  2. Click on Rotate Screen.
  3. See error

Expected behavior
I expect the screen to rotate.

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

MMPM Log Files

  • Attach the file produced Download MMPM log files within the Control Center of the GUI or from the mmpm log --zip
    mmpm-logs-2020-7-6.zip

  • your MagicMirror config.js
    config.js.txt

BUG: Install not working

Describe the Bug

Hey, for install I used the Terminal as instructed, tried it both within Modules folder and on /root, but no files are downloaded and I receive the following error at the end of the Terminal.


Command "/usr/bin/python3 -m pip install --ignore-installed --no-user --prefix /tmp/pip-build-env-m_efiawx --no-warn-script-location --no-binary :none: --only-binary :none: -i https://pypi.org/simple --extra-index-url https://www.piwheels.org/simple -- setuptools>=40.8.0 wheel "cffi>=1.1; python_implementation != 'PyPy'"" failed with error code 1 in None

To Reproduce
Steps to reproduce the behavior:

  1. Type pi@raspberrypi:~ $ pip3 install --upgrade --no-cache-dir mmpm into Terminal
  2. Let it do its thing for a bit
  3. See error

Expected behavior
I don't know, it's not really written in the Wiki

Screenshots
image

Operating System, Python3 Version, and Web Browser\

PRETTY_NAME="Raspbian GNU/Linux 10 (buster)"
NAME="Raspbian GNU/Linux"
VERSION_ID="10"
VERSION="10 (buster)"
VERSION_CODENAME=buster
ID=raspbian
ID_LIKE=debian
HOME_URL="http://www.raspbian.org/"
SUPPORT_URL="http://www.raspbian.org/RaspbianForums"
BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"
  • output from python3 --version
    Python 3.7.3

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

MMPM Log Files

  • Attach the file produced Download MMPM log files within the Control Center of the GUI or from the mmpm log --zip
    I receive the result: bash: mmpm: command not found

  • your MagicMirror config.js
    N/a

Not showing any local package installed

Before installing mmpm I had some modules installed but I donยดt see them in the local packages section.

For information: As I have magicMirrosOS, my modules are found on ~/magicmirror/mounts/modules, and config ~/magicmirror/mounts/config

Your config is hardcoded for regular magic mirror installation

~/MagicMirror/modules directory, and compares against the known modules

error on execution of pip3 install

Working on my first magic mirror installation. I did a clean install of raspberry pi os and then installed magic mirror and successfully was able to start up. I now moved on to install MMPM and Iโ€™m receiving the following error when I execute pip3 install --upgrade --no-cache-dir mmpm:

Command โ€œ/usr/bin/python3 -m pip install --ignore-installed --no-user --prefix /tmp/pip-build-env-e41bnr3i --no-warn-script-location --no-binary :none: --only-binary :none: -i https://pypi.org/simple --extra-index-url https://www.piwheels.org/simple โ€“ setuptools>=40.8.0 wheel โ€œcffi>=1.1; python_implementation != โ€˜PyPyโ€™โ€โ€ failed with error code 1 in None

Complete newbie here so any help is greatly appreciated. I assume Iโ€™m doing something wrong but thought I would ask for guidance rather than banging my head on the wall!

Installation failed [Fixed]

Installation initially failed because I had libgit2 missing (pip3 install pygit2 failed).
Additionally, "sudo apt-get install libgit2-dev" succeeded but pip3 install pygit2 complained that it can't find the right version.
My solution was:

$ wget https://github.com/libgit2/libgit2/archive/v0.28.1.tar.gz
$ tar xzf v0.28.1.tar.gz
$ cd libgit2-0.28.1/
$ cmake .
$ make
$ sudo make install

and then:

sudo pip3 install pygit2
sudo ldconfig 
python3 -c 'import pygit2'

Only then could I proceed with the installation of mmpm.

i have modules installed not in 3rd party list, but also not shown

i have modules installed, but are not shown on MMPM screen..
the package.json file could take you to the github url.. owner...
(and git remote -v too)

at least show them..

also i have some disabled.. it would be great to know this.
I had to add this feature to my upgrade script.. also have one module listed 11 times with different configs..

Error: Cannot find module '/root/MagicMirror/serveronlyexport'

I installed the package manager yesterday and now I'm getting this error:

internal/modules/cjs/loader.js:638
    throw err;
    ^

Error: Cannot find module '/root/MagicMirror/serveronlyexport'
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:636:15)
    at Function.Module._load (internal/modules/cjs/loader.js:562:25)
    at Function.Module.runMain (internal/modules/cjs/loader.js:831:12)
    at startup (internal/bootstrap/node.js:283:19)
    at bootstrapNodeJSCore (internal/bootstrap/node.js:623:3)

This definitely happened due to the package manager - any idea what could've caused it and how to fix it?

MagicMirror not stopping

Hi,

I just wanted to start off by saying that this is an incredible module!

I couldn't stop the MagicMirror and return to the desktop while using Control Center.

Steps to recreate:

  1. Fresh Raspbian Buster image
  2. Installed MagicMirror using git clone & npm install
  3. Followed installation instruction guides for mmpm and installed the module
  4. Went to http://raspberrypi:7890
  5. Clicked on Start MagicMirror
  6. Clicked on Stop MagicMirror under Control Center

mmpm don't update all modules

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

This Normal?

pi@raspberrypi:~ $ mmpm update Checking MMM-FlightRadarTracker [package] for updates โœ“ Checking MMM-DarkSkyForecast [package] for updates โœ“ Checking MMM-RTSPStream [package] for updates โœ“ Checking MMM-EventHorizon [package] for updates โœ“ Checking MMM-News [package] for updates โœ“ Checking MMM-PGA [package] for updates โœ“ Checking MagicMirror [application] for updates โœ“ Checking MMPM [application] for updates โœ“ Traceback (most recent call last): File "/home/pi/.local/bin/mmpm", line 10, in <module> sys.exit(main()) File "/home/pi/.local/lib/python3.7/site-packages/mmpm/__main__.py", line 12, in main _main_(args) File "/home/pi/.local/lib/python3.7/site-packages/mmpm/mmpm.py", line 139, in main mmpm_upgrade: bool = mmpm.core.check_for_mmpm_updates() File "/home/pi/.local/lib/python3.7/site-packages/mmpm/core.py", line 103, in check_for_mmpm_updates json.dump(upgrades, available_upgrades) File "/usr/lib/python3.7/json/__init__.py", line 179, in dump for chunk in iterable: File "/usr/lib/python3.7/json/encoder.py", line 431, in _iterencode yield from _iterencode_dict(o, _current_indent_level) File "/usr/lib/python3.7/json/encoder.py", line 405, in _iterencode_dict yield from chunks File "/usr/lib/python3.7/json/encoder.py", line 405, in _iterencode_dict yield from chunks File "/usr/lib/python3.7/json/encoder.py", line 325, in _iterencode_list yield from chunks File "/usr/lib/python3.7/json/encoder.py", line 438, in _iterencode o = _default(o) File "/usr/lib/python3.7/json/encoder.py", line 179, in default raise TypeError(f'Object of type {o.__class__.__name__} ' TypeError: Object of type MagicMirrorPackage is not JSON serializable pi@raspberrypi:~ $

No updates found

When I am on the command line, "mmpm update" will not find any updates ever.
Even when marketplace is refreshed from the GUI and even when an updatenotification is showing.
Using current MMPM version.

Shelljob Version

For anyone experiencing issues retrieving the shelljob python3 package during installation, change the line specifying the version in requirements.txt from shelljob>=0.5.6 to shelljob==0.5.6. There appears to be a problem retrieving the PyPi contents for versions newer than 0.5.6 right now.

BUG: Unable to retrieve MagicMirror modules. Is your internet connection up?

Describe the Bug

Is this an issue with the CLI or GUI?
mmpm doesn't start

Is this something that should be put in the Wiki?
if it's not a weird bug on my system, maybe enhancing the setup guide would be a nice idea.

A clear and concise description of what the bug is.
When installing mmpm via python3 on a Ubuntu 20.04.01 LTS with a MagicMirror via Docker-Compose, the mmpm won't start after installing and configuring.

To Reproduce
Steps to reproduce the behavior:

  1. Install as told in the guidelines
  2. Configuring with mmpm --guided-setup
  3. Try to do something (p.e. mmpm log)
  4. See the error

Expected behavior
Able to use the software

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

MMPM Environment Settings

  • output from mmpm env
      • Initializing MagicMirror 3rd party packages database โœ˜
        FATAL: Unable to retrieve MagicMirror modules. Is your internet connection up?

MMPM Log Files

  • Attach the file produced Download MMPM log files within the Control Center of the GUI or from the mmpm log --zip
    • unable to produce. Same error.
    • Content of mmpm-cli-interface.log is repeatedly:
2020-10-26 20:15:12,804.804 CRITICAL utils - fatal_msg: Unable to retrieve MagicMirror modules. Is your internet connection up?
Unable to retrieve MagicMirror modules. Is your internet connection up?

MagicMirror Config

  • your MagicMirror config.js
    • not existing

Error-code 500 on webGUI: http failure

Hey folks,

if i try to connect via webGUI, I get instantly following error message:

Error Code: 500
Message: Http failure response for http://localhost:7890/api/all-installed-modules: 500 INTERNAL SERVER ERROR

GUI then loading, but all chapters are empty besides MM-config

When try to list installed packages via terminal, works so far, only web GUI somehow crashes.

Did someone had the same problem? Is there a fix? Couldn't find anything in the wiki.

Running current MM2 on a RP 3+ with Raspbian full, nearly fresh install of MM.

Thanks,

Feature request: support multiple sources.

If this is already possible, please let me know, may be I overlooked something!

As it stands the only source of the package currently is the "official list" on the github page. It means that if a module is not there, I cannot install and update it with mmpm.

Why a module would not be there? Well there could be a few reasons. It could be a private module, hosted on an internal git server. Or it could be a fork of existing module, where maintainer did not agree to merge changes for whatever reason (e.g. poor quality).

I want to be able to add an additional source (like you can in apt, or scoop, etc) so that modules could be pulled form other places than official list points to.

No Active Modules

Iv read a few issues around and about but non seem to be comparible to my issue. I cant access active modules and as soon as i add the mmpm code to the mm config.js mm wont start. i can see my inistalled modules in the website/ mmpm main menu but even when starting mm through the web gui and refreshing the page the active modules arent displaying and mm as i said isnt loading
mmpm-logs-2020-9-6 (7).zip

Manual dependency installation instructions outputs error.

On Fresh install on Raspberry Pi Zero W with Raspberry Pi OS (Full)

curl -sL https://deb.nodesource.com/setup_10.x \| sudo -E bash -

## Installing the NodeSource Node.js 10.x repo...


## You appear to be running on ARMv6 hardware. Unfortunately this is not currently supported by the NodeSource Linux distributions. Please use the 'linux-armv6l' binary tarballs available directly from nodejs.org for Node.js 4 and later.

Obviously I can get around this with source compiling or as suggested, binary tarballs, but wanted to make this known.

Version in GUI and/or CLI?

Is there a way to determine which version of MMPM I have installed on my system?

It would be nice to have a -v or --version command on the CLI, but also a "version"/"info" button somewhere in the GUI as well.

Thanks!

No uninstall script available and unable to open the toolbar

According to the wiki I should be able to cd into the directory and type in 'uninstall' just like the command 'make', unfortunately this does not work. Also since installing mmpm I can no longer press alt to get the toolbar or F11 to close fullscreen.

BUG:

Die Website ist nicht erreichbar192.168.200.28:8080 hat die Verbindung abgelehnt.
Versuchen Sie Folgendes:

Verbindung prรผfen
Proxy und Firewall prรผfen
ERR_CONNECTION_REFUSED

Webserver no connect can you me help

BUG: cannot get it to work on debian

Hi there.
I have troubles to get package manager working on a debian server-only installation.

I start with a fresh instance as user phil:

sudo apt update && apt upgrade -y
sudo apt install curl git -y
curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
sudo apt install -y nodejs
git clone https://github.com/MichMich/MagicMirror
cd MagicMirror/
npm install
cp config/config.js.sample config/config.js
nano /config/config.js

I changed it to:

   var config = {
    address: "0.0.0.0",     
    port: 8080,
    basePath: "/",  
    ipWhitelist: [],
    useHttps: false,
    httpsPrivateKey: "",
    httpsCertificate: "",
    language: "de",
    logLevel: ["INFO", "LOG", "WARN", "ERROR"],
    timeFormat: 24,
    units: "metric",
    serverOnly:  true, 

Finally, I try

 npm run server

now let's run this as a service and run

sudo nano /etc/systemd/system/magicmirror.service

[Unit]
Description=Magic Mirror
After=network.target
StartLimitIntervalSec=0

[Service]
Type=simple
Restart=always
RestartSec=1
User=phil
WorkingDirectory=/home/phil/MagicMirror/
ExecStart=/usr/bin/node /home/phil/MagicMirror/serveronly

[Install]
WantedBy=multi-user.target

followed by

sudo systemctl enable magicmirror.service
reboot

Now, up to the mighty package manager.
chain of commands:

apt install libffi-dev nginx-full -y
python3 -m pip install --upgrade --no-cache-dir mmpm
sudo nano /etc/login.defs  -> add /home/phil/.local/bin:/local/sbin 
mmpm --guided-setup

image

Notes here

  • in the documentation, the variable "MMPM_MAGICMIRROR_DOCKER_COMPOSE_FILE": ".", never has a . in there, but using that wizard, there is a dot in there. Don't know if that is a problem (tried removing it when running into issues without any success). At least it is confusing. What is correct?
  • what's next? In the installation Readme, after the quick installation guide, the gui preview is shown, but there is no comment where and how to reach that gui. My best guess is by accessing the 10.0.1.11:7890 directly (that I found in the nginx-config..

next, I found this in the logs

2020/11/01 19:53:25 [error] 6526#6526: *1 connect() failed (111: Connection refused) while connecting to upstream, client: 10.0.9.21, server: _, request: "GET / HTTP/1.1", upstream: "http://[::1]:7891/", host: "10.0.1.11:7890"
2020/11/01 19:53:25 [error] 6526#6526: *1 connect() failed (111: Connection refused) while connecting to upstream, client: 10.0.9.21, server: _, request: "GET / HTTP/1.1", upstream: "http://127.0.0.1:7891/", host: "10.0.1.11:7890"

so I changed the

nano /etc/nginx/sites-enabled/mmpm.conf

and replaced the localhosts with 127.0.0.1

server {
listen 7890;
server_name _;

location / {
    proxy_pass http://127.0.0.1:7891/;
    proxy_set_header Host $http_host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Real-PORT $remote_port;
    add_header "Access-Control-Allow-Origin" '*';
}

location /static {
    alias  /var/www/mmpm/static;
    add_header "Access-Control-Allow-Origin" '*';
}

error_log  /var/log/nginx/mmpm-error.log;
access_log /var/log/nginx/mmpm-access.log;
}

server {
listen 7892;
server_name _;

location / {
    proxy_pass http://127.0.0.1:7893;
    proxy_http_version 1.1;
    proxy_read_timeout 300;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_set_header Host $http_host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Real-PORT $remote_port;
}
}

and changed the localhost in

nano /etc/systemd/system/mmpm.service

so it became:

[Unit]
Description=MMPM Gunicorn daemon
After=network.target

[Install]
WantedBy=multi-user.target

[Service]
User=root
Type=notify
ExecStart=/usr/local/bin/gunicorn --reload --worker-class eventlet --bind 127.0.0.1:7891 mmpm.wsgi:app --user=phil
ExecReload=/bin/kill -s HUP $MAINPID
PIDFile=/run/mmpm.pid
KillMode=mixed
TimeoutStopSec=5
PrivateTmp=true

and rebooted.
I cannot find any warnings / errors in any of the logs I found:

  • ~/.config/mmpm/log/*
  • /var/log/nginx/*

I have the content here:

mmpm-cli-interface.log

    2020-11-02 20:57:46,089.089 ERROR utils - assert_required_defaults_exist: Expecting value: line 1 column 1 (char 0)
Expecting value: line 1 column 1 (char 0)
2020-11-02 20:58:04,664.664 CRITICAL utils - fatal_msg: NGINX is not in your $PATH. Please install `nginx-full` (Debian), `nginx-mainline` (Arch) or equivalent
NGINX is not in your $PATH. Please install `nginx-full` (Debian), `nginx-mainline` (Arch) or equivalent
2020-11-02 21:01:46,694.694 CRITICAL utils - fatal_msg: NGINX is not in your $PATH. Please install `nginx-full` (Debian), `nginx-mainline` (Arch) or equivalent
NGINX is not in your $PATH. Please install `nginx-full` (Debian), `nginx-mainline` (Arch) or equivalent
2020-11-02 21:07:15,089.089 INFO core - install_autocompletion: user attempting to install MMPM autocompletion
user attempting to install MMPM autocompletion
2020-11-02 21:07:15,090.090 INFO core - install_autocompletion: detected user shell to be /bin/bash
detected user shell to be /bin/bash
2020-11-02 21:07:15,091.091 INFO core - __match_shell_config__: searching for one of the following shell configuration files ['.bashrc', '.bash_profile', '.bash_login', '.profile']
searching for one of the following shell configuration files ['.bashrc', '.bash_profile', '.bash_login', '.profile']
2020-11-02 21:07:15,091.091 INFO core - __match_shell_config__: found /home/phil/.bashrc shell configuration file for /bin/bash
found /home/phil/.bashrc shell configuration file for /bin/bash
2020-11-02 21:07:15,091.091 INFO core - __echo_and_eval__: executing echo 'eval "$(register-python-argcomplete mmpm)"' >> /home/phil/.bashrc to install autocompletion
executing echo 'eval "$(register-python-argcomplete mmpm)"' >> /home/phil/.bashrc to install autocompletion
2020-11-02 21:07:15,103.103 INFO core - display_mmpm_env_vars: User listing environment variables, set with the following values
User listing environment variables, set with the following values
2020-11-02 21:07:38,843.843 INFO core - check_for_mmpm_updates: Checking for newer version of MMPM. Current version: 2.05
Checking for newer version of MMPM. Current version: 2.05
2020-11-02 21:07:38,844.844 INFO utils - run_cmd: Executing process `curl https://raw.githubusercontent.com/Bee-Mar/mmpm/master/mmpm/mmpm.py` in foreground
Executing process `curl https://raw.githubusercontent.com/Bee-Mar/mmpm/master/mmpm/mmpm.py` in foreground
2020-11-02 21:07:39,352.352 INFO core - check_for_mmpm_updates: No newer version of MMPM found > 2.05 available. The current version is the latest
No newer version of MMPM found > 2.05 available. The current version is the latest
2020-11-02 21:09:28,277.277 INFO core - load_packages: Backing up database file as /home/phil/.config/mmpm/MagicMirror-3rd-party-packages-db.json.bak
Backing up database file as /home/phil/.config/mmpm/MagicMirror-3rd-party-packages-db.json.bak
2020-11-02 21:09:28,286.286 INFO core - load_packages: Back up of database complete
Back up of database complete
2020-11-02 21:09:32,004.004 INFO api - packages_marketplace: Sending all marketplace packages
Sending all marketplace packages
2020-11-02 21:09:32,076.076 INFO api - magicmirror_config: Retrieving MagicMirror config
Retrieving MagicMirror config
2020-11-02 21:09:32,086.086 INFO api - magicmirror_custom_css: Retrieving MagicMirror /home/phil/MagicMirror/custom/custom.css
Retrieving MagicMirror /home/phil/MagicMirror/custom/custom.css
2020-11-02 21:09:32,257.257 INFO api - packages_installed: Sending all installed packages
Sending all installed packages
2020-11-02 21:09:32,285.285 INFO api - packages_external: Sending all external packages
Sending all external packages
2020-11-02 21:09:32,316.316 INFO utils - reset_available_upgrades_for_environment: Resetting available upgrades for /home/phil/MagicMirror
Resetting available upgrades for /home/phil/MagicMirror
2020-11-02 21:09:32,318.318 INFO core - check_for_mmpm_updates: Checking for newer version of MMPM. Current version: 2.05
Checking for newer version of MMPM. Current version: 2.05
2020-11-02 21:09:32,319.319 INFO utils - run_cmd: Executing process `curl https://raw.githubusercontent.com/Bee-Mar/mmpm/master/mmpm/mmpm.py` in foreground
Executing process `curl https://raw.githubusercontent.com/Bee-Mar/mmpm/master/mmpm/mmpm.py` in foreground
2020-11-02 21:09:32,630.630 INFO core - check_for_mmpm_updates: No newer version of MMPM found > 2.05 available. The current version is the latest
No newer version of MMPM found > 2.05 available. The current version is the latest
2020-11-02 21:09:32,633.633 INFO utils - run_cmd: Executing process `git fetch --dry-run` in foreground
Executing process `git fetch --dry-run` in foreground
2020-11-02 21:09:33,455.455 INFO api - packages_upgradeable: Request to get upgradeable packages
Request to get upgradeable packages
2020-11-02 21:09:45,096.096 INFO core - load_packages: Backing up database file as /home/phil/.config/mmpm/MagicMirror-3rd-party-packages-db.json.bak
Backing up database file as /home/phil/.config/mmpm/MagicMirror-3rd-party-packages-db.json.bak
2020-11-02 21:09:45,098.098 INFO core - load_packages: Back up of database complete
Back up of database complete
2020-11-02 21:10:41,161.161 INFO api - mmpm_environment_vars_file: Saving MMPM environment variables file
Saving MMPM environment variables file
2020-11-02 21:10:41,178.178 INFO api - packages_marketplace: Sending all marketplace packages
Sending all marketplace packages
2020-11-02 21:10:41,208.208 INFO api - packages_installed: Sending all installed packages
Sending all installed packages
2020-11-02 21:10:41,218.218 INFO api - packages_external: Sending all external packages
Sending all external packages
2020-11-02 21:10:41,230.230 INFO utils - reset_available_upgrades_for_environment: Resetting available upgrades for /home/phil/MagicMirror
Resetting available upgrades for /home/phil/MagicMirror
2020-11-02 21:10:41,231.231 INFO core - check_for_mmpm_updates: Checking for newer version of MMPM. Current version: 2.05
Checking for newer version of MMPM. Current version: 2.05
2020-11-02 21:10:41,233.233 INFO utils - run_cmd: Executing process `curl https://raw.githubusercontent.com/Bee-Mar/mmpm/master/mmpm/mmpm.py` in foreground
Executing process `curl https://raw.githubusercontent.com/Bee-Mar/mmpm/master/mmpm/mmpm.py` in foreground
2020-11-02 21:10:41,440.440 INFO core - check_for_mmpm_updates: No newer version of MMPM found > 2.05 available. The current version is the latest
No newer version of MMPM found > 2.05 available. The current version is the latest
2020-11-02 21:10:41,443.443 INFO utils - run_cmd: Executing process `git fetch --dry-run` in foreground
Executing process `git fetch --dry-run` in foreground
2020-11-02 21:10:42,266.266 INFO api - packages_upgradeable: Request to get upgradeable packages
Request to get upgradeable packages
2020-11-02 21:10:49,013.013 INFO api - packages_marketplace: Sending all marketplace packages
Sending all marketplace packages
2020-11-02 21:10:49,076.076 INFO api - magicmirror_config: Retrieving MagicMirror config
Retrieving MagicMirror config
2020-11-02 21:10:49,082.082 INFO api - magicmirror_custom_css: Retrieving MagicMirror /home/phil/MagicMirror/custom/custom.css
Retrieving MagicMirror /home/phil/MagicMirror/custom/custom.css
2020-11-02 21:10:49,225.225 INFO api - packages_installed: Sending all installed packages
Sending all installed packages
2020-11-02 21:10:49,258.258 INFO api - packages_external: Sending all external packages
Sending all external packages
2020-11-02 21:10:49,287.287 INFO utils - reset_available_upgrades_for_environment: Resetting available upgrades for /home/phil/MagicMirror
Resetting available upgrades for /home/phil/MagicMirror
2020-11-02 21:10:49,288.288 INFO core - check_for_mmpm_updates: Checking for newer version of MMPM. Current version: 2.05
Checking for newer version of MMPM. Current version: 2.05
2020-11-02 21:10:49,290.290 INFO utils - run_cmd: Executing process `curl https://raw.githubusercontent.com/Bee-Mar/mmpm/master/mmpm/mmpm.py` in foreground
Executing process `curl https://raw.githubusercontent.com/Bee-Mar/mmpm/master/mmpm/mmpm.py` in foreground
2020-11-02 21:10:49,799.799 INFO core - check_for_mmpm_updates: No newer version of MMPM found > 2.05 available. The current version is the latest
No newer version of MMPM found > 2.05 available. The current version is the latest
2020-11-02 21:10:49,802.802 INFO utils - run_cmd: Executing process `git fetch --dry-run` in foreground
Executing process `git fetch --dry-run` in foreground
2020-11-02 21:10:50,623.623 INFO api - packages_upgradeable: Request to get upgradeable packages
Request to get upgradeable packages
2020-11-02 21:21:28,953.953 INFO core - load_packages: Backing up database file as /home/phil/.config/mmpm/MagicMirror-3rd-party-packages-db.json.bak
Backing up database file as /home/phil/.config/mmpm/MagicMirror-3rd-party-packages-db.json.bak
2020-11-02 21:21:28,955.955 INFO core - load_packages: Back up of database complete
Back up of database complete
2020-11-02 21:26:34,226.226 INFO core - load_packages: Backing up database file as /home/phil/.config/mmpm/MagicMirror-3rd-party-packages-db.json.bak
Backing up database file as /home/phil/.config/mmpm/MagicMirror-3rd-party-packages-db.json.bak
2020-11-02 21:26:34,227.227 INFO core - load_packages: Back up of database complete
Back up of database complete
2020-11-02 21:26:34,233.233 INFO core - display_mmpm_env_vars: User listing environment variables, set with the following values
User listing environment variables, set with the following values
2020-11-02 21:26:45,847.847 INFO api - mmpm_environment_vars_file: Saving MMPM environment variables file
Saving MMPM environment variables file
2020-11-02 21:26:45,865.865 INFO api - packages_marketplace: Sending all marketplace packages
Sending all marketplace packages
2020-11-02 21:26:45,893.893 INFO api - packages_installed: Sending all installed packages
Sending all installed packages
2020-11-02 21:26:45,903.903 INFO api - packages_external: Sending all external packages
Sending all external packages
2020-11-02 21:26:45,916.916 INFO utils - reset_available_upgrades_for_environment: Resetting available upgrades for /home/phil/MagicMirror
Resetting available upgrades for /home/phil/MagicMirror
2020-11-02 21:26:45,917.917 INFO core - check_for_mmpm_updates: Checking for newer version of MMPM. Current version: 2.05
Checking for newer version of MMPM. Current version: 2.05
2020-11-02 21:26:45,920.920 INFO utils - run_cmd: Executing process `curl https://raw.githubusercontent.com/Bee-Mar/mmpm/master/mmpm/mmpm.py` in foreground
Executing process `curl https://raw.githubusercontent.com/Bee-Mar/mmpm/master/mmpm/mmpm.py` in foreground
2020-11-02 21:26:46,328.328 INFO core - check_for_mmpm_updates: No newer version of MMPM found > 2.05 available. The current version is the latest
No newer version of MMPM found > 2.05 available. The current version is the latest
2020-11-02 21:26:46,332.332 INFO utils - run_cmd: Executing process `git fetch --dry-run` in foreground
Executing process `git fetch --dry-run` in foreground
2020-11-02 21:26:47,154.154 INFO api - packages_upgradeable: Request to get upgradeable packages
Request to get upgradeable packages
2020-11-02 21:27:10,205.205 INFO core - load_packages: Backing up database file as /home/phil/.config/mmpm/MagicMirror-3rd-party-packages-db.json.bak
Backing up database file as /home/phil/.config/mmpm/MagicMirror-3rd-party-packages-db.json.bak
2020-11-02 21:27:10,207.207 INFO core - load_packages: Back up of database complete
Back up of database complete
2020-11-02 21:27:10,213.213 INFO core - display_mmpm_env_vars: User listing environment variables, set with the following values
User listing environment variables, set with the following values

mmpm-error.log (those errors occured before fixing the localhost with 127.0.0.1

2020/11/02 21:07:31 [error] 552#552: *1 connect() failed (111: Connection refused) while connecting to upstream, client: 10.0.9.21, server: _, request: "GET / HTTP/1.1", upstream: "http://127.0.0.1:7891/", host: "10.0.1.11:7890"
2020/11/02 21:07:31 [error] 552#552: *1 connect() failed (111: Connection refused) while connecting to upstream, client: 10.0.9.21, server: _, request: "GET / HTTP/1.1", upstream: "http://[::1]:7891/", host: "10.0.1.11:7890"

mmpm-access.log

    10.0.9.21 - - [02/Nov/2020:21:07:31 +0100] "GET / HTTP/1.1" 502 575 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36"
10.0.9.21 - - [02/Nov/2020:21:09:31 +0100] "GET / HTTP/1.1" 200 360 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36"
10.0.9.21 - - [02/Nov/2020:21:09:31 +0100] "GET /static/runtime-es2015.js HTTP/1.1" 200 1492 "http://10.0.1.11:7890/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36"
10.0.9.21 - - [02/Nov/2020:21:09:31 +0100] "GET /static/polyfills-es2015.js HTTP/1.1" 200 36993 "http://10.0.1.11:7890/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36"
10.0.9.21 - - [02/Nov/2020:21:09:31 +0100] "GET /static/styles.css HTTP/1.1" 200 172629 "http://10.0.1.11:7890/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36"
10.0.9.21 - - [02/Nov/2020:21:09:31 +0100] "GET /static/main-es2015.js HTTP/1.1" 200 935742 "http://10.0.1.11:7890/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36"
10.0.9.21 - - [02/Nov/2020:21:09:32 +0100] "GET /api/packages/marketplace HTTP/1.1" 200 48287 "http://10.0.1.11:7890/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36"
10.0.9.21 - - [02/Nov/2020:21:09:32 +0100] "GET /api/mmpm/environment-vars HTTP/1.1" 200 168 "http://10.0.1.11:7890/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36"
10.0.9.21 - - [02/Nov/2020:21:09:32 +0100] "GET /static/assets/icons/paypal.svg HTTP/1.1" 200 1369 "http://10.0.1.11:7890/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36"
10.0.9.21 - - [02/Nov/2020:21:09:32 +0100] "GET /api/mmpm/version HTTP/1.1" 200 17 "http://10.0.1.11:7890/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36"
10.0.9.21 - - [02/Nov/2020:21:09:32 +0100] "GET /api/mmpm/environment-vars HTTP/1.1" 200 168 "http://10.0.1.11:7890/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36"
10.0.9.21 - - [02/Nov/2020:21:09:32 +0100] "GET /api/magicmirror/config HTTP/1.1" 200 2092 "http://10.0.1.11:7890/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36"
10.0.9.21 - - [02/Nov/2020:21:09:32 +0100] "GET /api/magicmirror/custom-css HTTP/1.1" 200 0 "http://10.0.1.11:7890/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36"
10.0.9.21 - - [02/Nov/2020:21:09:32 +0100] "GET /api/mmpm/environment-vars-file HTTP/1.1" 200 229 "http://10.0.1.11:7890/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36"
10.0.9.21 - - [02/Nov/2020:21:09:32 +0100] "GET /static/assets/monaco/vs/loader.js HTTP/1.1" 200 30186 "http://10.0.1.11:7890/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36"
10.0.9.21 - - [02/Nov/2020:21:09:32 +0100] "GET /static/MaterialIcons-Regular.woff2 HTTP/1.1" 200 60840 "http://10.0.1.11:7890/static/styles.css" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36"
10.0.9.21 - - [02/Nov/2020:21:09:32 +0100] "GET /static/PermanentMarker-Regular.ttf HTTP/1.1" 200 73620 "http://10.0.1.11:7890/static/styles.css" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36"
10.0.9.21 - - [02/Nov/2020:21:09:32 +0100] "GET /api/packages/installed HTTP/1.1" 200 191 "http://10.0.1.11:7890/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36"
10.0.9.21 - - [02/Nov/2020:21:09:32 +0100] "GET /api/packages/external HTTP/1.1" 200 56 "http://10.0.1.11:7890/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36"
10.0.9.21 - - [02/Nov/2020:21:09:32 +0100] "GET /static/assets/monaco/vs/editor/editor.main.js HTTP/1.1" 200 2197098 "http://10.0.1.11:7890/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36"
10.0.9.21 - - [02/Nov/2020:21:09:32 +0100] "GET /static/assets/monaco/vs/editor/editor.main.css HTTP/1.1" 200 301370 "http://10.0.1.11:7890/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36"
10.0.9.21 - - [02/Nov/2020:21:09:32 +0100] "GET /static/assets/monaco/vs/editor/editor.main.nls.js HTTP/1.1" 200 39283 "http://10.0.1.11:7890/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36"
10.0.9.21 - - [02/Nov/2020:21:09:32 +0100] "GET /static/assets/monaco/vs/language/typescript/tsMode.js HTTP/1.1" 200 20892 "http://10.0.1.11:7890/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36"
10.0.9.21 - - [02/Nov/2020:21:09:32 +0100] "GET /static/assets/monaco/vs/basic-languages/javascript/javascript.js HTTP/1.1" 200 6462 "http://10.0.1.11:7890/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36"
10.0.9.21 - - [02/Nov/2020:21:09:32 +0100] "GET /static/assets/monaco/vs/language/json/jsonMode.js HTTP/1.1" 200 48760 "http://10.0.1.11:7890/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36"
10.0.9.21 - - [02/Nov/2020:21:09:32 +0100] "GET /static/assets/monaco/vs/base/worker/workerMain.js HTTP/1.1" 200 136669 "http://10.0.1.11:7890/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36"
10.0.9.21 - - [02/Nov/2020:21:09:32 +0100] "GET /static/assets/monaco/vs/language/json/jsonWorker.js HTTP/1.1" 200 126041 "http://10.0.1.11:7890/static/assets/monaco/vs/base/worker/workerMain.js" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36"
10.0.9.21 - - [02/Nov/2020:21:09:33 +0100] "GET /api/packages/update HTTP/1.1" 200 4 "http://10.0.1.11:7890/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36"
10.0.9.21 - - [02/Nov/2020:21:09:33 +0100] "GET /api/packages/upgradeable HTTP/1.1" 200 75 "http://10.0.1.11:7890/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36"
10.0.9.21 - - [02/Nov/2020:21:10:41 +0100] "POST /api/mmpm/environment-vars-file HTTP/1.1" 200 4 "http://10.0.1.11:7890/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36"
10.0.9.21 - - [02/Nov/2020:21:10:41 +0100] "GET /api/mmpm/environment-vars HTTP/1.1" 200 166 "http://10.0.1.11:7890/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36"
10.0.9.21 - - [02/Nov/2020:21:10:41 +0100] "GET /api/packages/marketplace HTTP/1.1" 200 48287 "http://10.0.1.11:7890/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36"
10.0.9.21 - - [02/Nov/2020:21:10:41 +0100] "GET /api/packages/installed HTTP/1.1" 200 191 "http://10.0.1.11:7890/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36"
10.0.9.21 - - [02/Nov/2020:21:10:41 +0100] "GET /api/packages/external HTTP/1.1" 200 56 "http://10.0.1.11:7890/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36"
10.0.9.21 - - [02/Nov/2020:21:10:42 +0100] "GET /api/packages/update HTTP/1.1" 200 4 "http://10.0.1.11:7890/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36"
10.0.9.21 - - [02/Nov/2020:21:10:42 +0100] "GET /api/packages/upgradeable HTTP/1.1" 200 75 "http://10.0.1.11:7890/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36"
10.0.9.21 - - [02/Nov/2020:21:10:44 +0100] "GET /api/mmpm/environment-vars HTTP/1.1" 200 166 "http://10.0.1.11:7890/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36"
10.0.9.21 - - [02/Nov/2020:21:10:48 +0100] "GET / HTTP/1.1" 200 360 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36"
10.0.9.21 - - [02/Nov/2020:21:10:48 +0100] "GET /static/styles.css HTTP/1.1" 304 0 "http://10.0.1.11:7890/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36"
10.0.9.21 - - [02/Nov/2020:21:10:48 +0100] "GET /static/runtime-es2015.js HTTP/1.1" 304 0 "http://10.0.1.11:7890/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36"
10.0.9.21 - - [02/Nov/2020:21:10:48 +0100] "GET /static/polyfills-es2015.js HTTP/1.1" 304 0 "http://10.0.1.11:7890/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36"
10.0.9.21 - - [02/Nov/2020:21:10:48 +0100] "GET /static/main-es2015.js HTTP/1.1" 304 0 "http://10.0.1.11:7890/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36"
10.0.9.21 - - [02/Nov/2020:21:10:49 +0100] "GET /api/mmpm/environment-vars HTTP/1.1" 200 166 "http://10.0.1.11:7890/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36"
10.0.9.21 - - [02/Nov/2020:21:10:49 +0100] "GET /api/packages/marketplace HTTP/1.1" 200 48287 "http://10.0.1.11:7890/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36"
10.0.9.21 - - [02/Nov/2020:21:10:49 +0100] "GET /static/assets/icons/paypal.svg HTTP/1.1" 304 0 "http://10.0.1.11:7890/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36"
10.0.9.21 - - [02/Nov/2020:21:10:49 +0100] "GET /api/mmpm/version HTTP/1.1" 200 17 "http://10.0.1.11:7890/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36"
10.0.9.21 - - [02/Nov/2020:21:10:49 +0100] "GET /api/mmpm/environment-vars HTTP/1.1" 200 166 "http://10.0.1.11:7890/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36"
10.0.9.21 - - [02/Nov/2020:21:10:49 +0100] "GET /api/magicmirror/config HTTP/1.1" 200 2092 "http://10.0.1.11:7890/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36"
10.0.9.21 - - [02/Nov/2020:21:10:49 +0100] "GET /api/mmpm/environment-vars-file HTTP/1.1" 200 228 "http://10.0.1.11:7890/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36"
10.0.9.21 - - [02/Nov/2020:21:10:49 +0100] "GET /api/magicmirror/custom-css HTTP/1.1" 200 0 "http://10.0.1.11:7890/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36"
10.0.9.21 - - [02/Nov/2020:21:10:49 +0100] "GET /static/MaterialIcons-Regular.woff2 HTTP/1.1" 304 0 "http://10.0.1.11:7890/static/styles.css" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36"
10.0.9.21 - - [02/Nov/2020:21:10:49 +0100] "GET /static/PermanentMarker-Regular.ttf HTTP/1.1" 304 0 "http://10.0.1.11:7890/static/styles.css" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36"
10.0.9.21 - - [02/Nov/2020:21:10:49 +0100] "GET /static/assets/monaco/vs/loader.js HTTP/1.1" 304 0 "http://10.0.1.11:7890/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36"
10.0.9.21 - - [02/Nov/2020:21:10:49 +0100] "GET /api/packages/installed HTTP/1.1" 200 191 "http://10.0.1.11:7890/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36"
10.0.9.21 - - [02/Nov/2020:21:10:49 +0100] "GET /api/packages/external HTTP/1.1" 200 56 "http://10.0.1.11:7890/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36"
10.0.9.21 - - [02/Nov/2020:21:10:49 +0100] "GET /static/assets/monaco/vs/editor/editor.main.js HTTP/1.1" 304 0 "http://10.0.1.11:7890/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36"
10.0.9.21 - - [02/Nov/2020:21:10:49 +0100] "GET /static/assets/monaco/vs/editor/editor.main.css HTTP/1.1" 304 0 "http://10.0.1.11:7890/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36"
10.0.9.21 - - [02/Nov/2020:21:10:49 +0100] "GET /static/assets/monaco/vs/editor/editor.main.nls.js HTTP/1.1" 304 0 "http://10.0.1.11:7890/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36"
10.0.9.21 - - [02/Nov/2020:21:10:49 +0100] "GET /static/assets/monaco/vs/language/typescript/tsMode.js HTTP/1.1" 304 0 "http://10.0.1.11:7890/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36"
10.0.9.21 - - [02/Nov/2020:21:10:49 +0100] "GET /static/assets/monaco/vs/basic-languages/javascript/javascript.js HTTP/1.1" 304 0 "http://10.0.1.11:7890/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36"
10.0.9.21 - - [02/Nov/2020:21:10:49 +0100] "GET /static/assets/monaco/vs/language/json/jsonMode.js HTTP/1.1" 304 0 "http://10.0.1.11:7890/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36"
10.0.9.21 - - [02/Nov/2020:21:10:49 +0100] "GET /static/assets/monaco/vs/base/worker/workerMain.js HTTP/1.1" 304 0 "http://10.0.1.11:7890/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36"
10.0.9.21 - - [02/Nov/2020:21:10:49 +0100] "GET /static/assets/monaco/vs/language/json/jsonWorker.js HTTP/1.1" 304 0 "http://10.0.1.11:7890/static/assets/monaco/vs/base/worker/workerMain.js" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36"
10.0.9.21 - - [02/Nov/2020:21:10:50 +0100] "GET /api/mmpm/environment-vars HTTP/1.1" 200 166 "http://10.0.1.11:7890/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36"
10.0.9.21 - - [02/Nov/2020:21:10:50 +0100] "GET /api/packages/update HTTP/1.1" 200 4 "http://10.0.1.11:7890/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36"
10.0.9.21 - - [02/Nov/2020:21:10:50 +0100] "GET /api/packages/upgradeable HTTP/1.1" 200 75 "http://10.0.1.11:7890/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36"

cat /etc/os-release

phil@MagicMirrors:~$ cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 10 (buster)"
NAME="Debian GNU/Linux"
VERSION_ID="10"
VERSION="10 (buster)"
VERSION_CODENAME=buster
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

python3 --version

phil@MagicMirrors:~$ python3 --version
Python 3.7.3

Webbrowser: Chrome

phil@MagicMirrors:~$ mmpm env
{
"MMPM_MAGICMIRROR_ROOT": "/home/phil/MagicMirror",
"MMPM_MAGICMIRROR_URI": "http://10.0.1.11:8080",
"MMPM_MAGICMIRROR_PM2_PROCESS_NAME": "",
"MMPM_MAGICMIRROR_DOCKER_COMPOSE_FILE": ".",
"MMPM_IS_DOCKER_IMAGE": false
}

Run mmpm open --env to edit the variable values

config.js

    /* Magic Mirror Config Sample
*
* By Michael Teeuw https://michaelteeuw.nl
* MIT Licensed.
*
* For more information on how you can configure this file
* See https://github.com/MichMich/MagicMirror#configuration
*
*/

    var config = {
        address: "0.0.0.0",     
        port: 8080,
        basePath: "/",  
        ipWhitelist: [],
        useHttps: false,
        httpsPrivateKey: "",
        httpsCertificate: "",
        language: "de",
        logLevel: ["INFO", "LOG", "WARN", "ERROR"],
        timeFormat: 24,
        units: "metric",
        serverOnly:  true, 

    modules: [
        {
            module: "alert",
        },
        {
            module: "updatenotification",
            position: "top_bar"
        },
        {
            module: "clock",
            position: "top_left"
        },
        {
            module: "calendar",
            header: "US Holidays",
            position: "top_left",
            config: {
                calendars: [
                    {
                        symbol: "calendar-check",
                        url: "webcal://www.calendarlabs.com/ical-calendar/ics/76/US_Holidays.ics"					}
                ]
            }
        },
        {
            module: "compliments",
            position: "lower_third"
        },
        {
            module: "currentweather",
            position: "top_right",
            config: {
                location: "New York",
                locationID: "", //ID from http://bulk.openweathermap.org/sample/city.list.json.gz; unzip the gz file and find your city
                appid: "YOUR_OPENWEATHER_API_KEY"
            }
        },
        {
            module: "weatherforecast",
            position: "top_right",
            header: "Weather Forecast",
            config: {
                location: "New York",
                locationID: "5128581", //ID from http://bulk.openweathermap.org/sample/city.list.json.gz; unzip the gz file and find your city
                appid: "YOUR_OPENWEATHER_API_KEY"
            }
        },
        {
            module: "newsfeed",
            position: "bottom_bar",
            config: {
                feeds: [
                    {
                        title: "New York Times",
                        url: "https://rss.nytimes.com/services/xml/rss/nyt/HomePage.xml"
                    }
                ],
                showSourceTitle: true,
                showPublishDate: true,
                broadcastNewsFeeds: true,
                broadcastNewsUpdates: true
            }
        },
    ]
};

/*************** DO NOT EDIT THE LINE BELOW ***************/
if (typeof module !== "undefined") {module.exports = config;}

So, issue created. Hope you can help me figure this out.
Thanks!
PhiL

MMPM does not detect git failures

Installing MMM-Dad-Jokes @ /mnt/dev/MagicMirror/modules/MMM-Dad-Jokes

Cloning repository for MMM-Dad-Jokes...

Cloning into '/mnt/dev/MagicMirror/modules/MMM-Dad-Jokes'...
fatal: cannot copy '/usr/share/git-core/templates/description' to '/mnt/dev/MagicMirror/modules/MMM-Dad-Jokes/.git/description': Operation not permitted

Repository cloned.

Pretty sure I've messed up my git-core somehow. MMPM does not detect that the clone failed.

Add rotate screen button to Control Center

Hi,

I was wondering if a rotate screen button could be added to Control Center. It would give visual feedback as to what rotation the screen has and prompt the user after 3 seconds if they want to reboot the pi (the delay would give the user enough time to click the button multiple times until they get the desired rotation, every time they click the button the timer would reset).

After reboot the changes should take into effect!

These are the instructions on how to rotate the screen of the raspberry pi:

Here's a bash script I wrote that rotates the screen of the RaspberryPi:

#!/bin/bash
# run with sudo
# reboot raspberry pi for changes to take effect

CONFIG='/boot/config.txt'

# save default configuration file
if [ ! -f $CONFIG.save ]; then
    cp $CONFIG $CONFIG.save
fi

# get the rotation of the file
ROTATION=$(tail -1 $CONFIG)

# override current config file to remove changes
cp $CONFIG.save $CONFIG

# rotate clause
if [ $ROTATION == 'display_rotate=0' ]; then
    echo 'display_rotate=1' >> $CONFIG
    echo 'display_rotate=1'
elif [ $ROTATION == 'display_rotate=1' ]; then
    echo 'display_rotate=2' >> $CONFIG
    echo 'display_rotate=2'
elif [ $ROTATION == 'display_rotate=2' ]; then
    echo 'display_rotate=3' >> $CONFIG
    echo 'display_rotate=3'
elif [ $ROTATION == 'display_rotate=3' ]; then
    echo 'display_rotate=0' >> $CONFIG
    echo 'display_rotate=0'
else
    echo 'display_rotate=1' >> $CONFIG
    echo 'display_rotate=1'
fi

You could spawn a process that executes this script and the output of the script would give you the current rotation of the screen.

If you need any help adding this enhancement, I'd be happy to help!

BUG:

Rapsberry Pi 3 freshly installed.

The script flask is installed in '/home/pi/.local/bin' which is not on PATH. Consider adding this directory to PATH or, if you prefer to suppress this warn ing, use --no-warn-script-location. The script wssh is installed in '/home/pi/.local/bin' which is not on PATH. Consider adding this directory to PATH or, if you prefer to suppress this warn ing, use --no-warn-script-location. The script gunicorn is installed in '/home/pi/.local/bin' which is not on PATH . Consider adding this directory to PATH or, if you prefer to suppress this warn ing, use --no-warn-script-location. The script mmpm is installed in '/home/pi/.local/bin' which is not on PATH. Consider adding this directory to PATH or, if you prefer to suppress this warn ing, use --no-warn-script-location. Successfully installed Flask-Cors-3.0.9 Jinja2-2.11.2 Werkzeug-1.0.1 argcomplete -1.12.1 argparse-1.4.0 bcrypt-3.2.0 bs4-0.0.1 cffi-1.14.3 colorama-0.4.3 dnspyth on-2.0.0 eventlet-0.25.1 flask-1.1.1 flask-socketio-4.3.1 greenlet-0.4.17 gunico rn-20.0.4 importlib-metadata-2.0.0 mmpm-2.5 monotonic-1.5 paramiko-2.7.2 pycpars er-2.20 pynacl-1.4.0 python-engineio-3.13.2 python-socketio-4.6.0 requests-2.23. 0 tornado-6.0.4 websocket-client-0.57.0 webssh-1.5.3 zipp-3.2.0 pi@raspberrypi:~ $ mmpm --guided-setup -bash: mmpm: command not found

BUG: Inconsistent naming convention on 3rd party pages causes uninstallable/harder to install modules

Describe the Bug

Is this an issue with the CLI or GUI? Both

Is this something that should be put in the Wiki? Should be fixed by the MagicMirror wiki editors

A clear and concise description of what the bug is.

To Reproduce
Steps to reproduce the behavior:

  1. Go to https://github.com/MichMich/MagicMirror/wiki/3rd-Party-Modules
  2. Click on Daily Pokemon
    The repo name (has changed?) is MMM-DailyPokemon, when installing the Daily Pokemon package, it will place it in a folder named Daily Pokemon, but in the README it will say to name the module MMM-DailyPokemon.
    Changing the name of the folder fixes this issue, but I noticed multiple of these occurences. (https://github.com/alexBeuth/MMM-germanwordclock as well)

Expected behavior
I expected the naming of the repo and the 3rd party page to be the same.

I am unsure if this should be an issue on this page or on the MagicMirror repo. I am sorry if I placed it in the wrong location.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.