Skip to content
This repository has been archived by the owner on Nov 9, 2022. It is now read-only.

Latest commit

 

History

History
112 lines (66 loc) · 5.27 KB

readme.md

File metadata and controls

112 lines (66 loc) · 5.27 KB

Unofficial Self-Service Web Portal for Veeam Backup for Microsoft Office 365

This web based portal offers Self-Service to tenant admins leveraging the RESTful API service included in Veeam Backup for Microsoft Office 365. This allows them to perform restores to either the original or a different location as well as downloading items as a plain/PST/ZIP file.

Every feature act as an independent page, therefor it is easy to remove or add Exchange, OneDrive or SharePoint based on your offering by modifying the navigation bar on top.

📗 Documentation

Dependencies

Make sure you download dependencies using composer.

For more information on how to install composer:

This project leverages a mixture HTML, PHP and Javascript. The following libraries are used:

It is required to have a webserver running with PHP5 or higher and the mod_rewrite module enabled. The easiest way to do this is leverage a Linux VM with Apache however Windows with IIS should work as well.

As an example you can use the following Linux Ubuntu with Apache guide or Windows with IIS guide.

This portal leverages rewrite rules via .htaccess and therefor mod_rewrite needs to be enabled in Apache. More information on this can be found via Enabling mod_rewrite for Apache running on Linux Ubuntu.

Important step

Disable MultiView within the directory document root for Apache. This can be done my modifying the default site configuration and set it as below:

<Directory /var/www/html>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
</Directory>

For IIS the web.config file is required. More information can be found via importing the IIS web config.

It is advised to increase or disable the PHP maximum execution time limit. This can modified in the php.ini file as described per changing the maximum execution time limit.

Installation

1. Download and install composer

a. Linux: curl -sS https://getcomposer.org/installer | /usr/bin/php && /bin/mv -f composer.phar /usr/local/bin/composer
b. Windows: Download and run Composer-Setup.exe from the composer website.

2. Clone this repository

git clone https://github.com/nielsengelen/vbo365-rest.git

Place these files under the web service root (/var/www/html or c:\Inetpub\wwwroot)

3. Initialize Composer from the specific folder (/var/www/html or c:\Inetpub\wwwroot)

composer install

Configuration

Once composer has finished, open a webbrowser and go to setup.php, this allows you to generate a config file.

If this doesn't work, modify the original config.php file with your Veeam Backup for Microsoft Office 365 hostname/IP, port (default: 4443) and API version to be used. Additionally, you can configure the custom title to be shown.

Remember to enable mod_rewrite as described in the dependencies. Remove the setup.php file once this is done.

Usage

Open a webbrowser and go to index.php. From here you can either login as an admin or a tenant.

You should see the following login screen: Login form

Logged in as an admin: Dashboard view

Exchange view: Exchange view

OneDrive view: OneDrive view

SharePoint view: SharePoint view

About

This serves as an example on how to work with the RESTful API calls and should be tested before using it in production. Feel free to modify and re-use it however many calls are done with default values which can be modified if needed.

❗ Known issues/notes

Note: There is currently no SSL verification due to self signed certificate testing, please change settings 'verify' to true or remove the specific line accordingly in veeam.class.php.

✍ Contributions

We welcome contributions from the community! We encourage you to create issues for Bugs & Feature Requests and submit Pull Requests. For more detailed information, refer to our Contributing Guide.

🤝🏾 License

🤔 Questions

If you have any questions or something is unclear, please don't hesitate to create an issue and let us know!