[ansible] syncthing on on-fire-within
change
commit 7c85f31cc0997491271ee3eb78380ede9aa0a10b
author Alpha Chen <alpha@kejadlen.dev>
date
parent 820be8c2
diff --git a/ansible/on-fire-within/main.yml b/ansible/on-fire-within/main.yml
index 3e1db642..f4e91a4d 100644
--- a/ansible/on-fire-within/main.yml
+++ b/ansible/on-fire-within/main.yml
@@ -4,7 +4,7 @@
 - hosts: on_fire_within
   become: yes
   tasks:
-    - name: install dependencies
+    - name: Install dependencies
       apt:
         name:
           - git
@@ -16,22 +16,31 @@
           - python-backports-shutil-get-terminal-size
           - python-backports.ssl-match-hostname
 
-    - name: install python docker packages
+    - name: Install python docker packages
       pip:
         name:
           - docker
           - docker-compose
         state: latest
 
-    - name: create conf dirs
+    - name: Create necessary dirs
       file:
         path: "{{ item }}"
         state: directory
       with_items:
         - /etc/ddclient
         - /etc/traefik
+        - /mnt/mushu/minio
+        - /mnt/mushu/syncthing
 
-    - name: configure ddclient
+    - name: Mount USB drive
+      mount:
+        path: /mnt/mushu
+        src: /dev/sda
+        fstype: ext4
+        state: mounted
+
+    - name: Configure ddclient
       copy:
         content: |
           daemon=300
@@ -47,9 +56,9 @@
         mode: 0600
       vars:
         hosts: "{{ ddclient.hosts }}"
-      notify: restart ddclient
+      notify: Restart ddclient
 
-    - name: traefik static configuration
+    - name: Traefik static configuration
       copy:
         content: |
           [providers]
@@ -81,7 +90,7 @@
     # depends on the network that docker-compose makes. We should create the
     # network first so we can do this, and set the services to use that network
     # specifically.
-    - name: traefik dynamic configuration
+    - name: Route Home Assistant through Traefik
       block:
         # - shell: ip -4 addr show docker0 | grep -Po 'inet \K[\d.]+' | head -n 1
         - shell: docker network inspect on-fire-within_default | jq --raw-output .[0].IPAM.Config[0].Gateway
@@ -104,7 +113,7 @@
             dest: /etc/traefik/dynamic_conf.toml
             mode: 0600
 
-    - name: docker all the things!
+    - name: Docker ALL the things!
       docker_compose:
         project_name: on-fire-within
         pull: yes
@@ -117,6 +126,23 @@
               volumes:
                 - /etc/ddclient:/etc/ddclient
               restart: unless-stopped
+            minio:
+              image: kejadlen/minio:latest
+              container_name: minio
+              ports:
+                - 9000:9000/tcp
+              environment:
+                MINIO_ACCESS_KEY: "{{ minio.access_key }}"
+                MINIO_SECRET_KEY: "{{ minio.secret_key }}"
+              volumes:
+                - /mnt/mushu/minio:/data
+              user: 0:0 # root
+              labels:
+                - traefik.enable=true
+                - traefik.http.routers.minio.rule=Host(`{{ traefik.host_rules.minio }}`)
+                - traefik.http.routers.minio.tls=true
+                - traefik.http.routers.minio.tls.certresolver=le
+                - traefik.http.services.minio.loadbalancer.server.port=9000
             pihole:
               image: pihole/pihole:latest
               container_name: pihole
@@ -148,6 +174,8 @@
                 - 21027:21027/udp
               volumes:
                 - /etc/syncthing:/etc/syncthing
+                - /mnt/mushu/syncthing:/sync
+              user: 0:0 # root
               labels:
                 - traefik.enable=true
                 - traefik.http.routers.syncthing.rule=Host(`{{ traefik.host_rules.syncthing }}`)
@@ -175,7 +203,7 @@
               restart: unless-stopped
 
   handlers:
-    - name: restart ddclient
+    - name: Restart ddclient
       docker_container:
         name: ddclient
         restart: yes