* clean migrate scripts
- refactor migrate:init
- separate admin seed
- separate categories seed
- rework backend README regarding the database
- remove `db:clean` command as its a duplicate of `db:reset`
- remove `__migrate` helper alias
* renamed clean.ts to reset.ts
* set indices & constrains in init function
* fix comment
* disable migrations touching indices
* remove obsolete comment
* always run init on kubernetes
* reset db with or without migrations
* lint fixes
* Refine 'README.md'
* Refine more 'README.md'
* fix lint
---------
Co-authored-by: Wolfgang Huß <wolle.huss@pjannto.com>
* 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>
- It turns out we can set it up with helm, it was just an issue with not
starting with a clean slate. I guess it probably would have been
better to just set it up from scratch and deleted the develop server,
like we intend to do in production.
- image is set configurable and set to the app version for version
control
- imagePullPolicy revert earlier changes to flatten hierarchy since helm
create uses .Values.image.pullPolicy
- update imagePullPolicy to IfNotPresent since this is the default with
helm create and fits with our strategy as well.
- Source, https://helm.sh/docs/topics/chart_best_practices/pods/
- Variables should use camel case.
- Favor flat hierarchy over nested.
- "Every defined property in values.yaml should be documented. The
documentation string should begin with the name of the property it
describes, and then give at least a one-sentence description."
- Source, https://helm.sh/docs/topics/chart_best_practices/values/
- remove namespace, since it's best practice to use the cli to add it,
@roschaefer points out
- organize templates into directories
- migrations should be ran after the backend has started...
- should init really be ran every time??