diff --git a/minecraft/readme.md b/minecraft/readme.md
new file mode 100644
index 0000000..8a86846
--- /dev/null
+++ b/minecraft/readme.md
@@ -0,0 +1,137 @@
+# Minecraft server in docker
+
+###### guide-by-example
+
+![logo](https://i.imgur.com/GYq1N1l.png)
+
+# Purpose & Overview
+
+Open world building and surviving game.
+
+* [Official site](https://www.minecraft.net/en-us)
+* [Github](https://github.com/itzg/docker-minecraft-server)
+
+Minecraft is written in Java.
+
+[Purpur](https://purpurmc.org/docs/) version of the server
+is used in this setup along with few plugings,
+which allow to host multiple worlds on the same server.
+
+# Files and directory structure
+
+```
+/home/
+└── ~/
+ └── docker/
+ └── minecraft/
+ ├── minecraft-data/
+ ├── .env
+ └── docker-compose.yml
+```
+
+* `minecraft-data/` - a directory where bookstack will store its web app data
+* `.env` - a file containing environment variables for docker compose
+* `docker-compose.yml` - a docker compose file, telling docker how to run the containers
+
+You only need to provide the files.
+The directory is created by docker compose on the first run.
+
+# docker-compose
+
+`docker-compose.yml`
+```yml
+services:
+ minecraft:
+ image: itzg/minecraft-server
+ container_name: minecraft
+ hostname: minecraft
+ restart: unless-stopped
+ env_file: .env
+ tty: true
+ stdin_open: true
+ ports:
+ - 25565:25565
+ volumes:
+ - ./minecraft-data:/data
+```
+
+`.env`
+```bash
+# GENERAL
+MY_DOMAIN=example.com
+DOCKER_MY_NETWORK=caddy_net
+TZ=Europe/Bratislava
+
+# itzg specific
+TYPE=PURPUR
+EULA=TRUE
+ONLINE_MODE=FALSE
+SNOOPER_ENABLED=FALSE
+SERVER_NAME=Blablabla
+ALLOW_CHEATS=TRUE
+MAX_MEMORY=3G
+MAX_PLAYERS=50
+ENABLE_COMMAND_BLOCK=TRUE
+ALLOW_NETHER=TRUE
+OVERRIDE_ICON=TRUE
+ICON=https://i.imgur.com/cjwKzqi.png
+
+```
+
+# Reverse proxy
+
+No need. There is no website managment.
+There is no accessing it through port 80 or 443.
+Just clients connecting through port 25565
+and that does not go through reverse proxy.
+But you **must forwarded 25565** on your firewall to your docker host.
+
+# Plugins
+
+This setup is written in august 2022
+1.19.2 is the latest build
+
+* [multiverse core](https://dev.bukkit.org/projects/multiverse-core)
+* [multiverse portals](https://dev.bukkit.org/projects/multiverse-portals)
+* [multiverse inventory](https://dev.bukkit.org/projects/multiverse-inventories)
+* [EssentialsX](https://essentialsx.net/downloads.html)
+* [EssentialsX Spawn](https://essentialsx.net/downloads.html)
+
+Why the mods and what purpose?
+You wanna one server but you want people to be able to play creative or surival>
+Well you need multiverse core.
+How do the people move between these worlds?
+Well you need multiverse portals and have "lobby world".
+Can they bring stuff from one world to another? No?
+Well you need multiverse inventory.
+Do you want them to spawn in lobby on connecting,
+but remember also the position in the worlds when entering their portals?
+Well you need the rest of that shit, EssentialsX and EssentialsX Spawn.
+
+here go specific instructions when I do it again on fresh install
+
+
+
+
+
+# Update
+
+Manual image update:
+
+- `docker-compose pull`
+- `docker-compose up -d`
+- `docker image prune`
+
+# Backup and restore
+
+#### Backup
+
+Using [borg](https://github.com/DoTheEvo/selfhosted-apps-docker/tree/master/borg_backup)
+that makes daily snapshot of the entire directory.
+
+#### Restore
+
+* down the minecraft container `docker-compose down`
+* delete the entire minecraft directory
+* from the backup copy back the minecraft directory
+* start the containers `docker-compose up -d`