diff --git a/README.md b/README.md index f57c4ee9..8b705b2b 100644 --- a/README.md +++ b/README.md @@ -29,6 +29,7 @@ Ansible config and a bunch of Docker containers. * Content management with Joomla * A dual panel local file manager * Self-service media request web application +* SEO tracking with Serposcope ### Available Applications @@ -67,6 +68,7 @@ Ansible config and a bunch of Docker containers. * [Portainer](https://portainer.io/) - for managing Docker and running custom images * [pyLoad](https://pyload.net/) - A download manager with a friendly web-interface * [Radarr](https://radarr.video/) - for organising and downloading movies +* [Serposcope](https://serposcope.serphacker.com/en/) - tracker to monitor website ranking * [Sickchill](https://sickchill.github.io/) - for managing TV episodes * [Sonarr](https://sonarr.tv/) - for downloading and managing TV episodes * [Tautulli](http://tautulli.com/) - Monitor Your Plex Media Server diff --git a/docs/applications/serposcope.md b/docs/applications/serposcope.md new file mode 100644 index 00000000..c450691d --- /dev/null +++ b/docs/applications/serposcope.md @@ -0,0 +1,11 @@ +# Serposcope + +Homepage: [https://serposcope.serphacker.com/en/](https://serposcope.serphacker.com/en/) + +Serposcope is a free and open-source rank tracker to monitor websites ranking in Google and improve your SEO performances + +## Usage + +Set `serposcope_enabled: true` in your `inventories//nas.yml` file. + +The Serposcope web interface can be found at http://ansible_nas_host_or_ip:7134. diff --git a/docs/configuration/application_ports.md b/docs/configuration/application_ports.md index 492d9b7f..3718e2ec 100644 --- a/docs/configuration/application_ports.md +++ b/docs/configuration/application_ports.md @@ -43,6 +43,7 @@ By default, applications can be found on the ports listed below. | Portainer | 9000 | | | pyload | 8000 | | | Radarr | 7878 | | +| Serposcope | 7134 | | | Sickchill | 8081 | | | Sonarr | 8989 | | | Tautulli | 8181 | | diff --git a/group_vars/all.yml b/group_vars/all.yml index 9aa0aedc..ddddd93a 100644 --- a/group_vars/all.yml +++ b/group_vars/all.yml @@ -93,6 +93,9 @@ ubooquity_enabled: false # Joomla joomla_enabled: false +# SEO +serposcope_enabled: false + # External Access # Traefik will allow access to certain applications externally. To enable this you'll either; a domain name that points to your # home static IP address, the cloudflare with the cloudflare_ddns dynamic DNS container enabled, or use a dynamic DNS provider like no-ip. @@ -785,4 +788,11 @@ ubooquity_data_directory: "{{ docker_home }}/ubooquity" ubooquity_user_id: "0" ubooquity_group_id: "0" ubooquity_port_webui: "2202" -ubooquity_port_admin: "2203" \ No newline at end of file +ubooquity_port_admin: "2203" + +### +### Serposcope +### +serposcope_data_directory: "{{ docker_home }}/serposcope" +serposcope_port: 7134 +serposcope_available_externally: "false" \ No newline at end of file diff --git a/nas.yml b/nas.yml index 56aeedc0..487e2940 100644 --- a/nas.yml +++ b/nas.yml @@ -215,3 +215,7 @@ - import_tasks: tasks/lidarr.yml when: (lidarr_enabled | default(False)) tags: lidarr + + - import_tasks: tasks/serposcope.yml + when: (serposcope_enabled | default(False)) + tags: serposcope diff --git a/tasks/serposcope.yml b/tasks/serposcope.yml new file mode 100644 index 00000000..9e855eed --- /dev/null +++ b/tasks/serposcope.yml @@ -0,0 +1,44 @@ +- name: Create Serposcope Directories + file: + path: "{{ item }}" + state: directory + with_items: + - "{{ serposcope_data_directory }}/mysql" + +- name: Create MySQL container for Serposcope + docker_container: + name: serposcope-mysql + image: mysql:5.7 + pull: true + volumes: + - "{{ serposcope_data_directory }}/mysql:/var/lib/mysql:rw" + env: + MYSQL_DATABASE: "serposcope" + MYSQL_USER: "serposcope" + MYSQL_PASSWORD: "serposcope" + MYSQL_ROOT_PASSWORD: "serposcope" + restart_policy: unless-stopped + memory: 1g + +- name: Wait for MySQL to init + pause: + seconds: 30 + +- name: Create Serposcope container + docker_container: + name: serposcope + image: davestephens/serposcope:2.11.0 + pull: true + links: + - serposcope-mysql:db + ports: + - "{{ serposcope_port }}:7134" + env: + SERPOSCOPE_DB_URL: 'jdbc:mysql://db:3306/serposcope?user=serposcope\&password=serposcope\&allowMultiQueries=true' + restart_policy: unless-stopped + memory: 1g + labels: + traefik.backend: "serposcope" + traefik.frontend.rule: "Host:serposcope.{{ ansible_nas_domain }}" + traefik.enable: "{{ serposcope_available_externally }}" + traefik.port: "7134" \ No newline at end of file diff --git a/templates/traefik/traefik.toml b/templates/traefik/traefik.toml index b54beee3..e51420f3 100644 --- a/templates/traefik/traefik.toml +++ b/templates/traefik/traefik.toml @@ -208,6 +208,7 @@ onDemand = false # create certificate when container is created "portainer.{{ ansible_nas_domain }}", "pyload.{{ ansible_nas_domain }}", "radarr.{{ ansible_nas_domain }}", + "serposcope.{{ ansible_nas_domain }}", "sickchill.{{ ansible_nas_domain }}", "sonarr.{{ ansible_nas_domain }}", "tautulli.{{ ansible_nas_domain }}",