Read the statement by Michael Teeuw here.
Questions about update
-
I have a couple of tricks I use to preserve my modifications, even across a total system rebuild.
- config.js & custom.css is symlinked to my backup directory.
- my config.js is commented on where I can get my modules, and any forum posts which apply to help get them running (like how to add back required node.js modules that aren’t in MagicMirror core anymore)
- any and all non-core modules that have changes that would be overwritten by an update by the author are forked to my own github. if I update a core module, I would symlink the modified file to my backup directory.
- I left myself instructions in the backup directory on how to reset things I can’t/shouldn’t backup as of present (crontab, samba, config.txt, how to set up fresh SD card, hostname, etc) (config.txt you’ll see in the backup, but you shouldn’t just copy that back as new installs may be different in that file, use it to compare and add your changes)
- My backup directory is thrown to github in a private repository nightly using this (censored) script.
#!/bin/bash d=$(date +%Y-%m-%d) cd ~/<directory> cp /boot/config.txt config.txt.backup cp /etc/samba/smb.conf smb.conf.backup rm core git add * git commit -m "Nightly Backup"+$d --all git push https://BKeyport:<token>@github.com/BKeyport/<directory>.git
In my
crontab -e
:0 0 * * * /home/pi/<directory>/backup.sh 30 * * * * pm2 restart omx
(Run the backup script at midnight, and restart my camera cutout at 30 minutes past the hour respectively - OMX is a bit of a pain, working on better)
I would love to see user modules be in their own directory so I could just wholesale symlink that directory to my backup system, but, eh…
howtos :
github (cheat sheet: https://education.github.com/git-cheat-sheet-education.pdf)
symlinks: (https://www.freecodecamp.org/news/symlink-tutorial-in-linux-how-to-create-and-remove-a-symbolic-link/)
cron: https://ostechnix.com/a-beginners-guide-to-cron-jobs/ -
What a lot of effort… Do you do the same with your personal computer?
Wow… :'(
-
@bugsounet No effort at all, once it’s set up. 😃
Takes the typical reload time of 5 hours down to an hour, including burning a new SD. About 10 minutes of setup to restart a messed up mirror.
-
😂 😂 MM update every 6 month… System update every month or less… Npm package update every month… Modules every month… Or not maintened… Yeah really I am 😂 😂 😂
So I think you use very old system… And you are a module developer! 😂 😂
Its very poor to read this from a developer
Sorry., it’s not like this that you will learn beginerSample with your Old save… Just try to laun an update… It will take a lot of time! 😂 (apt-get update & & apt-get upgrade)
You will says… Yes but it’s not necessary… So don’t do any update on your computer too!
Impressive :)
-
@bugsounet SD Card failed every month for a while. Got tired of having to rebuild from scratch and taking time to have to find how to do half the crap I do, because my memory is swiss cheese when it comes to CSS in particular. :)
Admittedly, my mirror is on a pi that does more than just the mirror, one of my files updates every couple of days. I do this to make it so I don’t have to think when I make major changes.
It’s a suggestion. Leave it at that, eh?
-
@bugsounet said in Questions about update:
Its very poor to read this from a developer
is there a difference between running an old system and running a public forum without
https
? -
@karsten13 Make all things like me after you can talk ;)
-
Hi,
Yes, it’s a good solution that works great once installed.
To build my MM, I have made some modifications on everywhere to obtain the result I want, and if i had to rebuild all it will take a lot of time because it’s impossible to remember everything (like modifications on boot.txt)And I agree about SD Card. It’s a really difficult to preserve it. So the solution is to externalize backups.
I’ve a NAS server with NFS possibilities. I think I’ll build a script to save every night for example a backup of config.js, custom.css, compliments.js and boot.txt (to compare in case of rebuild).
But, i’m also agree is represent a lot of work for a system that not modify every day. A big backup on every major modification is sufficient.Have a nice day.
-
@bkeyport thanks. my backup doesn’t copy custom.css… doah
-
Just scripted what I want. Not externalized for the moment. Just a simple copy of modules folder and personnalized files.
Sorry if it’s not perfect, but i’m not a developer :)
#!/bin/bash #BACKUP FOLDER mkdir -p /var/backups/MM cd /var/backups/MM #OLD BACKUPS PURGE echo "--- PURGE TASK ---" echo "Check for existing backups..." nb_save=$(ls | wc -l) if [ $nb_save -gt 4 ] then oldest_folder=$(ls -lt | tail -1 | cut -d " " -f10) echo "Limit of 5 backups reach. Deleting of the oldest one : $oldest_folder" rm -rf "$oldest_folder" echo "DELETED." else echo "Limit of 5 backups doesn't reach, skip to backup task." fi #BACKUP echo "--- BACKUP TASK ---" echo "Starting..." d=$(date +%Y-%m-%d_%H:%M) mkdir -p $d cd $d cp /home/pi/MagicMirror/config/config.js config.js cp /home/pi/MagicMirror/css/custom.css custom.css cp /home/pi/MagicMirror/modules/default/compliments/compliments.json compliments.json cp /boot/config.txt config.txt mkdir -p modules cp -R /home/pi/MagicMirror/modules/ . echo "DONE. CURRENT LIST OF BACKUPS :" cd .. ls -A1