chore(all): move assets

This commit is contained in:
Olivier Lambert
2016-07-06 15:00:34 +02:00
parent 5b3f11d09b
commit 5574747054
61 changed files with 280 additions and 31 deletions

27
doc/architecture.md Normal file
View File

@@ -0,0 +1,27 @@
# Architecture
Xen Orchestra (XO) is a software built with a server and clients, such as the web client, `xo-web`, but also a CLI capable client, called `xo-cli`.
> XO is totally agent-less: it means that you don't have to install any program on your hosts to get it working!
## XOA
*Xen Orchestra virtual Appliance* (XOA) is a virtual machine with Xen Orchestra already installed, thus working out-of-the-box.
This is the easiest way to try Xen Orchestra in a minute.
Your XOA is connected to all your hosts, or on the pool master only if you are using Pools in XenServer:
![](https://xen-orchestra.com/assets/partner2.jpg)
## Xen Orchestra (XO)
![](./assets/xo-arch.jpg)
Xen Orchestra itself is built as a modular solution. Each part has its role:
- the core is "[xo-server](https://github.com/vatesfr/xo-server)", a daemon dealing directly with XenServer or XAPI capable hosts. This is where users are stored, and it's the center point for talking to your whole Xen infrastructure.
- the Web interface is in "[xo-web](https://github.com/vatesfr/xo-web)": you are running it directly in your browser. The connection with "xo-server" is done via *WebSockets*.
- "[xo-cli](https://github.com/vatesfr/xo-cli)" is a module allowing to send commands directly from the command line.
We already have other modules around it (like the LDAP plugin for example). It allows to use this modular architecture to add further parts later. It's completely flexible, allowing us to adapt Xen Orchestra in every existing work-flow.

106
doc/updater.md Normal file
View File

@@ -0,0 +1,106 @@
# Updater
The updater is the central piece to get your XOA on the latest bits of Xen Orchestra.
It allows also to transform your current version in any others (Trial, Starter, Enterprise or Premium) **without downloading a new XOA**.
> By design, the updater is only available in XOA. If you are using the XO from the sources, you'll have to use `git` commands and rebuild to keep up.
## Requierements
In order to work, the updater needs to access to xen-orchestra.com (port 443).
## Usage
The updater is configurable directly in the web interface, or via the CLI.
### From the web interface
By default for a new XOA, you'll have this icon in the top right:
![](./assets/updater_notreg.png)
It means your appliance is not registered. Click on this icon and follow the next step.
#### Register
Updates and trial will be available as soon as you registered your appliance. To register, use your https://xen-orchestra.com credentials you gave to download it previously (your email and your password):
![](./assets/updater_reg.png)
#### Check for new versions
The updater will check for new versions periodically. Nevertheless, if you want to start a manual check, you can do it by clicking on the "Check for updates" icon.
#### Upgrade
If a new version is found, you'll have an upgrade button displayed:
![](./assets/regupdate.png)
**In case where the updater is updated itself, you should have to refresh manually the status panel!**
This could be done by clicking on the refresh white icon:
![](./assets/refreshupdater.png)
#### Proxy configuration
If you are behind a proxy, you can edit your proxy settings in this panel:
![](./assets/regproxy.png)
### From the CLI
If you interface is not accessible, or you just prefer to use CLIs commands, it's totally possible to do all the operations. You need to access your XOA by SSH (remember the default credentials: root/xoa. Change them ASAP).
#### Register
```
# xoa-updater --register
Successfully connected to xoa-updater-service
Please enter your xen-orchestra.com identifiers to register your XOA:
? Email: myemail@example.net
? Password: *****
Your Xen Orchestra Appliance has been succesfully registered
```
#### Check for new versions
```
# xoa-updater
Successfully connected to xoa-updater-service
Checking new versions...ok ✔
New versions available:
xo-server 4.8.1
xoa-updater may be run again to upgrade packages
```
#### Upgrade
```
# xoa-updater --upgrade
Successfully connected to xoa-updater-service
Checking new versions...ok ✔
New versions available:
xo-server 4.8.1
[...]
Downloading packages...
Installing new packages...
✔ Your XOA has been successfully updated.
```
## Troubleshooting
Connect to your XOA in SSH then:
* you should be able to successfully `ping xen-orchestra.com`
* if not, check your `/etc/resolv.conf` file and modify it if necessary (give a correct DNS server)
* use `ifconfig` to check your network configuration
* check your firewall(s) and allow XOA to reach xen-orchestra.com (port 443)

87
doc/xo-server.md Normal file
View File

@@ -0,0 +1,87 @@
# xo-server
XO-Server is the core of Xen Orchestra. Its central role opens a lot of possibilities versus other solutions. Let's see why.
### Daemon mode
As a daemon, XO-server is always up. In this way, it can listen and record every event occurring on your whole Xen infrastructure. Connections are always open and it can cache informations before serve it to another client (CLI, Web or anything else).
### Central point
Contrary to XenCenter, each Xen Orchestra's client is connected to one XO-Server, and not all the Xen servers. With a traditional architecture:
![](./assets/without-xo.jpg)
You can see how we avoid a lost of resources and bandwidth waste with a central point:
![](./assets/with-xo.jpg)
### Events
Legacy interfaces use the "pull" model, requesting data every "x" seconds:
![](./assets/noevent.jpg)
It's **not scalable** and slow.
With XO < 3.4, we used events in this way:
![](./assets/semievent.jpg)
But interface was still lagging behind the server. With XO 3.4, we got a full event system, allowing instant display of what's happening on your infrastructure:
![](./assets/fullevent.jpg)
### A proxy for your hosts
XO-Server will act as a proxy for all your clients. It opens a lot of possibilities!
#### Console proxy
A good example is the console: you can now expose your consoles even if your clients are outside the network!
![](https://xen-orchestra.com/blog/content/images/2015/03/console_before.png)
![](https://xen-orchestra.com/blog/content/images/2015/03/console_after.png)
#### VM streaming
Another possibility is to stream a VM from a host to another.
To do that previously, you needed to export your VM somewhere, then re-import it:
![](https://xen-orchestra.com/blog/content/images/2015/10/oldsolution.png)
Thanks to our architecture, it's now far better:
![](https://xen-orchestra.com/blog/content/images/2015/10/newsolution.png)
#### Patching on the fly
To install a patch manually, you need a lot of steps: find, download, extract and apply the patch, sequentially.
"xo-server" can do all these steps once:
1. downloading automatically the patch on Citrix servers
2. unzip it and uploading it on the fly to your host
3. apply it as soon it's done
### Pluggable
It's really easy to plug other modules to XO-server, and extend or adapt the solution to your needs (see XO-web and XO-cli for real examples).
#### ACLs
![](https://xen-orchestra.com/blog/content/images/2014/Aug/ldap.jpg)
![](https://xen-orchestra.com/blog/content/images/2014/Aug/permissions.jpg)
### API
An API is available to communicate directly with XO-Server. This part will be explained later.
### NodeJS under the hood
[NodeJS](https://en.wikipedia.org/wiki/Nodejs) is a software platform for scalable server-side and networking applications. It's famous for its efficiency, scalability and its asynchronous capabilities. Exactly what we need! Thus, XO-server is written in JavaScript.

View File

@@ -2,8 +2,21 @@
## Introduction ## Introduction
XO is a web interface to visualize and administrate your XenServer (or XAPI enabled) hosts. Welcome on the official Xen Orchestra (XO) documentation.
XO is a web interface to visualize and administrate your XenServer (or XAPI enabled) hosts. **No agent** is requiered to make it work.
It aims to be easy to use on any device supporting modern web technologies (HTML 5, CSS 3, JavaScript) such as your desktop computer or your smartphone. It aims to be easy to use on any device supporting modern web technologies (HTML 5, CSS 3, JavaScript) such as your desktop computer or your smartphone.
![](https://pbs.twimg.com/profile_images/601775622675898368/xWbbafyO_400x400.png) ![](https://pbs.twimg.com/profile_images/601775622675898368/xWbbafyO_400x400.png)
### XOA credentials
* Web UI: `admin@admin.net` / `admin`
* Console/SSH: `root` / `xoa`
## Must read
* [XOA installation](xoa.md)
* [Main features](features.md)
* [Pro Support](support.md)

View File

@@ -44,6 +44,7 @@
* [Recipes](recipes.md) * [Recipes](recipes.md)
* [Reverse proxy](reverse_proxy.md) * [Reverse proxy](reverse_proxy.md)
* [How to contribute?](contributing.md) * [How to contribute?](contributing.md)
* [Support](support.md)
* [Roadmap](roadmap.md) * [Roadmap](roadmap.md)
* [Purchase](purchase.md) * [Purchase](purchase.md)
* [Direct purchase](directpurchase.md) * [Direct purchase](directpurchase.md)

View File

@@ -7,13 +7,13 @@ ACLs are the permissions for your users or groups. The ACLs view can be accessed
3. Choose the role for this ACL 3. Choose the role for this ACL
4. Click on "Create" 4. Click on "Create"
![](../assets/createacl.png) ![](./assets/createacl.png)
> Pro tip: you can click to add multiple objects at the same time! > Pro tip: you can click to add multiple objects at the same time!
Your ACL is now available in the right list: Your ACL is now available in the right list:
![](../assets/acllist.png) ![](./assets/acllist.png)
You can edit/remove existing ACLs here. You can edit/remove existing ACLs here.

View File

@@ -197,7 +197,7 @@ You can change the CPU Weight in the VM view. Values are:
* Normal * Normal
* Double (x2) * Double (x2)
![](../assets/cpu_weight.png) ![](./assets/cpu_weight.png)
By default, each VM has a weight of 256. By default, each VM has a weight of 256.

View File

@@ -12,11 +12,11 @@ This is the easiest way to try Xen Orchestra in a minute.
Your XOA is connected to all your hosts, or on the pool master only if you are using Pools in XenServer: Your XOA is connected to all your hosts, or on the pool master only if you are using Pools in XenServer:
![](https://xen-orchestra.com/assets/partner2.jpg) ![](./assets/partner2.jpg)
## Xen Orchestra (XO) ## Xen Orchestra (XO)
![](../assets/xo-arch.jpg) ![](./assets/xo-arch.jpg)
Xen Orchestra itself is built as a modular solution. Each part has its role: Xen Orchestra itself is built as a modular solution. Each part has its role:
- the core is "[xo-server](https://github.com/vatesfr/xo-server)", a daemon dealing directly with XenServer or XAPI capable hosts. This is where users are stored, and it's the center point for talking to your whole Xen infrastructure. - the core is "[xo-server](https://github.com/vatesfr/xo-server)", a daemon dealing directly with XenServer or XAPI capable hosts. This is where users are stored, and it's the center point for talking to your whole Xen infrastructure.

View File

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 11 KiB

View File

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

View File

Before

Width:  |  Height:  |  Size: 9.4 KiB

After

Width:  |  Height:  |  Size: 9.4 KiB

View File

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 11 KiB

View File

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 33 KiB

View File

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 13 KiB

View File

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 18 KiB

View File

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 11 KiB

View File

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 33 KiB

View File

Before

Width:  |  Height:  |  Size: 56 KiB

After

Width:  |  Height:  |  Size: 56 KiB

View File

Before

Width:  |  Height:  |  Size: 124 KiB

After

Width:  |  Height:  |  Size: 124 KiB

View File

Before

Width:  |  Height:  |  Size: 39 KiB

After

Width:  |  Height:  |  Size: 39 KiB

View File

Before

Width:  |  Height:  |  Size: 74 KiB

After

Width:  |  Height:  |  Size: 74 KiB

View File

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 25 KiB

View File

Before

Width:  |  Height:  |  Size: 38 KiB

After

Width:  |  Height:  |  Size: 38 KiB

BIN
docs/assets/partner2.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 KiB

View File

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

View File

Before

Width:  |  Height:  |  Size: 45 KiB

After

Width:  |  Height:  |  Size: 45 KiB

View File

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

View File

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 36 KiB

View File

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

View File

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 24 KiB

View File

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 22 KiB

View File

Before

Width:  |  Height:  |  Size: 60 KiB

After

Width:  |  Height:  |  Size: 60 KiB

View File

Before

Width:  |  Height:  |  Size: 35 KiB

After

Width:  |  Height:  |  Size: 35 KiB

View File

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 10 KiB

View File

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 13 KiB

View File

Before

Width:  |  Height:  |  Size: 39 KiB

After

Width:  |  Height:  |  Size: 39 KiB

View File

Before

Width:  |  Height:  |  Size: 104 KiB

After

Width:  |  Height:  |  Size: 104 KiB

View File

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

View File

Before

Width:  |  Height:  |  Size: 674 B

After

Width:  |  Height:  |  Size: 674 B

View File

Before

Width:  |  Height:  |  Size: 30 KiB

After

Width:  |  Height:  |  Size: 30 KiB

View File

Before

Width:  |  Height:  |  Size: 489 B

After

Width:  |  Height:  |  Size: 489 B

View File

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 36 KiB

View File

Before

Width:  |  Height:  |  Size: 86 KiB

After

Width:  |  Height:  |  Size: 86 KiB

View File

Before

Width:  |  Height:  |  Size: 90 KiB

After

Width:  |  Height:  |  Size: 90 KiB

View File

Before

Width:  |  Height:  |  Size: 67 KiB

After

Width:  |  Height:  |  Size: 67 KiB

View File

@@ -5,6 +5,6 @@ This method is the default one. Creating a user is very simple:
1. Go into the Settings view, select "Users" 1. Go into the Settings view, select "Users"
2. You can create a *user* or an *admin*, with his password (or generate one) 2. You can create a *user* or an *admin*, with his password (or generate one)
![](../assets/usercreation.png) ![](./assets/usercreation.png)
By default, a *user* won't have any permission. At the opposite, an *admin* will have every rights. By default, a *user* won't have any permission. At the opposite, an *admin* will have every rights.

View File

@@ -30,7 +30,7 @@ Just read twice the UI when you add a SMB store. If you have:
You'll have to fill it like this: You'll have to fill it like this:
![](../assets/smb_fill.png) ![](./assets/smb_fill.png)
**PATH TO BACKUP is only needed if you have subfolders in your share.** **PATH TO BACKUP is only needed if you have subfolders in your share.**

View File

@@ -12,7 +12,7 @@ When you got your `clientID` and your `clientSecret`, you can configure them in
Be sure to activate the plugin after you save the configuration (button on top). When it's done, you'll see a link in the log in view, this is where you'll go to authenticate: Be sure to activate the plugin after you save the configuration (button on top). When it's done, you'll see a link in the log in view, this is where you'll go to authenticate:
![](../assets/githubconfig.png) ![](./assets/githubconfig.png)
## Debugging ## Debugging

View File

@@ -28,7 +28,7 @@ In Settings, then Plugins, expand the Google plugin detail and provide:
* a `clientSecret`, e.g `HTDb8I4jXiLRMaRL15qCffQ` * a `clientSecret`, e.g `HTDb8I4jXiLRMaRL15qCffQ`
* the `callbackURL`, e.g `http://xo.company.net/signin/google/callback` * the `callbackURL`, e.g `http://xo.company.net/signin/google/callback`
![](../assets/googleconfig.png) ![](./assets/googleconfig.png)
Be sure to activate the plugin after you save the configuration (button on top). Be sure to activate the plugin after you save the configuration (button on top).

View File

@@ -4,6 +4,6 @@ You can find all your invoices in your member zone: https://xen-orchestra.com/#!
Get in the "Invoices" tab: Get in the "Invoices" tab:
![](../assets/invoices.png) ![](./assets/invoices.png)
You can download your invoice in PDF format, by clicking in the "Export" row, on the invoice name with the PDF extension. You can download your invoice in PDF format, by clicking in the "Export" row, on the invoice name with the PDF extension.

View File

@@ -4,7 +4,7 @@ XO currently support connection to LDAP directories, like *Open LDAP* or *Active
To configure your LDAP, go need to go in the *Plugins* section in the "Settings" view. Then configure it: To configure your LDAP, go need to go in the *Plugins* section in the "Settings" view. Then configure it:
![LDAP plugin settings](../assets/ldapconfig.png) ![LDAP plugin settings](./assets/ldapconfig.png)
Don't forget to save the configuration, and also check if the plugin is activated (green button on top). Don't forget to save the configuration, and also check if the plugin is activated (green button on top).

View File

@@ -6,7 +6,7 @@ Xen Orchestra plugins allow to extend features without rewriting the core of the
You can see your installed plugins in "Settings" then "Plugins" page: You can see your installed plugins in "Settings" then "Plugins" page:
![](../assets/plugins.png) ![](./assets/plugins.png)
Every plugin configuration should be done in the web interface. Every plugin configuration should be done in the web interface.

View File

@@ -8,7 +8,7 @@ The reseller/partner program allows you to buy XOAs and to assign them to your f
You need to be registered first. Then go on [the partner page here](https://xen-orchestra.com/#!/partner) and click on the "Register button": You need to be registered first. Then go on [the partner page here](https://xen-orchestra.com/#!/partner) and click on the "Register button":
![](../assets/partner_request.png) ![](./assets/partner_request.png)
Now, you just have to wait for us to accept your request. As soon it's done, you access to your partner zone, [at the same partner page](https://xen-orchestra.com/#!/partner). Now, you just have to wait for us to accept your request. As soon it's done, you access to your partner zone, [at the same partner page](https://xen-orchestra.com/#!/partner).

View File

@@ -21,4 +21,4 @@ Groups can be created and managed in the "Groups" view inside "Settings" menu.
Any group can be edited as you like after its creation. Any group can be edited as you like after its creation.
![](../assets/groups.png) ![](./assets/groups.png)

View File

@@ -10,7 +10,7 @@ The first time a user signs in, XO will create a new XO user with the same ident
In the "Settings" then "Plugins" view, expand the SAML plugin configuration. Then provide the needed fields: In the "Settings" then "Plugins" view, expand the SAML plugin configuration. Then provide the needed fields:
![](../assets/samlconfig.png) ![](./assets/samlconfig.png)
Save the configuration and then activate the plugin (button on top). Save the configuration and then activate the plugin (button on top).

View File

@@ -8,7 +8,7 @@ The self-service feature is the possibility for users to create new VMs. That's
To create a new set of resources, go inside the "Self Service" section in the main menu: To create a new set of resources, go inside the "Self Service" section in the main menu:
![](../assets/selfservice_menu.png) ![](./assets/selfservice_menu.png)
### Create a set ### Create a set
@@ -46,11 +46,11 @@ When you click on create, you can see the resource set and remove or edit it:
As soon a user is inside a resource set, it displays a new button in its main view: the gree icon with the "plus" sign: As soon a user is inside a resource set, it displays a new button in its main view: the gree icon with the "plus" sign:
![](../assets/selfservice_newvm.png) ![](./assets/selfservice_newvm.png)
Now, the user can create a VM with only the resources given in the set: Now, the user can create a VM with only the resources given in the set:
![](../assets/selfservice_createvm.png) ![](./assets/selfservice_createvm.png)
And the recap before creation: And the recap before creation:

15
docs/support.md Normal file
View File

@@ -0,0 +1,15 @@
# Support
You can have our pro support if you subscribe to any of these plan:
* Starter
* Enterprise
* Premium
Better the plan, faster the support with higher priority.
## Community support
If you are using Xen Orchestra via the sources, you can ask questions on our forum. However, there isn't any guarantee about answers nor when someone will be there to help you.
If Xen Orchestra is used in production, please subscribe to a plan.

View File

@@ -12,11 +12,11 @@ In means, there will be:
When you created an account as a purchaser (eg: "purchase.dept@example.com"), you need to go inside the member zone: When you created an account as a purchaser (eg: "purchase.dept@example.com"), you need to go inside the member zone:
![](../assets/member_purchase.png) ![](./assets/member_purchase.png)
Now, **click on the Purchaser tab**: Now, **click on the Purchaser tab**:
![](../assets/purchaser_button.png) ![](./assets/purchaser_button.png)
Your request will be sent to us, and we'll unlock you the purchaser feature. Your request will be sent to us, and we'll unlock you the purchaser feature.

View File

@@ -18,7 +18,7 @@ The updater is configurable directly in the web interface, or via the CLI.
By default for a new XOA, you'll have this icon in the top right: By default for a new XOA, you'll have this icon in the top right:
![](../assets/updater_notreg.png) ![](./assets/updater_notreg.png)
It means your appliance is not registered. Click on this icon and follow the next step. It means your appliance is not registered. Click on this icon and follow the next step.
@@ -26,7 +26,7 @@ It means your appliance is not registered. Click on this icon and follow the nex
Updates and trial will be available as soon as you registered your appliance. To register, use your https://xen-orchestra.com credentials you gave to download it previously (your email and your password): Updates and trial will be available as soon as you registered your appliance. To register, use your https://xen-orchestra.com credentials you gave to download it previously (your email and your password):
![](../assets/updater_reg.png) ![](./assets/updater_reg.png)
#### Check for new versions #### Check for new versions
@@ -36,19 +36,19 @@ The updater will check for new versions periodically. Nevertheless, if you want
If a new version is found, you'll have an upgrade button displayed: If a new version is found, you'll have an upgrade button displayed:
![](../assets/regupdate.png) ![](./assets/regupdate.png)
**In case where the updater is updated itself, you should have to refresh manually the status panel!** **In case where the updater is updated itself, you should have to refresh manually the status panel!**
This could be done by clicking on the refresh white icon: This could be done by clicking on the refresh white icon:
![](../assets/refreshupdater.png) ![](./assets/refreshupdater.png)
#### Proxy configuration #### Proxy configuration
If you are behind a proxy, you can edit your proxy settings in this panel: If you are behind a proxy, you can edit your proxy settings in this panel:
![](../assets/regproxy.png) ![](./assets/regproxy.png)
### From the CLI ### From the CLI

View File

@@ -10,27 +10,27 @@ As a daemon, XO-server is always up. In this way, it can listen and record every
Contrary to XenCenter, each Xen Orchestra's client is connected to one XO-Server, and not all the Xen servers. With a traditional architecture: Contrary to XenCenter, each Xen Orchestra's client is connected to one XO-Server, and not all the Xen servers. With a traditional architecture:
![](../assets/without-xo.jpg) ![](./assets/without-xo.jpg)
You can see how we avoid a lost of resources and bandwidth waste with a central point: You can see how we avoid a lost of resources and bandwidth waste with a central point:
![](../assets/with-xo.jpg) ![](./assets/with-xo.jpg)
### Events ### Events
Legacy interfaces use the "pull" model, requesting data every "x" seconds: Legacy interfaces use the "pull" model, requesting data every "x" seconds:
![](../assets/noevent.jpg) ![](./assets/noevent.jpg)
It's **not scalable** and slow. It's **not scalable** and slow.
With XO < 3.4, we used events in this way: With XO < 3.4, we used events in this way:
![](../assets/semievent.jpg) ![](./assets/semievent.jpg)
But interface was still lagging behind the server. With XO 3.4, we got a full event system, allowing instant display of what's happening on your infrastructure: But interface was still lagging behind the server. With XO 3.4, we got a full event system, allowing instant display of what's happening on your infrastructure:
![](../assets/fullevent.jpg) ![](./assets/fullevent.jpg)
### A proxy for your hosts ### A proxy for your hosts