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
- An admin creates a session - 10 participant accounts + 1 session manager are auto-generated
- Participants log in with a unique token and complete a 7-step survey assessing vulnerabilities and capabilities
- 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
- En administrator opretter en session – 10 deltagerkonti og 1 session manager-konto oprettes automatisk
- Deltagerne logger ind med et unikt token og vælger sårbarheder, som risikovurderes og vurderer kapabiliteter
- 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 |