diff --git a/README.md b/README.md index b915bab4..1d1ac31a 100644 --- a/README.md +++ b/README.md @@ -27,6 +27,7 @@ Ansible config and a bunch of Docker containers. * A Personal finance manager * eBook management with calibre-web * Content management with Joomla +* A dual panel local file manager ### Docker Containers Used @@ -34,6 +35,7 @@ Ansible config and a bunch of Docker containers. * [Bazarr](https://github.com/morpheus65535/bazarr) - companion to Radarr and Sonarr for downloading subtitles * [Bitwarden_rs](https://github.com/dani-garcia/bitwarden_rs) - Self-Hosting port of password manager * [Calibre](https://hub.docker.com/r/linuxserver/calibre-web) - eBook Library +* [Cloud Commander](https://cloudcmd.io/) - A dual panel file manager with integrated web console and text editor * [Cloudflare DDNS](https://hub.docker.com/r/joshuaavalon/cloudflare-ddns/) - automatically update Cloudflare with your IP address * [CouchPotato](https://couchpota.to/) - for downloading and managing movies * [Duplicati](https://www.duplicati.com/) - for backing up your stuff diff --git a/docs/applications/cloudcmd.md b/docs/applications/cloudcmd.md new file mode 100644 index 00000000..8f989da0 --- /dev/null +++ b/docs/applications/cloudcmd.md @@ -0,0 +1,11 @@ +# Cloud Commander file manager + +Homepage: [https://cloudcmd.io/](https://cloudcmd.io/) + + +Cloud Commander is a file manager for the web. It includes a command-line console and a text editor. Cloud Commander helps you manage your server and work with files, directories and programs in a web browser from any computer, mobile or tablet. + + +## Usage + +Set `cloudcmd_enabled: true` in your `group_vars/all.yml` file. Then setup the folder you want to manager with `cloudcmd_browse_directory`, if you define it as `/` you will see all of your nas in `/mnt/fs`. \ No newline at end of file diff --git a/docs/configuration/application_ports.md b/docs/configuration/application_ports.md index e6bffafc..8412aedb 100644 --- a/docs/configuration/application_ports.md +++ b/docs/configuration/application_ports.md @@ -5,11 +5,12 @@ By default, applications can be found on the ports listed below. | Application | Port | Notes | |-----------------|--------|-----------| | Airsonic | 4040 | | -| Couchpotato | 5050 | | | Bazarr | 6767 | | | Bitwarden "hub" | 3012 | Web Not. | | Bitwarden | 19080 | HTTP | | Calibre | 8084 | HTTP | +| Cloud Commander | 7373 | | +| Couchpotato | 5050 | | | Duplicati | 8200 | | | Emby | 8096 | HTTP | | Emby | 8920 | HTTPS | diff --git a/group_vars/all.yml.dist b/group_vars/all.yml.dist index b2f426a7..01d2e7d0 100644 --- a/group_vars/all.yml.dist +++ b/group_vars/all.yml.dist @@ -59,6 +59,8 @@ guacamole_enabled: false netdata_enabled: false watchtower_enabled: false cloudflare_ddns_enabled: false +cloudcmd_enabled: true + # Backup & Restore duplicati_enabled: false @@ -522,6 +524,15 @@ miniflux_admin_password: supersecure airsonic_available_externally: "false" airsonic_data_directory: "{{ docker_home }}/airsonic" +### +### CloudCmd +### +cloudcmd_available_externally: "false" +cloudcmd_data_directory: "{{ docker_home }}/cloudcmd/config" +cloudcmd_browse_directory: "/" +cloudcmd_user_id: 0 +cloudcmd_group_id: 0 + ### ### Watchtower ### diff --git a/nas.yml b/nas.yml index 30d93f6d..af990049 100644 --- a/nas.yml +++ b/nas.yml @@ -195,3 +195,7 @@ - import_tasks: tasks/jellyfin.yml when: (jellyfin_enabled | default(False)) tags: jellyfin + + - import_tasks: tasks/cloudcmd.yml + when: (cloudcmd_enabled | default(False)) + tags: cloudcmd diff --git a/tasks/cloudcmd.yml b/tasks/cloudcmd.yml new file mode 100644 index 00000000..082b70c3 --- /dev/null +++ b/tasks/cloudcmd.yml @@ -0,0 +1,29 @@ +--- +- name: Create CloudCmd Directories + file: + path: "{{ item }}" + state: directory + with_items: + - "{{ cloudcmd_data_directory }}" + +- name: CloudCmd + docker_container: + name: cloudcmd + image: coderaiser/cloudcmd + pull: true + volumes: + - "{{ cloudcmd_data_directory }}:/config:rw" + - "{{ cloudcmd_browse_directory }}:/mnt/fs" + ports: + - "7373:8000" + env: + TZ: "{{ ansible_nas_timezone }}" + PUID: "{{ cloudcmd_user_id }}" + PGID: "{{ cloudcmd_group_id }}" + restart_policy: unless-stopped + memory: 1g + labels: + traefik.backend: "cloudcmd" + traefik.frontend.rule: "Host:cloudcmd.{{ ansible_nas_domain }}" + traefik.enable: "{{ cloudcmd_available_externally }}" + traefik.port: "7373" \ No newline at end of file diff --git a/templates/traefik/traefik.toml b/templates/traefik/traefik.toml index baf92f04..1b6ca077 100644 --- a/templates/traefik/traefik.toml +++ b/templates/traefik/traefik.toml @@ -183,6 +183,7 @@ onDemand = false # create certificate when container is created "bazarr.{{ ansible_nas_domain }}", "bitwarden.{{ ansible_nas_domain }}", "calibre.{{ ansible_nas_domain }}", + "cloudcmd.{{ ansible_nas_domain }}", "couchpotato.{{ ansible_nas_domain }}", "duplicati.{{ ansible_nas_domain }}", "emby.{{ ansible_nas_domain }}",