--- - hosts: all become: yes remote_user: ansible gather_facts: true vars: docker_compose_definition: | services: wikmd: image: linbreux/wikmd:latest container_name: wikmd environment: - PUID=2002 - PGID=100 - TZ=US/Chicago volumes: - /data/wikmd/wiki:/wiki ports: - 5000:5000 restart: unless-stopped tasks: - name: set-debcache.yml - Setup apt proxy debcache import_tasks: ../../lib/set-debcache.yml - name: Upgrade-packages.yml - update packages import_tasks: ../../lib/upgrade-packages.yml - name: Install-docker.yml - setting up docker import_tasks: ../../lib/install-docker.yml - name: setup-restic.yml - setup restic import_tasks: ../../lib/setup-restic.yml - name: Setup-netbird.yml - setting up netbird mesh vpn import_tasks: ../../lib/setup-netbird.yml - name: Create wikmd user user: name: wikmd uid: 2002 group: users state: present create_home: yes home: /data shell: /bin/bash - name: Install Python Packages apt: name: - python3-full - python3-pip state: present update_cache: yes - name: Setup Service copy: dest: /etc/systemd/system/wikmd.service content: | [Unit] Description=semaphore After=network.target [Service] User=docker WorkingDirectory=/home/docker ExecStart=/usr/bin/docker compose -f docker-compose.yml up -d Restart=always [Install] WantedBy=multi-user.target owner: root group: root mode: '0644' - name: Write docker-compose.yml ansible.builtin.copy: content: "{{ docker_compose_definition }}" dest: /home/docker/docker-compose.yml owner: docker group: docker mode: u=rw,g=r,o=r - name: Check if wikmd directory exists stat: path: /data/wikmd register: wikmd_stat - name: Restore Wikmd Dir shell: | restic --password-file /home/restic/.resticpassword -r sftp:misamisa://home/restic/$(hostname) --target / restore latest args: chdir: /home/restic creates: /data/wikmd when: not wikmd_stat.stat.exists or not wikmd_stat.stat.isdir - name: Reload systemd daemon systemd: daemon_reload: yes - name: Start Wikmd Service systemd: name: wikmd state: started enabled: yes