created roles and playbooks for schreinerei och.

This commit is contained in:
2026-03-21 14:34:30 +01:00
commit 092e6bc94e
24 changed files with 655 additions and 0 deletions

View File

@@ -0,0 +1,35 @@
# Readme
## General
this playbook is used to deploy docker and nginxproxymanager as docker containers on any hosts.
## inventory
setup a group in your inventory with the name: npm
also if this container is deployed, some other roles will be trying to use the variable 'proxy_type', be sure to set it in your host vars to 'npm'
## vars
### group vars
````
group_vars_npm_db_host:
group_vars_npm_db_name:
group_vars_npm_app_host:
group_vars_npm_docker_paths:
- /opt/docker/config/npm
````
### host vars
host_vars_npm_db_root_password:
host_vars_npm_db_user:
host_vars_npm_db_user_password:
## first start
login to your npm after the deployment
url: http://ip/hostname:8082
user: admin@example.com
pass: changeme

View File

@@ -0,0 +1,28 @@
---
- name: NPM | create project folders
ansible.builtin.file:
state: directory
mode: '0755'
path: "{{ item }}"
owner: root
group: root
with_items: "{{ group_vars_npm_docker_paths }}"
- name: NPM | create docker network "proxy"
community.docker.docker_network:
name: proxy
state: present
- name: NPM | copy docker-compose file
ansible.builtin.template:
src: docker-compose.yml.j2
dest: /opt/docker/config/npm/docker-compose.yml
owner: root
group: root
mode: '0644'
- name: NPM | start docker container
community.docker.docker_compose_v2:
project_src: /opt/docker/config/npm
state: present

View File

@@ -0,0 +1,56 @@
---
services:
{{ group_vars_npm_db_host }}:
image: 'jc21/mariadb-aria:latest'
restart: unless-stopped
networks:
- npm
container_name: {{ group_vars_npm_db_host }}
environment:
MYSQL_ROOT_PASSWORD: {{ host_vars_npm_db_root_password }}
MYSQL_DATABASE: {{ group_vars_npm_db_name }}
MYSQL_USER: {{ host_vars_npm_db_user}}
MYSQL_PASSWORD: {{ host_vars_npm_db_user_password }}
MARIADB_AUTO_UPGRADE: '1'
volumes:
- mysql:/var/lib/mysql
{{ group_vars_npm_app_host }}:
image: 'jc21/nginx-proxy-manager:latest'
restart: unless-stopped
container_name: {{ group_vars_npm_app_host }}
networks:
- npm
- proxy
ports:
- '80:80' # Public HTTP Port
- '443:443' # Public HTTPS Port
- '8082:81' # Admin Web Port
environment:
DB_MYSQL_HOST: {{ group_vars_npm_db_host }}
DB_MYSQL_PORT: 3306
DB_MYSQL_USER: {{ host_vars_npm_db_user }}
DB_MYSQL_PASSWORD: {{ host_vars_npm_db_user_password }}
DB_MYSQL_NAME: nginx
DISABLE_IPV6: 'true'
volumes:
- data:/data
- letsencrypt:/etc/letsencrypt
- custom:/etc/nginx/custom
depends_on:
- {{ group_vars_npm_db_host }}
networks:
proxy:
external: true
npm:
volumes:
data:
driver: local
letsencrypt:
driver: local
custom:
driver: local
mysql:
driver: local