Compare commits
6 Commits
c22e706114
...
2909d6e16c
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2909d6e16c | ||
|
|
0aed818be5 | ||
|
|
fbdeec93ce | ||
|
|
44626101de | ||
|
|
c1d6f13275 | ||
|
|
282e98e90a |
@@ -13,6 +13,8 @@ skip_list:
|
|||||||
- fqcn-builtins
|
- fqcn-builtins
|
||||||
- no-handler
|
- no-handler
|
||||||
- var-naming
|
- var-naming
|
||||||
|
- no-changed-when
|
||||||
|
- risky-shell-pipe
|
||||||
|
|
||||||
# Enforce certain rules that are not enabled by default.
|
# Enforce certain rules that are not enabled by default.
|
||||||
enable_list:
|
enable_list:
|
||||||
|
|||||||
@@ -3,9 +3,9 @@
|
|||||||
hosts: docker_host
|
hosts: docker_host
|
||||||
gather_facts: true
|
gather_facts: true
|
||||||
roles:
|
roles:
|
||||||
- role: common
|
# - role: common
|
||||||
tags:
|
# tags:
|
||||||
- common
|
# - common
|
||||||
- role: docker_host
|
- role: docker_host
|
||||||
tags:
|
tags:
|
||||||
- docker_host
|
- docker_host
|
||||||
|
|||||||
@@ -79,12 +79,13 @@
|
|||||||
path: ~/.config/nvim
|
path: ~/.config/nvim
|
||||||
register: nvim_config
|
register: nvim_config
|
||||||
|
|
||||||
- name: Clone LazyVim starter to Neovim config directory
|
- name: Clone personal Neovim config directory
|
||||||
ansible.builtin.git:
|
ansible.builtin.git:
|
||||||
repo: https://github.com/LazyVim/starter
|
repo: https://codeberg.org/tudattr/nvim
|
||||||
dest: ~/.config/nvim
|
dest: ~/.config/nvim
|
||||||
clone: true
|
clone: true
|
||||||
update: false
|
update: false
|
||||||
|
version: 1.0.0
|
||||||
when: not nvim_config.stat.exists
|
when: not nvim_config.stat.exists
|
||||||
|
|
||||||
- name: Remove .git directory from Neovim config
|
- name: Remove .git directory from Neovim config
|
||||||
|
|||||||
@@ -5,7 +5,6 @@
|
|||||||
state: directory
|
state: directory
|
||||||
mode: "0755"
|
mode: "0755"
|
||||||
loop:
|
loop:
|
||||||
- /media/docker
|
|
||||||
- /media/series
|
- /media/series
|
||||||
- /media/movies
|
- /media/movies
|
||||||
- /media/songs
|
- /media/songs
|
||||||
@@ -38,4 +37,5 @@
|
|||||||
- /media/series
|
- /media/series
|
||||||
- /media/movies
|
- /media/movies
|
||||||
- /media/songs
|
- /media/songs
|
||||||
|
- /media/downloads
|
||||||
become: true
|
become: true
|
||||||
|
|||||||
@@ -11,8 +11,8 @@
|
|||||||
- name: Setup directory structure for docker
|
- name: Setup directory structure for docker
|
||||||
ansible.builtin.include_tasks: 40_directory_setup.yml
|
ansible.builtin.include_tasks: 40_directory_setup.yml
|
||||||
|
|
||||||
- name: Deploy configs
|
# - name: Deploy configs
|
||||||
ansible.builtin.include_tasks: 50_provision.yml
|
# ansible.builtin.include_tasks: 50_provision.yml
|
||||||
|
|
||||||
- name: Deploy docker compose
|
- name: Deploy docker compose
|
||||||
ansible.builtin.include_tasks: 60_deploy_compose.yml
|
ansible.builtin.include_tasks: 60_deploy_compose.yml
|
||||||
|
|||||||
@@ -1,7 +1,5 @@
|
|||||||
docker_host_package_common_dependencies:
|
docker_host_package_common_dependencies:
|
||||||
- nfs-common
|
- nfs-common
|
||||||
- firmware-misc-nonfree
|
|
||||||
- linux-image-amd64
|
|
||||||
|
|
||||||
apt_lock_files:
|
apt_lock_files:
|
||||||
- /var/lib/dpkg/lock
|
- /var/lib/dpkg/lock
|
||||||
|
|||||||
@@ -2,11 +2,6 @@
|
|||||||
|
|
||||||
This role facilitates the management of Proxmox VE resources, including virtual machines (VMs) and LXC containers. It automates the setup of Proxmox nodes and the creation, configuration, and destruction of guests.
|
This role facilitates the management of Proxmox VE resources, including virtual machines (VMs) and LXC containers. It automates the setup of Proxmox nodes and the creation, configuration, and destruction of guests.
|
||||||
|
|
||||||
## Requirements
|
|
||||||
|
|
||||||
- `community.general.proxmox_vm_info`
|
|
||||||
- `community.general.proxmox_kvm`
|
|
||||||
|
|
||||||
## Role Variables
|
## Role Variables
|
||||||
|
|
||||||
| Variable | Description | Default Value |
|
| Variable | Description | Default Value |
|
||||||
|
|||||||
@@ -65,11 +65,11 @@ restart_vm() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
# Main execution
|
# Main execution
|
||||||
log_message "Starting monitoring of VM $VM_ID on port $PORT..."
|
# log_message "Starting monitoring of VM $VM_ID on port $PORT..."
|
||||||
|
|
||||||
# Check if port 22 is open
|
# Check if port 22 is open
|
||||||
if ! check_port; then
|
if ! check_port; then
|
||||||
restart_vm
|
restart_vm
|
||||||
else
|
# else
|
||||||
log_message "Port $PORT is reachable. VM is running normally."
|
# log_message "Port $PORT is reachable. VM is running normally."
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -23,6 +23,7 @@
|
|||||||
vfio_virqfd
|
vfio_virqfd
|
||||||
create: true
|
create: true
|
||||||
backup: true
|
backup: true
|
||||||
|
mode: 644
|
||||||
register: vfio_result
|
register: vfio_result
|
||||||
|
|
||||||
- name: Update initramfs
|
- name: Update initramfs
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
---
|
---
|
||||||
- name: Decrypt vm vault file
|
- name: Decrypt vm vault file
|
||||||
ansible.builtin.shell: cd ../; ansible-vault decrypt "./playbooks/{{ proxmox_vault_file }}"
|
ansible.builtin.shell: cd ../; ansible-vault decrypt "./playbooks/{{ proxmox_vault_file }}"
|
||||||
ignore_errors: true
|
|
||||||
no_log: true
|
no_log: true
|
||||||
|
|
||||||
- name: Load existing vault content
|
- name: Load existing vault content
|
||||||
@@ -43,5 +42,4 @@
|
|||||||
|
|
||||||
- name: Encrypt vm vault file
|
- name: Encrypt vm vault file
|
||||||
ansible.builtin.shell: cd ../; ansible-vault encrypt "./playbooks/{{ proxmox_vault_file }}"
|
ansible.builtin.shell: cd ../; ansible-vault encrypt "./playbooks/{{ proxmox_vault_file }}"
|
||||||
ignore_errors: true
|
|
||||||
no_log: true
|
no_log: true
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
- name: Gather info about VM
|
- name: Gather info about VM
|
||||||
community.general.proxmox_vm_info:
|
community.proxmox.proxmox_vm_info:
|
||||||
api_user: "{{ proxmox_api_user }}@pam"
|
api_user: "{{ proxmox_api_user }}@pam"
|
||||||
api_token_id: "{{ proxmox_api_token_id }}"
|
api_token_id: "{{ proxmox_api_token_id }}"
|
||||||
api_token_secret: "{{ proxmox_api_token_secret }}"
|
api_token_secret: "{{ proxmox_api_token_secret }}"
|
||||||
@@ -9,7 +9,7 @@
|
|||||||
register: vm_info
|
register: vm_info
|
||||||
|
|
||||||
- name: Stop VM
|
- name: Stop VM
|
||||||
community.general.proxmox_kvm:
|
community.proxmox.proxmox_kvm:
|
||||||
api_user: "{{ proxmox_api_user }}@pam"
|
api_user: "{{ proxmox_api_user }}@pam"
|
||||||
api_token_id: "{{ proxmox_api_token_id }}"
|
api_token_id: "{{ proxmox_api_token_id }}"
|
||||||
api_token_secret: "{{ proxmox_api_token_secret }}"
|
api_token_secret: "{{ proxmox_api_token_secret }}"
|
||||||
@@ -21,7 +21,7 @@
|
|||||||
when: vm_info.proxmox_vms | length > 0
|
when: vm_info.proxmox_vms | length > 0
|
||||||
|
|
||||||
- name: Destroy VM
|
- name: Destroy VM
|
||||||
community.general.proxmox_kvm:
|
community.proxmox.proxmox_kvm:
|
||||||
api_user: "{{ proxmox_api_user }}@pam"
|
api_user: "{{ proxmox_api_user }}@pam"
|
||||||
api_token_id: "{{ proxmox_api_token_id }}"
|
api_token_id: "{{ proxmox_api_token_id }}"
|
||||||
api_token_secret: "{{ proxmox_api_token_secret }}"
|
api_token_secret: "{{ proxmox_api_token_secret }}"
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
- name: Create VM
|
- name: Create VM
|
||||||
community.general.proxmox_kvm:
|
community.proxmox.proxmox_kvm:
|
||||||
api_user: "{{ proxmox_api_user }}@pam"
|
api_user: "{{ proxmox_api_user }}@pam"
|
||||||
api_token_id: "{{ proxmox_api_token_id }}"
|
api_token_id: "{{ proxmox_api_token_id }}"
|
||||||
api_token_secret: "{{ proxmox_api_token_secret }}"
|
api_token_secret: "{{ proxmox_api_token_secret }}"
|
||||||
|
|||||||
@@ -25,7 +25,7 @@
|
|||||||
delegate_to: "{{ vm.node }}"
|
delegate_to: "{{ vm.node }}"
|
||||||
|
|
||||||
- name: Start VM
|
- name: Start VM
|
||||||
community.general.proxmox_kvm:
|
community.proxmox.proxmox_kvm:
|
||||||
api_user: "{{ proxmox_api_user }}@pam"
|
api_user: "{{ proxmox_api_user }}@pam"
|
||||||
api_token_id: "{{ proxmox_api_token_id }}"
|
api_token_id: "{{ proxmox_api_token_id }}"
|
||||||
api_token_secret: "{{ proxmox_api_token_secret }}"
|
api_token_secret: "{{ proxmox_api_token_secret }}"
|
||||||
@@ -42,7 +42,7 @@
|
|||||||
seconds: 5
|
seconds: 5
|
||||||
|
|
||||||
- name: Start VM
|
- name: Start VM
|
||||||
community.general.proxmox_kvm:
|
community.proxmox.proxmox_kvm:
|
||||||
api_user: "{{ proxmox_api_user }}@pam"
|
api_user: "{{ proxmox_api_user }}@pam"
|
||||||
api_token_id: "{{ proxmox_api_token_id }}"
|
api_token_id: "{{ proxmox_api_token_id }}"
|
||||||
api_token_secret: "{{ proxmox_api_token_secret }}"
|
api_token_secret: "{{ proxmox_api_token_secret }}"
|
||||||
@@ -99,7 +99,7 @@
|
|||||||
- name: Creates PATH-entry for crontab
|
- name: Creates PATH-entry for crontab
|
||||||
ansible.builtin.cron:
|
ansible.builtin.cron:
|
||||||
name: PATH
|
name: PATH
|
||||||
env: yes
|
env: true
|
||||||
job: /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
|
job: /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
|
||||||
delegate_to: "{{ vm.node }}"
|
delegate_to: "{{ vm.node }}"
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
retry_count: "{{ 0 if retry_count is undefined else retry_count | int + 1 }}"
|
retry_count: "{{ 0 if retry_count is undefined else retry_count | int + 1 }}"
|
||||||
|
|
||||||
- name: Stop VM
|
- name: Stop VM
|
||||||
community.general.proxmox_kvm:
|
community.proxmox.proxmox_kvm:
|
||||||
api_user: "{{ proxmox_api_user }}@pam"
|
api_user: "{{ proxmox_api_user }}@pam"
|
||||||
api_token_id: "{{ proxmox_api_token_id }}"
|
api_token_id: "{{ proxmox_api_token_id }}"
|
||||||
api_token_secret: "{{ proxmox_api_token_secret }}"
|
api_token_secret: "{{ proxmox_api_token_secret }}"
|
||||||
@@ -16,7 +16,7 @@
|
|||||||
force: true
|
force: true
|
||||||
|
|
||||||
- name: Wait until VM is fully stopped
|
- name: Wait until VM is fully stopped
|
||||||
community.general.proxmox_vm_info:
|
community.proxmox.proxmox_vm_info:
|
||||||
api_user: "{{ proxmox_api_user }}@pam"
|
api_user: "{{ proxmox_api_user }}@pam"
|
||||||
api_token_id: "{{ proxmox_api_token_id }}"
|
api_token_id: "{{ proxmox_api_token_id }}"
|
||||||
api_token_secret: "{{ proxmox_api_token_secret }}"
|
api_token_secret: "{{ proxmox_api_token_secret }}"
|
||||||
|
|||||||
@@ -1,14 +1,14 @@
|
|||||||
---
|
---
|
||||||
- name: Setup DNS on Netcup
|
# - name: Setup DNS on Netcup
|
||||||
community.general.netcup_dns:
|
# community.general.netcup_dns:
|
||||||
api_key: "{{ netcup_api_key }}"
|
# api_key: "{{ netcup_api_key }}"
|
||||||
api_password: "{{ netcup_api_password }}"
|
# api_password: "{{ netcup_api_password }}"
|
||||||
customer_id: "{{ netcup_customer_id }}"
|
# customer_id: "{{ netcup_customer_id }}"
|
||||||
domain: "{{ domain }}"
|
# domain: "{{ domain }}"
|
||||||
name: "{{ service.name }}"
|
# name: "{{ service.name }}"
|
||||||
type: "A"
|
# type: "A"
|
||||||
value: "{{ hostvars['docker-lb'].ansible_default_ipv4.address }}"
|
# value: "{{ hostvars['docker-lb'].ansible_default_ipv4.address }}"
|
||||||
loop: "{{ services }}"
|
# loop: "{{ services }}"
|
||||||
loop_control:
|
# loop_control:
|
||||||
loop_var: service
|
# loop_var: service
|
||||||
delegate_to: localhost
|
# delegate_to: localhost
|
||||||
|
|||||||
@@ -1,7 +1,5 @@
|
|||||||
[docker_host]
|
[docker_host]
|
||||||
docker-host11
|
docker-host11
|
||||||
docker-host10
|
|
||||||
docker-host12
|
|
||||||
|
|
||||||
[docker_lb]
|
[docker_lb]
|
||||||
docker-lb
|
docker-lb
|
||||||
|
|||||||
@@ -7,75 +7,6 @@ docker:
|
|||||||
compose: "/opt/docker/compose/"
|
compose: "/opt/docker/compose/"
|
||||||
|
|
||||||
services:
|
services:
|
||||||
- name: status
|
|
||||||
vm:
|
|
||||||
- docker-host12
|
|
||||||
container_name: kuma
|
|
||||||
image: louislam/uptime-kuma:1.23.16
|
|
||||||
volumes:
|
|
||||||
- name: "Data"
|
|
||||||
internal: /app/data
|
|
||||||
external: "{{ docker.directories.local }}/kuma/"
|
|
||||||
ports:
|
|
||||||
- name: "http"
|
|
||||||
internal: 3001
|
|
||||||
external: "{{ services_external_http.kuma }}"
|
|
||||||
environment:
|
|
||||||
- PUID=1000
|
|
||||||
- PGID=1000
|
|
||||||
- TZ=Europe/Berlin
|
|
||||||
- name: plex
|
|
||||||
vm:
|
|
||||||
- docker-host10
|
|
||||||
container_name: plex
|
|
||||||
image: lscr.io/linuxserver/plex:1.41.5
|
|
||||||
volumes:
|
|
||||||
- name: "Configuration"
|
|
||||||
internal: /config
|
|
||||||
external: "{{ docker.directories.local }}/plex/config/"
|
|
||||||
- name: "TV Series"
|
|
||||||
internal: /tv:ro
|
|
||||||
external: /media/series
|
|
||||||
- name: "Movies"
|
|
||||||
internal: /movies:ro
|
|
||||||
external: /media/movies
|
|
||||||
- name: "Music"
|
|
||||||
internal: /music:ro
|
|
||||||
external: /media/songs
|
|
||||||
devices:
|
|
||||||
- name: "Graphics Card"
|
|
||||||
internal: /dev/dri
|
|
||||||
external: /dev/dri
|
|
||||||
ports:
|
|
||||||
- name: "http"
|
|
||||||
internal: 32400
|
|
||||||
external: "{{ services_external_http.plex }}"
|
|
||||||
- name: ""
|
|
||||||
internal: 1900
|
|
||||||
external: 1900
|
|
||||||
- name: ""
|
|
||||||
internal: 3005
|
|
||||||
external: 3005
|
|
||||||
- name: ""
|
|
||||||
internal: 5353
|
|
||||||
external: 5353
|
|
||||||
- name: ""
|
|
||||||
internal: 32410
|
|
||||||
external: 32410
|
|
||||||
- name: ""
|
|
||||||
internal: 8324
|
|
||||||
external: 8324
|
|
||||||
- name: ""
|
|
||||||
internal: 32412
|
|
||||||
external: 32412
|
|
||||||
- name: ""
|
|
||||||
internal: 32469
|
|
||||||
external: 32469
|
|
||||||
environment:
|
|
||||||
- PUID=1000
|
|
||||||
- PGID=1000
|
|
||||||
- TZ=Europe/Berlin
|
|
||||||
- VERSION=docker
|
|
||||||
- name: jellyfin
|
- name: jellyfin
|
||||||
vm:
|
vm:
|
||||||
- docker-host11
|
- docker-host11
|
||||||
@@ -106,182 +37,6 @@ services:
|
|||||||
internal: 8096
|
internal: 8096
|
||||||
external: "{{ services_external_http.jellyfin }}"
|
external: "{{ services_external_http.jellyfin }}"
|
||||||
environment:
|
environment:
|
||||||
- name: hass
|
|
||||||
vm:
|
|
||||||
- docker-host11
|
|
||||||
container_name: homeassistant
|
|
||||||
image: "ghcr.io/home-assistant/home-assistant:stable"
|
|
||||||
privileged: true
|
|
||||||
volumes:
|
|
||||||
- name: "Configuration"
|
|
||||||
internal: /config/
|
|
||||||
external: "{{ docker.directories.local }}/home-assistant/config/"
|
|
||||||
- name: "Local Time"
|
|
||||||
internal: /etc/localtime:ro
|
|
||||||
external: /etc/localtime
|
|
||||||
ports:
|
|
||||||
- name: "http"
|
|
||||||
internal: 8123
|
|
||||||
external: "{{ services_external_http.hass }}"
|
|
||||||
- name: ""
|
|
||||||
internal: 4357
|
|
||||||
external: 4357
|
|
||||||
- name: ""
|
|
||||||
internal: 5683
|
|
||||||
external: 5683
|
|
||||||
- name: ""
|
|
||||||
internal: 5683
|
|
||||||
external: 5683
|
|
||||||
- name: ddns
|
|
||||||
vm:
|
|
||||||
- docker-host12
|
|
||||||
container_name: ddns-updater
|
|
||||||
image: qmcgaw/ddns-updater:2
|
|
||||||
volumes:
|
|
||||||
- name: "Configuration"
|
|
||||||
internal: /updater/data/
|
|
||||||
external: "{{ docker.directories.local }}/ddns-updater/data/"
|
|
||||||
ports:
|
|
||||||
- name: "http"
|
|
||||||
internal: 8000
|
|
||||||
external: "{{ services_external_http.ddns }}"
|
|
||||||
- name: sonarr
|
|
||||||
vm:
|
|
||||||
- docker-host12
|
|
||||||
container_name: sonarr
|
|
||||||
image: linuxserver/sonarr:4.0.14
|
|
||||||
volumes:
|
|
||||||
- name: "Configuration"
|
|
||||||
internal: /config
|
|
||||||
external: "{{ docker.directories.local }}/sonarr/config"
|
|
||||||
- name: "Tv Series"
|
|
||||||
internal: /tv
|
|
||||||
external: /media/series
|
|
||||||
- name: "Torrent Downloads"
|
|
||||||
internal: /downloads
|
|
||||||
external: /media/docker/data/arr_downloads/sonarr
|
|
||||||
ports:
|
|
||||||
- name: "http"
|
|
||||||
internal: 8989
|
|
||||||
external: "{{ services_external_http.sonarr }}"
|
|
||||||
environment:
|
|
||||||
- PUID=1000
|
|
||||||
- PGID=1000
|
|
||||||
- TZ=Europe/Berlin
|
|
||||||
- name: radarr
|
|
||||||
vm:
|
|
||||||
- docker-host12
|
|
||||||
container_name: radarr
|
|
||||||
image: linuxserver/radarr:5.21.1
|
|
||||||
volumes:
|
|
||||||
- name: "Configuration"
|
|
||||||
internal: /config
|
|
||||||
external: "{{ docker.directories.local }}/radarr/config"
|
|
||||||
- name: "Movies"
|
|
||||||
internal: /movies
|
|
||||||
external: /media/movies
|
|
||||||
- name: "Torrent Downloads"
|
|
||||||
internal: /downloads
|
|
||||||
external: /media/docker/data/arr_downloads/radarr
|
|
||||||
ports:
|
|
||||||
- name: "http"
|
|
||||||
internal: 7878
|
|
||||||
external: "{{ services_external_http.radarr }}"
|
|
||||||
environment:
|
|
||||||
- PUID=1000
|
|
||||||
- PGID=1000
|
|
||||||
- TZ=Europe/Berlin
|
|
||||||
- name: lidarr
|
|
||||||
vm:
|
|
||||||
- docker-host12
|
|
||||||
container_name: lidarr
|
|
||||||
image: linuxserver/lidarr:2.10.3
|
|
||||||
volumes:
|
|
||||||
- name: "Configuration"
|
|
||||||
internal: /config
|
|
||||||
external: "{{ docker.directories.local }}/lidarr/config"
|
|
||||||
- name: "Music"
|
|
||||||
internal: /music
|
|
||||||
external: /media/songs
|
|
||||||
- name: "Torrent Downloads"
|
|
||||||
internal: /downloads
|
|
||||||
external: /media/docker/data/arr_downloads/lidarr
|
|
||||||
ports:
|
|
||||||
- name: "http"
|
|
||||||
internal: 8686
|
|
||||||
external: "{{ services_external_http.lidarr }}"
|
|
||||||
environment:
|
|
||||||
- PUID=1000
|
|
||||||
- PGID=1000
|
|
||||||
- TZ=Europe/Berlin
|
|
||||||
- name: prowlarr
|
|
||||||
vm:
|
|
||||||
- docker-host12
|
|
||||||
container_name: prowlarr
|
|
||||||
image: linuxserver/prowlarr:1.32.2
|
|
||||||
volumes:
|
|
||||||
- name: "Configuration"
|
|
||||||
internal: /config
|
|
||||||
external: "{{ docker.directories.local }}/prowlarr/config"
|
|
||||||
ports:
|
|
||||||
- name: "http"
|
|
||||||
internal: 9696
|
|
||||||
external: "{{ services_external_http.prowlarr }}"
|
|
||||||
environment:
|
|
||||||
- PUID=1000
|
|
||||||
- PGID=1000
|
|
||||||
- TZ=Europe/Berlin
|
|
||||||
- name: paperless
|
|
||||||
vm:
|
|
||||||
- docker-host12
|
|
||||||
container_name: paperless
|
|
||||||
image: ghcr.io/paperless-ngx/paperless-ngx:2.14
|
|
||||||
depends_on:
|
|
||||||
- paperless-postgres
|
|
||||||
- paperless-redis
|
|
||||||
volumes:
|
|
||||||
- name: "Configuration"
|
|
||||||
internal: /usr/src/paperless/data
|
|
||||||
external: "{{ docker.directories.local }}/paperless/data/data"
|
|
||||||
- name: "Media"
|
|
||||||
internal: /usr/src/paperless/media
|
|
||||||
external: "{{ docker.directories.local }}/paperless/data/media"
|
|
||||||
- name: "Document Export"
|
|
||||||
internal: /usr/src/paperless/export
|
|
||||||
external: "{{ docker.directories.local }}/paperless/data/export"
|
|
||||||
- name: "Document Consume"
|
|
||||||
internal: /usr/src/paperless/consume
|
|
||||||
external: "{{ docker.directories.local }}/paperless/data/consume"
|
|
||||||
environment:
|
|
||||||
- "PAPERLESS_REDIS=redis://paperless-redis:6379"
|
|
||||||
- "PAPERLESS_DBHOST=paperless-postgres"
|
|
||||||
- "PAPERLESS_DBUSER=paperless"
|
|
||||||
- "PAPERLESS_DBPASS={{ vault_docker.paperless.dbpass }}"
|
|
||||||
- "USERMAP_UID=1000"
|
|
||||||
- "USERMAP_GID=1000"
|
|
||||||
- "PAPERLESS_URL=https://paperless.{{ domain }}"
|
|
||||||
- "PAPERLESS_TIME_ZONE=Europe/Berlin"
|
|
||||||
- "PAPERLESS_OCR_LANGUAGE=deu"
|
|
||||||
ports:
|
|
||||||
- name: "http"
|
|
||||||
internal: 8000
|
|
||||||
external: "{{ services_external_http.paperless }}"
|
|
||||||
sub_service:
|
|
||||||
- name: postgres
|
|
||||||
version: 15
|
|
||||||
username: paperless
|
|
||||||
password: "{{ vault_docker.paperless.dbpass }}"
|
|
||||||
- name: redis
|
|
||||||
version: 7
|
|
||||||
- name: pdf
|
|
||||||
vm:
|
|
||||||
- docker-host12
|
|
||||||
container_name: stirling
|
|
||||||
image: frooodle/s-pdf:0.45.0
|
|
||||||
ports:
|
|
||||||
- name: "http"
|
|
||||||
internal: 8080
|
|
||||||
external: "{{ services_external_http.pdf }}"
|
|
||||||
- name: git
|
- name: git
|
||||||
vm:
|
vm:
|
||||||
- docker-host11
|
- docker-host11
|
||||||
@@ -310,193 +65,3 @@ services:
|
|||||||
environment:
|
environment:
|
||||||
- USER_UID=1000
|
- USER_UID=1000
|
||||||
- USER_GID=1000
|
- USER_GID=1000
|
||||||
- name: changedetection
|
|
||||||
vm:
|
|
||||||
- docker-host12
|
|
||||||
container_name: changedetection
|
|
||||||
image: dgtlmoon/changedetection.io:0.49
|
|
||||||
healthcheck: curl
|
|
||||||
volumes:
|
|
||||||
- name: "Data"
|
|
||||||
internal: /datastore
|
|
||||||
external: "{{ docker.directories.local }}/changedetection/data/"
|
|
||||||
ports:
|
|
||||||
- name: "http"
|
|
||||||
internal: 5000
|
|
||||||
external: "{{ services_external_http.changedetection }}"
|
|
||||||
- name: gluetun
|
|
||||||
vm:
|
|
||||||
- docker-host12
|
|
||||||
container_name: gluetun
|
|
||||||
image: qmcgaw/gluetun:v3.40
|
|
||||||
cap_add:
|
|
||||||
- NET_ADMIN
|
|
||||||
devices:
|
|
||||||
- name: "Tunnel"
|
|
||||||
internal: /dev/net/tun
|
|
||||||
external: /dev/net/tun
|
|
||||||
volumes:
|
|
||||||
- name: "Configuration"
|
|
||||||
internal: /gluetun
|
|
||||||
external: "{{ docker.directories.local }}/gluetun/config"
|
|
||||||
ports:
|
|
||||||
- name: "Qbit Client"
|
|
||||||
internal: 8082
|
|
||||||
external: 8082
|
|
||||||
- name: "Torrentleech Client"
|
|
||||||
internal: 8083
|
|
||||||
external: 8083
|
|
||||||
environment:
|
|
||||||
- PUID=1000
|
|
||||||
- PGID=1000
|
|
||||||
- TZ=Europe/Berlin
|
|
||||||
- VPN_SERVICE_PROVIDER=protonvpn
|
|
||||||
- UPDATER_VPN_SERVICE_PROVIDERS=protonvpn
|
|
||||||
- UPDATER_PERIOD=24h
|
|
||||||
- "SERVER_COUNTRIES={{ vault_docker.proton.country }}"
|
|
||||||
- "OPENVPN_USER={{ vault_docker.proton.openvpn_user }}"
|
|
||||||
- "OPENVPN_PASSWORD={{ vault_docker.proton.openvpn_password }}"
|
|
||||||
- name: torrentleech
|
|
||||||
vm:
|
|
||||||
- docker-host12
|
|
||||||
container_name: torrentleech
|
|
||||||
image: qbittorrentofficial/qbittorrent-nox
|
|
||||||
depends_on:
|
|
||||||
- gluetun
|
|
||||||
network_mode: "container:gluetun"
|
|
||||||
volumes:
|
|
||||||
- name: "Configuration"
|
|
||||||
internal: /config
|
|
||||||
external: "{{ docker.directories.local }}/torrentleech/config"
|
|
||||||
- name: "Downloads"
|
|
||||||
internal: /downloads
|
|
||||||
external: /media/docker/data/arr_downloads
|
|
||||||
ports:
|
|
||||||
- name: "http"
|
|
||||||
internal: proxy_only
|
|
||||||
external: 8083
|
|
||||||
environment:
|
|
||||||
- PUID=1000
|
|
||||||
- PGID=1000
|
|
||||||
- TZ=Europe/Berlin
|
|
||||||
- QBT_EULA="accept"
|
|
||||||
- QBT_WEBUI_PORT="8083"
|
|
||||||
- name: qbit
|
|
||||||
vm:
|
|
||||||
- docker-host12
|
|
||||||
container_name: qbit
|
|
||||||
image: qbittorrentofficial/qbittorrent-nox:5.0.4-1
|
|
||||||
depends_on:
|
|
||||||
- gluetun
|
|
||||||
network_mode: "container:gluetun"
|
|
||||||
volumes:
|
|
||||||
- name: "Configuration"
|
|
||||||
internal: /config
|
|
||||||
external: "{{ docker.directories.local }}/qbit/config"
|
|
||||||
- name: "Downloads"
|
|
||||||
internal: /downloads
|
|
||||||
external: /media/docker/data/arr_downloads
|
|
||||||
ports:
|
|
||||||
- name: "http"
|
|
||||||
internal: proxy_only
|
|
||||||
external: 8082
|
|
||||||
environment:
|
|
||||||
- PUID=1000
|
|
||||||
- PGID=1000
|
|
||||||
- TZ=Europe/Berlin
|
|
||||||
- QBT_EULA="accept"
|
|
||||||
- QBT_WEBUI_PORT="8082"
|
|
||||||
- name: cadvisor
|
|
||||||
vm:
|
|
||||||
- docker-host10
|
|
||||||
- docker-host11
|
|
||||||
- docker-host12
|
|
||||||
container_name: cadvisor
|
|
||||||
image: gcr.io/cadvisor/cadvisor:v0.52.1
|
|
||||||
ports:
|
|
||||||
- name: ""
|
|
||||||
internal: 8080
|
|
||||||
external: 8081
|
|
||||||
volumes:
|
|
||||||
- name: "Root"
|
|
||||||
internal: /rootfs:ro
|
|
||||||
external: /
|
|
||||||
- name: "Run"
|
|
||||||
internal: /var/run:rw
|
|
||||||
external: /var/run
|
|
||||||
- name: "System"
|
|
||||||
internal: /sys:ro
|
|
||||||
external: /sys
|
|
||||||
- name: "Docker"
|
|
||||||
internal: /var/lib/docker:ro
|
|
||||||
external: /var/lib/docker
|
|
||||||
- name: karakeep
|
|
||||||
vm:
|
|
||||||
- docker-host11
|
|
||||||
container_name: karakeep
|
|
||||||
image: ghcr.io/karakeep-app/karakeep:0.23.2
|
|
||||||
ports:
|
|
||||||
- name: "http"
|
|
||||||
internal: 3000
|
|
||||||
external: "{{ services_external_http.karakeep }}"
|
|
||||||
volumes:
|
|
||||||
- name: "Data"
|
|
||||||
internal: /data
|
|
||||||
external: "{{ docker.directories.local }}/karakeep/config"
|
|
||||||
environment:
|
|
||||||
- MEILI_ADDR=http://karakeep-meilisearch:7700
|
|
||||||
- BROWSER_WEB_URL=http://karakeep-chrome:9222
|
|
||||||
- NEXTAUTH_SECRET={{ vault_docker.karakeep.nextauth_secret }}
|
|
||||||
- MEILI_MASTER_KEY={{ vault_docker.karakeep.meili_master_key }}
|
|
||||||
- NEXTAUTH_URL=https://karakeep.tudattr.dev/
|
|
||||||
- OPENAI_API_KEY={{ vault_docker.karakeep.openai_key }}
|
|
||||||
- DATA_DIR=/data
|
|
||||||
- DISABLE_SIGNUPS=true
|
|
||||||
sub_service:
|
|
||||||
- name: meilisearch
|
|
||||||
version: v1.11.1
|
|
||||||
nextauth_secret: "{{ vault_docker.karakeep.nextauth_secret }}"
|
|
||||||
meili_master_key: "{{ vault_docker.karakeep.meili_master_key }}"
|
|
||||||
openai_key: "{{ vault_docker.karakeep.openai_key }}"
|
|
||||||
- name: chrome
|
|
||||||
version: 123
|
|
||||||
# - name: keycloak
|
|
||||||
# vm:
|
|
||||||
# - docker-host11
|
|
||||||
# container_name: keycloak
|
|
||||||
# image: quay.io/keycloak/keycloak:26.2
|
|
||||||
# depends_on:
|
|
||||||
# - keycloak-postgres
|
|
||||||
# ports:
|
|
||||||
# - name: "http"
|
|
||||||
# internal: 8080
|
|
||||||
# external: "{{ services_external_http.keycloak }}"
|
|
||||||
# volumes:
|
|
||||||
# - name: "config"
|
|
||||||
# internal: /opt/keycloak/data/import/homelab-realm.json
|
|
||||||
# external: "{{ docker.directories.local }}/keycloak/homelab-realm.json"
|
|
||||||
# - name: "config"
|
|
||||||
# internal: /opt/keycloak/data/import/master-realm.json
|
|
||||||
# external: "{{ docker.directories.local }}/keycloak/master-realm.json"
|
|
||||||
# command:
|
|
||||||
# - "start"
|
|
||||||
# - "--import-realm"
|
|
||||||
# environment:
|
|
||||||
# - KC_DB=postgres
|
|
||||||
# - KC_DB_URL=jdbc:postgresql://keycloak-postgres:5432/keycloak
|
|
||||||
# - KC_DB_USERNAME={{ keycloak_config.database.username }}
|
|
||||||
# - KC_DB_PASSWORD={{ keycloak_config.database.password }}
|
|
||||||
# - KC_HOSTNAME=keycloak.{{ internal_domain }}
|
|
||||||
# - KC_HTTP_ENABLED=true
|
|
||||||
# - KC_HTTP_RELATIVE_PATH=/
|
|
||||||
# - KC_PROXY=edge
|
|
||||||
# - KC_PROXY_HEADERS=xforwarded
|
|
||||||
# - KC_HOSTNAME_URL=https://keycloak.{{ internal_domain }}
|
|
||||||
# - KC_HOSTNAME_ADMIN_URL=https://keycloak.{{ internal_domain }}
|
|
||||||
# - KC_BOOTSTRAP_ADMIN_USERNAME=serviceadmin-{{ keycloak_admin_hash }}
|
|
||||||
# - KC_BOOTSTRAP_ADMIN_PASSWORD={{ vault_docker.keycloak.admin.password }}
|
|
||||||
# sub_service:
|
|
||||||
# - name: postgres
|
|
||||||
# version: 17
|
|
||||||
# username: "{{ keycloak_config.database.username }}"
|
|
||||||
# password: "{{ keycloak_config.database.password }}"
|
|
||||||
|
|||||||
@@ -13,7 +13,6 @@ argocd_hostname: "argocd.k3s.{{ domain }}"
|
|||||||
metallb_ip_range: "192.168.20.240-192.168.20.250"
|
metallb_ip_range: "192.168.20.240-192.168.20.250"
|
||||||
|
|
||||||
kubernetes_nfs_server_host: "{{ nfs_server }}"
|
kubernetes_nfs_server_host: "{{ nfs_server }}"
|
||||||
kubernetes_nfs_server_path: /media/kubernetes
|
|
||||||
|
|
||||||
argocd_git_repository: https://git.seyshiro.de/tudattr/homelab-argocd
|
argocd_git_repository: https://git.seyshiro.de/tudattr/homelab-argocd
|
||||||
argocd_git_username: tudattr
|
argocd_git_username: tudattr
|
||||||
|
|||||||
@@ -1,17 +1,4 @@
|
|||||||
vms:
|
vms:
|
||||||
- name: "docker-host10"
|
|
||||||
node: "lulu"
|
|
||||||
vmid: 410
|
|
||||||
cores: 2
|
|
||||||
memory: 4096 # in MiB
|
|
||||||
net:
|
|
||||||
net0: "virtio,bridge=vmbr0,firewall=1"
|
|
||||||
boot_image: "{{ proxmox_cloud_init_images.debian.name }}"
|
|
||||||
ciuser: "{{ user }}"
|
|
||||||
sshkeys: "{{ pubkey }}"
|
|
||||||
disk_size: 128 # in Gb
|
|
||||||
hostpci:
|
|
||||||
hostpci0: "mapping=quicksync-lulu"
|
|
||||||
- name: "docker-host11"
|
- name: "docker-host11"
|
||||||
node: "inko01"
|
node: "inko01"
|
||||||
vmid: 411
|
vmid: 411
|
||||||
@@ -25,17 +12,6 @@ vms:
|
|||||||
disk_size: 128 # in Gb
|
disk_size: 128 # in Gb
|
||||||
hostpci:
|
hostpci:
|
||||||
hostpci0: "mapping=quicksync-inko01"
|
hostpci0: "mapping=quicksync-inko01"
|
||||||
- name: "docker-host12"
|
|
||||||
node: "inko01"
|
|
||||||
vmid: 412
|
|
||||||
cores: 4
|
|
||||||
memory: 8192
|
|
||||||
net:
|
|
||||||
net0: "virtio,bridge=vmbr0,firewall=1"
|
|
||||||
boot_image: "{{ proxmox_cloud_init_images.ubuntu.name }}"
|
|
||||||
ciuser: "{{ user }}"
|
|
||||||
sshkeys: "{{ pubkey }}"
|
|
||||||
disk_size: 128 # in Gb
|
|
||||||
- name: "k3s-server10"
|
- name: "k3s-server10"
|
||||||
node: "naruto01"
|
node: "naruto01"
|
||||||
vmid: 110
|
vmid: 110
|
||||||
|
|||||||
Reference in New Issue
Block a user