🎬 ARR Suite Template Bootstrap - Complete Media Automation Stack Features: - 16 production services (Prowlarr, Sonarr, Radarr, Plex, etc.) - One-command Ansible deployment - VPN-protected downloads via Gluetun - Tailscale secure access - Production-ready security (UFW, Fail2Ban) - Automated backups and monitoring - Comprehensive documentation Ready for customization and deployment to any VPS. Co-authored-by: openhands <openhands@all-hands.dev>
128 lines
2.8 KiB
YAML
128 lines
2.8 KiB
YAML
---
|
|
# User and directory setup tasks
|
|
|
|
- name: Create docker group
|
|
group:
|
|
name: "{{ docker_group }}"
|
|
state: present
|
|
tags: ['users']
|
|
|
|
- name: Create docker user
|
|
user:
|
|
name: "{{ docker_user }}"
|
|
group: "{{ docker_group }}"
|
|
groups: docker
|
|
shell: /bin/bash
|
|
home: "{{ docker_root }}"
|
|
create_home: yes
|
|
system: no
|
|
state: present
|
|
tags: ['users']
|
|
|
|
- name: Add docker user to docker group
|
|
user:
|
|
name: "{{ docker_user }}"
|
|
groups: docker
|
|
append: yes
|
|
tags: ['users']
|
|
|
|
- name: Get docker user UID and GID
|
|
getent:
|
|
database: passwd
|
|
key: "{{ docker_user }}"
|
|
tags: ['users']
|
|
|
|
- name: Get docker group GID
|
|
getent:
|
|
database: group
|
|
key: "{{ docker_group }}"
|
|
tags: ['users']
|
|
|
|
- name: Display docker user information
|
|
debug:
|
|
msg: |
|
|
Docker user: {{ docker_user }}
|
|
Docker UID: {{ ansible_facts['getent_passwd'][docker_user][1] }}
|
|
Docker GID: {{ ansible_facts['getent_group'][docker_group][1] }}
|
|
tags: ['users']
|
|
|
|
- name: Create media directories
|
|
file:
|
|
path: "{{ item }}"
|
|
state: directory
|
|
owner: "{{ docker_user }}"
|
|
group: "{{ docker_group }}"
|
|
mode: '0755'
|
|
loop: "{{ media_dirs }}"
|
|
tags: ['directories']
|
|
|
|
- name: Create docker config directories
|
|
file:
|
|
path: "{{ item }}"
|
|
state: directory
|
|
owner: "{{ docker_user }}"
|
|
group: "{{ docker_group }}"
|
|
mode: '0755'
|
|
loop: "{{ docker_dirs }}"
|
|
tags: ['directories']
|
|
|
|
- name: Set ownership of media root
|
|
file:
|
|
path: "{{ media_root }}"
|
|
owner: "{{ docker_user }}"
|
|
group: "{{ docker_group }}"
|
|
recurse: yes
|
|
state: directory
|
|
tags: ['permissions']
|
|
|
|
- name: Set ownership of docker root
|
|
file:
|
|
path: "{{ docker_root }}"
|
|
owner: "{{ docker_user }}"
|
|
group: "{{ docker_group }}"
|
|
recurse: yes
|
|
state: directory
|
|
tags: ['permissions']
|
|
|
|
- name: Create docker user .bashrc
|
|
template:
|
|
src: bashrc.j2
|
|
dest: "{{ docker_root }}/.bashrc"
|
|
owner: "{{ docker_user }}"
|
|
group: "{{ docker_group }}"
|
|
mode: '0644'
|
|
tags: ['user_config']
|
|
|
|
- name: Create useful aliases for docker user
|
|
template:
|
|
src: bash_aliases.j2
|
|
dest: "{{ docker_root }}/.bash_aliases"
|
|
owner: "{{ docker_user }}"
|
|
group: "{{ docker_group }}"
|
|
mode: '0644'
|
|
tags: ['user_config']
|
|
|
|
- name: Create scripts directory
|
|
file:
|
|
path: "{{ docker_root }}/scripts"
|
|
state: directory
|
|
owner: "{{ docker_user }}"
|
|
group: "{{ docker_group }}"
|
|
mode: '0755'
|
|
tags: ['directories']
|
|
|
|
- name: Create management scripts
|
|
template:
|
|
src: "{{ item }}.j2"
|
|
dest: "{{ docker_root }}/scripts/{{ item }}"
|
|
owner: "{{ docker_user }}"
|
|
group: "{{ docker_group }}"
|
|
mode: '0755'
|
|
loop:
|
|
- arrs-start.sh
|
|
- arrs-stop.sh
|
|
- arrs-restart.sh
|
|
- arrs-logs.sh
|
|
- arrs-update.sh
|
|
- arrs-status.sh
|
|
tags: ['scripts'] |