Compare commits
24 Commits
f1b3417202
...
main
Author | SHA1 | Date | |
---|---|---|---|
b43560720e | |||
5e5cb703a6 | |||
9c50a6dcaf | |||
2269007083 | |||
6ebb25af72 | |||
b8364d8163 | |||
7a0a240ad8 | |||
2a8b5464e6 | |||
e43907992a | |||
6638b4d357 | |||
bdb6b109af | |||
17a5d0550d | |||
45f14658e4 | |||
a13a7adf67 | |||
069314f9d6 | |||
c418b61ede | |||
f5824a5ffe | |||
1ad9787b17 | |||
2593c84400 | |||
6b70fa2587 | |||
6702afc8f7 | |||
7a17b16980 | |||
a464d287b7 | |||
1df2e68180 |
12
README.adoc
12
README.adoc
@ -12,12 +12,14 @@ homelab.
|
|||||||
|
|
||||||
=== Containers
|
=== Containers
|
||||||
|
|
||||||
* NGINX
|
|
||||||
* Jellyfin
|
|
||||||
* OpenLDAP
|
|
||||||
* PostgreSQL
|
|
||||||
* Keycloak
|
|
||||||
* Authelia
|
* Authelia
|
||||||
|
* Jellyfin
|
||||||
|
* Keycloak
|
||||||
|
* NGINX
|
||||||
|
* OpenLDAP
|
||||||
|
* Portainer
|
||||||
|
* PostgreSQL
|
||||||
|
* Radarr
|
||||||
|
|
||||||
=== Testing
|
=== Testing
|
||||||
To run locally, specify the inventory file with `-i hosts`.
|
To run locally, specify the inventory file with `-i hosts`.
|
||||||
|
@ -14,3 +14,8 @@ tz: "Europe/Prague"
|
|||||||
media:
|
media:
|
||||||
tv: "{{ data_folder }}/media/tv"
|
tv: "{{ data_folder }}/media/tv"
|
||||||
movies: "{{ data_folder }}/media/movies"
|
movies: "{{ data_folder }}/media/movies"
|
||||||
|
downloads:
|
||||||
|
nzb: "{{ data_folder }}/downloads/nzb"
|
||||||
|
torrent: "{{ data_folder }}/downloads/torrent"
|
||||||
|
torrent_blackhole: "{{ data_folder }}/downloads/blackhole"
|
||||||
|
music: "{{ data_folder }}/downloads/music"
|
@ -3,12 +3,13 @@
|
|||||||
roles:
|
roles:
|
||||||
- docker
|
- docker
|
||||||
- nginx
|
- nginx
|
||||||
|
- openldap
|
||||||
- portainer
|
- portainer
|
||||||
- jellyfin
|
- jellyfin
|
||||||
- openldap
|
|
||||||
- postgres
|
- postgres
|
||||||
- authelia
|
- authelia
|
||||||
- keycloak
|
- keycloak
|
||||||
|
- radarr
|
||||||
vars_files:
|
vars_files:
|
||||||
- vault/certs/{{ base_domain }}.yml
|
- vault/certs/{{ base_domain }}.yml
|
||||||
- vault/passwords.yml
|
- vault/passwords.yml
|
||||||
|
@ -39,6 +39,8 @@ access_control:
|
|||||||
policy: one_factor
|
policy: one_factor
|
||||||
- domain: keycloak.{{ base_domain }}
|
- domain: keycloak.{{ base_domain }}
|
||||||
policy: one_factor
|
policy: one_factor
|
||||||
|
- domain: radarr.{{ base_domain }}
|
||||||
|
policy: two_factor
|
||||||
session:
|
session:
|
||||||
name: authelia_session
|
name: authelia_session
|
||||||
secret: somerandomsecret
|
secret: somerandomsecret
|
||||||
|
@ -29,7 +29,6 @@
|
|||||||
devices:
|
devices:
|
||||||
- /dev/dri:/dev/dri
|
- /dev/dri:/dev/dri
|
||||||
state: started
|
state: started
|
||||||
restart: yes
|
|
||||||
- name: copy jellyfin nginx config
|
- name: copy jellyfin nginx config
|
||||||
template:
|
template:
|
||||||
src: jellyfin.conf.j2
|
src: jellyfin.conf.j2
|
||||||
|
@ -53,4 +53,3 @@
|
|||||||
NGINX_HOST: "{{ base_domain }}"
|
NGINX_HOST: "{{ base_domain }}"
|
||||||
NGINX_PORT: '80'
|
NGINX_PORT: '80'
|
||||||
state: started
|
state: started
|
||||||
restart: yes
|
|
||||||
|
@ -30,4 +30,3 @@
|
|||||||
LDAP_ADMIN_PASSWORD: "{{ vault_openldap_admin_password }}"
|
LDAP_ADMIN_PASSWORD: "{{ vault_openldap_admin_password }}"
|
||||||
LDAP_REMOVE_CONFIG_AFTER_SETUP: "false"
|
LDAP_REMOVE_CONFIG_AFTER_SETUP: "false"
|
||||||
state: started
|
state: started
|
||||||
restart: yes
|
|
@ -1,6 +0,0 @@
|
|||||||
dn: dc=kucharczyk,dc=xyz
|
|
||||||
objectclass: top
|
|
||||||
objectclass: dcObject
|
|
||||||
objectclass: organization
|
|
||||||
dc: kucharczyk
|
|
||||||
o: Homelab
|
|
34
roles/radarr/tasks/main.yml
Normal file
34
roles/radarr/tasks/main.yml
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
- name: ensure directories exist
|
||||||
|
file:
|
||||||
|
path: "{{ item }}"
|
||||||
|
state: directory
|
||||||
|
mode: '0755'
|
||||||
|
loop:
|
||||||
|
- "{{ data_folder }}/radarr"
|
||||||
|
- "{{ media.tv }}"
|
||||||
|
- "{{ media.movies }}"
|
||||||
|
- "{{ downloads.nzb }}"
|
||||||
|
- name: run container
|
||||||
|
docker_container:
|
||||||
|
name: "{{ role_name }}"
|
||||||
|
image: "linuxserver/radarr"
|
||||||
|
networks:
|
||||||
|
- name: external
|
||||||
|
env:
|
||||||
|
"TZ": "{{ tz }}"
|
||||||
|
"PUID": "{{ puid }}"
|
||||||
|
"PGID": "{{ pgid }}"
|
||||||
|
"UMASK": "022"
|
||||||
|
volumes:
|
||||||
|
- "{{ data_folder }}/radarr:/config"
|
||||||
|
- "{{ downloads.nzb }}:/downloads"
|
||||||
|
- "{{ media.movies }}:/movies"
|
||||||
|
ports:
|
||||||
|
- "7878:7878"
|
||||||
|
state: started
|
||||||
|
- name: copy nginx conf
|
||||||
|
template:
|
||||||
|
src: "{{ role_name }}.conf.j2"
|
||||||
|
dest: "{{ data_folder }}/nginx/conf.d/{{ role_name }}.{{ base_domain }}.conf"
|
||||||
|
mode: "755"
|
||||||
|
notify: reload nginx
|
20
roles/radarr/templates/radarr.conf.j2
Normal file
20
roles/radarr/templates/radarr.conf.j2
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
server {
|
||||||
|
server_name {{ role_name }}.{{ base_domain }};
|
||||||
|
listen 80;
|
||||||
|
return 301 https://$server_name$request_uri;
|
||||||
|
}
|
||||||
|
|
||||||
|
server {
|
||||||
|
server_name {{ role_name }}.{{ base_domain }};
|
||||||
|
listen 443 ssl http2;
|
||||||
|
|
||||||
|
include /etc/nginx/snippets/authelia-endpoint.conf;
|
||||||
|
|
||||||
|
location / {
|
||||||
|
include /etc/nginx/snippets/proxy.conf;
|
||||||
|
include /etc/nginx/snippets/authelia-auth.conf;
|
||||||
|
|
||||||
|
set $upstream http://{{ role_name }}:7878;
|
||||||
|
proxy_pass $upstream;
|
||||||
|
}
|
||||||
|
}
|
Reference in New Issue
Block a user