Get the machine ready by updating the software repository and then upgrading any outdated libraries.
sudo apt update
sudo apt upgrade
To avoid any conflicting packages on the machine run
for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done
Install official docker gpg keys for verifying docker installation
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
Add repository to apt sources.
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
Install docker
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Confirm that docker is installed correctly
sudo docker run hello-world
Starting docker service if it is not running
sudo service docker start
Setup to run docker without appending sudo
sudo groupadd docker
Add user to the group.
sudo usermod -aG docker $USER
Activate the group changes.
newgrp docker
Configure docker to start on boot.
sudo systemctl enable docker.service
sudo systemctl enable containerd.service
Clone the one-click hornet setup github repository.
git clone https://github.com/sadick254/one-click-tangle.git
Install the private tangle first
./private-tangle.sh install
Configure hornet dashboard password
docker compose run node tools pwd-hash
Copy the contents and head to the node config file to replace the password.
366b1e9d76eba6779e0faa02b813b4ffa162e650dbf19f028d050439feadd749
2828c4d214040f2ea0929bc2f0336d64d16caf346cc8c199a3ea11f593128895
Restart the node service after changing the password.
docker compose restart node
Run the private-tangle.sh
./private-tangle.sh start
docker compose file.
services:
ipfs:
image: ipfs/kubo:master-2024-05-06-2841ec0
ports:
- 4001:4001
- 4001:4001/udp
- 8080:8080
- 5001:5001
volumes:
- ./ipfs/export:/export
- ./ipfs/data:/data/ipfs
sudo go install github.com/Kubuxu/go-ipfs-swarm-key-gen/ipfs-swarm-key-gen@master
Create a docker-compose file with the following contents.
services:
myql:
image: mysql:8.4.0
env_file:
- .env
ports:
- 3306:3306
Also create a .env
file with the following contents. Replace the defaults to your prefered values.
MYSQL_ROOT_PASSWORD=pass
MYSQL_DATABASE=tlip
MYSQL_USER=tlip
MYSQL_PASSWORD=pass
MYSQL_ALLOW_EMPTY_PASSWORD=true
version: "3.5"
services:
tlip.api:
image: tlipgtsc/tlip:1.0.7
env_file:
- .env
ports:
- 4000:4000
restart: always
depends_on:
- mysql
- ipfs
- rabbitmq
environment:
MYSQL_HOST: mysql
MQ_HOST: rabbitmq
IPFS_HOST: ipfs
tlip.ui:
image: tlipgtsc/tlip:latest
env_file:
- .env
ports:
- 3000:3000
restart: always
depends_on:
- tlip.api
ipfs:
image: ipfs/kubo:master-2024-05-06-2841ec0
ports:
- 4001:4001
- 4001:4001/udp
- 8080:8080
- 5001:5001
volumes:
- ./ipfs/export:/export
- ./ipfs/data:/data/ipfs
mysql:
image: mysql:8.4.0
env_file:
- .env
ports:
- 3306:3306
environment:
MYSQL_ROOT_PASSWORD: gtsc
MYSQL_DATABASE: gtsc
MYSQL_USER: gtsc
MYSQL_PASSWORD: gtsc
volumes:
- mysql_data:/var/lib/mysql
rabbitmq:
container_name: "${RABBITMQ_DOCKER_NAME:-rabbitmq-tlip}"
image: rabbitmq:3.13-management
ports:
- "5672:5672" # Gateway
- "15672:15672" # Management UI
environment:
- MQ_USER=readonly
- MQ_PASS=wso2readonly
- MQ_PORT=5672
- MQ_VHOST=/carbon
volumes:
- "${RABBITMQ_VOLUME_DIR:-./volume}:/var/lib/rabbitmq"
- "/var/run/docker.sock:/var/run/docker.sock"
volumes:
mysql_data:
ipfs_data:
rabbitmq_data: