diff --git a/README.md b/README.md
index ae91ded6..29d0c041 100644
--- a/README.md
+++ b/README.md
@@ -94,6 +94,7 @@ If you have a spare domain name you can configure applications to be accessible
* [Virtual Desktop](https://github.com/RattyDAVE/docker-ubuntu-xrdp-mate-custom) - A virtual desktop running on your NAS.
* [Wallabag](https://wallabag.org/) - Save and classify articles. Read them later.
* [Watchtower](https://github.com/v2tec/watchtower) - Monitor your Docker containers and update them if a new version is available
+* [Wireshark](https://www.wireshark.org/) - the world’s foremost and widely-used network protocol analyzer.
* [YouTubeDL-Material](https://github.com/Tzahi12345/YoutubeDL-Material) - Self-hosted YouTube downloader built on Material Design
* [ZNC](https://wiki.znc.in/ZNC) - IRC bouncer to stay connected to favourite IRC networks and channels
diff --git a/docs/applications/wireshark.md b/docs/applications/wireshark.md
new file mode 100644
index 00000000..34442ab1
--- /dev/null
+++ b/docs/applications/wireshark.md
@@ -0,0 +1,11 @@
+# Wireshark
+
+Homepage:
+
+Wireshark is the world’s foremost and widely-used network protocol analyzer. It lets you see what’s happening on your network at a microscopic level and is the de facto (and often de jure) standard across many commercial and non-profit enterprises, government agencies, and educational institutions. Wireshark development thrives thanks to the volunteer contributions of networking experts around the globe and is the continuation of a project started by Gerald Combs in 1998.
+
+## Usage
+
+Set `wireshark_enabled: true` in your `inventories//nas.yml` file.
+
+The Wireshark web interface can be found at .
diff --git a/docs/configuration/application_ports.md b/docs/configuration/application_ports.md
index 042b6050..a2f8b21f 100644
--- a/docs/configuration/application_ports.md
+++ b/docs/configuration/application_ports.md
@@ -100,5 +100,6 @@ By default, applications can be found on the ports listed below.
| uTorrent | 6881 | Bridge | BT |
| uTorrent | 6881 | Bridge | UDP |
| Wallabag | 7780 | Bridge | HTTP |
+| Wireshark | 3000 | Host | HTTP |
| YouTubeDL-Mater | 8998 | Bridge | HTTP |
| ZNC | 6677 | Bridge | |
diff --git a/nas.yml b/nas.yml
index 3e9cf2d7..cd72f821 100644
--- a/nas.yml
+++ b/nas.yml
@@ -212,7 +212,7 @@
- role: n8n
tags:
- - n8n_enabled
+ - n8n
when: (n8n_enabled | default(False))
- role: navidrome
@@ -375,6 +375,11 @@
- watchtower
when: (watchtower_enabled | default(False))
+ - role: wireshark
+ tags:
+ - wireshark
+ when: (wireshark_enabled | default(False))
+
- role: znc
tags:
- znc
diff --git a/roles/duplicati/tasks/main.yml b/roles/duplicati/tasks/main.yml
index 0b5771ea..291fe15e 100644
--- a/roles/duplicati/tasks/main.yml
+++ b/roles/duplicati/tasks/main.yml
@@ -16,7 +16,7 @@
volumes:
- "{{ duplicati_data_directory }}:/config:rw"
- "{{ samba_shares_root }}:/source/shares:{{ duplicati_data_permissions }}"
- - "{{ docker_home }}:/source/docker:ro"
+ - "{{ docker_home }}:/source/docker:{{ duplicati_data_permissions }}"
- "/etc/timezone:/etc/timezone:ro"
env:
TZ: "{{ ansible_nas_timezone }}"
diff --git a/roles/healthchecks.io/tasks/main.yml b/roles/healthchecks.io/tasks/main.yml
index 47289c5a..e9a7e145 100644
--- a/roles/healthchecks.io/tasks/main.yml
+++ b/roles/healthchecks.io/tasks/main.yml
@@ -4,5 +4,4 @@
name: healthchecks.io
minute: "*/{{ healthchecks_ping_minutes }}"
user: root
- cron_file: /etc/crontab
job: "curl -m 10 --retry 5 {{ healthchecks_url }}"
diff --git a/roles/wireshark/defaults/main.yml b/roles/wireshark/defaults/main.yml
new file mode 100644
index 00000000..30e729ec
--- /dev/null
+++ b/roles/wireshark/defaults/main.yml
@@ -0,0 +1,17 @@
+---
+# enable or disable the application
+wireshark_enabled: false
+wireshark_available_externally: false
+
+# directories
+wireshark_data_directory: "{{ docker_home }}/wireshark"
+
+# uid / gid
+wireshark_user_id: "1000"
+wireshark_group_id: "1000"
+
+# network
+wireshark_hostname: "wireshark"
+
+# specs
+wireshark_memory: "512m"
diff --git a/roles/wireshark/tasks/main.yml b/roles/wireshark/tasks/main.yml
new file mode 100644
index 00000000..318ecaae
--- /dev/null
+++ b/roles/wireshark/tasks/main.yml
@@ -0,0 +1,32 @@
+---
+- name: Create Wireshark Directories
+ file:
+ path: "{{ item }}"
+ state: directory
+ with_items:
+ - "{{ wireshark_data_directory }}"
+ - "{{ wireshark_data_directory }}/config"
+
+- name: Create Wireshark Docker Container
+ docker_container:
+ name: wireshark
+ image: linuxserver/wireshark:latest
+ pull: true
+ volumes:
+ - "{{ wireshark_data_directory }}/config:/config:rw"
+ network_mode: host
+ env:
+ TZ: "{{ ansible_nas_timezone }}"
+ PUID: "{{ wireshark_user_id }}"
+ PGID: "{{ wireshark_group_id }}"
+ capabilities:
+ - NET_ADMIN
+ restart_policy: unless-stopped
+ memory: "{{ wireshark_memory }}"
+ labels:
+ traefik.enable: "{{ wireshark_available_externally | string }}"
+ traefik.http.routers.wireshark.rule: "Host(`{{ wireshark_hostname }}.{{ ansible_nas_domain }}`)"
+ traefik.http.routers.wireshark.tls.certresolver: "letsencrypt"
+ traefik.http.routers.wireshark.tls.domains[0].main: "{{ ansible_nas_domain }}"
+ traefik.http.routers.wireshark.tls.domains[0].sans: "*.{{ ansible_nas_domain }}"
+ traefik.http.services.wireshark.loadbalancer.server.port: "3000"