There is a bit more to full stack development than a UI and backend API. What about the gateway/proxy, distributed tracing, logging, metrics, visualisation and DNS.
This is a collection of working tools to bring up a local example of the above using docker-compose.
# Build container images
docker-compose build
# Start
docker-compose up -d
# Create a Book
curl -X POST localhost:3000/book -H "content-type: application/json" --data-raw '{"name":"The Great Gatsby"}'
# View some of the endpoints below to watch metrics, tracing and logging
# Shutdown
docker-compose down --remove-orphans
IMAGE NAMES SIZE
otel/opentelemetry-collector otel-agent 0B (virtual 91.4MB)
prom/prometheus:latest prometheus 0B (virtual 145MB)
otel/opentelemetry-collector otel-collector 0B (virtual 91.4MB)
gcr.io/google-containers/cadvisor:latest cadvisor 0B (virtual 185MB)
jaegertracing/all-in-one:latest jaeger 0B (virtual 47.4MB)
kibana:7.9.1 kibana 579kB (virtual 1.18GB)
grafana/grafana grafana 487kB (virtual 181MB)
redis:alpine redis-cadvisor 0B (virtual 32.1MB)
fullstack-example_api api 0B (virtual 135MB)
elasticsearch:7.9.1 elasticsearch 12.1MB (virtual 774MB)
kong:alpine gateway 22.4kB (virtual 147MB)
timberio/vector:latest-alpine vector 0B (virtual 80.7MB)
postgres:13-alpine database 63B (virtual 158MB)
registry:2.7.1 registry 0B (virtual 26.2MB)
http://localhost:8000
https://localhost:8443
http://localhost:8001
https://localhost:8444
Jaeger:
http://localhost:16686
Zipkins:
http://localhost:9411
Prometheus:
http://localhost:9090
Cadvisor (Container Metrics Forwarded to Prometheus): http://localhost:8080/docker/
Kibana: http://localhost:5601
Grafana: http://localhost:3001