www_projectmycelium_io/hero_docs/crystallib_hero_basic_docs.md
2024-11-08 12:11:03 -05:00

2.0 KiB

Crystallib and Hero Basic Docs

Table of Contents


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