diff --git a/README.md b/README.md
index 22d5623..efeb8ca 100644
--- a/README.md
+++ b/README.md
@@ -151,12 +151,13 @@ So, without further ado, here's the current list:
- [picapport](https://www.picapport.de/en/index.php) - weird
# Project Management
-- Jira
-- Kanboard
-- OpenProject
-- Planka
-- Vikunja
-- Wekan
+- [Jira](apps/project-mgmt/jira.md)
+- [Kanboard](apps/project-mgmt/kanboard.md)
+- [OpenProject](apps/project-mgmt/open-project.md)
+- [Planka](apps/project-mgmt/planka.md)
+- [Vikunja](apps/project-mgmt/vikunja.md)
+- [Wekan](apps/project-mgmt/wekan.md)
+- [Taskcafe](https://github.com/JordanKnott/taskcafe) [external] - early stage, active development.
# Reverse proxy & SSO
diff --git a/apps/project-mgmt/jira.md b/apps/project-mgmt/jira.md
new file mode 100644
index 0000000..fcb096c
--- /dev/null
+++ b/apps/project-mgmt/jira.md
@@ -0,0 +1,49 @@
+# Jira
+
+- The most feature rich and complete solution with long history and wide support.
+- The new (March 2021) pricing model makes it prohibitive for regular users.
+
+
+
+- [Homepage](https://www.atlassian.com/software/jira/download)
+- [DockerHub repo](https://hub.docker.com/r/atlassian/jira-software)
+
+
+## docker-compose.yml
+```yml
+---
+version: '3'
+services:
+ jira:
+ image: atlassian/jira-software
+ container_name: jira
+ restart: unless-stopped
+ environment:
+ - TZ=Europe/Dublin
+ - JVM_MINIMUM_MEMORY=4096m
+ - JVM_MAXIMUM_MEMORY=8192m
+ - ATL_PROXY_NAME=jira.example.com
+ - ATL_PROXY_PORT=443
+ - ATL_TOMCAT_SCHEME=https
+ - ATL_TOMCAT_SECURE=true
+ - ATL_AUTOLOGIN_COOKIE_AGE=2592000 # 30 days in seconds
+ ports:
+ - "8095:8080"
+ volumes:
+ - ./data:/var/atlassian/application-data/jira
+
+ db:
+ image: postgres
+ restart: unless-stopped
+ environment:
+ - POSTGRES_USER=dbuser1
+ - POSTGRES_PASSWORD=dbpass1
+```
+
+## Tips & Tricks
+
+### First run DB setup:
+It's better to user postgres, as the support is built-in.
+MySQL requires additional drivers to be installed manually.
+
+
diff --git a/apps/project-mgmt/jira.png b/apps/project-mgmt/jira.png
new file mode 100644
index 0000000..4b1db8e
Binary files /dev/null and b/apps/project-mgmt/jira.png differ
diff --git a/apps/project-mgmt/kanboard.md b/apps/project-mgmt/kanboard.md
new file mode 100644
index 0000000..60afa25
--- /dev/null
+++ b/apps/project-mgmt/kanboard.md
@@ -0,0 +1,35 @@
+# Kanboard
+
+- some UI bugs (double scrollbar)
+- not the best look (outdated themes)
+- pretty solid & stable
+- lots of options
+
+
+
+- [Homepage](https://kanboard.org/)
+- [Github repo](https://github.com/kanboard/kanboard)
+- [Docs](https://docs.kanboard.org/en/latest/admin_guide/installation.html)
+
+![Screenshot]()
+
+
+## docker-compose.yml
+```yml
+version: '2'
+services:
+ kanboard:
+ image: kanboard/kanboard:latest
+ environment:
+ - PLUGIN_INSTALLER=true
+ ports:
+ - "3060:80"
+# - "443:443"
+ volumes:
+ - ./data:/var/www/app/data
+ - ./plugins:/var/www/app/plugins
+# - kanboard_ssl:/etc/nginx/ssl
+```
+
+## Tips & Tricks
+login with `admin:admin`
diff --git a/apps/project-mgmt/open-project.md b/apps/project-mgmt/open-project.md
new file mode 100644
index 0000000..176d341
--- /dev/null
+++ b/apps/project-mgmt/open-project.md
@@ -0,0 +1,29 @@
+# Open Project
+Full-featured & complicated.
+
+
+
+- [Homepage](https://openproject.org/)
+- [Github repo](https://github.com/opf/openproject)
+- [Docs](https://docs.openproject.org/)
+
+
+
+
+## docker-compose.yml
+```yml
+---
+version: '3'
+services:
+ openproject:
+ image: openproject/community
+ container_name: openproject
+ restart: unless-stopped
+ environment:
+ - SECRET_KEY_BASE=secret_key
+ ports:
+ - "3090:80"
+ volumes:
+ - ./pgdata:/var/openproject/pgdata
+ - ./assets:/var/openproject/assets
+```
diff --git a/apps/project-mgmt/openproject.png b/apps/project-mgmt/openproject.png
new file mode 100644
index 0000000..0530466
Binary files /dev/null and b/apps/project-mgmt/openproject.png differ
diff --git a/apps/project-mgmt/planka.md b/apps/project-mgmt/planka.md
new file mode 100644
index 0000000..8b7134f
--- /dev/null
+++ b/apps/project-mgmt/planka.md
@@ -0,0 +1,50 @@
+# Planka
+
+- [Homepage](https://planka.app/)
+- [Github repo](https://github.com/plankanban/planka)
+
+
+## docker-compose.yml
+```yml
+---
+version: '3'
+services:
+ planka:
+ image: meltyshev/planka:latest
+ command: >
+ bash -c
+ "for i in `seq 1 30`; do
+ ./start.sh &&
+ s=$$? && break || s=$$?;
+ echo \"Tried $$i times. Waiting 5 seconds...\";
+ sleep 5;
+ done; (exit $$s)"
+ restart: unless-stopped
+ volumes:
+ - ./avatars:/app/public/user-avatars
+ - ./background-images:/app/public/project-background-images
+ - ./attachments:/app/public/attachments
+ ports:
+ - 3123:1337
+ environment:
+ - BASE_URL=http://localhost:3123
+ - DATABASE_URL=postgresql://postgres@postgres/planka
+ - SECRET_KEY=VCFh2BiD6N202jR2jYcp22FqfJfaUg2omTB2MlAZp7o=
+ depends_on:
+ - postgres
+
+ postgres:
+ image: postgres:12-alpine
+ restart: unless-stopped
+ volumes:
+ - ./db:/var/lib/postgresql/data
+ environment:
+ - POSTGRES_DB=planka
+ - POSTGRES_HOST_AUTH_METHOD=trust
+```
+
+
+## Tips & Tricks
+Login with:
+- email: `demo@demo.demo`
+- pass: `demo`
diff --git a/apps/project-mgmt/vikunja.md b/apps/project-mgmt/vikunja.md
new file mode 100644
index 0000000..2e9c484
--- /dev/null
+++ b/apps/project-mgmt/vikunja.md
@@ -0,0 +1,67 @@
+# Vikujna
+
+- poor and messy UI
+- buggy (at the time of testing) but in active development
+
+
+
+- [Homepage](https://vikunja.io/)
+- [Git repo](https://kolaente.dev/vikunja/)
+- [Demo](https://try.vikunja.io/login)
+
+
+## docker-compose.yml
+```yml
+version: '3'
+services:
+ api:
+ image: vikunja/api
+ container_name: vikunja-api
+ restart: unless-stopped
+ environment:
+ - VIKUNJA_SERVICE_TIMEZONE=Europe/Dublin
+ - VIKUNJA_SERVICE_ENABLEREGISTRATION=false
+ - VIKUNJA_SERVICE_JWTSECRET=ce23d1aezoosah2bao3ieZohkae5aicah
+ - VIKUNJA_CACHE_ENABLED=true
+ - VIKUNJA_CACHE_TYPE=memory
+ volumes:
+ - ./vikunja.db:/app/vikunja/vikunja.db
+ - ./files:/app/vikunja/files
+
+ frontend:
+ image: vikunja/frontend
+ container_name: vikunja-ui
+ restart: unless-stopped
+
+ proxy:
+ image: nginx
+ restart: unless-stopped
+ ports:
+ - 3111:80
+ depends_on:
+ - api
+ - frontend
+ volumes:
+ - ./nginx.conf:/etc/nginx/conf.d/default.conf:ro
+```
+
+## nginx.conf
+```nginx
+server {
+ listen 80;
+ location / {
+ proxy_pass http://frontend:80;
+ }
+ location ~* ^/(api|dav|\.well-known)/ {
+ proxy_pass http://api:3456;
+ client_max_body_size 20M;
+ }
+}
+```
+
+
+## Tips & Tricks
+Before running, ake sure that db file exists first:
+```sh
+touch vikunja.db
+```
diff --git a/apps/project-mgmt/wekan.md b/apps/project-mgmt/wekan.md
new file mode 100644
index 0000000..d899127
--- /dev/null
+++ b/apps/project-mgmt/wekan.md
@@ -0,0 +1,48 @@
+# Wekan
+
+Probably the best of the ones tested. A good balance between features & complexity and a nice UI.
+
+
+
+- [Homepage](https://wekan.github.io/)
+- [Github repo](https://github.com/wekan/wekan)
+- [Docs](https://github.com/wekan/wekan/wiki)
+
+## docker-compose.yml
+```yml
+---
+version: '2'
+services:
+ wekandb:
+ image: mongo:latest
+ container_name: wekan-db
+ restart: unless-stopped
+ command: mongod --oplogSize 128
+ expose:
+ - 27017
+ volumes:
+ - ./db:/data/db
+ - ./db-dump:/dump
+
+ wekan:
+ image: wekanteam/wekan
+ container_name: wekan-app
+ restart: unless-stopped
+ ports:
+ - 3090:8080
+ environment:
+ - MONGO_URL=mongodb://wekandb:27017/wekan
+ - ROOT_URL=http://localhost:3090
+ - WITH_API=true # Wekan Export Board works when WITH_API=true.
+ - RICHER_CARD_COMMENT_EDITOR=false
+ - CARD_OPENED_WEBHOOK_ENABLED=false
+ - BIGEVENTS_PATTERN=NONE
+ - BROWSER_POLICY_ENABLED=true
+ depends_on:
+ - wekandb
+```
+
+## Tips & Tricks
+- Creating users and logging-in: https://github.com/wekan/wekan/wiki/Adding-users
+- Forgot password: https://github.com/wekan/wekan/wiki/Forgot-Password
+- Backup/Restore: https://github.com/wekan/wekan/wiki/Backup