Supply Chain Resilience Assessment Tool

Installation & Setup GuideInstallations- og opsætningsvejledning

Installation & Setup

Complete guide for setting up the Supply Chain Resilience Assessment Tool in development and production environments.

Installation & setup

Komplet guide til opsætning af Supply Chain Resilience softwaret.

Table of Contents

Indholdsfortegnelse

Overview

The Supply Chain Resilience Assessment Tool is an open-source supply chain resilience and business continuity assessment platform. Developed by researchers at the University of Southern Denmark (SDU) in partnership with the Royal Danish Military Academy (Forsvarsakademiet), funded by the Danish Industry Foundation (Industriens Fond) as part of the Cybersikkerhed og Forretningskontinuitet project (2023-2026).

The tool helps organizations map their supply chain vulnerabilities and capabilities through structured multi-step surveys, then visualizes results for cross-organizational alignment and action planning. It is used in the first step of the company process within the broader cybersecurity and business continuity programme - see cyber-smv.dk for more.

Oversigt

Supply Chain Resilience softwaret er en open source-platform til vurdering af forsyningskæders robusthed og forretningskontinuitet. Værktøjet er udviklet af forskere fra Syddansk Universitet (SDU) i samarbejde med Forsvarsakademiet og finansieret af Industriens Fond som en del af projektet Cybersikkerhed og Forretningskontinuitet (2023–2026).

Værktøjet hjælper deltagerne at kortlægge sårbarheder og kapabiliteter i virksomhedens forsyningskæder gennem en struktureret proces i fire faser. Resultaterne visualiseres efterfølgende for at understøtte fælles forståelse på tværs af organisationen samt planlægning af konkrete indsatser. Vi anbefaler, at virksomheder starter med at arbejde med Supply Chain Process modellen gennem dette software inden man bevæger sig ud i de øvrige værktøjer om cybersikkerhed og forretningskontinuitet – læs mere på cyber-smv.dk.

Architecture

The application follows a client-server architecture with a Go backend and Vue.js frontend:

Arkitektur

Applikationen er bygget efter en klient-server-arkitektur med en backend i Go og en frontend i Vue.js:

dk-if-open/
├── back/                  # Go backend (PocketBase framework)
│   ├── main.go            # Server entrypoint, custom routes & hooks
│   ├── main_test.go       # Integration tests
│   └── migrations/        # Database migrations & seed data
├── web/                   # Vue 3 frontend (Vite + TypeScript)
│   ├── src/
│   │   ├── views/         # Page components (13 routes)
│   │   ├── components/    # Reusable UI components
│   │   ├── stores/        # Pinia state management
│   │   ├── surveys/       # FormKit survey JSON schemas (en/da)
│   │   ├── i18n/          # Internationalization (English, Danish)
│   │   └── router/        # Vue Router configuration
│   └── ...
├── Dockerfile             # Multi-stage production build
└── docs/                  # Documentation

How it works

  1. An admin creates a session - 10 participant accounts + 1 session manager are auto-generated
  2. Participants log in with a unique token and complete a 7-step survey assessing vulnerabilities and capabilities
  3. The session manager views aggregated analysis with charts and prioritization

The backend is built on PocketBase (Go/SQLite), providing the API, admin dashboard, and authentication. The frontend is a Vue 3 single-page application with FormKit for survey forms, PrimeVue for UI components, and Chart.js for data visualization.

Sådan virker det

  1. En administrator opretter en session – 10 deltagerkonti og 1 session manager-konto oprettes automatisk
  2. Deltagerne logger ind med et unikt token og vælger sårbarheder, som risikovurderes og vurderer kapabiliteter
  3. Sessionslederen får adgang til en samlet analyse med grafer og prioritering

Backenden er bygget på PocketBase (Go/SQLite), der leverer API, adminpanel og autentifikation. Frontenden er en Vue 3 single-page-applikation med FormKit til spørgeskemaer, PrimeVue til UI-komponenter og Chart.js til datavisualisering.

Prerequisites

Development Environment

Forudsætninger

Udviklingsmiljø

