fix: move ~/services to ~/.services
Signed-off-by: Menno van Leeuwen <menno@vleeuwen.me>
This commit is contained in:
@@ -10,7 +10,7 @@ sys.path.append(os.path.join(os.path.expanduser("~/.dotfiles"), "bin"))
|
|||||||
from helpers.functions import printfe, println, logo
|
from helpers.functions import printfe, println, logo
|
||||||
|
|
||||||
# Base directory for Docker services $HOME/services
|
# Base directory for Docker services $HOME/services
|
||||||
SERVICES_DIR = os.path.join(os.path.expanduser("~"), "services")
|
SERVICES_DIR = os.path.join(os.path.expanduser("~"), ".services")
|
||||||
# Protected services that should never be stopped
|
# Protected services that should never be stopped
|
||||||
PROTECTED_SERVICES = ["juicefs-redis"]
|
PROTECTED_SERVICES = ["juicefs-redis"]
|
||||||
|
|
||||||
|
@@ -3,7 +3,7 @@
|
|||||||
block:
|
block:
|
||||||
- name: Set ArrStack directories
|
- name: Set ArrStack directories
|
||||||
ansible.builtin.set_fact:
|
ansible.builtin.set_fact:
|
||||||
arr_stack_service_dir: "{{ ansible_env.HOME }}/services/arr-stack"
|
arr_stack_service_dir: "{{ ansible_env.HOME }}/.services/arr-stack"
|
||||||
arr_stack_data_dir: "/mnt/services/arr-stack"
|
arr_stack_data_dir: "/mnt/services/arr-stack"
|
||||||
|
|
||||||
- name: Create ArrStack directory
|
- name: Create ArrStack directory
|
||||||
|
@@ -3,7 +3,7 @@
|
|||||||
block:
|
block:
|
||||||
- name: Set Beszel directories
|
- name: Set Beszel directories
|
||||||
ansible.builtin.set_fact:
|
ansible.builtin.set_fact:
|
||||||
beszel_service_dir: "{{ ansible_env.HOME }}/services/beszel"
|
beszel_service_dir: "{{ ansible_env.HOME }}/.services/beszel"
|
||||||
beszel_data_dir: "/mnt/services/beszel"
|
beszel_data_dir: "/mnt/services/beszel"
|
||||||
|
|
||||||
- name: Create Beszel directory
|
- name: Create Beszel directory
|
||||||
|
@@ -94,10 +94,14 @@ home.mvl.sh {
|
|||||||
|
|
||||||
home.vleeuwen.me {
|
home.vleeuwen.me {
|
||||||
import country_block
|
import country_block
|
||||||
redir https://home.mvl.sh{uri}
|
reverse_proxy host.docker.internal:8123 {
|
||||||
|
header_up Host {upstream_hostport}
|
||||||
|
header_up X-Real-IP {http.request.remote.host}
|
||||||
|
}
|
||||||
tls {{ caddy_email }}
|
tls {{ caddy_email }}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
unifi.mvl.sh {
|
unifi.mvl.sh {
|
||||||
reverse_proxy unifi-controller:8443 {
|
reverse_proxy unifi-controller:8443 {
|
||||||
transport http {
|
transport http {
|
||||||
@@ -170,6 +174,21 @@ plex.vleeuwen.me {
|
|||||||
tls {{ caddy_email }}
|
tls {{ caddy_email }}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
tautulli.mvl.sh {
|
||||||
|
import country_block
|
||||||
|
reverse_proxy host.docker.internal:8181 {
|
||||||
|
header_up Host {upstream_hostport}
|
||||||
|
header_up X-Real-IP {http.request.remote.host}
|
||||||
|
}
|
||||||
|
tls {{ caddy_email }}
|
||||||
|
}
|
||||||
|
|
||||||
|
tautulli.vleeuwen.me {
|
||||||
|
import country_block
|
||||||
|
redir https://tautulli.mvl.sh{uri}
|
||||||
|
tls {{ caddy_email }}
|
||||||
|
}
|
||||||
|
|
||||||
drive.mvl.sh drive.vleeuwen.me {
|
drive.mvl.sh drive.vleeuwen.me {
|
||||||
import country_block
|
import country_block
|
||||||
|
|
||||||
|
@@ -1,59 +1,59 @@
|
|||||||
---
|
---
|
||||||
- name: Deploy Caddy service
|
- name: Deploy Caddy service
|
||||||
block:
|
block:
|
||||||
- name: Set Caddy directories
|
- name: Set Caddy directories
|
||||||
ansible.builtin.set_fact:
|
ansible.builtin.set_fact:
|
||||||
caddy_service_dir: "{{ ansible_env.HOME }}/services/caddy"
|
caddy_service_dir: "{{ ansible_env.HOME }}/.services/caddy"
|
||||||
caddy_data_dir: "/mnt/services/caddy"
|
caddy_data_dir: "/mnt/services/caddy"
|
||||||
geoip_db_path: "/mnt/services/echoip"
|
geoip_db_path: "/mnt/services/echoip"
|
||||||
caddy_email: "{{ lookup('community.general.onepassword', 'Caddy (Proxy)', vault='Dotfiles', field='email') }}"
|
caddy_email: "{{ lookup('community.general.onepassword', 'Caddy (Proxy)', vault='Dotfiles', field='email') }}"
|
||||||
|
|
||||||
- name: Create Caddy directory
|
- name: Create Caddy directory
|
||||||
ansible.builtin.file:
|
ansible.builtin.file:
|
||||||
path: "{{ caddy_service_dir }}"
|
path: "{{ caddy_service_dir }}"
|
||||||
state: directory
|
state: directory
|
||||||
mode: "0755"
|
mode: "0755"
|
||||||
|
|
||||||
- name: Setup country blocking
|
- name: Setup country blocking
|
||||||
ansible.builtin.include_tasks: country-blocking.yml
|
ansible.builtin.include_tasks: country-blocking.yml
|
||||||
|
|
||||||
- name: Copy Dockerfile for custom Caddy build
|
- name: Copy Dockerfile for custom Caddy build
|
||||||
ansible.builtin.copy:
|
ansible.builtin.copy:
|
||||||
src: Dockerfile
|
src: Dockerfile
|
||||||
dest: "{{ caddy_service_dir }}/Dockerfile"
|
dest: "{{ caddy_service_dir }}/Dockerfile"
|
||||||
mode: "0644"
|
mode: "0644"
|
||||||
register: caddy_dockerfile
|
register: caddy_dockerfile
|
||||||
|
|
||||||
- name: Create Caddy network
|
- name: Create Caddy network
|
||||||
ansible.builtin.command: docker network create caddy_default
|
ansible.builtin.command: docker network create caddy_default
|
||||||
register: create_caddy_network
|
register: create_caddy_network
|
||||||
failed_when:
|
failed_when:
|
||||||
- create_caddy_network.rc != 0
|
- create_caddy_network.rc != 0
|
||||||
- "'already exists' not in create_caddy_network.stderr"
|
- "'already exists' not in create_caddy_network.stderr"
|
||||||
changed_when: create_caddy_network.rc == 0
|
changed_when: create_caddy_network.rc == 0
|
||||||
|
|
||||||
- name: Deploy Caddy docker-compose.yml
|
- name: Deploy Caddy docker-compose.yml
|
||||||
ansible.builtin.template:
|
ansible.builtin.template:
|
||||||
src: docker-compose.yml.j2
|
src: docker-compose.yml.j2
|
||||||
dest: "{{ caddy_service_dir }}/docker-compose.yml"
|
dest: "{{ caddy_service_dir }}/docker-compose.yml"
|
||||||
mode: "0644"
|
mode: "0644"
|
||||||
register: caddy_compose
|
register: caddy_compose
|
||||||
|
|
||||||
- name: Deploy Caddy Caddyfile
|
- name: Deploy Caddy Caddyfile
|
||||||
ansible.builtin.template:
|
ansible.builtin.template:
|
||||||
src: Caddyfile.j2
|
src: Caddyfile.j2
|
||||||
dest: "{{ caddy_service_dir }}/Caddyfile"
|
dest: "{{ caddy_service_dir }}/Caddyfile"
|
||||||
mode: "0644"
|
mode: "0644"
|
||||||
register: caddy_file
|
register: caddy_file
|
||||||
|
|
||||||
- name: Stop Caddy service
|
- name: Stop Caddy service
|
||||||
ansible.builtin.command: docker compose -f "{{ caddy_service_dir }}/docker-compose.yml" down --remove-orphans
|
ansible.builtin.command: docker compose -f "{{ caddy_service_dir }}/docker-compose.yml" down --remove-orphans
|
||||||
when: caddy_compose.changed or caddy_file.changed
|
when: caddy_compose.changed or caddy_file.changed
|
||||||
|
|
||||||
- name: Start Caddy service
|
- name: Start Caddy service
|
||||||
ansible.builtin.command: docker compose -f "{{ caddy_service_dir }}/docker-compose.yml" up -d
|
ansible.builtin.command: docker compose -f "{{ caddy_service_dir }}/docker-compose.yml" up -d
|
||||||
when: caddy_compose.changed or caddy_file.changed
|
when: caddy_compose.changed or caddy_file.changed
|
||||||
tags:
|
tags:
|
||||||
- caddy
|
- caddy
|
||||||
- services
|
- services
|
||||||
- reverse-proxy
|
- reverse-proxy
|
||||||
|
@@ -4,7 +4,7 @@
|
|||||||
- name: Set Downloaders directories
|
- name: Set Downloaders directories
|
||||||
ansible.builtin.set_fact:
|
ansible.builtin.set_fact:
|
||||||
local_data_dir: "/mnt/data"
|
local_data_dir: "/mnt/data"
|
||||||
downloaders_service_dir: "{{ ansible_env.HOME }}/services/downloaders"
|
downloaders_service_dir: "{{ ansible_env.HOME }}/.services/downloaders"
|
||||||
downloaders_data_dir: "/mnt/services/downloaders"
|
downloaders_data_dir: "/mnt/services/downloaders"
|
||||||
|
|
||||||
- name: Create Downloaders directory
|
- name: Create Downloaders directory
|
||||||
|
@@ -3,7 +3,7 @@
|
|||||||
block:
|
block:
|
||||||
- name: Set Dozzle directories
|
- name: Set Dozzle directories
|
||||||
ansible.builtin.set_fact:
|
ansible.builtin.set_fact:
|
||||||
dozzle_service_dir: "{{ ansible_env.HOME }}/services/dozzle"
|
dozzle_service_dir: "{{ ansible_env.HOME }}/.services/dozzle"
|
||||||
dozzle_data_dir: "/mnt/services/dozzle"
|
dozzle_data_dir: "/mnt/services/dozzle"
|
||||||
|
|
||||||
- name: Create Dozzle directory
|
- name: Create Dozzle directory
|
||||||
|
@@ -3,11 +3,13 @@
|
|||||||
block:
|
block:
|
||||||
- name: Set EchoIP directories
|
- name: Set EchoIP directories
|
||||||
ansible.builtin.set_fact:
|
ansible.builtin.set_fact:
|
||||||
echoip_service_dir: "{{ ansible_env.HOME }}/services/echoip"
|
echoip_service_dir: "{{ ansible_env.HOME }}/.services/echoip"
|
||||||
echoip_data_dir: "/mnt/services/echoip"
|
echoip_data_dir: "/mnt/services/echoip"
|
||||||
maxmind_account_id: "{{ lookup('community.general.onepassword', 'MaxMind',
|
maxmind_account_id:
|
||||||
|
"{{ lookup('community.general.onepassword', 'MaxMind',
|
||||||
vault='Dotfiles', field='account_id') | regex_replace('\\s+', '') }}"
|
vault='Dotfiles', field='account_id') | regex_replace('\\s+', '') }}"
|
||||||
maxmind_license_key: "{{ lookup('community.general.onepassword', 'MaxMind',
|
maxmind_license_key:
|
||||||
|
"{{ lookup('community.general.onepassword', 'MaxMind',
|
||||||
vault='Dotfiles', field='license_key') | regex_replace('\\s+', '') }}"
|
vault='Dotfiles', field='license_key') | regex_replace('\\s+', '') }}"
|
||||||
|
|
||||||
# Requires: gather_facts: true in playbook
|
# Requires: gather_facts: true in playbook
|
||||||
|
@@ -3,7 +3,7 @@
|
|||||||
block:
|
block:
|
||||||
- name: Set Factorio directories
|
- name: Set Factorio directories
|
||||||
ansible.builtin.set_fact:
|
ansible.builtin.set_fact:
|
||||||
factorio_service_dir: "{{ ansible_env.HOME }}/services/factorio"
|
factorio_service_dir: "{{ ansible_env.HOME }}/.services/factorio"
|
||||||
factorio_data_dir: "/mnt/services/factorio"
|
factorio_data_dir: "/mnt/services/factorio"
|
||||||
|
|
||||||
- name: Create Factorio directory
|
- name: Create Factorio directory
|
||||||
|
@@ -4,7 +4,7 @@
|
|||||||
- name: Set Gitea directories
|
- name: Set Gitea directories
|
||||||
ansible.builtin.set_fact:
|
ansible.builtin.set_fact:
|
||||||
gitea_data_dir: "/mnt/services/gitea"
|
gitea_data_dir: "/mnt/services/gitea"
|
||||||
gitea_service_dir: "{{ ansible_env.HOME }}/services/gitea"
|
gitea_service_dir: "{{ ansible_env.HOME }}/.services/gitea"
|
||||||
|
|
||||||
- name: Create Gitea directories
|
- name: Create Gitea directories
|
||||||
ansible.builtin.file:
|
ansible.builtin.file:
|
||||||
|
@@ -4,7 +4,7 @@
|
|||||||
- name: Set GoLink directories
|
- name: Set GoLink directories
|
||||||
ansible.builtin.set_fact:
|
ansible.builtin.set_fact:
|
||||||
golink_data_dir: "/mnt/services/golink"
|
golink_data_dir: "/mnt/services/golink"
|
||||||
golink_service_dir: "{{ ansible_env.HOME }}/services/golink"
|
golink_service_dir: "{{ ansible_env.HOME }}/.services/golink"
|
||||||
|
|
||||||
- name: Create GoLink directories
|
- name: Create GoLink directories
|
||||||
ansible.builtin.file:
|
ansible.builtin.file:
|
||||||
|
@@ -4,7 +4,7 @@
|
|||||||
- name: Set Home Assistant directories
|
- name: Set Home Assistant directories
|
||||||
ansible.builtin.set_fact:
|
ansible.builtin.set_fact:
|
||||||
homeassistant_data_dir: "/mnt/services/homeassistant"
|
homeassistant_data_dir: "/mnt/services/homeassistant"
|
||||||
homeassistant_service_dir: "{{ ansible_env.HOME }}/services/homeassistant"
|
homeassistant_service_dir: "{{ ansible_env.HOME }}/.services/homeassistant"
|
||||||
|
|
||||||
- name: Create Home Assistant directories
|
- name: Create Home Assistant directories
|
||||||
ansible.builtin.file:
|
ansible.builtin.file:
|
||||||
|
@@ -5,7 +5,7 @@
|
|||||||
ansible.builtin.set_fact:
|
ansible.builtin.set_fact:
|
||||||
immich_data_dir: "/mnt/data/photos/immich-library"
|
immich_data_dir: "/mnt/data/photos/immich-library"
|
||||||
immich_database_dir: "/mnt/services/immich/postgres"
|
immich_database_dir: "/mnt/services/immich/postgres"
|
||||||
immich_service_dir: "{{ ansible_env.HOME }}/services/immich"
|
immich_service_dir: "{{ ansible_env.HOME }}/.services/immich"
|
||||||
|
|
||||||
- name: Create Immich directories
|
- name: Create Immich directories
|
||||||
ansible.builtin.file:
|
ansible.builtin.file:
|
||||||
|
@@ -3,7 +3,7 @@
|
|||||||
block:
|
block:
|
||||||
- name: Set Nextcloud directories
|
- name: Set Nextcloud directories
|
||||||
ansible.builtin.set_fact:
|
ansible.builtin.set_fact:
|
||||||
nextcloud_service_dir: "{{ ansible_env.HOME }}/services/nextcloud"
|
nextcloud_service_dir: "{{ ansible_env.HOME }}/.services/nextcloud"
|
||||||
nextcloud_data_dir: "/mnt/services/nextcloud"
|
nextcloud_data_dir: "/mnt/services/nextcloud"
|
||||||
|
|
||||||
- name: Create Nextcloud directory
|
- name: Create Nextcloud directory
|
||||||
|
@@ -4,7 +4,7 @@
|
|||||||
- name: Set Plex directories
|
- name: Set Plex directories
|
||||||
ansible.builtin.set_fact:
|
ansible.builtin.set_fact:
|
||||||
plex_data_dir: "/mnt/services/plex"
|
plex_data_dir: "/mnt/services/plex"
|
||||||
plex_service_dir: "{{ ansible_env.HOME }}/services/plex"
|
plex_service_dir: "{{ ansible_env.HOME }}/.services/plex"
|
||||||
|
|
||||||
- name: Create Plex directories
|
- name: Create Plex directories
|
||||||
ansible.builtin.file:
|
ansible.builtin.file:
|
||||||
|
@@ -4,7 +4,7 @@
|
|||||||
- name: Set PrivateBin directories
|
- name: Set PrivateBin directories
|
||||||
ansible.builtin.set_fact:
|
ansible.builtin.set_fact:
|
||||||
privatebin_data_dir: "/mnt/services/privatebin"
|
privatebin_data_dir: "/mnt/services/privatebin"
|
||||||
privatebin_service_dir: "{{ ansible_env.HOME }}/services/privatebin"
|
privatebin_service_dir: "{{ ansible_env.HOME }}/.services/privatebin"
|
||||||
|
|
||||||
- name: Create PrivateBin directories
|
- name: Create PrivateBin directories
|
||||||
ansible.builtin.file:
|
ansible.builtin.file:
|
||||||
|
@@ -3,7 +3,7 @@
|
|||||||
block:
|
block:
|
||||||
- name: Set Redis facts
|
- name: Set Redis facts
|
||||||
ansible.builtin.set_fact:
|
ansible.builtin.set_fact:
|
||||||
redis_service_dir: "{{ ansible_env.HOME }}/services/juicefs-redis"
|
redis_service_dir: "{{ ansible_env.HOME }}/.services/juicefs-redis"
|
||||||
redis_password: "{{ lookup('community.general.onepassword', 'JuiceFS (Redis)', vault='Dotfiles', field='password') }}"
|
redis_password: "{{ lookup('community.general.onepassword', 'JuiceFS (Redis)', vault='Dotfiles', field='password') }}"
|
||||||
|
|
||||||
- name: Create Redis service directory
|
- name: Create Redis service directory
|
||||||
@@ -76,5 +76,5 @@
|
|||||||
changed_when: docker_restart.rc == 0
|
changed_when: docker_restart.rc == 0
|
||||||
when: redis_compose.changed
|
when: redis_compose.changed
|
||||||
tags:
|
tags:
|
||||||
- services
|
- services
|
||||||
- redis
|
- redis
|
||||||
|
@@ -7,7 +7,7 @@
|
|||||||
|
|
||||||
- name: Check service directories existence for disabled services
|
- name: Check service directories existence for disabled services
|
||||||
ansible.builtin.stat:
|
ansible.builtin.stat:
|
||||||
path: "{{ ansible_env.HOME }}/services/{{ item.name }}"
|
path: "{{ ansible_env.HOME }}/.services/{{ item.name }}"
|
||||||
register: service_dir_results
|
register: service_dir_results
|
||||||
loop: "{{ services_to_cleanup }}"
|
loop: "{{ services_to_cleanup }}"
|
||||||
loop_control:
|
loop_control:
|
||||||
@@ -19,14 +19,14 @@
|
|||||||
|
|
||||||
- name: Check if docker-compose file exists for services to cleanup
|
- name: Check if docker-compose file exists for services to cleanup
|
||||||
ansible.builtin.stat:
|
ansible.builtin.stat:
|
||||||
path: "{{ ansible_env.HOME }}/services/{{ item.name }}/docker-compose.yml"
|
path: "{{ ansible_env.HOME }}/.services/{{ item.name }}/docker-compose.yml"
|
||||||
register: compose_file_results
|
register: compose_file_results
|
||||||
loop: "{{ services_with_dirs }}"
|
loop: "{{ services_with_dirs }}"
|
||||||
loop_control:
|
loop_control:
|
||||||
label: "{{ item.name }}"
|
label: "{{ item.name }}"
|
||||||
|
|
||||||
- name: Stop disabled services with docker-compose files
|
- name: Stop disabled services with docker-compose files
|
||||||
ansible.builtin.command: docker compose -f "{{ ansible_env.HOME }}/services/{{ item.item.name }}/docker-compose.yml" down --remove-orphans
|
ansible.builtin.command: docker compose -f "{{ ansible_env.HOME }}/.services/{{ item.item.name }}/docker-compose.yml" down --remove-orphans
|
||||||
loop: "{{ compose_file_results.results | selectattr('stat.exists', 'equalto', true) }}"
|
loop: "{{ compose_file_results.results | selectattr('stat.exists', 'equalto', true) }}"
|
||||||
loop_control:
|
loop_control:
|
||||||
label: "{{ item.item.name }}"
|
label: "{{ item.item.name }}"
|
||||||
@@ -36,7 +36,7 @@
|
|||||||
|
|
||||||
- name: Remove service directories for disabled services
|
- name: Remove service directories for disabled services
|
||||||
ansible.builtin.file:
|
ansible.builtin.file:
|
||||||
path: "{{ ansible_env.HOME }}/services/{{ item.name }}"
|
path: "{{ ansible_env.HOME }}/.services/{{ item.name }}"
|
||||||
state: absent
|
state: absent
|
||||||
loop: "{{ services_with_dirs }}"
|
loop: "{{ services_with_dirs }}"
|
||||||
loop_control:
|
loop_control:
|
||||||
|
@@ -3,9 +3,9 @@
|
|||||||
block:
|
block:
|
||||||
- name: Set Stash directories
|
- name: Set Stash directories
|
||||||
ansible.builtin.set_fact:
|
ansible.builtin.set_fact:
|
||||||
stash_data_dir: '/mnt/data/stash'
|
stash_data_dir: "/mnt/data/stash"
|
||||||
stash_config_dir: '/mnt/services/stash'
|
stash_config_dir: "/mnt/services/stash"
|
||||||
stash_service_dir: "{{ ansible_env.HOME }}/services/stash"
|
stash_service_dir: "{{ ansible_env.HOME }}/.services/stash"
|
||||||
|
|
||||||
- name: Create Stash directories
|
- name: Create Stash directories
|
||||||
ansible.builtin.file:
|
ansible.builtin.file:
|
||||||
|
@@ -4,7 +4,7 @@
|
|||||||
- name: Set Tautulli directories
|
- name: Set Tautulli directories
|
||||||
ansible.builtin.set_fact:
|
ansible.builtin.set_fact:
|
||||||
tautulli_data_dir: "{{ '/mnt/services/tautulli' }}"
|
tautulli_data_dir: "{{ '/mnt/services/tautulli' }}"
|
||||||
tautulli_service_dir: "{{ ansible_env.HOME }}/services/tautulli"
|
tautulli_service_dir: "{{ ansible_env.HOME }}/.services/tautulli"
|
||||||
|
|
||||||
- name: Create Tautulli directories
|
- name: Create Tautulli directories
|
||||||
ansible.builtin.file:
|
ansible.builtin.file:
|
||||||
|
@@ -4,7 +4,7 @@
|
|||||||
- name: Set Unifi Network App directories
|
- name: Set Unifi Network App directories
|
||||||
ansible.builtin.set_fact:
|
ansible.builtin.set_fact:
|
||||||
unifi_network_application_data_dir: "/mnt/services/unifi_network_application"
|
unifi_network_application_data_dir: "/mnt/services/unifi_network_application"
|
||||||
unifi_network_application_service_dir: "{{ ansible_env.HOME }}/services/unifi_network_application"
|
unifi_network_application_service_dir: "{{ ansible_env.HOME }}/.services/unifi_network_application"
|
||||||
|
|
||||||
- name: Create Unifi Network App directories
|
- name: Create Unifi Network App directories
|
||||||
ansible.builtin.file:
|
ansible.builtin.file:
|
||||||
|
@@ -3,7 +3,7 @@
|
|||||||
block:
|
block:
|
||||||
- name: Set WireGuard directories
|
- name: Set WireGuard directories
|
||||||
ansible.builtin.set_fact:
|
ansible.builtin.set_fact:
|
||||||
wireguard_service_dir: "{{ ansible_env.HOME }}/services/wireguard"
|
wireguard_service_dir: "{{ ansible_env.HOME }}/.services/wireguard"
|
||||||
wireguard_data_dir: "/mnt/services/wireguard"
|
wireguard_data_dir: "/mnt/services/wireguard"
|
||||||
|
|
||||||
- name: Create WireGuard directory
|
- name: Create WireGuard directory
|
||||||
|
Reference in New Issue
Block a user