# Installation Over here we will cover the basic steps to get the server and client side running. ## Alpha release install https://github.com/Akilan1999/p2p-rendering-computation/releases/tag/v1.0.0-alpha ## Install from Github master branch ### Install Go lang The entire the implementation of this project is done using Go lang. Thus, we need go lang to compile to code to a binary file. [Instructions to install Go lang](https://golang.org/doc/install) ### Install Docker In this project the choice of virtualization is Docker due to it's wide usage in the developer community. In the server module we use the Docker Go API to create and interact with the containers. [Instructions to install docker](https://docs.docker.com/get-docker/) [Instructions to install docker GPU](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html#docker) ```` // Do ensure that the docker command does not need sudo to run sudo chmod 666 /var/run/docker.sock ```` ### Build Project and install project To set up the internal dependencies and build the entire go code into a single binary ``` make install ``` ### Add appropriate paths to .bashrc ``` export P2PRC=//p2p-rendering-computation export PATH=//p2p-rendering-computation:${PATH} ``` ### Set up configuration file ``` make configfile ``` Open the config file ```config.json``` and add the IPv6 address if you have one. ### Test if binary works ``` p2prc --help ``` #### Output: ``` NAME: p2p-rendering-computation - p2p cli application to create and access VMs in other servers USAGE: p2prc [global options] command [command options] [arguments...] VERSION: 1.0.0 COMMANDS: help, h Shows a list of commands or help for one command GLOBAL OPTIONS: --Server, -s Starts server (default: false) [$SERVER] --UpdateServerList, --us Update List of Server available based on servers iptables (default: false) [$UPDATE_SERVER_LIST] --ListServers, --ls List servers which can render tasks (default: false) [$LIST_SERVERS] --AddServer value, --as value Adds server IP address to iptables [$ADD_SERVER] --ViewImages value, --vi value View images available on the server IP address [$VIEW_IMAGES] --CreateVM value, --touch value Creates Docker container on the selected server [$CREATE_VM] --ContainerName value, --cn value Specifying the container run on the server side [$CONTAINER_NAME] --RemoveVM value, --rm value Stop and Remove Docker container [$REMOVE_VM] --ID value, --id value Docker Container ID [$ID] --Ports value, -p value Number of ports to open for the Docker Container [$NUM_PORTS] --GPU, --gpu Create Docker Containers to access GPU (default: false) [$USE_GPU] --Specification value, --specs value Specs of the server node [$SPECS] --SetDefaultConfig, --dc Sets a default configuration file (default: false) [$SET_DEFAULT_CONFIG] --NetworkInterfaces, --ni Shows the network interface in your computer (default: false) [$NETWORK_INTERFACE] --help, -h show help (default: false) --version, -v print the version (default: false) ```
--------------
# Using the Cli commands ### Start as a server Do ensure you have docker installed for this ``` p2prc -s ``` ### View server Speciafication ``` p2prc --specs= ``` ### Run container use the ```--gpu``` if you know the other machine has a gpu. ``` p2prc --touch= -p --gpu ``` ### Remove container The docker id is present in the output where you create a container ``` p2prc --rm= --id= ``` ### Adding servers to ip table ``` p2prc --as= ``` ### Update ip table ``` p2prc --us ``` ### List Servers ``` p2prc --ls ``` ### View Network interfaces ``` p2prc --ni ```