Tool Minimum Version Download
Go 1.26+ go.dev/dl/
Node.js 20+ nodejs.org
npm 9+ npmjs.com

Production Environment (Docker)

Produktionsmiljø (Docker)

Tool Minimum Version Download
Docker 24+ docs.docker.com

Development Setup

1. Clone the repository

Udviklingssetup

1. Klon repositoriet

git clone https://github.com/sdu-concurrency/SCR-model.git
cd SCR-model

2. Start the backend

2. Start backenden

cd back
go run main.go serve --http=127.0.0.1:8090

Backend Details

The backend starts on http://127.0.0.1:8090:

  • REST API: http://127.0.0.1:8090/api/
  • Admin UI: http://127.0.0.1:8090/_/

⚠️ Important: Migrations run automatically on first start, creating all collections and seeding question data. On the very first start you will be prompted by PocketBase to create your superuser account at http://127.0.0.1:8090/_/ before you can access the admin UI.

Backend-detaljer

Backenden starter på http://127.0.0.1:8090:

  • REST API: http://127.0.0.1:8090/api/
  • Admin UI: http://127.0.0.1:8090/_/

⚠️ Vigtigt: Migrationer kører automatisk ved første start og opretter alle samlinger og seed-spørgsmålsdata. Ved allerførste start vil PocketBase bede dig om at oprette din superbrugerkonto på http://127.0.0.1:8090/_/ før du kan tilgå adminpanelet.

3. Start the frontend

3. Start frontenden

cd web
cp .env.example .env          # create config from template
npm install                   # install dependencies
npm run dev                   # start Vite dev server

Frontend Configuration

Edit web/.env with:

VITE_APP_TITLE="Supply Chain Resilience"
VITE_API_URL=http://127.0.0.1:8090
BASE_URL="/"

The frontend dev server starts at http://localhost:5173 (falls back to :5174 if busy).

Frontend-konfiguration

Redigér web/.env med:

VITE_APP_TITLE="Supply Chain Resilience"
VITE_API_URL=http://127.0.0.1:8090
BASE_URL="/"

Frontend-udviklingsserveren starter på http://localhost:5173 (falder tilbage på :5174 hvis optaget).

4. Open the application

Visit http://localhost:5173 in your browser.

4. Åbn programmet

Besøg http://localhost:5173 i din browser.

Production (Docker)

1. Build and run

Produktion (Docker)

1. Byg og kør

docker build -t scr-model .
docker run -d \
  --name scr-model \
  -p 8080:8080 \
  -v scr-data:/pb_data \
  scr-model

Production Details

The application will be available at http://localhost:8080/.

The Dockerfile bundles both the Go backend and compiled Vue frontend into a single Alpine container. The frontend is served as static files from /pb_public.

Produktionsdetaljer

Applikationen vil være tilgængelig på http://localhost:8080/.

Dockerfilen samler både Go-backenden og den kompilerede Vue-frontend i en enkelt Alpine-container. Frontenden serveres som statiske filer fra /pb_public.

2. Persistent data

The SQLite database is stored in /pb_data. Mount a volume to persist data:

2. Vedvarende data

SQLite-databasen er gemt i /pb_data. Monter et volume for at bevare data:

-v $(pwd)/pb_data:/pb_data

⚠️ Data Persistence

Always mount a volume for production use to prevent data loss when the container restarts.

⚠️ Data-persistens

Monter altid et volume til produktionsbrug for at forhindre datatab, når containeren genstarter.

Environment Variables

This version requires no environment variables. The application runs fully self-contained.

Frontend Environment Variables

For development, the frontend reads from web/.env:

Miljøvariabler

Denne version kræver ingen miljøvariabler. Applikationen kører fuldt selvstændigt.

Frontend-miljøvariabler

Til udvikling læser frontenden fra web/.env:

Variable Default Description
VITE_APP_TITLE - Browser tab title
VITE_API_URL http://127.0.0.1:8090 PocketBase API base URL
BASE_URL / App base path

↑ Back to Top↑ Tilbage til toppen