Scope of the project is to create a backup and restore script for servers running Froxlor Server Management Panel (open source, see details on [url removed, login to view]).
A running demo is available on http://demo.froxlor.org.
Needed features are inspired from Plesk backup/restore utility (see details on [url removed, login to view])
Current servers are running Debian Lenny or Squeeze, but the script should run on any supported distro (see [url removed, login to view]).
Preferable, should be a single file script (PHP, bash) that will do backup and restore, depending on supplied parameters.
The script will be called manually or from cron, and will always run with elevated privileges.
As I see now, types of objects needed to store and retrieve are:
- system settings: control panel database and a list of configurable files (eg /etc/apache2, /etc/postfix, etc)
- client's data: website files, website logs, databases and email accounts
- domain's data: same as client data, but for a single domain (a client could have several domains in his account)
The script should be able to backup and restore:
- a complete backup (system settings + all clients)
- system settings
- all clients
- all domains
- a single client (all domains)
- a single domain (files, databases, logs, emails)
- a single database
- a single email account
Backup's should be compress with tar or zip (configurable).
Backup's should be kept for a number of days (configurable).
Backup's should be stored (and/or read, on restore) in a default configurable path or in a give path.
Optional features (not required, but nice to have):
- Sync backups to FTP (man lftp)
- Sync backup to Amazon S3
- A backup could be made on a server and restored to another.
a) The script should check if IP addresses are different and use default IP for the new server (see web interface Server -> Settings -> System settings -> Default IP/Port)
b) The script should check if same client id exists on target server and ask how to proceed: overwrite, overwrite-all, skip, skip-all
- If data already exists (client, domain, email account), the script should ask how to proceed: overwrite, overwrite-all, skip, skip-all
I will give specific info about:
- where are settings stored in the system
- what files needs to be included in each backup
Development and testing will be done on your own servers (at least 2, in order to test backup and restore on different servers).
I will require snapshots of the script in order to test it on staging servers.
Final testing will be made by me, on live servers.
Payment will be made after project is complete and all tests succeeded, error free.
Only bid if:
- You read all the above info
- You understand above requirements
- You are capable to start and complete the project
- You are able to stick to proposed timeframe and budget
- You speak good or fluent English [Romanian is a plus]
- You are able to communicate daily by email [optionally by Skype, not required]
- You are comfortable with PHP/bash scripts
- You are comfortable with command line system administration
- You are ready to work fast and error free
- You do not place a bid asking money in advance
For more information and proposed file structure, see attached file.
Please use Public Clarification Board or PM if you need more info.