Microlab Club · PBL-26
Golf Cart
Your team's subdomain. Deploy a Docker container on the reserved port and it replaces this page automatically.
Deployment details
- URL
- golf-cart-26.microlab.club
- SSH
ssh golf-cart-26_admin@golf-cart-26.microlab.club- Repo
- MicroLabClub/pbl-26-golf-cart
- Bind
127.0.0.1:9003- Host
194.180.191.175· Ubuntu 22.04 · shared with other teams
How it works
An nginx reverse proxy routes https://golf-cart-26.microlab.club to whatever process is listening on 127.0.0.1:9003 on this host. While your container is running, your app is live at the URL. While it isn't, this page is shown so visitors always get something useful.
You and your teammates share one Linux account on this host. Anything one of you changes affects the others — keep your work inside ~/.
Deploy in four steps
-
Connect via SSH
Use the password your instructor handed out. After first login, add your public key so the password isn't needed again.
ssh golf-cart-26_admin@golf-cart-26.microlab.club # from your laptop, after first login: ssh-copy-id golf-cart-26_admin@golf-cart-26.microlab.club -
Clone the repository
cd ~ git clone https://github.com/MicroLabClub/pbl-26-golf-cart.git cd pbl-26-golf-cart -
Add a compose file
A starter is already in your home directory. Copy it into the project root and adapt the build/image to match your code.
cp ~/docker-compose.example.yml ./docker-compose.ymlRequired:your service must bind to127.0.0.1:9003on the host — not9003alone, not0.0.0.0:9003. Anything else bypasses HTTPS and exposes the container publicly. -
Bring it up
docker compose up -d --build docker compose ps curl -s -o /dev/null -w "%{http_code}\n" http://127.0.0.1:9003/Open golf-cart-26.microlab.club — you should see your app, not this page. If you don't, see Troubleshooting below.
Cheat sheet
| Command | Effect |
|---|---|
docker compose ps | Container status for this project |
docker compose logs -f | Tail logs from all services |
docker compose logs -f app | Tail logs from a single service |
docker compose down | Stop and remove containers |
docker compose down -v | Same, plus delete named volumes (wipes DB data) |
docker compose exec app sh | Open a shell inside the running container |
docker system prune -af | Reclaim disk by removing unused containers and images |
git pull && docker compose up -d --build | Redeploy with the latest code |
df -h ~ | Check disk usage in your home dir |
Troubleshooting
This welcome page is still showing
Nginx couldn't reach your container on 127.0.0.1:9003. On the server:
docker compose ps
curl -v http://127.0.0.1:9003/
docker compose logs --tail=50 app
"port is already allocated" on docker compose up
Something else is already bound to 9003. Find it and stop it.
docker ps --filter "publish=9003"
docker stop <name>
"permission denied" running docker
You were added to the docker group on first provisioning. Group membership only takes effect on a new login session — log out and SSH back in.
I want a clean slate
docker compose down -v
docker system prune -af
git fetch && git reset --hard origin/main