007revad / Synology_app_mover

Easily move Synology packages from 1 volume to another volume
MIT License
401 stars 26 forks source link
diskstation dsm rackstation synology synology-disk-station synology-docker synology-dsm synology-nas synology-package

Synology app mover

Donate committers.top badge

Description

Easily move Synology packages from one volume to another volume

You just select the package and the destination volume and the script will stop the app, move it, update the symlinks then start the app.

Handy for moving packages to an SSD volume, or to another volume so you can delete the original volume.

NEW Now includes Backup and Restore modes.

Packages confirmed working

NOTE: Just in case, you should backup your docker compose files or portainer stacks.

Click here to see list The icons in this table are [Copyright © 2004-2024 Synology Inc.](https://kb.synology.com/en-br/DSM/help/DSM/Home/about?version=7) or Copyright the 3rd party package developer. | Package Center Name | System Name | Result | |---------------------|-------------|--------| | Active Backup for Business | ActiveBackup | OK | | Active Backup for Google Workspace | ActiveBackup-GSuite | OK | | Active Backup for Microsoft 365 | ActiveBackup-Office365 | OK | | Advanced Media Extensions | CodecPack | OK | | AntiVirus by McAfee | AntiVirus-McAfee | OK | | AntiVirus Essential | AntiVirus | OK | | Apache HTTP Server 2.4 | Apache2.4 | OK | | Audio Station | AudioStation | OK | | AvrLogger | AvrLogger | OK - community package [link](https://luenepiet.de/public/Synology/AvrLogger%20(SPK)/) | | Bitdefender for MailPlus | BitDefenderForMailPlus | OK I think | | C2 Identity LDAP Server | C2IdentityLDAPAgent | OK | | Central Management System | CMS | OK | | Channels DVR | ChannelsDVR | OK - 3rd party package [link](https://getchannels.com/dvr-server/#synology) | | Cloud Sync | CloudSync | OK | | Container Manager | ContainerManager | OK | | DNS Server | DNSServer | OK | | Docker | Docker | OK | | Document Viewer | DocumentViewer | OK | | Download Station | DownloadStation | OK | | Emby Server | EmbyServer | OK | | exFAT Access | exFAT-Free | OK | | FFmpeg | ffmpeg# | OK - community package | | Git | git | OK - community package | | Git Server | Git | OK | | Glacier Backup | GlacierBackup | OK - Need to run backup task again | | Hyper Backup | HyperBackup | OK | | Hyper Backup Vault | HyperBackupVault | OK | | LDAP Server | DirectoryServer | OK | | LogAnalysis | LogAnalysis | OK - community package [link](https://github.com/toafez/LogAnalysis) | | Log Center | LogCenter | OK | | Mail Station | MailStation | OK | | MariaDB 10 | MariaDB10 | OK | | Media Server | MediaServer | OK | | MediaInfo | mediainfo | OK - community package | | MinimServer | MinimServer | OK | | phpMyAdmin | phpMyAdmin | OK | | Node.js | Node.js_v## | OK | | Note Station | NoteStation | OK | | PDF Viewer | PDFViewer | OK | | Perl | Perl | OK | | PHP | PHP#.# | OK | | Plex Media Server | PlexMediaServer | OK | | Presto File Server | PrestoServer | OK | | Proxy Server | ProxyServer | OK | | Python 3.9 | Python3.9 | OK | | RADIUS Server | RadiusServer | OK | | SMI-S Provider | SynoSmisProvider | OK | | Snapshot Replication | SnapshotReplication | OK | | SSO Server | SSOServer | OK | | Storage Analyzer | StorageAnalyzer | OK | | Surveillance Station | SurveillanceStation | OK | | SynoCli Tools | synocli-"toolname" | OK - community package | | Synology Application Service | SynologyApplicationService | OK | | Synology Calendar | Calendar | OK | | Synology Chat Server | Chat | OK | | Synology Contacts | Contacts | OK | | Synology Directory Server | DirectoryServerForWindowsDomain | OK | | Synology Drive Server | SynologyDrive | OK | | Synology Mail Server | MailServer | OK | | Synology MailPlus | MailPlus | OK | | Synology MailPlus Server | MailPlus-Server | OK I think | | Synology Office | Spreadsheet | OK | | Synology Photos | SynologyPhotos | OK | | Tailscale | Tailscale | OK | | Text Editor | TextEditor | OK | | Universal Viewer | UniversalViewer | OK | | USB Copy | USBCopy | see [moving_extras](moving_extras.md) | Video Station | VideoStation | OK | | Virtual Machine Manager | Virtualization | OK | | VPN Server | VPNCenter | OK | | Web Station | WebStation | OK | | WebDAV Server | WebDAVServer | OK |

Packages not tested

Click here to see list The icons in this table are [Copyright © 2004-2024 Synology Inc.](https://kb.synology.com/en-br/DSM/help/DSM/Home/about?version=7) or Copyright the 3rd party package developer. | Package | Result / Notes | |---------|--------| | Archiware P5 | | | BRAVIA Signage | Won't install in Container Manager. It checks if Docker is installed | | Data Deposit Box | | | Diagnosis Tool | | | Domotz Network Monitoring | | | ElephantDrive | | | GateOne | | | GoodSync | | | IDrive | | | Jackett | community package | | Joomla | | | KodiExplorer | | | MediaWiki | | | Medusa | community package [link](https://github.com/BenjV/SYNO-packages) | | MEGAcmd | | | Mono | community package | | NAKIVO Backup and Replication | | | NAKIVO Transporter | | | PACS | | | Photo Station | DSM 6 | | Radarr | community package | | Ragic Cloud DB | | | Resilo Sync | | | Shellinabox | community package | | Sonarr | community package | | Syncthing | | | TeamViewer | | | Transmission | community package | | Tvheadend | community package | | VirtualHere | | | vtigerCRM | | | WebTools | community package | | Wordpress | |

Download the script

  1. Download the latest version Source code (zip) from https://github.com/007revad/Synology_app_mover/releases
  2. Save the download zip file to a folder on the Synology.
  3. Unzip the zip file.

Set backup location

If you want to use use the backup and restore options you need edit the included syno_app_mover.conf file to set the location to backup to.

The syno_app_mover.conf file must be in the same foller as the syno_app_mover.sh file.

Other options in syno_app_mover.conf

# buffer is used when checking if target volume has enough space
# Add 50 GB buffer so we don't fill the target volume

buffer=50

# The backuppath is only used by Backup and Restore modes
# backuppath should be in the format of /volume/sharename/folder
# For example:
# backuppath="/volume1/backups"
#
# Note: The script will create a syno_app_mover folder in backuppath

backuppath="/volume1/backups"

# Skip backup if previous backup was done less than x minutes ago
# Set to "0" to always backup
# skip_minutes is in minutes

skip_minutes=360

# exclude setting for use when auto="all" option is used to skip specified apps
# For example:
# exclude="ContainerManager"
# exclude="DownloadStation,ContainerManager,HyperBackup"
#
# Note: You need to use the app's system name
# Run syno_app_mover.sh with the --list option to see your app's system names

exclude=

# For Docker or Container Manager's container settings json exports
# Set delete_older to age in days before old exports are deleted
# Set ignored_containers to a list of containers to not export settings
# For example:
# delete_older=7
# ignored_containers="libraspeed-1,netdata"
#
# Note you need use the container's docker name. To see their names via SSH use:
# sudo docker ps -a --format "{{.Names}}"

delete_older=30
ignored_containers=

To run the script via SSH

How to enable SSH and login to DSM via SSH

sudo -s /volume1/scripts/syno_app_mover.sh

Note: Replace /volume1/scripts/ with the path to where the script is located.

Options when running the script

There are optional flags you can use when running the script:

  -h, --help            Show this help message
  -v, --version         Show the script version
      --autoupdate=AGE  Auto update script (useful when script is scheduled)
                          AGE is how many days old a release must be before
                          auto-updating. AGE must be a number: 0 or greater

      --auto=APP        Automatically backup APP (for scheduling backups)
                          APP can be a single app or a comma separated list
                          Examples:
                          --auto=radarr
                          --auto=Calender,ContainerManager,radarr

                          APP needs to be the app's system name
                          View the system names with the --list option

      --list            Display installed apps' system names

Troubleshooting

If the script won't run check the following:

  1. Make sure you download the zip file and unzipped it to a folder on your Synology (not on your computer).
  2. If the path to the script contains any spaces you need to enclose the path/scriptname in double quotes:
    sudo -s "/volume1/my scripts/syno_app_mover.sh"
  3. Make sure you unpacked the zip or rar file that you downloaded and are trying to run the syno_app_mover.sh file.
  4. Set the script file as executable:
    sudo chmod +x "/volume1/scripts/syno_app_mover.sh"

Video - moving Container Manager

https://github.com/007revad/Synology_app_mover/assets/e308839a-1a3d-402b-9920-dc98901c1234

DSM 7 screenshots

Moving a package (with dependencies)


Moving packages with shared folders


Moving a package that has a volume location setting


Moving Active Backup for Business


Backing up Audio Station


Backing up with the --auto option


Output with --list option

Credits