Crystallib and Hero Basic Docs

Table of Contents

- [Introduction](#introduction) - [Prerequisites](#prerequisites) - [Deploy Webserver](#deploy-webserver) - [Clean Up](#clean-up) --- ## Introduction We provide the steps to prepare a Docker Ubuntu container to work with Hero and Crystallib. ## Prerequisites - Docker - Make sure that you have set your SSH Public Key on both GitHub and the TFGrid Gitea (https://git.ourworld.tf) ## Deploy Webserver - Run the Ubuntu container with host networking and a specific name ``` sudo docker run -it --net=host --name=hero-container -v ~/dvol:/root/code ubuntu:latest /bin/bash ``` - Create Directory .ssh in container ``` mkdir -p ~/.ssh ``` - Copy SSH keys to container from local machine (use the proper path and key type) ``` sudo docker cp ~/.ssh/id_ed25519 hero-container:/root/.ssh/id_ed25519 sudo docker cp ~/.ssh/id_ed25519.pub hero-container:/root/.ssh/id_ed25519.pub ``` - Execute all commands directly in the container ``` # Install prerequisites apt update && apt install -y git curl nano openssh-client libsqlite3-dev python3-venv # Set up SSH agent and add the key eval $(ssh-agent) ssh-add ~/.ssh/id_ed25519 # Clone the repository and set up the environment mkdir -p ~/code/github/freeflowuniverse cd ~/code/github/freeflowuniverse git clone https://github.com/freeflowuniverse/crystallib cd crystallib # Download and run installation scripts for Crystallib and Hero curl https://raw.githubusercontent.com/freeflowuniverse/crystallib/development/scripts/install_hero.sh > /tmp/hero_install.sh bash /tmp/hero_install.sh curl https://raw.githubusercontent.com/freeflowuniverse/crystallib/development/scripts/installer.sh > /tmp/install.sh bash /tmp/install.sh echo echo "Crystallib and Hero are set up on your Docker container." echo ``` ## Clean Up When you're done, you can clean up your environment. ``` sudo docker stop hero-container sudo docker rm hero-container sudo find ~/dvol -mindepth 1 -delete ```