MagicMirror Forum
    • Recent
    • Tags
    • Unsolved
    • Solved
    • MagicMirror² Repository
    • Documentation
    • 3rd-Party-Modules
    • Donate
    • Discord
    • Register
    • Login
    A New Chapter for MagicMirror: The Community Takes the Lead
    Read the statement by Michael Teeuw here.

    How to upgrade a Linux "server" with minimal modules?

    Scheduled Pinned Locked Moved General Discussion
    12 Posts 2 Posters 14 Views 2 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • E Offline
      ember1205
      last edited by

      I’ve been using MM for a number of years in a couple of different forms. For the most part, I did what everyone else does and I ran it standalone on a RPi. After having some issues with the RPi hardware and older software causing lock-up’s, I moved to more of a “client-server” setup where the server pieces was installed and running on a linux client (headless) and my local RPi would launch a browser session to connect.

      I now find myself in the situation where I would very much like to upgrade the server-side component, but I don’t see a clear directive on the steps I should consider. Attempting to use @sdetweil 's upgrade script results in errors about wrong platform and such, so that’s a no-go.

      I’ve tried a couple of other npm type updates but they leave the system in a completely unstable state and I end up having to just revert back to a previous snapshot and restart the server to its former state.

      Any general suggestions of where to start?

      S 2 Replies Last reply Reply Quote 0
      • S Do not disturb
        sdetweil @ember1205
        last edited by sdetweil

        @ember1205 by default, install puts down all the code, with three different start options

        // server only - probably what you have now
        npm run server

        // npm start, npm run start , npm run start:x11, npm run start:wayland (last two in latest releases)
        // launch UI, thru embedded electron browser or browser on system thru my browser over server setup
        npm run start

        // or client
        npm run client

        the latest releases will need a new OS, and new JS, and a new …

        one thing you can use to move between environments, is my backup/restore scripts.
        https://github.com/sdetweil/MagicMirror-backup-restore

        which backup the config.js, custom.css (and any other files related)
        and the list of modules installed… NOT the BINARY

        this backup can be placed on github, so you don’t have to store it on the local machine
        storing with git, also allows you to keep track of changes/versions of your setup

        because it is NOT a binary, you can use it to transition to new SD cards, or new systems (pi->minipc…etc)
        backup here, restore there
        restore assumes MM is installed and runnable…

        as an example
        backup now, save to github (still free today)
        make new sd card,
        boot
        install MM
        then run restore to put saved config and modules on the new system

        you can run the backup/restore by copy/pasting the links and adding parms if need be (like push to repo, not default)

        in the meantime, you can just change the start command from run server to run start to start the MM ui on the same machine (needs a head of course)

        ps. you cannot upgrade ONE feature and not others… its all or nothing

        we ALWAYS start the server, and sometimes start the UI depending on the command used
        but the files are all one instance at the same version

        Sam

        How to add modules

        learning how to use browser developers window for css changes

        E 1 Reply Last reply Reply Quote 0
        • S Do not disturb
          sdetweil @ember1205
          last edited by

          @ember1205 I recommend

          make a backup, store to github
          make a new SD card, latest OS
          install MM, verify it starts (full service, UI etc)
          run restore from github to restore your configuration and modules…
          restart and verify

          old system is untouched

          Sam

          How to add modules

          learning how to use browser developers window for css changes

          1 Reply Last reply Reply Quote 0
          • E Offline
            ember1205 @sdetweil
            last edited by

            @sdetweil Thanks for the response.

            I’m familiar with the different options that come with a new install and would be ok with having to DO a new install if that’s the only way to get upgrades completed. I guess I’m wondering if there’s a simpler way to upgrade the one or two modules that I have and get the core MM upgraded as well without having to start from scratch with the configuration and such. This instance is server only (there’s nothing attached to any sort of output here, and I don’t even run MM as the client any more - it’s a linux shell with its own GUI, auto-starts firefox in kiosk mode, and the page is set to always launch the mirror address).

            I’m not even concerned with how to back everything up because my installation is actually fairly simple. And I’m not actually looking to change environments - I’ve already done that from a short while back. This is all entirely for the server side which is a linux guest running on a XCP-NG virtualization host.

            S 3 Replies Last reply Reply Quote 0
            • S Do not disturb
              sdetweil @ember1205
              last edited by sdetweil

              @ember1205 the difficulty is that the core has been kept up to date, and it requires new system parts that require new system parts…

              you MUST upgrade nodejs if not on node 22
              upgrading on older systems fails, the next node upgrade, 24 or above, drops support for 32bit systems completely… we are holding off as long as we can… but the clock is ticking…

              my install and upgrade scripts enforce the systems path… if they fail now, there is no manual way to get there from where you are… (without rebuild)

              and if you use my installer script, its a copy/paste… not a lot of work

              make the backup regardless

              Sam

              How to add modules

              learning how to use browser developers window for css changes

              1 Reply Last reply Reply Quote 0
              • S Do not disturb
                sdetweil @ember1205
                last edited by

                @ember1205 you can attempt to upgrade modules…

                each is separate

                cd module_folder
                git pull
                if successful, npm install

                restart mm… to load the new modules…

                only a few have latest as dependencies… which would force all the above work

                Sam

                How to add modules

                learning how to use browser developers window for css changes

                1 Reply Last reply Reply Quote 0
                • S Do not disturb
                  sdetweil @ember1205
                  last edited by sdetweil

                  @ember1205 upgrade of the core code is

                  cd  MagicMirror_folder
                  git pull
                  npm install
                  

                  if it will run… needs at least node 22.22.1

                  let me know how I can help

                  you can fall back to a prior version by switching to one of the earlier releases, thru the git tag we created.
                  if you try the upgrade (manual) and it fails and want to try this, let me know i’ll provide the commands needed

                  Sam

                  How to add modules

                  learning how to use browser developers window for css changes

                  E 1 Reply Last reply Reply Quote 0
                  • E Offline
                    ember1205 @sdetweil
                    last edited by

                    @sdetweil I am running (currently) on opensuse Leap 15.6. I will be updating in the not-too-distant future to Leap 16.0.

                    In looking at the installed packages, Node.js lists “22.22.0” as the package but “22.15.1” as the installed version. So…

                    zypper ref ; zypper up
                    

                    Let it install all of the pertinent updates… Reboot (new kernel was part of the updates)… Everything is back online. Checking the installed software list now shows Node.js as “22.22.0”.

                    Leap 16.0 will allow me to go to Node.js 24, but that would be an undertaking for later today or later this week (depending on what time I might have elsewhere).

                    Updating the modules went fine (overall). This is what a git pull in the main MM directory shows me:

                    From https://github.com/MichMich/MagicMirror
                       3dbe8bfbb..fb41d24ef  master     -> origin/master
                       ec80b2508..e747db16d  develop    -> origin/develop
                     * [new tag]             v2.1.3     -> v2.1.3
                     * [new tag]             v2.14.0    -> v2.14.0
                     * [new tag]             v2.15.0    -> v2.15.0
                     * [new tag]             v2.16.0    -> v2.16.0
                     * [new tag]             v2.17.0    -> v2.17.0
                     * [new tag]             v2.17.1    -> v2.17.1
                     * [new tag]             v2.18.0    -> v2.18.0
                     * [new tag]             v2.19.0    -> v2.19.0
                     * [new tag]             v2.2.1     -> v2.2.1
                     * [new tag]             v2.20.0    -> v2.20.0
                     * [new tag]             v2.21.0    -> v2.21.0
                     * [new tag]             v2.22.0    -> v2.22.0
                     * [new tag]             v2.23.0    -> v2.23.0
                     * [new tag]             v2.24.0    -> v2.24.0
                     * [new tag]             v2.25.0    -> v2.25.0
                     * [new tag]             v2.26.0    -> v2.26.0
                     * [new tag]             v2.27.0    -> v2.27.0
                     * [new tag]             v2.28.0    -> v2.28.0
                     * [new tag]             v2.29.0    -> v2.29.0
                     * [new tag]             v2.30.0    -> v2.30.0
                     * [new tag]             v2.31.0    -> v2.31.0
                     * [new tag]             v2.32.0    -> v2.32.0
                     * [new tag]             v2.33.0    -> v2.33.0
                     * [new tag]             v2.34.0    -> v2.34.0
                     * [new tag]             v2.35.0    -> v2.35.0
                     * [new tag]             v2.36.0    -> v2.36.0
                    Updating 3dbe8bfbb..fb41d24ef
                    error: Your local changes to the following files would be overwritten by merge:
                            package-lock.json
                            package.json
                    Please commit your changes or stash them before you merge.
                    Aborting
                    
                    
                    E S 2 Replies Last reply Reply Quote 0
                    • E Offline
                      ember1205 @ember1205
                      last edited by

                      Update…

                      Updating the modules crashes the server. So, I’m going to have to get the main server updated… I had to revert to a prior snapshot to get the MM server running again.

                      1 Reply Last reply Reply Quote 0
                      • S Do not disturb
                        sdetweil @ember1205
                        last edited by

                        @ember1205 said:

                        package-lock.json
                        package.json

                        erase those and git pull again

                        Sam

                        How to add modules

                        learning how to use browser developers window for css changes

                        E 1 Reply Last reply Reply Quote 0
                        • E Offline
                          ember1205 @sdetweil
                          last edited by

                          @sdetweil I’ll have to try again a little later today maybe… I had to revert the snapshot (removing the module updates) to get it running again.

                          S 1 Reply Last reply Reply Quote 0
                          • S Do not disturb
                            sdetweil @ember1205
                            last edited by

                            @ember1205 understand… please advise your results when you can

                            Sam

                            How to add modules

                            learning how to use browser developers window for css changes

                            1 Reply Last reply Reply Quote 0

                            Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                            Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                            With your input, this post could be even better 💗

                            Register Login
                            • 1 / 1
                            • First post
                              Last post
                            Enjoying MagicMirror? Please consider a donation!
                            MagicMirror created by Michael Teeuw.
                            Forum managed by Sam, technical setup by Karsten.
                            This forum is using NodeBB as its core | Contributors
                            Contact | Privacy Policy