A simple cheatsheet app to store and revisit commands for Linux, Docker, Kubernetes, and OpenShift.
Full stack: React (Vite) + Node/Express + PostgreSQL.
Works locally, with Docker, Docker Compose, Kubernetes (Minikube), and OpenShift.
-
Default login:
admin / admin123 -
Seed data: created on first DB start from
backend/db/init.sql -
Run all commands from the repo root
-
Docker
-
For Kubernetes: Minikube + kubectl
-
For OpenShift: oc CLI + Developer Sandbox account
Note: Commands below use
$PWDfor volume mounts. On Windows/Mac the path syntax differs, adjust as needed. Tested on Rocky Linux 9.6
Start PostgreSQL (seeds on first run):
docker rm -f devops-pg 2>/dev/null || true
docker run -d --name devops-pg \
-e POSTGRES_USER=devops_user \
-e POSTGRES_PASSWORD=secure_password \
-e POSTGRES_DB=devops_cheatsheet \
-p 5432:5432 \
-v devops_pgdata:/var/lib/postgresql/data \
-v "$PWD/backend/db:/docker-entrypoint-initdb.d:ro" \
postgres:16Backend (terminal 1):
cd backend
cp -f .env.example .env # uses DB_HOST=localhost
npm i
npm run dev # http://localhost:5000Frontend (terminal 2):
cd frontend
npm i
npm run dev # http://localhost:5173# network
docker network create devops-net 2>/dev/null || true
# db
docker rm -f devops-pg 2>/dev/null || true
docker run -d --name devops-pg --network devops-net \
-e POSTGRES_USER=devops_user \
-e POSTGRES_PASSWORD=secure_password \
-e POSTGRES_DB=devops_cheatsheet \
-v devops_pgdata:/var/lib/postgresql/data \
-v "$PWD/backend/db:/docker-entrypoint-initdb.d:ro" \
postgres:16
# backend
docker rm -f devops-backend 2>/dev/null || true
docker build -t devops-backend:local ./backend
docker run -d --name devops-backend --network devops-net \
-e PORT=5000 \
-e DB_HOST=devops-pg \
-e DB_PORT=5432 \
-e DB_USER=devops_user \
-e DB_PASSWORD=secure_password \
-e DB_NAME=devops_cheatsheet \
-e JWT_SECRET=change_me_in_production \
-p 5000:5000 \
devops-backend:local
# frontend (nginx proxies /api -> http://devops-backend:5000)
docker rm -f devops-frontend 2>/dev/null || true
docker build -t devops-frontend:local ./frontend
docker run -d --name devops-frontend --network devops-net \
-p 3000:8080 \
devops-frontend:local
# open: http://localhost:3000cp -f backend/.env.example backend/.env # compose overrides DB_HOST to devops_pg
docker compose up -d --build
# open: http://localhostminikube start --memory=2048 --cpus=2 --driver=docker
chmod +x k8s/deploy.sh
k8s/deploy.sh-
The script prints how to access the app at the end (add the printed IP +
devops.localto/etc/hosts, then open the URL). -
If
devops.localstill doesn't work after adding the hosts entry:
minikube delete --purge
sudo systemctl restart docker
minikube start --memory=2048 --cpus=2 --driver=dockerGet your login token from the Developer Sandbox console, then:
oc login --token=YOUR_TOKEN --server=YOUR_SERVER
chmod +x oc/deploy.sh
oc/deploy.sh- The script prints the public Route URL at the end.
MIT