diff --git a/README.md b/README.md
index 59961f8..998bc5d 100644
--- a/README.md
+++ b/README.md
@@ -9,11 +9,6 @@ Hence - this repo.
The aims is to provide a ready-to-run recipes that you can just copy, paste and run.
So, without further ado, here's the current list:
-# General Information
-- How to setup docker & docker-compose?
-- How to use docker-compose
-- Troubleshooting
-
# How to use this cookbook
- There are certain things that some recipes need which cannot be filled in due to security reasons.
- `example.com` needs to be replaced with your own domain
@@ -21,6 +16,13 @@ So, without further ado, here's the current list:
- keys (like `APP_KEY`, `SECRET` etc.) should be regenerated using e.g. `openssl rand -base64 32`
- Not all apps have been tested & described. These are marked as 🔗 (external links).
+
+# General Information
+- How to setup docker & docker-compose?
+- How to use docker-compose
+- Troubleshooting
+
+
# Ad Blockers & local DNS
- [AdGuard Home](apps/ad-blockers/adguard.md)
- [PiHole](apps/ad-blockers/pihole.md)
@@ -29,6 +31,10 @@ So, without further ado, here's the current list:
# Antivirus
- [MalwareMultiScan](https://github.com/mindcollapse/MalwareMultiScan) 🔗
+# Backup
+- Duplicati
+- Elkar Backup
+
# Blogging
- [AnchorCMS](https://github.com/anchorcms/anchor-cms#installation) 🔗
- [Ghost](https://ghost.org/docs/install/docker/) 🔗
diff --git a/apps/cloud/nextcloud.md b/apps/cloud/nextcloud.md
index 977a177..1fb1982 100644
--- a/apps/cloud/nextcloud.md
+++ b/apps/cloud/nextcloud.md
@@ -123,3 +123,8 @@ docker-compose exec app bash -c "apt update && apt upgrade -y && apt install -y
```
5. This will not persist so it must be run every time the container restarts...
6. Alternative is to manually build docker image :-|
+
+
+### Bookmarks previews
+For bookmarks previews it's required to have a screenshotting service.
+[Screenly](screenly.md) can be easily self-hosted.
diff --git a/apps/cloud/screenly.md b/apps/cloud/screenly.md
new file mode 100644
index 0000000..f98b615
--- /dev/null
+++ b/apps/cloud/screenly.md
@@ -0,0 +1,67 @@
+# Screenly
+Screenshotting service for NextCloud Bookmarks.
+
+
+
+- [Homepage](http://screeenly.com/)
+- [Github repo](https://github.com/stefanzweifel/screeenly)
+- [DockerHub repo](https://hub.docker.com/r/hadogenes/screeenly)
+
+## Setup
+First run:
+```sh
+touch database.sqlite
+chmod 777 database.sqlite
+```
+
+## .env
+```ini
+APP_NAME=screeenly
+APP_ENV=local
+APP_KEY=
+APP_DEBUG=false
+APP_URL=http://localhost
+DB_CONNECTION=sqlite
+
+# Disable Chrome's Sandbox feature
+# More information: https://github.com/stefanzweifel/screeenly/issues/174#issuecomment-423438612
+SCREEENLY_DISABLE_SANDBOX=true
+SESSION_LIFETIME=1200
+FILESYSTEM_DRIVER=public
+```
+
+## docker-compose.yml
+```yml
+---
+version: '3'
+services:
+ screenly:
+ image: hadogenes/screeenly
+ container_name: screenly
+ restart: unless-stopped
+ environment:
+ - TZ=Europe/Dublin
+ env_file:
+ - ./.env
+ ports:
+ - "3110:80"
+ volumes:
+ - ./database.sqlite:/var/www/screeenly/database/database.sqlite
+ - ./.env:/var/www/screeenly/.env
+```
+
+## Tips & Tricks
+After starting the app - check the logs.
+- If there are errors, log-in to container's shell:
+ ```sh
+ dc exec screenly sh
+ ```
+- If the errors are about the APP_KEY, inside the container, run:
+ ```sh
+ php artisan key:generate
+ ```
+- If there are errors about the DB records, run:
+ ```sh
+ php artisan migrate --force
+ ```
+Then register & log-in & generate API key for NextCloud.