From b2ea4ad0d392f3a102fac892958670a978cef2bb Mon Sep 17 00:00:00 2001 From: Jef Roosens Date: Tue, 17 Jun 2025 18:32:56 +0200 Subject: [PATCH] feat: update otter deployment --- roles/otter/files/otter.service | 10 ++++---- roles/otter/files/otter.toml | 7 ++++++ roles/otter/tasks/main.yml | 42 +++++++++++++++++++++++++++++---- 3 files changed, 49 insertions(+), 10 deletions(-) create mode 100644 roles/otter/files/otter.toml diff --git a/roles/otter/files/otter.service b/roles/otter/files/otter.service index e9e43fb..97e93dc 100644 --- a/roles/otter/files/otter.service +++ b/roles/otter/files/otter.service @@ -1,13 +1,13 @@ [Unit] Description=Gpodder.net API implementation -After=docker.service -Requires=docker.service +After=network.target network-online.target [Service] Type=exec -WorkingDirectory=/etc/otter -ExecStart=/usr/bin/docker compose up -ExecStop=/usr/bin/docker compose down +User=otter +Group=otter +ExecStart=/usr/local/bin/otter serve -c /etc/otter/otter.toml +Restart=always [Install] WantedBy=multi-user.target diff --git a/roles/otter/files/otter.toml b/roles/otter/files/otter.toml new file mode 100644 index 0000000..de90880 --- /dev/null +++ b/roles/otter/files/otter.toml @@ -0,0 +1,7 @@ +data_dir = "/mnt/data1/otter/data" +log_level = "debug" + +[net] +type = "tcp" +domain = "0.0.0.0" +port = 8017 diff --git a/roles/otter/tasks/main.yml b/roles/otter/tasks/main.yml index 997da11..b7c3dbd 100644 --- a/roles/otter/tasks/main.yml +++ b/roles/otter/tasks/main.yml @@ -1,4 +1,27 @@ --- +- name: Ensure binary is present + ansible.builtin.get_url: + url: 'https://git.rustybever.be/api/packages/Chewing_Bever/generic/otter/0.2.1/otter-linux-arm64' + dest: '/usr/local/bin/otter' + owner: 'root' + group: 'root' + mode: '755' + +- name: Ensure system group exists + ansible.builtin.group: + name: 'otter' + gid: 204 + system: true + state: present + +- name: Ensure system user exists + ansible.builtin.user: + name: 'otter' + group: 'otter' + uid: 204 + system: true + create_home: false + - name: Ensure data directory is present ansible.builtin.file: path: '/mnt/data1/otter' @@ -18,8 +41,8 @@ path: "/mnt/data1/otter/{{ item }}" state: directory mode: '0755' - owner: '82' - group: '82' + owner: '204' + group: '204' loop: - 'data' @@ -29,10 +52,19 @@ state: directory mode: '0755' -- name: Ensure compose file is present +# - name: Ensure compose file is present +# ansible.builtin.copy: +# src: 'compose.yml' +# dest: '/etc/otter/compose.yml' +# mode: '0644' +# owner: 'root' +# group: 'root' +# notify: 'restart otter' + +- name: Ensure config file is present ansible.builtin.copy: - src: 'compose.yml' - dest: '/etc/otter/compose.yml' + src: 'otter.toml' + dest: '/etc/otter/otter.toml' mode: '0644' owner: 'root' group: 'root'