Skip to content

About

FileTrail was added to backup all other files on the server. BountySite's existing backup services only backups websites and respective databases, but not full server. FileTrail uses restic and provides with a simple web interface to configure and manage backup.

FileTrail makes it easy to manage backup without server administration.

Features

  • All features of restic backup tool
  • Support for AES-256 encryption
  • Deploy on any S3 compliant cloud storage or BackBlaze cloud storage
  • Optionally, you can deploy your own S3 service
  • View file diferences between backups
  • Set job scheduler hour
  • Set number of backups to retain and automatically delete old backups
  • Can run within NATed networks

Benefits

  • Protection from hard drive failure
  • Easy view of file changes
  • Recover from accidental mistakes
  • Web based backup management
  • BountySite control panel with multi user configuration to manage ACL
  • Hosting providers can provide storage space along with FileTrail as a backup service to their customers

Requirements

CentOS

The following packages are required to be installed:-

python-2.7.5-77.el7_6.x86_64
libgcrypt-1.5.3-14.el7.x86_64
python-libs-2.7.5-77.el7_6.x86_64
elfutils-libs-0.172-2.el7.x86_64

Debian

The following packages are required

python
libpython2.7
libdw1
libgcrypt20

For debian, create a link

ln -sf /lib/x86_64-linux-gnu/libgcrypt.so.20.1.6 /lib/x86_64-linux-gnu/libgcrypt.so.11 

Installation

  • Download FileTrail
    $ mkdir bountysite && cd bountysite
    $ wget -O filetrail.tar.gz https://www.bountysite.com/downloads/cpanel-bountysite-plugin.tar.gz
    $ tar xzf filetrail.tar.gz
    
  • Install FileTrail. Installation needs root access

    # ./install-filetrail.sh
    

  • Test run script

    # /usr/local/bountysite/bin/FileTrailBountySite.py --help     
    usage: FileTrailBountySite.py [-h] [--BSAPI BSAPI] [--sitename SITENAME]
                                  [--verbose] [--foreground] [--logfile LOGFILE]
                                  [--version]
    
    FileTrail Server Backup
    
    optional arguments:
      -h, --help            show this help message and exit
      --BSAPI BSAPI         Enter BSAPI URL
      --sitename SITENAME   Sitename for which FileTrail is configured on
                            BountySite
      --verbose, -v         Increase verbosity
      --foreground, -F      Run in foreground
      --logfile LOGFILE     If not running in foreground, log file to use
      --version, -V         Print version
    

BountySite Configuration

  • In BountySite control panel, first add a new site, with the site name as that of server hostname, in fqdn
  • Subscribe for FileTrail, either FreeTrial or Paid subscription
  • FileTrail package should be instantly provisioned. Check notification message for confirmation
  • Go to Top bar > Settings > API Key
  • Add server/vps primary key to Whitelisted IPs in CIDR format(x.x.x.x/32) and submit.
  • Contact support (at) bountysite.com or create a support request, to get Secure client password and configuring file exclusions in backup

Running

Command line

FileTrail can be run(as root) from command line as shown below. The command will prompt for APIKEY and password(CLIENTPASSWORD). API_KEY can be fetched from API Key page on BountySite, and password will be shared by support team.

#  ### First time to run 
/usr/local/bountysite/bin/FileTrailBountySite.py  --BSAPI  <BSAPI_URL_FROM_API_KEY>  --sitename <SITE_as_added_in_BountySite> -F -vvv
...
...
2019-04-15 17:02:42,040 - root - DEBUG - <module>:222 - [*] No job scheduled

If you get a No job scheduled at the end, then everything is fine.

Systemd startup

If you want to run FileTrail through systemd, you will have to edit the script to set APIKEY and CLIENTPASSWORD.

  • Using your favourite editor open /usr/local/bountysite/etc/config.ini and set appropriate values.
BOUNTYSITE_API_URL = https://api.bountysite.com/Backup


#Filetrail configs

APIKEY = "APIKEY_FOR_CORRESPONDING_SITE"
CLIENTPASSWORD = "CLIENT_PASSWORD_OBTAINED_FROM_SUPPORT"
Hostname = "AS_CONFIGURED_as_SITENAME_IN_BountySite_ControlPanel"
  • From download folder, copy systemd script for FileTrail.
    cp systemd/bsfiletrail.service /etc/systemd/system
    systemctl daemon-reload
    systemctl start bsfiletrail
    systemctl status bsfiletrail
    
    # ## to enable on startup
    systemctl enable bsfiletrail
    

Configure FileTrail

  • Configuring backup on BountySite Control Panel. Go to FileTrail page(Sidemenu > Security > FileTrail) Configure FileTrail

  • Backup Destination : S3 or Backblaze

  • Server Type : CPanel or Custom : Server type initiates the Excludes path list, which are to be excluded in backup. Excludes can only controlled by BountySite support as on date.
  • Bucket Name : Bucket name on which backup is to be stored. It is recommended to create individual bucket for every server.
  • Endpoint URL : The destination URL of cloud storage
  • Backup Hour : BountySite schedules backup by queueing job, and letting FileTrail lookup from the queue. Backup Hour signifies which UTC hour to schedule a job to queue. FileTrail client probes BountySite every 1hr and lookups queue for a job.
  • Retention : This tells how many backups to keep on the destination
  • Backupday : When to initiate backup job? Daily/Monthly/day of week/disable. Monthly starts backup on 5th day of every month.
  • Encryption Key : This option has to be set only once. Encryption key cannot be changed after configuring repository. Encryption is slow and takes more resources and you also loose on the benefits of data deduplication by restic.
  • Access Key and Secret Key : Credentials needed by backup tool to send to cloud storage
  • Excluded files : Do not input anything, it is ignored. It shows currently excluded files.