The code of the online version of scrumlr.io is located at the v1 branch, since we are currently working on a new implementation of your favorite webapp for collaborative sessions.
Webapp for collaborative online retrospectives hosted on scrumlr.io. Read our 'Welcome' wiki page to learn more about the history and the vision of this tool.
We developed the client with the help of React while our server is implemented in Go.
Getting Started
Checkout the sources.
$ git clone [email protected]:inovex/scrumlr.io.git
$ cd scrumlr.io
Prerequisites
Run
-
run the server (backend) with docker
$ docker compose --project-directory server/ --profile build up -d
*If server code has been changed make sure to run it with the
--build
option. -
run the client (frontend)
$ yarn install $ yarn start
The client will become available on http://localhost:3000
Read more on alternative development setups
Start server with nodemon and restart on code change
Start the database and the server in separate processes instead of booting up the whole compose file.
$ docker compose --project-directory server/ up -d database dashboard
$ yarn --cwd server/ install
$ yarn --cwd server/ serve
Run local Kubernetes development environment
You can optionally run the server on a local Kubernetes setup for development.
minikube
-
Use the Docker daemon for minikube
To make sure our local docker-built images are used for our minikube deployments.
$ eval $(minikube docker-env)
Important note: You have to run eval
$(minikube docker-env)
on each terminal you want to use, since it only sets the environment variables for the current shell session. -
Start your cluster
$ minikube start
Optional: You can increase the available cpu cores and memory size in Docker desktop. The allocated resources can then also be used for minikube (e.g. 4 CPU cores and 8GB of ram):
$ minikube start --cpus 4 --memory 7962
-
Create Nginx Ingress Controller
$ kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v0.47.0/deploy/static/provider/cloud/deploy.yaml
-
Run our deployment script
The build script will automatically search for all needed docker images, build them if they're missing and the deployment script will deploy all Kubernetes resources afterwards.
$ cd deployment $ sh build.sh $ sh deploy.sh
-
Create a minikube tunnel
The minikube tunnel is needed so that our Ingress can be reached on
127.0.0.1
.$ minikube tunnel
Docker Desktop
On MacOS and Windows machines you could also use the Docker Desktop application as Kubernetes context.
-
Enable Kubernetes
To enable Kubernetes support and install a standalone instance of Kubernetes running as a Docker container, go to
Docker Desktop > Preferences > Kubernetes
and then clickEnable Kubernetes
. -
Make sure to use the correct Kubernetes context
Ensure that the context is pointing to
docker-desktop
.$ kubectl config get-contexts $ kubectl config use-context docker-desktop
-
Create Nginx Ingress Controller
$ kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v0.47.0/deploy/static/provider/cloud/deploy.yaml
-
Run our build & deployment script
The build script will automatically search for all needed docker images, build them if they're missing and the deployment script will deploy all Kubernetes resources afterwards.
$ cd deployment $ sh build.sh $ sh deploy.sh
Contributing
You're very welcome to be part of this project. You can contribute by opening an issue, by
fixing a bug or by adding a feature and open a pull request. Just make sure that the jobs
yarn test
and yarn lint
are passing and that every change is covered by unit tests.
Our team and beloved friends
... and many more!
Thank you
Thanks to all our users, contributors & supporters!
A special shout-out goes to inovex for all the support and the opportunity to realize this project!
License
Scrumlr is MIT licensed.