1. Log in to Docker using docker login and enter your DockerHub credentials.
2. In your project’s base folder, create two files: Dockerfile and start.sh.
3. Add the Dockerfile code:
FROM evernode/sashimono:hp.latest-ubt.20.04-njs.20
RUN apt update && \
apt install -y openssh-server openssl sudo bash nano curl && \
rm -rf /var/lib/apt/lists/*
#User Creation
RUN useradd -m -s /bin/bash everuser && \
#Warning, if you allow ssh connections, then do not forget to change your password from default.
echo "everuser:default" | chpasswd && \
usermod -aG sudo everuser && \
echo "everuser ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
RUN mkdir /var/run/sshd && \
echo "Port 22" >> /etc/ssh/sshd_config && \
echo "PermitRootLogin no" >> /etc/ssh/sshd_config && \
echo "ListenAddress 0.0.0.0" >> /etc/ssh/sshd_config
#End User Creation
#Adding the folders we use
RUN mkdir /home/everuser/public
#End adding folders
#Copying the files that we use, all files from folder name public will follow along and does not need to be specified
COPY index.js /home/everuser/index.js
COPY public /home/everuser/public
COPY node_modules /home/everuser/node_modules
COPY start.sh /start.sh
#End copying files
#Sometimes files need permissions to be ran. I am making start.sh executeable here
RUN chmod +x /start.sh
#End file permissions
WORKDIR /home/everuser
ENTRYPOINT ["/start.sh"]
4. Add the start.sh script:
#!/bin/bash
if [ ! -f /etc/ssh/ssh_host_rsa_key ]; then
ssh-keygen -A
fi
sudo chown -R everuser:everuser /home/everuser
chown -R everuser:everuser /home/everuser
# start the nodejs server
/usr/bin/node /home/everuser/index.js &
# keep the shell alive
tail -f /dev/null
5. Build your Docker image with "docker build -t yourdockerhubusernname/webapp -f ./Dockerfile ."
6. Push the built image to DockerHub with "docker image push --all-tags yourdockerhubusernname/webapp"
7.A Install evdevkit with npm i evdevkit -g
7.B If you have problems installing evdevkit, then this will most likely be the solution:
Go to your startmenu, write powershell, rightclick on it and open it as admin, then write "Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope LocalMachine" and hit enter. This will allow your computer to work with scripts, in this case the evernode development kit.
8. Generate an Evernode private key with evdevkit keygen.
9. Set your environment variables for EV_USER_PRIVATE_KEY and EV_TENANT_SECRET
On Linux and Mac:
export EV_TENANT_SECRET="your seed"
export EV_USER_PRIVATE_KEY="your evdevkit private key"
On Windows:
$env:EV_TENANT_SECRET="your seed"
$env:EV_USER_PRIVATE_KEY="your evdevkit private key"
10. Visit https://xahau.xrplwin.com/evernode and select a suitable node.
11. Copy the node’s address.
12. Deploy your Docker image to the chosen Evernode node with evdevkit acquire -i yourdockerhubusername/website:latest -m 1 rADDRESS
13. After deployment, note the assigned GPTCP ports.
14. Access your deployed app using https://thedomain:assignedport.