Add service to start offlineimap on linux automatically

This commit is contained in:
2025-10-15 02:35:01 +02:00
parent 47571bc1d8
commit 52ec953d0a
5 changed files with 38 additions and 0 deletions

View File

@@ -60,6 +60,7 @@ To restrict the scope of execution the playbook uses a couple of tags as describ
| packages | Install system-packages
| dotfiles | Install my dotfiles and apply them
| ssh | Ensure a default SSH-key and provide it to gitea and github
| offlineimap | Setup systemd-service for offlineimap on debian. This needs to be explicitly defined, since Enpass has to be setup first!
| dump | Print out debug information
|===

View File

@@ -15,6 +15,9 @@
tags: [dotfiles]
- role: roles/enpass-cli
tags: [packages]
- role: roles/offlineimap
tags: [offlineimap, services, never]
when: ansible_os_family == 'Debian'
tasks:
- name: Dump hostvars
tags: [never, dump]

View File

@@ -0,0 +1,4 @@
- name: Reload systemd-units
become: yes
systemd:
daemon_reload: yes

View File

@@ -0,0 +1,20 @@
- name: Ensure systemd-creds for offlineimap
become: yes
community.general.systemd_creds_encrypt:
name: enpass-password
secret: "{{ enpass_password }}"
register: encrypted_enpass_password
- name: Ensure systemd service file for offlineimap
become: yes
template:
src: offlineimap.service.j2
dest: /lib/systemd/system/offlineimap.service
notify: Reload systemd-units
- name: Ensure offlineimap service is running
become: yes
service:
name: offlineimap
state: started
enabled: yes

View File

@@ -0,0 +1,10 @@
[Unit]
Description=Run offlineimap in the background for {{ ansible_user_id }}
[Service]
User={{ ansible_user_id }}
SetCredentialEncrypted=enpass-password: {{ encrypted_enpass_password.value | replace("\n", " ") }}
ExecStart=bash -c 'source ~/.profile && MASTERPW="$(systemd-creds cat enpass-password)" ~/.local/bin/offlineimap'
[Install]
WantedBy=graphical.target