[meta] babybuddy
change
commit ec653eb1877ed56577a28a15c7447444f1cc015c
author Alpha Chen <alpha@kejadlen.dev>
date
parent 4d949fcd
diff --git a/ansible/playbooks/babybuddy/babybuddy.nginx b/ansible/playbooks/babybuddy/babybuddy.nginx
new file mode 100644
index 00000000..5d96c818
--- /dev/null
+++ b/ansible/playbooks/babybuddy/babybuddy.nginx
@@ -0,0 +1,36 @@
+server {
+    server_name {{ babybuddy_domain }};
+
+    listen 80;
+    listen [::]:80;
+
+    location / {
+      return https://$server_name$request_uri;
+    }
+}
+
+
+server {
+    server_name {{ babybuddy_domain }};
+
+    listen 443 ssl http2;
+    listen [::]:443 ssl http2;
+
+    ssl_trusted_certificate   /etc/letsencrypt/live/{{ babybuddy_domain }}/chain.pem;
+    ssl_certificate           /etc/letsencrypt/live/{{ babybuddy_domain }}/fullchain.pem;
+    ssl_certificate_key       /etc/letsencrypt/live/{{ babybuddy_domain }}/privkey.pem;
+
+    ssl_stapling on;
+    ssl_stapling_verify on;
+
+
+    proxy_http_version 1.1;
+    proxy_set_header Upgrade $http_upgrade;
+    proxy_set_header Connection "upgrade";
+    proxy_set_header Host $http_host;
+    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+
+    location / {
+        proxy_pass http://127.0.0.1:8000;
+    }
+}
diff --git a/ansible/playbooks/babybuddy/main.yml b/ansible/playbooks/babybuddy/main.yml
new file mode 100644
index 00000000..00ac9582
--- /dev/null
+++ b/ansible/playbooks/babybuddy/main.yml
@@ -0,0 +1,40 @@
+---
+- hosts: babybuddy
+  tasks:
+
+  - file:
+      path: /usr/share/babybuddy
+      state: directory
+
+  - docker_compose:
+      project_name: babybuddy
+      definition:
+        version: "2.1"
+        services:
+          babybuddy:
+            image: ghcr.io/linuxserver/babybuddy
+            container_name: babybuddy
+            environment:
+              - TZ=America/Los_Angeles
+            volumes:
+              - /usr/share/babybuddy:/config
+            ports:
+              - 8000:8000
+            restart: unless-stopped
+
+  - template:
+      src: babybuddy.nginx
+      dest: /etc/nginx/sites-available/babybuddy.conf
+    notify: Restart nginx
+  - file:
+      src: /etc/nginx/sites-available/babybuddy.conf
+      dest: /etc/nginx/sites-enabled/babybuddy.conf
+      state: link
+    notify: Restart nginx
+
+  handlers:
+
+    - name: Restart nginx
+      service:
+        name: nginx
+        state: restarted
diff --git a/ansible/playbooks/docker.yml b/ansible/playbooks/docker.yml
new file mode 100644
index 00000000..b3824adf
--- /dev/null
+++ b/ansible/playbooks/docker.yml
@@ -0,0 +1,48 @@
+# https://docs.docker.com/engine/install/debian/
+
+- hosts: docker
+  tasks:
+
+  - name: install dependencies
+    apt:
+      name:
+        - apt-transport-https
+        - ca-certificates
+        - curl
+        - gnupg-agent
+        - software-properties-common
+
+        # Needed for Ansible
+        - docker-compose
+        - python3-pip
+      state: present
+
+  - name: install python docker packages
+    pip:
+      name:
+        - docker
+        - docker-compose
+      state: latest
+
+  - name: add docker gpg key
+    apt_key:
+      url: https://download.docker.com/linux/debian/gpg
+      state: present
+
+  - name: get docker release
+    command: lsb_release -cs
+    register: lsb_release
+
+  - name: add docker apt repo
+    apt_repository:
+      repo: deb [arch=amd64] https://download.docker.com/linux/debian {{ lsb_release.stdout | trim}} stable
+      state: present
+
+  - name: install docker engine
+    apt:
+      update_cache: true
+      name:
+        - docker-ce
+        - docker-ce-cli
+        - containerd.io
+      state: present
diff --git a/ansible/ramble-hard.yml b/ansible/ramble-hard.yml
new file mode 100644
index 00000000..7b41eb45
--- /dev/null
+++ b/ansible/ramble-hard.yml
@@ -0,0 +1,13 @@
+---
+- hosts: ramble-hard
+  tasks:
+
+  - name: add ssh keys
+    authorized_key:
+      user: root
+      key: https://github.com/kejadlen.keys
+
+- import_playbook: playbooks/docker.yml
+- import_playbook: playbooks/lets_encrypt/main.yml
+- import_playbook: playbooks/babybuddy/main.yml
+- import_playbook: playbooks/pixelfed/install.yml