# Installation
Elephant Shed consists of the following Debian packages and their dependencies:
elephant-shed: Metapackage that includes the following packages.
elephant-shed-prometheus: Configuration files and helper scripts for Prometheus and its exporters.
elephant-shed-cockpit: Configuration files for cockpit and cockpit-ws.
elephant-shed-grafana: Preconfigured Prometheus datasource and dashboard that includes various system and PostgreSQL metrics.
elephant-shed-omnidb: Configuration files for OmniDB.
elephant-shed-pgbackrest: Systemd service files and generators, helper scripts and preset configuration.
elephant-shed-pgbadger: Systemd service files, generators and helper scripts.
elephant-shed-portal: Elephant Shed web portal including Apache configuration.
elephant-shed-postgresql: Additional preset configuration files for PostgreSQL.
elephant-shed-shellinabox: Shell In A Box configuration files.
elephant-shed-tmate: Preconfigured tmate installation for easier support.
## Package Installation
Prebuilt packages are available from <https://packages.credativ.com/public/postgresql/>.
The repository also contains packages that the elephant-shed packages depend on. This includes packages for Grafana, Cockpit and various python libraries.
### Installation on Debian and Ubuntu
``` # Install tools sudo apt-get install curl ca-certificates apt-transport-https
# Use official PostgreSQL repo, apt.postgresql.org echo “deb http://apt.postgresql.org/pub/repos/apt/ stretch-pgdg main” | sudo tee -a /etc/apt/sources.list.d/pgdg.list curl https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
# Use credativ repo, packages.credativ.com echo “deb https://packages.credativ.com/public/postgresql/ stretch-stable main” | sudo tee -a /etc/apt/sources.list.d/elephant-shed.list curl https://packages.credativ.com/public/postgresql/aptly.key | sudo apt-key add -
# Install elephant-shed sudo apt-get update sudo apt-get install elephant-shed
# Choose desired PostgreSQL versions to install sudo apt-get install postgresql-10
# Every user in the group “elephant-shed” is allowed to login at the portal # Add all needed users to this group sudo adduser <USERNAME> elephant-shed ```
### Installation on RedHat and CentOS
Elephant Shed works with the PostgreSQL packages from the PostgreSQL RPM building project. Go to <a href=”https://yum.postgresql.org/”><b>yum.postgresql.org</b></a> and install the repository RPMs for the PostgreSQL versions you want to use. Then proceed to install Elephant Shed as below.
```bash # Use credativ repository (will also pull in EPEL) sudo yum install https://packages.credativ.com/public/postgresql/yum/credativ-repo.rpm
# On RedHat, activate additional repositories (not on CentOS) subscription-manager repos –enable=rhel-7-server-extras-rpms subscription-manager repos –enable=rhel-7-server-optional-rpms
# Choose desired PostgreSQL versions to install sudo yum install postgresql11-server postgresql11-contrib postgresql-common sudo pg_createcluster 11 main –start
# Install elephant-shed sudo yum install elephant-shed
# Every user in the group “elephant-shed” is allowed to login at the portal # Add all needed users to this group sudo vigr
# Unfortunately, pgAdmin4 and shellinabox do not work with SELinux enabled # Disable SELinux if you want to use these components sudo setenforce 0 sudo sed -i -e ‘s/^SELINUX=.*/SELINUX=permissive/’ /etc/selinux/config ```
## Installation from source
The source code is available on GitHub: <https://github.com/credativ/elephant-shed>
### Build Debian Packages
All Elephant Shed Debian packages can be built using the command make deb.
Requirements:
dpkg-dev
devscripts
### Build Documentation
To build the documentation in HTML format type make docs.
Requirements:
sphinx
### Create Testsystem with Vagrant
The make vagrant command builds all components, creates a new virtual machine using Vagrant and deploys the software using Ansible. This can also be used to redeploy a already running machine.
The Vagrant configuration is located in vagrant/Vagrantfile.
Requirements:
vagrant
virtualbox or libvirt
ansible
### Deploy on remote machine
To deploy the software on any machine, enter the connection information in the inventory vagrant/inventory. The deployment can than be started with the following command make ansible.
Requirements:
ansible