Compare commits

...

3 Commits

17 changed files with 83 additions and 36 deletions

View File

@ -115,6 +115,9 @@ nginx_upstreams_directory: "{{nginx_configuration_directory}}upstreams/"
enable_central_database: true enable_central_database: true
enable_central_database_mailu: "{{enable_central_database}}" enable_central_database_mailu: "{{enable_central_database}}"
### Enable Storage Optimizer for Docker Volumes
enable_system_storage_optimizer: true
### Domain Names for Various Services ### Domain Names for Various Services
domain_akaunting: "akaunting.{{top_domain}}" domain_akaunting: "akaunting.{{top_domain}}"
domain_baserow: "baserow.{{top_domain}}" domain_baserow: "baserow.{{top_domain}}"
@ -155,7 +158,7 @@ akaunting_company_email: "DUMMY_VALUE_NEEDS_TO_BE_CHANGED"
akaunting_setup_admin_email: "DUMMY_VALUE_NEEDS_TO_BE_CHANGED" akaunting_setup_admin_email: "DUMMY_VALUE_NEEDS_TO_BE_CHANGED"
#### Big Blue Button #### Big Blue Button
bigbluebutton_enable_greenlight: "false" bigbluebutton_enable_greenlight: "true"
#### Listmonk #### Listmonk
listmonk_admin_username: "admin" listmonk_admin_username: "admin"

View File

@ -3,4 +3,4 @@
become: true become: true
roles: roles:
- role: system-storage-optimizer - role: system-storage-optimizer
when: path_mass_storage or path_rapid_storage when: (path_mass_storage or path_rapid_storage) and enable_system_storage_optimizer | bool

View File

@ -46,14 +46,23 @@
state: absent state: absent
when: mode_reset | bool and run_once_backup_docker_to_local is not defined when: mode_reset | bool and run_once_backup_docker_to_local is not defined
- name: Display all database variables
debug:
msg: |
database_instance: "{{ database_instance | default('undefined') }}"
database_name: "{{ database_name | default('undefined') }}"
database_username: "{{ database_username | default('undefined') }}"
database_password: "{{ database_password | default('undefined') }}"
when: mode_verbose | bool
- name: seed database values - name: seed database values
command: command:
cmd: "python database_entry_seeder.py databases.csv {{database_instance}} {{database_name}} {{database_username}} {{database_password}}" cmd: "python database_entry_seeder.py databases.csv {{database_instance}} {{database_name}} {{database_username}} {{database_password}}"
chdir: "{{backup_docker_to_local_folder}}" chdir: "{{backup_docker_to_local_folder}}"
when: > when: >
database_host is defined or database_instance is defined and
database_name is defined or database_name is defined and
database_username is defined or database_username is defined and
database_password is defined database_password is defined
- name: Set file permissions for databases.csv to be readable, writable, and executable by root only - name: Set file permissions for databases.csv to be readable, writable, and executable by root only
@ -63,9 +72,9 @@
owner: root owner: root
group: root group: root
when: > when: >
(database_host is defined or (database_instance is defined and
database_name is defined or database_name is defined and
database_username is defined or database_username is defined and
database_password is defined) and database_password is defined) and
run_once_backup_docker_to_local_file_permission is not defined run_once_backup_docker_to_local_file_permission is not defined
register: file_permission_result register: file_permission_result

View File

@ -5,8 +5,6 @@
- name: "include tasks nginx-docker-proxy-domain.yml" - name: "include tasks nginx-docker-proxy-domain.yml"
include_tasks: nginx-docker-proxy-domain.yml include_tasks: nginx-docker-proxy-domain.yml
- name: add docker-compose.yml - name: add docker-compose.yml
template: src=docker-compose.yml.j2 dest={{docker_compose_instance_directory}}docker-compose.yml template: src=docker-compose.yml.j2 dest={{docker_compose_instance_directory}}docker-compose.yml
notify: docker compose project setup notify: docker compose project setup

View File

