diff --git a/.vscode/settings.json b/.vscode/settings.json
index 32095bb..ae2dcd2 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -87,6 +87,7 @@
"buildkit",
"burstable",
"byod",
+ "caldav",
"celeron",
"cereda",
"certmanager",
@@ -226,6 +227,7 @@
"pulumiverse",
"pvresize",
"radeon",
+ "radicale",
"replicatedctl",
"rfkill",
"ripsecrets",
diff --git a/containers/baikal/Makefile b/containers/baikal/Makefile
new file mode 100644
index 0000000..15ec716
--- /dev/null
+++ b/containers/baikal/Makefile
@@ -0,0 +1,15 @@
+#!/usr/bin/env make
+
+firewalld-open: override service_name ?= baikal
+firewalld-open: override service_port ?= 80
+firewalld-open: ${shell which 'firewall-cmd'}
+ @sudo firewall-cmd --permanent --new-service '${service_name}'
+ @sudo firewall-cmd --permanent --service '${service_name}' --set-description \
+ 'Painless self-hosted all-in-one software development service similar to GitHub, Bitbucket and GitLab.'
+ @sudo firewall-cmd --permanent --service '${service_name}' --set-short 'Private, fast and reliable DevOps platform'
+ @sudo firewall-cmd --permanent --service '${service_name}' --add-port '${service_port}/tcp'
+ @sudo firewall-cmd --permanent --add-service '${service_name}'
+ @sudo firewall-cmd --reload
+
+composition-go-brrr: ${shell which 'docker-compose'}
+ @docker-compose up -d
diff --git a/containers/baikal/docker-compose.yml b/containers/baikal/docker-compose.yml
new file mode 100644
index 0000000..9805211
--- /dev/null
+++ b/containers/baikal/docker-compose.yml
@@ -0,0 +1,20 @@
+---
+
+# sources:
+# - https://github.com/ckulka/baikal-docker/blob/master/examples/docker-compose.yaml
+
+version: '2'
+
+services:
+ baikal:
+ image: ckulka/baikal:nginx
+ restart: unless-stopped
+ ports:
+ - "80:80"
+ volumes:
+ - config:/var/www/baikal/config
+ - data:/var/www/baikal/Specific
+
+volumes:
+ config:
+ data:
diff --git a/examples/baikal.yaml b/examples/baikal.yaml
new file mode 100644
index 0000000..63b1161
--- /dev/null
+++ b/examples/baikal.yaml
@@ -0,0 +1,20 @@
+---
+system:
+ configured_version: 0.9.5
+ timezone: Europe/Dublin
+ card_enabled: true
+ cal_enabled: true
+ dav_auth_type: Digest
+ admin_passwordhash: 4b2b…7dcd
+ failed_access_message: 'user %u authentication failure for Baikal'
+ auth_realm: BaikalDAV
+ base_uri: ''
+ invite_from: ''
+database:
+ sqlite_file: /var/www/baikal/Specific/db/db.sqlite
+ mysql: false
+ mysql_host: ''
+ mysql_dbname: ''
+ mysql_username: ''
+ mysql_password: ''
+ encryption_key: 5e71…4ce5
diff --git a/knowledge base/baikal.md b/knowledge base/baikal.md
new file mode 100644
index 0000000..b049ef9
--- /dev/null
+++ b/knowledge base/baikal.md
@@ -0,0 +1,56 @@
+# Title
+
+Intro
+
+
+
+1. [TL;DR](#tldr)
+1. [Further readings](#further-readings)
+ 1. [Sources](#sources)
+
+## TL;DR
+
+
+ Installation and configuration
+
+```sh
+docker pull 'ckulka/baikal-docker'
+```
+
+Connect to the server via HTTP(S) after first run for first configuration if none was provided.
+
+
+
+
+ Usage
+
+```sh
+docker run --rm -p '80:80' 'ckulka/baikal:nginx'
+```
+
+
+
+## Further readings
+
+- [Website]
+- [Github]
+
+### Sources
+
+- [ckulka/baikal-docker]
+
+
+
+
+
+
+
+[github]: https://github.com/sabre-io/Baikal
+[website]: https://sabre.io/baikal/
+
+
+[ckulka/baikal-docker]: https://github.com/ckulka/baikal-docker
diff --git a/knowledge base/caldav.md b/knowledge base/caldav.md
new file mode 100644
index 0000000..744e10c
--- /dev/null
+++ b/knowledge base/caldav.md
@@ -0,0 +1,27 @@
+# CalDAV
+
+1. [Further readings](#further-readings)
+
+## Further readings
+
+- [WebDAV]
+- [CardDAV]
+
+Implementations:
+
+- [Radicale](https://radicale.org/)
+- [Baikal](https://github.com/sabre-io/Baikal)
+
+
+
+
+
+[carddav]: carddav.md
+[webdav]: webdav.md
+
+
+
+
diff --git a/knowledge base/carddav.md b/knowledge base/carddav.md
new file mode 100644
index 0000000..24b9477
--- /dev/null
+++ b/knowledge base/carddav.md
@@ -0,0 +1,32 @@
+# CardDAV
+
+Address book protocol extensions for [WebDAV] designed to allow users to access and share contact data on a server in
+the form of [vCard]s.
+
+1. [Further readings](#further-readings)
+
+## Further readings
+
+- [WebDAV]
+- [vCard]
+- [CalDAV]
+
+Implementations:
+
+- [Radicale](https://radicale.org/)
+- [Baikal](https://github.com/sabre-io/Baikal)
+
+
+
+
+
+[caldav]: caldav.md
+[vcard]: vcard.md
+[webdav]: webdav.md
+
+
+
+
diff --git a/knowledge base/docker.md b/knowledge base/docker.md
index 58daeca..4e87aa7 100644
--- a/knowledge base/docker.md
+++ b/knowledge base/docker.md
@@ -131,6 +131,16 @@ docker network ls
docker network inspect 'monitoring_default'
+# Create volumes.
+docker volume create 'volume-name'
+
+# List volumes.
+docker volume list
+
+# Inspect volumes.
+docker volume inspect 'volume-name'
+
+
# Display a summary of the vulnerabilities in images.
# If not given any input, it targets the most recently built image.
docker scout qv
@@ -200,6 +210,10 @@ docker compose down
```sh
# Get the SHAsum of images.
docker inspect --format='{{index .RepoDigests 0}}' 'node:18-buster'
+
+# Act upon files in volumes.
+sudo ls "$(docker volume inspect --format '{{.Mountpoint}}' 'baikal_config')"
+sudo vim "$(docker volume inspect --format '{{.Mountpoint}}' 'gitea_config')/app.ini"
```
@@ -371,6 +385,7 @@ docker load …
- [Docker ARG, ENV and .env - a Complete Guide]
- [Configuring HealthCheck in docker-compose]
- [Docker Buildx Bake + Gitlab CI Matrix]
+- [How to list the content of a named volume in docker 1.9+?]
-[check if redis is used by nextcloud]: https://help.nextcloud.com/t/how-to-check-if-redis-is-used-in-nc/22268/2
+[how to check if redis is used in nc]: https://help.nextcloud.com/t/how-to-check-if-redis-is-used-in-nc/22268/2
[docker image]: https://hub.docker.com/_/nextcloud/
[docker readme]: https://github.com/docker-library/docs/blob/master/nextcloud/README.md
[helm chart]: https://github.com/nextcloud/helm/tree/master/charts/nextcloud
diff --git a/knowledge base/vcard.md b/knowledge base/vcard.md
new file mode 100644
index 0000000..3f8c84b
--- /dev/null
+++ b/knowledge base/vcard.md
@@ -0,0 +1,54 @@
+# vCard
+
+A.K.A. _Virtual Contact File_ (VCF).
+File format standard for electronic business cards.
+
+Files can contain:
+
+- Name.
+- Address information.
+- Phone numbers.
+- E-mail addresses.
+- URLs.
+- Logos.
+- Photographs.
+- Audio clips.
+
+1. [TL;DR](#tldr)
+1. [Further readings](#further-readings)
+ 1. [Sources](#sources)
+
+## TL;DR
+
+
+
+
+
+
+
+## Further readings
+
+### Sources
+
+
+
+
+
+
+
+
diff --git a/knowledge base/webdav.md b/knowledge base/webdav.md
new file mode 100644
index 0000000..60db446
--- /dev/null
+++ b/knowledge base/webdav.md
@@ -0,0 +1,46 @@
+# WebDAV
+
+1. [TL;DR](#tldr)
+1. [Further readings](#further-readings)
+ 1. [Sources](#sources)
+
+## TL;DR
+
+
+
+
+
+
+
+## Further readings
+
+### Sources
+
+- [CalDAV]
+- [CardDAV]
+
+
+
+
+
+[caldav]: caldav.md
+[carddav]: carddav.md
+
+
+
+