1
0
mirror of https://github.com/alexandrev/xslt-lab.git synced 2026-09-16 18:23:16 +00:00
Files
xslt-lab/README.md
T

3.0 KiB

xslt-lab

Your Lab for XSLT Transformation.

Frontend

The React/Vite frontend lives in frontend/. Use npm install inside that folder and run:

npm run dev

This starts the playground at http://localhost:3000.

The app will call the Go backend at /transform to perform XSLT transformations. Set the backend URL by creating a .env file inside frontend/:

VITE_BACKEND_URL=http://localhost:8000

If omitted the app assumes the backend runs on the same host and port.

When VITE_GO_PRO=true the UI exposes additional features like Google authentication and multiple transformation tabs. For authentication you must provide Firebase configuration via VITE_FIREBASE_CONFIG containing the JSON object used by initializeApp.

Docker

To build a container with the compiled frontend run:

docker build -t xslt-playground-frontend \
  --build-arg VITE_BACKEND_URL=http://localhost:8000 frontend

The resulting image serves the static files with nginx on port 80.

Backend

The Go backend resides under backend/. Compile it using the Makefile which downloads Go modules automatically:

make backend-build
./backend/server

You can also produce a container image using the provided Dockerfile:

docker build -t xslt-playground-backend backend

By default it listens on port 8000 as configured in backend/app.config. The same file sets saxon_classpath so the Java process can load Saxon and its dependencies from /opt/saxon/*.

Environment

The backend requires a PostgreSQL database and Firebase credentials for authentication. Provide these via environment variables:

export DATABASE_URL="postgres://user:pass@localhost/dbname"
export GOOGLE_APPLICATION_CREDENTIALS=/path/to/serviceAccount.json
export SAXON_CLASSPATH=/opt/saxon/*

The Firebase project ID is read from the credentials file.

Makefile

Common tasks are defined in the provided Makefile. Running make without arguments will build both binaries, create the container images and start Docker Compose without shutting it down automatically:

# Build Go binary
make backend-build
# Build React production files
make frontend-build
# Create container images
make backend-image
make frontend-image

Docker Compose

To run the entire stack locally with PostgreSQL use:

make backend-image frontend-image
docker compose up

The compose file builds the frontend with VITE_BACKEND_URL=http://backend:8000 so it talks to the backend container.

This starts the backend on port 8000, the frontend on 3000 and a PostgreSQL instance on 5432.

Helm Chart

A Helm chart is provided under charts/xslt-playground to deploy the frontend and backend on Kubernetes. Before installing, create a secret with your Firebase credentials:

kubectl create secret generic firebase-config \
  --from-file=service-account.json=</path/to/serviceAccount.json> \
  --from-file=firebase-config.json=</path/to/firebaseConfig.json>

Install the chart with:

helm install xslt charts/xslt-playground