| - name: Install RSSHub | |
| hosts: localhost | |
| become: true | |
| vars_prompt: | |
| - name: domain_name | |
| prompt: What is the domain name (without www, e.g. rsshub.example.com)? Use "http://localhost" for development in Vagrant VM. | |
| private: no | |
| tasks: | |
| - name: Check OS | |
| fail: | |
| msg: This playbook can only be run on Ubuntu 20.04 at this moment | |
| when: ansible_distribution != 'Ubuntu' or ansible_distribution_version !='20.04' | |
| - name: Install GPG keys for repos | |
| apt_key: | |
| url: '{{ item }}' | |
| state: present | |
| with_items: | |
| - https://deb.nodesource.com/gpgkey/nodesource.gpg.key | |
| - https://download.docker.com/linux/ubuntu/gpg | |
| - https://dl.cloudsmith.io/public/caddy/stable/cfg/gpg/gpg.155B6D79CA56EA34.key | |
| - name: Install repos | |
| apt_repository: | |
| repo: '{{ item }}' | |
| state: present | |
| update_cache: yes | |
| with_items: | |
| - deb https://deb.nodesource.com/node_12.x focal main | |
| - deb https://download.docker.com/linux/ubuntu focal stable | |
| - deb https://dl.cloudsmith.io/public/caddy/stable/deb/debian any-version main | |
| - name: Install prerequisites | |
| apt: | |
| name: | |
| - nodejs | |
| - build-essential | |
| - python-is-python2 | |
| - redis-server | |
| - docker-ce | |
| - python3-pip | |
| - virtualenv | |
| - python3-setuptools | |
| - caddy | |
| state: present | |
| update_cache: yes | |
| - name: Install python module for docker | |
| pip: | |
| name: docker | |
| - name: Pull docker image for browserless | |
| docker_image: | |
| name: browserless/chrome | |
| source: pull | |
| - name: Start redis | |
| systemd: | |
| state: restarted | |
| enabled: yes | |
| name: redis | |
| daemon_reload: yes | |
| - name: Copy caddy configuration | |
| template: | |
| src: rsshub.Caddyfile | |
| dest: /etc/caddy/Caddyfile | |
| - name: Start caddy | |
| systemd: | |
| state: restarted | |
| enabled: yes | |
| name: caddy | |
| daemon_reload: yes | |
| - name: Create and start browserless container | |
| docker_container: | |
| name: browserless | |
| image: browserless/chrome | |
| state: started | |
| restart_policy: always | |
| published_ports: | |
| - '3000:3000' | |
| - name: Create the user | |
| user: | |
| name: rsshub | |
| create_home: true | |
| shell: /bin/bash | |
| - name: Clone the repo | |
| git: | |
| repo: https://github.com/DIYgod/RSSHub.git | |
| dest: /home/rsshub/app | |
| update: yes | |
| - name: Install repo dependencies | |
| command: yarn install --production | |
| args: | |
| chdir: /home/rsshub/app | |
| environment: | |
| PUPPETEER_SKIP_DOWNLOAD: true | |
| - name: Copy configuration | |
| copy: | |
| src: rsshub.env | |
| dest: /home/rsshub/app/.env | |
| - name: Own repo to the user | |
| file: | |
| path: /home/rsshub/app | |
| owner: rsshub | |
| group: rsshub | |
| recurse: yes | |
| - name: Install the systemd unit | |
| copy: | |
| src: rsshub.service | |
| dest: /etc/systemd/system/rsshub.service | |
| - name: Start the systemd service | |
| systemd: | |
| state: restarted | |
| enabled: yes | |
| name: rsshub | |
| daemon_reload: yes | |