diff --git a/README.md b/README.md index e0c5b3c4..59a7ff7a 100644 --- a/README.md +++ b/README.md @@ -55,6 +55,7 @@ Ansible config and a bunch of Docker containers. * [Jackett](https://github.com/Jackett/Jackett) - API Support for your favorite torrent trackers * [Jellyfin](https://jellyfin.github.io) - The Free Software Media System * [Joomla](https://www.joomla.org/) - Open source content management system +* [https://krusader.org/](https://krusader.org/) - Twin panel file management for your desktop * [Lidarr](https://github.com/lidarr/Lidarr) - Music collection manager for Usenet and BitTorrent users * [MiniDlna](https://sourceforge.net/projects/minidlna/) - simple media server which is fully compliant with DLNA/UPnP-AV clients * [Miniflux](https://miniflux.app/) - An RSS news reader diff --git a/docs/applications/krusader.md b/docs/applications/krusader.md new file mode 100644 index 00000000..837783c4 --- /dev/null +++ b/docs/applications/krusader.md @@ -0,0 +1,13 @@ + +# Krusader + +Homepage: [https://krusader.org/](https://krusader.org/) +Docker Container: [https://hub.docker.com/r/djaydev/krusader](https://hub.docker.com/r/djaydev/krusader) + +Krusader provides twin panel file management for your ansible-nas via browser and VNC. + +## Usage + +Set `krusader_enabled: true` in your `inventories//nas.yml` file. + +The Krusader web interface can be found at http://ansible_nas_host_or_ip:5800. diff --git a/docs/configuration/application_ports.md b/docs/configuration/application_ports.md index b5b5e581..d1dce7b8 100644 --- a/docs/configuration/application_ports.md +++ b/docs/configuration/application_ports.md @@ -30,6 +30,8 @@ By default, applications can be found on the ports listed below. | Jackett | 9117 | | | Jellyfin | 8896 | HTTP | | Jellyfin | 8928 | HTTPS | +| Krusader | 5800 | HTTP | +| Krusader | 5800 | VNC | | Lidarr | 8686 | | | MiniDLNA | 8201 | | | Miniflux | 8070 | | diff --git a/group_vars/all.yml b/group_vars/all.yml index 2d79c2ce..478600c7 100644 --- a/group_vars/all.yml +++ b/group_vars/all.yml @@ -59,6 +59,7 @@ watchtower_enabled: false cloudflare_ddns_enabled: false cloudcmd_enabled: false virtual_desktop_enabled: false +krusader_enabled: false # Backup & Restore duplicati_enabled: false @@ -678,6 +679,19 @@ cloudcmd_user_id: "0" cloudcmd_group_id: "0" cloudcmd_port: "7373" +### +### Krusader +### +krusader_available_externally: "false" +krusader_data_directory: "{{ docker_home }}/krusader" +krusader_browse_directory: "/" +krusader_user_id: "0" +krusader_group_id: "0" +krusader_secure_connection: "1" +krusader_vnc_password: "topsecret" +krusader_port_http: "5800" +krusader_port_vnc: "5900" + ### ### Watchtower ### diff --git a/nas.yml b/nas.yml index c51cac75..b08c1f6f 100644 --- a/nas.yml +++ b/nas.yml @@ -212,6 +212,10 @@ when: (cloudcmd_enabled | default(False)) tags: cloudcmd + - import_tasks: tasks/krusader.yml + when: (krusader_enabled | default(False)) + tags: krusader + - import_tasks: tasks/ubooquity.yml when: (ubooquity_enabled | default(False)) tags: ubooquity diff --git a/tasks/krusader.yml b/tasks/krusader.yml new file mode 100644 index 00000000..7abc3e5b --- /dev/null +++ b/tasks/krusader.yml @@ -0,0 +1,33 @@ + +--- +- name: Krusader Directory + file: + path: "{{ item }}" + state: directory + with_items: + - "{{ krusader_data_directory }}/krusader" + +- name: Krusader Docker Container + docker_container: + name: krusader + image: djaydev/krusader:latest + pull: true + volumes: + - "{{ krusader_data_directory }}/config:/config:rw" + - "{{ krusader_browse_directory }}:/mnt/fs" + ports: + - "{{ krusader_port_http }}:5800" + - "{{ krusader_port_vnc }}:5900" + env: + USER_ID: "{{ krusader_user_id }}" + GROUP_ID: "{{ krusader_group_id }}" + SECURE_CONNECTION: "{{ krusader_secure_connection }}" + TZ: "{{ ansible_nas_timezone }}" + VNC_PASSWORD: "{{ krusader_vnc_password }}" + restart_policy: unless-stopped + labels: + traefik.backend: "krusader" + traefik.frontend.rule: "Host:krusader.{{ ansible_nas_domain }}" + traefik.enable: "{{ krusader_available_externally }}" + traefik.port: "5800" + memory: 1g diff --git a/templates/traefik/traefik.toml b/templates/traefik/traefik.toml index b75910bd..e635af7b 100644 --- a/templates/traefik/traefik.toml +++ b/templates/traefik/traefik.toml @@ -198,6 +198,7 @@ onDemand = false # create certificate when container is created "jackett.{{ ansible_nas_domain }}", "jellyfin.{{ ansible_nas_domain }}", "joomla.{{ ansible_nas_domain }}", + "krusader.{{ ansible_nas_domain }}", "lidarr.{{ ansible_nas_domain }}", "miniflux.{{ ansible_nas_domain }}", "netdata.{{ ansible_nas_domain }}",