What is Safe Harbor
Safe Harbor is an ExpressionEngine Backup module that provides automated, daily On-Site backups of both your Database and Files. We also offer an Off-Site backup service, which will store your ExpressionEngine backups on your webserver and our servers.
We have created a compatibility script that you can run on your server which determines if Safe Harbor will run properly. You can download it here to test before purchasing.
Just extract it into your web directory and open the url in your browser. If you see something similar to the image below, Safe Harbor will work on your server.
Installation and Setup
To install Safe Harbor there are a few simple steps to follow
- Step 1
Download the module from the members area of EEHarbor
- Step 2
Confirm your "/system/expressionengine/cache/" directory is writable from the web user on your web server as per EllisLab installation instructions
- Step 3
Copy "/system/expressionengine/third_party/safeharbor/" to "/system/expressionengine/third_party/"
- Step 4
Install the module from Add-ons -> Modules
After you have installed Safe Harbor, you will be brought to the settings page. We will explain each setting below:
- Trigger URL
This value is automatically generated and will need to be submitted into the appropriate place in your member account on EEHarbor. This must be done prior to saving your settings. Your ExpressionEngine installation must be publicly accessible or setup will fail.
- Auth Code
This is the key you will find in the member section which you received upon purchasing the module
- Notification Email Address
This is the email address that will receive backup status emails that are sent each time a backup is preformed. This address will also receive notifications of issues that may arise while preforming a backup.
- Local Backup Space To Use
This is the amount of space you would like to allow for backups to occupy on your local hard drive. Please note Safe Harbor requires a minimum of 2 backups to be stored on your server to operate correctly. The space allotted for local backups will have to accommodate 2 backups.
- Root path of your ExpressionEngine Install
This is the full server path of which you would like to backup.
- Server path to store backups
This is the full server path of which you want backups created by Safe Harbor to be stored. Make sure this path is writable by PHP.
- Your time different from server in hours
If your local time is different from your server time please set this for the difference.
- Your local time to execute backup
This is your time (not the servers time) that you would like the backup to be executed. This should generally be set for non peak hours.
- Transfer Type
This sets the protocol that will be used to transfer your backup. We highly recommend you set this to HTTPS. If you don’t currently have a purchased SSL certificate many servers will often have a self signed SSL certificate which will work fine as well. You can test your HTTPS connection by clicking "Test HTTPS" to find out if this option will work for you.
- DataBase Backup Options
If available we recommend using MySQLDump as in our tests this is up to 4 times as fast as the PHP dump option. This can cut down the time it takes to run a backup significantly. It is also worth noting that in some shared hosting environments this can present a security risk. If you are running a site that is currently hosted in a shared environment it’s not a bad idea to use the PHP option.
- Disable remote scheduling of backups
If this is disabled, you will need to setup your own cron job using the cron url in order to have automated backups.
- Cron URL
This value is automatically generated and will need to be called by your cron job to start a backup.
After you have finished configuring Safe Harbor click "Submit". If you receive an error please confirm your Trigger URL is saved properly in your member account on EEHarbor.
Setting up Amazon S3
Setting up Safe Harbor with your Amazon S3 account is easy! All you need to do is enter your Amazon Web Services Access Key Identifiers (Access Key ID and Secret Access Key). You can find these by signing into your Amazon Web Services account. Amazon S3 integration is available only in the ExpressionEngine 2 Module.
Backups will only be stored on your Amazon S3 Service if "Enabled?" is checked.
Setting up FTP
Setting up Safe Harbor with an FTP server is as simple as providing your FTP login credentials and the path on the server you'd like to store the backups. Make sure the path is writable by the user you are logging in with. Backups will only be sent to the configured FTP server if "Enabled?" is checked.
Please note, the path needs to be relative to the location the FTP user account gets logged into (an absolute server path won't work)
After completing the Install and setup process it is our recommendation that you manually kick off a backup. In order to do this you can click on "Run Backup". After the backup has kicked off you can see a few different things.
If the backup ran quickly you will see a success message and the backup will be listed on the Safe Harbor module page. On larger sites you will see a "Backup is running" message and after the backup is complete you will see it listed in your Safe Harbor module page.
Restoring your site
Restoring your ExpressionEngine site is easy with Safe Harbor, you simply:
- Download the Safe Harbor add-on from your account on our site
- Upload the restore directory (contained in the module downloaded) to the directory you desire your site to be restored to, along with your Safe Harbor backup(s)
- Load the restore script in your browser
This will restore your ExpressionEngine site files. The script will then provide you with a link to your database backup for you to restore with PHPMyAdmin or a similar tool.
Searching your Backup
With Safe Harbor we’ve made it easy to search a backup for a given file and download it. Simply click the “Search” link under the actions column. This will launch a search box from which you can download a given file from your ExpressionEngine backup without having to download the entire backup.
Timestamps are almost useless when trying to figure out what backup contains what. Sure, you could figure out what the state of your database was at a specific time but how accurate would you be? Well, we've added the ability to save notes for your backups! So, next time you want to install a new module just click "Backup" before you install it. When the backup is created click "Add Note", enter your note: "Pre-[Module Name Here]" and save. That easy. Now if something was to go bad with the install, you've got a backup and you know exactly what the state of your database was and can restore if need be.
Having problems setting up and/or using Safe Harbor? Support is offered from 10am to 4pm EST weekdays. Send us an email at firstname.lastname@example.org and we will respond as quickly as we can.