Forum archive
Upgrade Snipe-IT
I just discovered that Aleksand posted on GitHub asking about how to update Snipe-IT. Rather than answer there, I thought I'd post here instead.
Please note that this only applies to a v16.x server, future releases (i.e. v17.0 or later) should be easy as the line line of this post... (TBC)
Reading the upgrade docs, it looks like git install is preferred. Unfortunately, our v16.x Snipe-IT appliance uses tarball install, so we could use the manual upgrade path. As git install is preferable, I'm aiming to move the appliance to a git install, so now is a good time to switch your server to git install too, so let's do that. This will basically be what the docs note, but we'll use the custom TurnKey tools.
First SSH in as root (or use Webshell - don't use the shell in Webmin! - it's not a proper interactive shell).
First run a backup. If you're using TKLBAM, then:
tklbam-backup --full-backup now
If you're not using TKLBAM or you want a local backup as well, then create a local backup like this (using TurnKey's PHP artisan wrapper):
turnkey-artisan snipeit:backup
Then rename the current Snipe-IT directory and clone the latest version via git:
cd /var/www mv snipe-it snipe-it-backup git clone https://github.com/snipe/snipe-it
Now fix permissions, enter the snipe-it dir and install dependencies with composer:
chown -R www-data:www-data snipe-it cd snipe-it turnkey-composer install --no-dev --prefer-source
That will likely take a little while. When it's done, copy in the required old files:
cp -R ../snipe-it-backup/public/uploads/* public/uploads cp -R ../snipe-it-backup/storage/private_uploads/* storage/private_uploads cp -R ../snipe-it-backup/storage/app/backups/* storage/app/backups cp -R ../snipe-it-backup/.env ./ cp -R ../snipe-it-backup/storage/oauth-private.key storage/oauth-private.key cp -R ../snipe-it-backup/storage/oauth-public.key storage/oauth-public.key
Then finally, you can run the update itself (migrate DB, clear cache, etc). Unfortunately this command is a little convoluted, but perhaps we'll write a helper script for that too in the future?:
runuser - www-data -s /bin/bash -c "cd /var/www/snipe-it && php upgrade.php"
Once you've done that, all future updates can be done via this same command. Although to make your life marginally easier, you could just make a helper script. We might do that for future releases... Here's what I would suggest:
cat > /usr/local/bin/turnkey-snipe-it-upgrade <>EOF #!/bin/bash -e runuser - www-data -s /bin/bash -c "cd /var/www/snipe-it && php upgrade.php" EOF chmod +x /usr/local/bin/turnkey-snipe-it-upgrade
From now on, you can just run:
turnkey-snipe-it-upgrade
Yes I agree. Unfortunately it all takes time and I don't always have the time. Plus, this appliance was/is particularly easy. Most of my post was copy/paste direct from their docs (with a little adjustment for our custom helper scripts) and the Snipe-IT devs provides a pretty powerful upgrade script that does most of the heavy lifting.
It'd be great if you could document your upgrades when you next do one. AN/dor if you get stuck, please do ask and I'm more than happy to do what I can to help.
As for organising, I added some tags which hopefully might make it easier to find. But perhaps we should add pages to the wiki? My only reservation is that there are already some out of date pages (which already desperately need an update) in the wiki and I don't want to just make that problem worse. Writing and maintaining docs is a full time job in and of itself really... Having said that, perhaps we could add a page for snipe-it and just link to this thread?! (Then it would be clear how old it is and how relevant it might be?! WHat do you think?