Docker & docker-compose files to deploy Xen Orchestra Community Edition (ie: from source). This image include all the officials Orchestra plugins builded for the current version.
See https://xen-orchestra.com for information on Xen Orchestra
The most simple way is to use docker compose
. Redis is not in this docker, so we
need to connect XOA-CE to a Redis database, the docker-compose file in the github
repos will take care of this and assure persistance.
git clone https://github.com/Ezka77/xen-orchestra-ce.git
docker compose up
or just use the docker compose file (direct link):
curl -o docker-compose.yml https://raw.githubusercontent.com/Ezka77/xen-orchestra-ce/master/docker-compose.yml
docker compose up
Xen Orchestra should be available on: http://localhost:8000
It's a best effort to follow xen-orchestra master version.
Some of the Xen-Orchestra features (ex: NFS backups) requires to run the xo
service as root/superuser and run the docker container with the privileged
flag.
The xen-orchestra container is easy to configure via multiple environment variable as the configuration is generated by remco at start up. Besides you can add any variables that node
is aware of in the environment
section of the docker-compose file to change and adapt the server to your needs.
These environment variables are used by remco
to enabled the HTTPS support:
# Quick HTTPS set up
XO_HTTP_REDIRECTTOHTTPS : Redirect HTTP to HTTPS (default = false)
XO_HTTP_LISTEN_PORT : HTTP listen port (default = 8000)
XO_HTTPS_LISTEN_PORT : HTTPS listen port (default = unset)
XO_HTTPS_LISTEN_AUTOCERT : Automatically create self-signed certificate if "key" and "cert" are missing (default = true)
# Use these variables with a mount point to your own SSL files
XO_HTTPS_LISTEN_CERT : Certificate (in PEM format) for HTTPS (default = './certificate.pem')
XO_HTTPS_LISTEN_KEY : Private key (in PEM format) for HTTPS (default = './key.pem')
XO_HTTPS_LISTEN_DHPARAM : DH parameter file for HTTPS (default = unset)
The example below describes the Xen-Orchestra service listening on port 80 (HTTP) and port 443 (HTTPS) with automatic self-signed certificates:
services:
orchestra:
restart: unless-stopped
image: ezka77/xen-orchestra-ce:latest
container_name: XO_server
ports:
- "80:80"
- "443:443"
depends_on:
- redis
environment:
- DEBUG=xo:main
- NODE_ENV=production
- XOA_PLAN=5
- XO_HTTP_REDIRECTTOHTTPS=true
- XO_HTTP_LISTEN_PORT=80
- XO_HTTPS_LISTEN_PORT=443
- XO_HTTPS_LISTEN_AUTOCERT=true
#privileged: true
# to avoid privileged, use SYS_ADMIN to get mount capability, and NET_ADMIN to open/configure some sockets for NFS
cap_add:
- SYS_ADMIN
- NET_ADMIN
volumes:
- xo-data:/storage
logging: &default_logging
driver: "json-file"
options:
max-size: "1M"
max-file: "2"