| CompSci 590 Spring 2026 |
Software Development Studio |
These instructions will ensure each person can use Duke's LLM API and deploy it on a Server.
docker run hello-world
hello-world is listed in your Rancher Desktop app.If you already have an API key for another LLM service, feel free to use that instead if you prefer (in which case, you will need to change the example code to use its API URL).
git clone git@coursework.cs.duke.edu:compsci590_2026spring/example_chatbot.git
cd example_chatbot/src
.env, to include your API key:cp .env.sample .env nano .envNote, this new file will not be tracked by GIT since the
.env file is ignored in this project. docker compose up --build
http://localhost:4083
zsh or bash)ssh NETID@vcm-ID.vm.duke.eduNote, no password should be needed!
sudo apt upgrade -yNote, type your NetID password when prompted.
http://vcm-YOUR_ID.vm.duke.edu/Note, your browser may complain that the website is not secure
cd /var/www/html/ ls -l sudo chown -R NETID . ls -l nano index.htmlNote, refresh the page to see your change.
Install Docker on your server (it may be easier to copy these instructions from Steps 1 and 2):
# Add Docker's official GPG key:
sudo apt update
sudo apt 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 current repository as APT sources
sudo tee /etc/apt/sources.list.d/docker.sources <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Signed-By: /etc/apt/keyrings/docker.asc
EOF
# Update the package manager so it sees these new sources
sudo apt update
# Install necessary Docker packages
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Note, these steps are overly complex since you are doing it “by hand” instead of using a “script” like those provided by software tools like Rancher, Brew, etc. Consider reading the complete instructions for more detailed explanations.
sudo systemctl status docker
sudo usermod -aG docker $USER newgrp docker
docker run hello-world
docker images
git clone git@coursework.cs.duke.edu:compsci590_2026spring/example_chatbot.git
cd example_chatbot/src
.env, to include your API key:cp .env.sample .env nano .envNote, you will need to add your API key again since it is not stored in Gitlab.
HOST from localhost to vcm-YOUR_ID.vm.duke.edu
docker compose up --build
docker images
http://vcm-YOUR_ID.vm.duke.edu:4083
docker compose down
Note, there is no need to copy these files to a special location, as this site is not managed by the Server's web application (Apache), but by Docker. However, you may still want to create a “special” folder for the installed Docker source code to make it easier to manage them separately.