@ -7,13 +7,12 @@ Role to deploy [BigBlueButton](https://bigbluebutton.org/).
### cleanup ### cleanup
```bash ```bash
docker-compose down; docker compose down -v
docker volume rm bigbluebutton_bigbluebutton bigbluebutton_html5-static bigbluebutton_vol-freeswitch bigbluebutton_vol-kurento bigbluebutton_vol-mediasoup bigbluebutton_database
``` ```
### check container status ### check container status
```bash ```bash
watch -n 2 "docker ps -a | grep bigbluebutton" watch -n 2 "docker compose ps -a"
``` ```
### database access ### database access

View File

@ -7,6 +7,31 @@
COMPOSE_HTTP_TIMEOUT: 600 COMPOSE_HTTP_TIMEOUT: 600
DOCKER_CLIENT_TIMEOUT: 600 DOCKER_CLIENT_TIMEOUT: 600
listen: setup bigbluebutton listen: setup bigbluebutton
- name: replace postgres bind mount by volume mount
replace:
path: "{{docker_compose_file}}"
regexp: '\./postgres-data:/var/lib/postgresql/data'
replace: 'postgres-data:/var/lib/postgresql/data'
listen: setup bigbluebutton
- name: replace greenlight bind mount by volume mount
replace:
path: "{{docker_compose_file}}"
regexp: '\./greenlight-data:/usr/src/app/storage'
replace: 'greenlight-data:/usr/src/app/storage'
listen: setup bigbluebutton
- name: add volumes to docker compose
blockinfile:
path: "{{docker_compose_file}}"
block: |2
postgres-data:
greenlight-data:
marker: "# {mark} ANSIBLE MANAGED BLOCK FOR VOLUMES"
insertafter: "html5-static:"
listen: setup bigbluebutton
- name: docker compose up bigbluebutton - name: docker compose up bigbluebutton
command: command:
cmd: docker-compose -p bigbluebutton up -d --force-recreate cmd: docker-compose -p bigbluebutton up -d --force-recreate

View File

@ -1,10 +1,6 @@
--- ---
- name: include docker vars - name: "include docker-compose-common.yml"
include_vars: vars/docker-common.yml.j2 include_tasks: docker-compose-common.yml
- name: load docker compose dependencies
include_role:
name: docker-compose
- name: "include task certbot-matomo.yml" - name: "include task certbot-matomo.yml"
include_tasks: certbot-matomo.yml include_tasks: certbot-matomo.yml
@ -34,3 +30,24 @@
- name: deploy .env - name: deploy .env
template: src=env.j2 dest={{docker_compose_instance_directory}}/.env template: src=env.j2 dest={{docker_compose_instance_directory}}/.env
notify: setup bigbluebutton notify: setup bigbluebutton
- name: flush docker service
meta: flush_handlers
- name: wait for database
pause:
seconds: "{{database_delay}}"
when: mode_setup | bool
- name: create admin
command:
cmd: docker compose exec greenlight bundle exec rake admin:create
chdir: "{{docker_compose_instance_directory}}"
when: mode_setup | bool
ignore_errors: true
register: admin_creation_result
- name: print admin user data
debug:
msg: "{{ admin_creation_result.stdout }}"
when: admin_creation_result is defined

View File

@ -1,6 +1,6 @@
server { server {
# listen 443 ssl http2 default_server; listen 443 ssl http2 default_server;
# listen [::]:443 ssl http2 default_server; listen [::]:443 ssl http2 default_server;
server_name {{domain}}; server_name {{domain}};
ssl_certificate /etc/letsencrypt/live/{{domain}}/fullchain.pem; ssl_certificate /etc/letsencrypt/live/{{domain}}/fullchain.pem;

View File

@ -1,6 +1,6 @@
docker_compose_project_name: "bigbluebutton" docker_compose_project_name: "bigbluebutton"
#database_host: "postgres" # needs to be fixed docker_compose_file: "{{docker_compose_instance_directory}}/docker-compose.yml"
#database_name: "greenlight-v3" database_instance: "bigbluebutton"
#database_username: "postgres" database_name: "greenlight-v3"
#database_password: "" database_username: "postgres"
#database_type: "postgres" database_password: "{{bigbluebutton_postgresql_secret}}"

View File

@ -5,7 +5,6 @@
- name: "include tasks nginx-docker-proxy-domain.yml" - name: "include tasks nginx-docker-proxy-domain.yml"
include_tasks: nginx-docker-proxy-domain.yml include_tasks: nginx-docker-proxy-domain.yml
- name: add docker-compose.yml - name: add docker-compose.yml
template: src=docker-compose.yml.j2 dest={{docker_compose_instance_directory}}docker-compose.yml template: src=docker-compose.yml.j2 dest={{docker_compose_instance_directory}}docker-compose.yml
notify: docker compose project setup notify: docker compose project setup

View File

@ -5,7 +5,6 @@
- name: "include tasks nginx-docker-proxy-domain.yml" - name: "include tasks nginx-docker-proxy-domain.yml"
include_tasks: nginx-docker-proxy-domain.yml include_tasks: nginx-docker-proxy-domain.yml
- name: add docker-compose.yml - name: add docker-compose.yml
template: src=docker-compose.yml.j2 dest={{docker_compose_instance_directory}}docker-compose.yml template: src=docker-compose.yml.j2 dest={{docker_compose_instance_directory}}docker-compose.yml
notify: docker compose project setup notify: docker compose project setup

View File

@ -8,7 +8,6 @@
loop_control: loop_control:
loop_var: domain loop_var: domain
- name: add docker-compose.yml - name: add docker-compose.yml
template: src=docker-compose.yml.j2 dest={{docker_compose_instance_directory}}docker-compose.yml template: src=docker-compose.yml.j2 dest={{docker_compose_instance_directory}}docker-compose.yml
notify: docker compose project setup notify: docker compose project setup

View File

@ -5,7 +5,6 @@
- name: "include tasks nginx-docker-proxy-domain.yml" - name: "include tasks nginx-docker-proxy-domain.yml"
include_tasks: nginx-docker-proxy-domain.yml include_tasks: nginx-docker-proxy-domain.yml
- name: add docker-compose.yml - name: add docker-compose.yml
template: template:
src: "docker-compose.yml.j2" src: "docker-compose.yml.j2"

View File

@ -14,7 +14,6 @@
domain: "{{element_domain}}" domain: "{{element_domain}}"
http_port: "{{element_http_port}}" http_port: "{{element_http_port}}"
#- name: "create {{docker_compose_instance_directory}}mautrix_whatsapp" #- name: "create {{docker_compose_instance_directory}}mautrix_whatsapp"
# file: # file:
# path: "{{docker_compose_instance_directory}}mautrix_whatsapp" # path: "{{docker_compose_instance_directory}}mautrix_whatsapp"

View File

@ -17,7 +17,6 @@
dest: "{{path_docker_volumes}}nextcloud/nginx.conf" dest: "{{path_docker_volumes}}nextcloud/nginx.conf"
notify: docker compose project setup notify: docker compose project setup
- name: add docker-compose.yml - name: add docker-compose.yml
template: template:
src: docker-compose.yml.j2 src: docker-compose.yml.j2

View File

@ -8,7 +8,6 @@
loop_control: loop_control:
loop_var: domain loop_var: domain
- name: copy docker-compose.yml - name: copy docker-compose.yml
template: src=docker-compose.yml.j2 dest={{docker_compose_instance_directory}}docker-compose.yml template: src=docker-compose.yml.j2 dest={{docker_compose_instance_directory}}docker-compose.yml
notify: docker compose project setup notify: docker compose project setup

View File

@ -25,8 +25,11 @@ def start_containers(containers):
run_command(f"docker start {container_list}") run_command(f"docker start {container_list}")
def is_database(image): def is_database(image):
databases = {"postgres", "mariadb", "redis", "memcached"} databases = {"postgres", "mariadb", "redis", "memcached", "mongo"}
return any(database in image for database in databases) # Split the string at the colon and take the first part
prefix = image.split(':')[0]
# Check if the prefix is in the database names
return prefix in databases
def is_symbolic_link(file_path): def is_symbolic_link(file_path):
return os.path.islink(file_path) return os.path.islink(file_path)