Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
32 changes: 32 additions & 0 deletions frontend/web-ui/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
lerna-debug.log*

node_modules
dist
dist-ssr
*.local
.env
.env.*

# Editor directories and files
.vscode/*
!.vscode/extensions.json
.idea
deploy.sh
jfrog.txt
json-server
temp
.DS_Store
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?
.env.*
.env
18 changes: 18 additions & 0 deletions frontend/web-ui/.storybook/main.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
import type { StorybookConfig } from '@storybook/react-vite';

const config: StorybookConfig = {
"stories": [
"../src/**/*.mdx",
"../src/**/*.stories.@(js|jsx|mjs|ts|tsx)"
],
"addons": [
"@chromatic-com/storybook",
"@storybook/addon-docs",
"@storybook/addon-onboarding"
],
"framework": {
"name": "@storybook/react-vite",
"options": {}
}
};
export default config;
24 changes: 24 additions & 0 deletions frontend/web-ui/.storybook/preview.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
import type { Preview } from '@storybook/react-vite'
import React from 'react'
import { Provider } from 'react-redux'
import { store } from '../src/store'

const preview: Preview = {
parameters: {
controls: {
matchers: {
color: /(background|color)$/i,
date: /Date$/i,
},
},
},
decorators: [
(Story) => React.createElement(
Provider,
{ store },
React.createElement(Story)
),
],
};

export default preview;
42 changes: 42 additions & 0 deletions frontend/web-ui/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# Node build stage
FROM node:alpine3.21 AS build
WORKDIR /app

# Copy .npmrc for private registry configuration
COPY .npmrc ./

# Copy package files for dependency installation
COPY package*.json ./

# Install dependencies
RUN npm install

# Copy source code and configuration files
COPY . .

# Build the application
RUN npm run build

# Nginx production stage
FROM nginx:1.27-alpine
WORKDIR /usr/share/nginx/html

# Remove default nginx content
RUN rm -rf ./*

# Copy built application from build stage
COPY --from=build /app/dist .

# Set proper permissions for nginx to read files
RUN chmod -R 755 /usr/share/nginx/html

# Copy nginx configuration and mime types
COPY nginx.conf /etc/nginx/nginx.conf
COPY mime.types /etc/nginx/mime.types

# Expose the port that nginx is configured to listen on
EXPOSE 5173

# Start nginx
ENTRYPOINT ["nginx", "-g", "daemon off;"]

Loading