diff --git a/README.md b/README.md index 79a3404..fdbf949 100644 --- a/README.md +++ b/README.md @@ -5,12 +5,12 @@ Some tips on how to use this repo. Mount last backup ----------------- ```bash -borg mount --info --foreground $REPO_FOLDER $MOUNT_POINT --last 1 +borg mount --info --foreground ${REPO_FOLDER} ${MOUNT_POINT} --last 1 ``` Create a full installation of the services inside a VM ------------------------------------------------------ ```bash -vagrant up #if your VM already exist it's best to do a vagrant destroy first -ansible-playbook -i staging playbook.yml -e 'backup_folder=$REPO_FOLDER' -``` \ No newline at end of file +vagrant up #if your VM already exists it's best to do a vagrant destroy first +ansible-playbook -i staging playbook.yml -e "backup_folder=${REPO_FOLDER}" +``` diff --git a/playbook.yml b/playbook.yml index 8d3bfb5..47768a8 100644 --- a/playbook.yml +++ b/playbook.yml @@ -3,8 +3,10 @@ become: true gather_facts: no vars: - docker_compose_files_folder: /etc/compose + docker_compose_files_folder: /etc/images + domain_name: banditlair.com + sub_domains: + - rpg roles: - - role: base - - role: base-docker - - role: murmur-docker \ No newline at end of file + - role: murmur-docker + - role: searx-docker \ No newline at end of file diff --git a/roles/base-docker/README.md b/roles/base-docker/README.md index 0b90591..f6fdf0a 100644 --- a/roles/base-docker/README.md +++ b/roles/base-docker/README.md @@ -4,8 +4,8 @@ Installs and configures docker Role Variables -------------- -`docker_compose_files_folder` The path where all the compose projects folders will be stored -`docker_compose_persistence_folder` The path where all persistent data will be stored, defaults to `/var/lib` +- `docker_compose_files_folder` The path where all the compose projects folders will be stored +- `docker_compose_persistence_folder` The path where all persistent data will be stored, defaults to `/var/lib` Dependencies ------------ diff --git a/roles/base/README.md b/roles/base/README.md index 05f4c53..e53b001 100644 --- a/roles/base/README.md +++ b/roles/base/README.md @@ -1,3 +1,3 @@ base ==== -Installs Ansible prerequisites if needed and than installs basic utility packages +Installs Ansible prerequisites if needed and then installs basic utility packages diff --git a/roles/nginx-proxy-docker/files/proxy/.env b/roles/nginx-proxy-docker/files/proxy/.env new file mode 100644 index 0000000..c384017 --- /dev/null +++ b/roles/nginx-proxy-docker/files/proxy/.env @@ -0,0 +1 @@ +COMPOSE_PROJECT_NAME=proxy diff --git a/roles/nginx-proxy-docker/files/proxy/docker-compose.yml b/roles/nginx-proxy-docker/files/proxy/docker-compose.yml new file mode 100644 index 0000000..9d41706 --- /dev/null +++ b/roles/nginx-proxy-docker/files/proxy/docker-compose.yml @@ -0,0 +1,33 @@ +version: '2.2' + +networks: + proxy-tier: + external: + name: nginx-proxy + +services: + nginx: + image: jwilder/nginx-proxy + ports: + - 80:80 + - 443:443 + volumes: + - ./nginx/conf.d:/etc/nginx/conf.d + - ./nginx/vhost.d:/etc/nginx/vhost.d + - ./nginx/html:/usr/share/nginx/html + - ./nginx/certs:/etc/nginx/certs:ro + - /var/run/docker.sock:/tmp/docker.sock:ro + networks: + - proxy-tier + restart: always + + letsencrypt-companion: + image: jrcs/letsencrypt-nginx-proxy-companion +# environment: +# - DEBUG=true + volumes_from: + - nginx + volumes: + - /var/run/docker.sock:/var/run/docker.sock:ro + - ./nginx/certs:/etc/nginx/certs:rw + restart: always diff --git a/roles/nginx-proxy-docker/files/proxy/nginx/conf.d/custom.conf b/roles/nginx-proxy-docker/files/proxy/nginx/conf.d/custom.conf new file mode 100644 index 0000000..c636de7 --- /dev/null +++ b/roles/nginx-proxy-docker/files/proxy/nginx/conf.d/custom.conf @@ -0,0 +1 @@ +client_max_body_size 10G; diff --git a/roles/nginx-proxy-docker/meta/main.yml b/roles/nginx-proxy-docker/meta/main.yml new file mode 100644 index 0000000..e075e71 --- /dev/null +++ b/roles/nginx-proxy-docker/meta/main.yml @@ -0,0 +1,2 @@ +dependencies: + - base-docker \ No newline at end of file diff --git a/roles/nginx-proxy-docker/tasks/main.yml b/roles/nginx-proxy-docker/tasks/main.yml new file mode 100644 index 0000000..f5611d0 --- /dev/null +++ b/roles/nginx-proxy-docker/tasks/main.yml @@ -0,0 +1,10 @@ +--- +- name: Copy proxy config + copy: src=proxy dest={{docker_compose_files_folder}} +- name: Copy certificates + copy: src={{backup_folder}}/{{docker_compose_files_folder}}/proxy/nginx/certs dest={{docker_compose_files_folder}}/proxy/nginx +- name: Create nginx-proxy docker network + docker_network: + name: nginx-proxy +- name: Start proxy docker project + docker_service: project_src={{docker_compose_files_folder}}/proxy state=present \ No newline at end of file diff --git a/roles/searx-docker/files/searx/.env b/roles/searx-docker/files/searx/.env new file mode 100644 index 0000000..5fc993e --- /dev/null +++ b/roles/searx-docker/files/searx/.env @@ -0,0 +1,7 @@ +COMPOSE_PROJECT_NAME=searx + +#Domains +DOMAIN=banditlair.com + +#Letsencrypt +LETSENCRYPT_EMAIL=letsencrypt.account@banditlair.com diff --git a/roles/searx-docker/files/searx/docker-compose.yml b/roles/searx-docker/files/searx/docker-compose.yml new file mode 100644 index 0000000..f4226ff --- /dev/null +++ b/roles/searx-docker/files/searx/docker-compose.yml @@ -0,0 +1,21 @@ +version: '2.2' + +networks: + proxy-tier: + external: + name: nginx-proxy + +services: + searx: + image: wonderfall/searx + environment: + - BASE_URL="https://${DOMAIN}" + - IMAGE_PROXY=True + - VIRTUAL_HOST=${DOMAIN} + - VIRTUAL_NETWORK=nginx-proxy + - VIRTUAL_PORT=8888 + - LETSENCRYPT_HOST=${DOMAIN},mail.banditlair.com,gitlab.banditlair.com,grafana.banditlair.com,cloud.banditlair.com,office.banditlair.com,plex.banditlair.com,sonar.banditlair.com,deluge.banditlair.com,rpg.banditlair.com,matrix.banditlair.com,emby.banditlair.com + - LETSENCRYPT_EMAIL=${LETSENCRYPT_EMAIL} + networks: + - proxy-tier + restart: always diff --git a/roles/searx-docker/meta/main.yml b/roles/searx-docker/meta/main.yml new file mode 100644 index 0000000..7ed8a84 --- /dev/null +++ b/roles/searx-docker/meta/main.yml @@ -0,0 +1,2 @@ +dependencies: + - nginx-proxy-docker \ No newline at end of file diff --git a/roles/searx-docker/tasks/main.yml b/roles/searx-docker/tasks/main.yml new file mode 100644 index 0000000..2b8ce61 --- /dev/null +++ b/roles/searx-docker/tasks/main.yml @@ -0,0 +1,5 @@ +--- +- name: Copy searx config + copy: src=searx dest={{docker_compose_files_folder}} +- name: Start searx docker project + docker_service: project_src={{docker_compose_files_folder}}/searx state=present \ No newline at end of file diff --git a/roles/searx-docker/tests/inventory b/roles/searx-docker/tests/inventory new file mode 100644 index 0000000..878877b --- /dev/null +++ b/roles/searx-docker/tests/inventory @@ -0,0 +1,2 @@ +localhost + diff --git a/roles/searx-docker/tests/test.yml b/roles/searx-docker/tests/test.yml new file mode 100644 index 0000000..00d7261 --- /dev/null +++ b/roles/searx-docker/tests/test.yml @@ -0,0 +1,5 @@ +--- +- hosts: localhost + remote_user: root + roles: + - searx-docker \ No newline at end of file