Ocelot-Social/webapp/package.json
Robert Schäfer 628b57aa29
feat(other): major improvement of deployment (#7925)
* feat(other): major improvement of deployment

Motivation
----------

Kubernetes:
* backend becomes a statefulset (exclusive volume mount)
  See: https://spacelift.io/blog/statefulset-vs-deployment
* implement neo4j backup with job

Docker:
* consistent targets across all dockerfiles
* remove redundant labels
* remove unnecessary build args
* remove obsolete networks
* remove development dependencies for production

Rebranding:
* add image tags for local tagging and pulling
* use Github's docker build workflows
* use Github container registry
* ONBUILD to simplify caller Dockerfiles
* docker compose for branding

Tooling:
* same node --version as in dockerfile

Docs:
* missing step in README.md

* refactor: remove submodules

It's better to keep them all in a separate repository

* improve kubernetes chart

* better image tag defaults
* split neo4j into its own chart (for re-use)
* use application defaults where possible

* optional resources for all pods

* remove obsolete key/value pair from secrets

* remove obsolete build argsand

and add labels for neo4j enterprise

* env vars for webapp

* allow to define redirect domains

Define a list of Domains that redirect to the domain of the project. The
idea is to provide the ability to redirect eg. www.domain.tld to
domain.tld

* remove maintenance part regarding database

* move backup job outside template folder

* name the ingress

* updated ingress

* handle empty case of middlewares

* try to default the ingress

* use quote

* restore todo-next-update

* fix docu check

* fix naming

* try using prod:migrate

* try using override config

* copy src folder

* try using base as image instead of build

* fix test build

* force build

* comment for the problem

* fix webapp tests (potentially)

---------

Co-authored-by: Ulf Gebhardt <ulf.gebhardt@webcraft-media.de>
2025-02-28 18:22:23 +01:00

123 lines
4.3 KiB
JSON

{
"name": "ocelot-social-webapp",
"version": "3.2.0",
"description": "ocelot.social Frontend",
"repository": "https://github.com/Ocelot-Social-Community/Ocelot-Social",
"author": "ocelot.social Community",
"license": "MIT",
"private": false,
"scripts": {
"dev": "cross-env NODE_OPTIONS=--openssl-legacy-provider nuxt",
"dev:styleguide": "cross-env STYLEGUIDE_DEV=true yarn run dev",
"storybook": "cross-env NODE_OPTIONS=--openssl-legacy-provider start-storybook -p 3002 -s ./static -c storybook/",
"build": "cross-env NODE_OPTIONS=--openssl-legacy-provider nuxt build",
"start": "cross-env NODE_OPTIONS=--openssl-legacy-provider nuxt start",
"generate": "cross-env NODE_OPTIONS=--openssl-legacy-provider nuxt generate",
"lint": "eslint --ext .js,.vue .",
"locales": "../scripts/translations/missing-keys.sh && ../scripts/translations/sort.sh",
"locales:normalize": "../scripts/translations/normalize.sh",
"precommit": "yarn lint",
"test": "cross-env NODE_ENV=test jest --coverage --forceExit --detectOpenHandles",
"test:unit:debug": "node --inspect-brk ./node_modules/jest/bin/jest.js --no-cache --runInBand"
},
"dependencies": {
"@human-connection/styleguide": "0.5.22",
"@mapbox/mapbox-gl-geocoder": "^5.0.2",
"@nuxtjs/apollo": "^4.0.0-rc19",
"@nuxtjs/axios": "~5.9.7",
"@nuxtjs/composition-api": "0.32.0",
"@nuxtjs/dotenv": "~1.4.1",
"@nuxtjs/pwa": "^3.0.0-beta.20",
"@nuxtjs/sentry": "^4.0.0",
"@nuxtjs/style-resources": "~1.1.0",
"accounting": "~0.4.1",
"apollo-cache-inmemory": "~1.6.6",
"apollo-client": "~2.6.10",
"cookie-universal-nuxt": "~2.2.2",
"cropperjs": "^1.6.2",
"cross-env": "~7.0.3",
"date-fns": "2.22.1",
"express": "~4.21.2",
"graphql": "~14.7.0",
"intersection-observer": "^0.12.0",
"jsonwebtoken": "~9.0.2",
"linkify-it": "~5.0.0",
"mapbox-gl": "1.13.2",
"node-fetch": "^2.6.1",
"nuxt": "~2.12.1",
"nuxt-dropzone": "^1.0.4",
"nuxt-env": "~0.1.0",
"sass": "^1.85.0",
"stack-utils": "^2.0.3",
"tippy.js": "^4.3.5",
"tiptap": "~1.26.6",
"tiptap-extensions": "~1.28.8",
"trunc-html": "^1.1.2",
"v-mapbox": "^1.11.2",
"v-tooltip": "~2.1.3",
"validator": "^13.12.0",
"vue-advanced-chat": "^2.0.11",
"vue-count-to": "~1.0.13",
"vue-infinite-loading": "^2.4.5",
"vue-izitoast": "^1.2.1",
"vue-observe-visibility": "^1.0.0",
"vue-scrollto": "^2.20.0",
"vue-sweetalert-icons": "~4.3.1",
"vue2-datepicker": "^3.11.1",
"vuex-i18n": "~1.13.1",
"xregexp": "^5.1.2",
"zxcvbn": "^4.4.2"
},
"devDependencies": {
"@babel/core": "^7.25.8",
"@babel/plugin-syntax-dynamic-import": "^7.8.3",
"@babel/preset-env": "^7.25.8",
"@faker-js/faker": "9.5.0",
"@storybook/addon-a11y": "^8.0.8",
"@storybook/addon-actions": "^5.3.21",
"@storybook/addon-notes": "^5.3.18",
"@storybook/vue": "~7.4.0",
"@vue/cli-shared-utils": "~4.3.1",
"@vue/eslint-config-prettier": "~6.0.0",
"@vue/server-test-utils": "~1.0.0-beta.31",
"@vue/test-utils": "1.3.4",
"@vue/vue2-jest": "29",
"async-validator": "^3.2.4",
"babel-core": "^7.0.0-bridge.0",
"babel-eslint": "~10.1.0",
"babel-jest": "29.7",
"babel-loader": "~8.1.0",
"babel-plugin-require-context-hook": "^1.0.0",
"babel-preset-vue": "~2.0.2",
"core-js": "~2.6.10",
"css-loader": "~3.5.2",
"eslint": "^7.28.0",
"eslint-config-prettier": "~10.0.1",
"eslint-config-standard": "~15.0.1",
"eslint-loader": "~4.0.0",
"eslint-plugin-import": "~2.31.0",
"eslint-plugin-jest": "~24.4.0",
"eslint-plugin-node": "~11.1.0",
"eslint-plugin-prettier": "^5.2.3",
"eslint-plugin-promise": "~7.2.1",
"eslint-plugin-standard": "~5.0.0",
"eslint-plugin-vue": "~9.32.0",
"flush-promises": "^1.0.2",
"identity-obj-proxy": "^3.0.0",
"jest": "29.7",
"jest-environment-jsdom": "^29.7.0",
"mutation-observer": "^1.0.3",
"prettier": "~3.5.2",
"sass-loader": "~10.1.1",
"storybook-design-token": "^0.8.1",
"storybook-vue-router": "^1.0.7",
"style-loader": "~0.23.1",
"style-resources-loader": "~1.3.3",
"vue-svg-loader": "~0.16.0",
"vue-template-compiler": "^2.6.11"
},
"resolutions": {
"nan": "2.17.0"
}
}