GigHive is an open-source deployment framework for hosting your own media library, a bandβs library or fan videos, or even videos uploaded by guests from events like a wedding. There are two pieces to Gighive:
The automation allows you to spin up a fully reproducible environment using Docker, Ansible, and Terraform. It has a very simple interface: a splash page, a single database of stored videos and an upload utility.
This project is designed to be portable, easy to deploy, and suitable for local development or cloud environments (Azure supported out of the box).
REQUIREMENTS
http://localhost:8080
localhost:3306
βββ 1prereqsInstall.sh
βββ 2bootstrap.sh
βββ 3deleteAll.sh
βββ ansible
βΒ Β βββ callback_plugins
βΒ Β βββ inventories
βΒ Β βΒ Β βββ group_vars
βΒ Β βΒ Β βββ inventory_azure.yml
βΒ Β βΒ Β βββ inventory_azure.yml.j2
βΒ Β βΒ Β βββ inventory_baremetal.yml
βΒ Β βΒ Β βββ inventory_virtualbox.yml
βΒ Β βββ playbooks
βΒ Β βΒ Β βββ site.yml
βΒ Β βββ roles
βΒ Β βΒ Β βββ base
βΒ Β βΒ Β βββ blobfuse2
βΒ Β βΒ Β βββ cloud_init
βΒ Β βΒ Β βββ cloud_init_disable
βΒ Β βΒ Β βββ docker
βΒ Β βΒ Β βββ mysql_backup
βΒ Β βΒ Β βββ nfs_mount
βΒ Β βΒ Β βββ post_build_checks
βΒ Β βΒ Β βββ security_basic_auth
βΒ Β βΒ Β βββ security_owasp_crs
βΒ Β βΒ Β βββ validate_app
βΒ Β βΒ Β βββ varscope
βΒ Β βββ vdiLockedWriteDelete.sh
βββ ansible.cfg
βββ assets
βΒ Β βββ audio
βΒ Β βββ video
βββ azure.env
βββ azure-prereqs.txt
βββ CHANGELOG.md
βββ docs
βΒ Β βββ commonissue1.txt
βΒ Β βββ commonissue2.txt
βΒ Β βββ index.html
βΒ Β βββ PREREQS.md
βΒ Β βββ README.md
βΒ Β βββ timings.txt
βββ inventory.ini
βββ terraform
βΒ Β βββ variables.tf
βββ tree.txt
# 1. Clone the repo
git clone https://github.com/gighive/gighive
# 2. Set GIGHIVE_HOME variable
export GIGHIVE_HOME=<location of where you cloned gighive>
eg: export GIGHIVE_HOME=/home/$USER/gighive
# 3. Install Azure, Terraform and Ansible prerequisites
cd $GIGHIVE_HOME;./1prereqsInstall.sh
Note VirtualBox install will require a reboot.
# 4. Make sure you have id_rsa.pub or id_ed25519.pub in
./ssh for passwordless authentication
# 1. Export Azure Vars (as noted at top of 2bootstrap.sh)
export ARM_SUBSCRIPTION_ID=[put your subscription id here]
export ARM_TENANT_ID=[put your tenant id/mgmt group id here]
# 2. Provision infrastructure
./2bootstrap.sh
Watch and respond to these prompts:
.. apply Terraform plan
.. update the ansible inventory file and finally,
.. run the ansible_playbook
# 3. If you're finished with the VM, delete all resources in Azure
cd $GIGHIVE_HOME;./3deleteAll.sh
# 1. Decide on an IP in your home network that you'd like to use.
# 2. Edit the "ansible_host" field in $GIGHIVE_HOME/ansible/inventories/inventory_virtualbox.yml
# 3. Run Ansible
cd $GIGHIVE_HOME;ansible-playbook -i ansible/inventories/inventory_virtualbox.yml ansible/playbooks/site.yml --ask-become-pass
# 1. Edit the inventory file and put the IP of your bare metal server that is prepped for Gighive
$GIGHIVE_HOME/ansible/inventories/inventory_baremetal.yml
# 2. Run Ansible
cd $GIGHIVE_HOME;ansible-playbook -i ansible/inventories/inventory_baremetal.yml ansible/playbooks/site.yml
GigHive Community Edition is licensed under the MIT License. This edition is intended for self-hosted, single-tenant use cases. For SaaS or multi-tenant solutions, please see GigHive Cloud (proprietary).
Contributions welcome! Please open issues and pull requests.
π Contact us for commercial licensing or for any other questions regarding Gighive.