Initial commit with previous code

This commit is contained in:
Antonio J. Delgado 2022-10-11 10:19:04 +03:00
commit 9f665a37d0
6 changed files with 117 additions and 0 deletions

31
defaults/main.yml Normal file
View file

@ -0,0 +1,31 @@
---
create_cache_file: true
auth_file: /var/lib/ntfy/auth.sqlite
base_url: notify.koti.site
listen_port: 4880
attachment_cache_dir: /var/lib/ntfy/attachments
attachment_total_size_limit: "100G"
attachment_file_size_limit: "15M"
attachment_expiry_duration: "8h"
# Full list in
# https://ntfy.sh/docs/config/
admin_accounts:
- name: manager
password: "{{ vault_manager_password }}"
user_accounts: []
access_rules:
- username: manager
topic: '*' # or something like mytopic* or my_topic
permission: read-write # or read-only, write-only, deny
ntfy_configuration:
behind-proxy: false
listen-http: ":4880"
cache-file: /var/lib/ntfy.sqlite
cache-duration: 24h
auth-file: "{{ auth_file }}"
auth-default-access: deny-all
attachment-cache-dir: "{{ attachment_cache_dir }}"
attachment-total-size-limit: "{{ attachment_total_size_limit }}"
attachment-file-size-limit: "{{ attachment_file_size_limit }}"
attachment-expiry-duration: "{{ attachment_expiry_duration }}"

3
handlers/main.yml Normal file
View file

@ -0,0 +1,3 @@
---
# - name: Refresh aliases
# shell: newaliases

54
tasks/configure.yml Normal file
View file

@ -0,0 +1,54 @@
---
- name: Configure ntfy
copy:
content: "{{ ntfy_configuration | to_nice_yaml(indent=4, width=250) }}"
dest: /etc/ntfy/server.yml
owner: root
group: root
mode: '0664'
backup: yes
- name: Ensure cache file is accessible to ntfy
file:
path: "{{ cache_file }}"
owner: ntfy
group: ntfy
state: touch
mode: 0660
when: cache_file is defined
- name: Ensure auth file is accessible to ntfy
file:
path: "{{ auth_file }}"
owner: ntfy
group: ntfy
state: touch
mode: 0660
when: auth_file is defined
- name: Ensure attachments directory exists
file:
path: "{{ attachment_cache_dir }}"
owner: ntfy
group: ntfy
state: directory
mode: 0660
when: attachment_cache_dir is defined
- name: Ensure ntfy is enabled and started
systemd:
name: ntfy
state: started
enabled: true
# - name: Configure administrators
# shell: "ntfy user add --role=admin {{ item.name }}"
# loop: "{{ admin_accounts }}"
# - name: Configure users
# shell: "ntfy user add --role=user {{ item.name }}"
# loop: "{{ user_accounts }}"
# - name: Grant permissions
# shell: "ntfy access {{ item.username }} {{ item.topic }} {{ item.permission }}"
# loop: "{{ access_rules }}"

19
tasks/install.yml Normal file
View file

@ -0,0 +1,19 @@
---
- name: Ensure repository key is present
apt_key:
id: CF871F1E8399DAEF470832661D5B8EDFB2476E53
url: https://archive.heckel.io/apt/pubkey.txt
keyring: /etc/apt/trusted.gpg.d/heckel.gpg
- name: Install software required
apt:
name: apt-transport-https
- name: Ensure repository is present
apt_repository:
repo: deb [arch=amd64] https://archive.heckel.io/apt debian main
filename: heckel
state: present
- name: Ensure ntfy is installed
apt:
name: ntfy

5
tasks/main.yml Normal file
View file

@ -0,0 +1,5 @@
---
- name: Ensure installation
include_tasks: install.yml
- name: Ensure configuration
include_tasks: configure.yml

5
templates/server.yml.j2 Normal file
View file

@ -0,0 +1,5 @@
{% if ntfy_configuration is defined %}
{% for key, value in ntfy_configuration.items() %}
{% endfor %}
{% endif %}