mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2024-11-25 22:21:04 +01:00
Compare commits
12 Commits
42d2dca4a3
...
b9973dd4bf
Author | SHA1 | Date | |
---|---|---|---|
b9973dd4bf | |||
438f63de45 | |||
7d8b7dd00f | |||
68613545b2 | |||
b909e87228 | |||
52873c2e75 | |||
ce95550185 | |||
2fda99fa1d | |||
4ae1776a4b | |||
ef2bf8a3ee | |||
d890ae84be | |||
6444a82e6c |
@ -1,52 +1,7 @@
|
||||
# PASSWORDS AND SECRETS:
|
||||
|
||||
akaunting_database_password: "I_NEED_TO_CHANGE_THIS_UNSECURE_PASSWORD"
|
||||
akaunting_setup_admin_password: "I_NEED_TO_CHANGE_THIS_UNSECURE_PASSWORD"
|
||||
baserow_database_password: "I_NEED_TO_CHANGE_THIS_UNSECURE_PASSWORD"
|
||||
bigbluebutton_database_password: "I_NEED_TO_CHANGE_THIS_UNSECURE_PASSWORD"
|
||||
bigbluebutton_etherpad_api_key: "I_NEED_TO_CHANGE_THIS_UNSECURE_PASSWORD"
|
||||
bigbluebutton_fsesl_password: "I_NEED_TO_CHANGE_THIS_UNSECURE_PASSWORD"
|
||||
bigbluebutton_rails_secret: "I_NEED_TO_CHANGE_THIS_UNSECURE_PASSWORD"
|
||||
bigbluebutton_shared_secret: "I_NEED_TO_CHANGE_THIS_UNSECURE_PASSWORD"
|
||||
bigbluebutton_postgresql_secret: "I_NEED_TO_CHANGE_THIS_UNSECURE_PASSWORD"
|
||||
bigbluebutton_turn_secret: "I_NEED_TO_CHANGE_THIS_UNSECURE_PASSWORD"
|
||||
central_mariadb_root_password: "I_NEED_TO_CHANGE_THIS_UNSECURE_PASSWORD"
|
||||
central_postgres_password: "I_NEED_TO_CHANGE_THIS_UNSECURE_PASSWORD"
|
||||
discourse_database_password: "I_NEED_TO_CHANGE_THIS_UNSECURE_PASSWORD"
|
||||
gitlab_database_password: "I_NEED_TO_CHANGE_THIS_UNSECURE_PASSWORD"
|
||||
gitlab_initial_root_password: "I_NEED_TO_CHANGE_THIS_UNSECURE_PASSWORD"
|
||||
gitea_database_password: "I_NEED_TO_CHANGE_THIS_UNSECURE_PASSWORD"
|
||||
listmonk_admin_password: "I_NEED_TO_CHANGE_THIS_UNSECURE_PASSWORD"
|
||||
listmonk_database_password: "I_NEED_TO_CHANGE_THIS_UNSECURE_PASSWORD"
|
||||
mailu_api_token: "I_NEED_TO_CHANGE_THIS_UNSECURE_PASSWORD"
|
||||
mailu_database_password: "I_NEED_TO_CHANGE_THIS_UNSECURE_PASSWORD"
|
||||
mailu_initial_root_password: "I_NEED_TO_CHANGE_THIS_UNSECURE_PASSWORD"
|
||||
mailu_secret_key: "I_NEED_TO_CHANGE_THIS_UNSECURE_PASSWORD"
|
||||
mastodon_database_password: "I_NEED_TO_CHANGE_THIS_UNSECURE_PASSWORD"
|
||||
mastodon_otp_secret: "I_NEED_TO_CHANGE_THIS_UNSECURE_PASSWORD"
|
||||
mastodon_secret_key_base: "I_NEED_TO_CHANGE_THIS_UNSECURE_PASSWORD"
|
||||
mastodon_vapid_private_key: "I_NEED_TO_CHANGE_THIS_UNSECURE_PASSWORD"
|
||||
mastodon_vapid_public_key: "I_NEED_TO_CHANGE_THIS_UNSECURE_PASSWORD"
|
||||
matomo_auth_token: "I_NEED_TO_CHANGE_THIS_UNSECURE_PASSWORD"
|
||||
matomo_database_password: "I_NEED_TO_CHANGE_THIS_UNSECURE_PASSWORD"
|
||||
matrix_database_password: "I_NEED_TO_CHANGE_THIS_UNSECURE_PASSWORD"
|
||||
matrix_generic_secret_key: "I_NEED_TO_CHANGE_THIS_UNSECURE_PASSWORD"
|
||||
matrix_form_secret: "I_NEED_TO_CHANGE_THIS_UNSECURE_PASSWORD"
|
||||
matrix_macaroon_secret_key: "I_NEED_TO_CHANGE_THIS_UNSECURE_PASSWORD"
|
||||
matrix_registration_shared_secret: "I_NEED_TO_CHANGE_THIS_UNSECURE_PASSWORD"
|
||||
nextcloud_database_password: "I_NEED_TO_CHANGE_THIS_UNSECURE_PASSWORD"
|
||||
openproject_database_password: "I_NEED_TO_CHANGE_THIS_UNSECURE_PASSWORD"
|
||||
peertube_database_password: "I_NEED_TO_CHANGE_THIS_UNSECURE_PASSWORD"
|
||||
peertube_secret: "I_NEED_TO_CHANGE_THIS_UNSECURE_PASSWORD"
|
||||
pixelfed_database_password: "I_NEED_TO_CHANGE_THIS_UNSECURE_PASSWORD"
|
||||
pixelfed_app_key: "I_NEED_TO_CHANGE_THIS_UNSECURE_PASSWORD"
|
||||
wordpress_database_password: "I_NEED_TO_CHANGE_THIS_UNSECURE_PASSWORD"
|
||||
yourls_database_password: "I_NEED_TO_CHANGE_THIS_UNSECURE_PASSWORD"
|
||||
yourls_user_password: "I_NEED_TO_CHANGE_THIS_UNSECURE_PASSWORD"
|
||||
|
||||
# General
|
||||
setup: false # Pass CLI commands to execute the setup tasks for the different roles
|
||||
reset_files: false # Cleans up all CyMaIS files. It's necessary to run to whole playbook and not particial roles when using this function.
|
||||
verbose: false # Prints well formated debug information
|
||||
database_delay: "0" # Database delay to wait for the central database before continue tasks
|
||||
top_domain: "localhost" # Change this in inventory to your domain
|
||||
ip4_address: "127.0.0.1" # Change thie in inventory to the ip address of your server
|
||||
backups_folder_path: "/Backups/" # Path to the backups folder
|
||||
@ -148,6 +103,13 @@ nginx_upstreams_directory: "{{nginx_configuration_directory}}upstreams/"
|
||||
|
||||
## Docker Applications
|
||||
|
||||
### Enable Setup
|
||||
setup_default: "false" # Pass CLI commands to execute the setup tasks for the different roles
|
||||
setup_akaunting: "{{setup_default}}"
|
||||
setup_mailu: "{{setup_default}}"
|
||||
setup_listmonk: "{{setup_default}}"
|
||||
setup_mastodon: "{{setup_default}}"
|
||||
|
||||
### Enable Central MariaDB
|
||||
enable_central_database: true
|
||||
|
||||
|
48
inventory.example.yml
Normal file
48
inventory.example.yml
Normal file
@ -0,0 +1,48 @@
|
||||
# THIS INVENTORY IS AN EXAMPLE INVENTORY.
|
||||
# You should change all of the variables in here.
|
||||
# Addidiotnally feel free to overwrite configuration variables of group_vars/all in the enventory
|
||||
|
||||
# PASSWORDS AND SECRETS:
|
||||
akaunting_database_password: "I_NEED_TO_CHANGE_THIS_UNSECURE_PASSWORD"
|
||||
akaunting_setup_admin_password: "I_NEED_TO_CHANGE_THIS_UNSECURE_PASSWORD"
|
||||
baserow_database_password: "I_NEED_TO_CHANGE_THIS_UNSECURE_PASSWORD"
|
||||
bigbluebutton_database_password: "I_NEED_TO_CHANGE_THIS_UNSECURE_PASSWORD"
|
||||
bigbluebutton_etherpad_api_key: "I_NEED_TO_CHANGE_THIS_UNSECURE_PASSWORD"
|
||||
bigbluebutton_fsesl_password: "I_NEED_TO_CHANGE_THIS_UNSECURE_PASSWORD"
|
||||
bigbluebutton_rails_secret: "I_NEED_TO_CHANGE_THIS_UNSECURE_PASSWORD"
|
||||
bigbluebutton_shared_secret: "I_NEED_TO_CHANGE_THIS_UNSECURE_PASSWORD"
|
||||
bigbluebutton_postgresql_secret: "I_NEED_TO_CHANGE_THIS_UNSECURE_PASSWORD"
|
||||
bigbluebutton_turn_secret: "I_NEED_TO_CHANGE_THIS_UNSECURE_PASSWORD"
|
||||
central_mariadb_root_password: "I_NEED_TO_CHANGE_THIS_UNSECURE_PASSWORD"
|
||||
central_postgres_password: "I_NEED_TO_CHANGE_THIS_UNSECURE_PASSWORD"
|
||||
discourse_database_password: "I_NEED_TO_CHANGE_THIS_UNSECURE_PASSWORD"
|
||||
gitlab_database_password: "I_NEED_TO_CHANGE_THIS_UNSECURE_PASSWORD"
|
||||
gitlab_initial_root_password: "I_NEED_TO_CHANGE_THIS_UNSECURE_PASSWORD"
|
||||
gitea_database_password: "I_NEED_TO_CHANGE_THIS_UNSECURE_PASSWORD"
|
||||
listmonk_admin_password: "I_NEED_TO_CHANGE_THIS_UNSECURE_PASSWORD"
|
||||
listmonk_database_password: "I_NEED_TO_CHANGE_THIS_UNSECURE_PASSWORD"
|
||||
mailu_api_token: "I_NEED_TO_CHANGE_THIS_UNSECURE_PASSWORD"
|
||||
mailu_database_password: "I_NEED_TO_CHANGE_THIS_UNSECURE_PASSWORD"
|
||||
mailu_initial_root_password: "I_NEED_TO_CHANGE_THIS_UNSECURE_PASSWORD"
|
||||
mailu_secret_key: "I_NEED_TO_CHANGE_THIS_UNSECURE_PASSWORD"
|
||||
mastodon_database_password: "I_NEED_TO_CHANGE_THIS_UNSECURE_PASSWORD"
|
||||
mastodon_otp_secret: "I_NEED_TO_CHANGE_THIS_UNSECURE_PASSWORD"
|
||||
mastodon_secret_key_base: "I_NEED_TO_CHANGE_THIS_UNSECURE_PASSWORD"
|
||||
mastodon_vapid_private_key: "I_NEED_TO_CHANGE_THIS_UNSECURE_PASSWORD"
|
||||
mastodon_vapid_public_key: "I_NEED_TO_CHANGE_THIS_UNSECURE_PASSWORD"
|
||||
matomo_auth_token: "I_NEED_TO_CHANGE_THIS_UNSECURE_PASSWORD"
|
||||
matomo_database_password: "I_NEED_TO_CHANGE_THIS_UNSECURE_PASSWORD"
|
||||
matrix_database_password: "I_NEED_TO_CHANGE_THIS_UNSECURE_PASSWORD"
|
||||
matrix_generic_secret_key: "I_NEED_TO_CHANGE_THIS_UNSECURE_PASSWORD"
|
||||
matrix_form_secret: "I_NEED_TO_CHANGE_THIS_UNSECURE_PASSWORD"
|
||||
matrix_macaroon_secret_key: "I_NEED_TO_CHANGE_THIS_UNSECURE_PASSWORD"
|
||||
matrix_registration_shared_secret: "I_NEED_TO_CHANGE_THIS_UNSECURE_PASSWORD"
|
||||
nextcloud_database_password: "I_NEED_TO_CHANGE_THIS_UNSECURE_PASSWORD"
|
||||
openproject_database_password: "I_NEED_TO_CHANGE_THIS_UNSECURE_PASSWORD"
|
||||
peertube_database_password: "I_NEED_TO_CHANGE_THIS_UNSECURE_PASSWORD"
|
||||
peertube_secret: "I_NEED_TO_CHANGE_THIS_UNSECURE_PASSWORD"
|
||||
pixelfed_database_password: "I_NEED_TO_CHANGE_THIS_UNSECURE_PASSWORD"
|
||||
pixelfed_app_key: "I_NEED_TO_CHANGE_THIS_UNSECURE_PASSWORD"
|
||||
wordpress_database_password: "I_NEED_TO_CHANGE_THIS_UNSECURE_PASSWORD"
|
||||
yourls_database_password: "I_NEED_TO_CHANGE_THIS_UNSECURE_PASSWORD"
|
||||
yourls_user_password: "I_NEED_TO_CHANGE_THIS_UNSECURE_PASSWORD"
|
@ -1,8 +1,9 @@
|
||||
- name: install pandas system wide
|
||||
- name: install required software
|
||||
community.general.pacman:
|
||||
name:
|
||||
- lsof
|
||||
- python-pandas
|
||||
- jq
|
||||
state: present
|
||||
when: run_once_backup_docker_to_local is not defined
|
||||
|
||||
@ -40,13 +41,19 @@
|
||||
on_calendar: "{{on_calendar_backup_docker_to_local}}"
|
||||
when: run_once_backup_docker_to_local is not defined
|
||||
|
||||
- name: "reset {{ backup_docker_to_local_folder }}databases.csv"
|
||||
file:
|
||||
path: "{{ backup_docker_to_local_folder }}databases.csv"
|
||||
state: absent
|
||||
when: reset_files | bool and run_once_backup_docker_to_local is not defined
|
||||
|
||||
- name: seed database values
|
||||
command:
|
||||
cmd: "python database_entry_seeder.py databases.csv {{docker_compose_project_name}} {{database_host}} {{database_databasename}} {{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}}"
|
||||
when: >
|
||||
database_host is defined or
|
||||
database_databasename is defined or
|
||||
database_name is defined or
|
||||
database_username is defined or
|
||||
database_password is defined
|
||||
|
||||
@ -58,7 +65,7 @@
|
||||
group: root
|
||||
when: >
|
||||
(database_host is defined or
|
||||
database_databasename is defined or
|
||||
database_name is defined or
|
||||
database_username is defined or
|
||||
database_password is defined) and
|
||||
run_once_backup_docker_to_local_file_permission is not defined
|
||||
|
@ -6,7 +6,7 @@ LOCALE=en-US
|
||||
DB_HOST={{database_host}}
|
||||
|
||||
# Change these to match env/db.env
|
||||
DB_DATABASE={{database_databasename}}
|
||||
DB_DATABASE={{database_name}}
|
||||
DB_USERNAME={{database_username}}
|
||||
DB_PASSWORD={{database_password}}
|
||||
|
||||
|
@ -6,8 +6,9 @@ services:
|
||||
|
||||
{% include 'templates/docker-service-' + database_type + '.yml.j2' %}
|
||||
|
||||
baserow:
|
||||
application:
|
||||
image: baserow/baserow:1.19.1
|
||||
container_name: baserow-application
|
||||
restart: always
|
||||
logging:
|
||||
driver: journald
|
||||
@ -17,8 +18,13 @@ services:
|
||||
- data:/baserow/data
|
||||
ports:
|
||||
- "{{http_port}}:80"
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:80/"]
|
||||
interval: 1m
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
{% include 'templates/docker-container-networks.yml.j2' %}
|
||||
{% include 'templates/docker-container-depends-on-just-database.yml.j2' %}
|
||||
{% include 'templates/docker-container-depends-on-database-redis.yml.j2' %}
|
||||
|
||||
{% include 'templates/docker-compose-volumes.yml.j2' %}
|
||||
data:
|
||||
|
@ -10,11 +10,9 @@ EMAIL_SMTP_PASSWORD={{ system_email_password }}
|
||||
EMAIL_SMTP_USE_TLS={{ system_email_tls | upper }}
|
||||
|
||||
DATABASE_USER={{ database_username }}
|
||||
DATABASE_NAME={{ database_databasename }}
|
||||
DATABASE_NAME={{ database_name }}
|
||||
DATABASE_HOST={{ database_host }}
|
||||
DATABASE_PORT=5432
|
||||
DATABASE_PASSWORD={{ database_password }}
|
||||
|
||||
REDIS_HOST=redis
|
||||
REDIS_PORT=6379
|
||||
REDIS_PASSWORD=
|
||||
REDIS_URL=redis://redis:6379
|
||||
|
@ -1,6 +1,6 @@
|
||||
docker_compose_project_name: "bigbluebutton"
|
||||
database_host: "postgres" # needs to be fixed
|
||||
database_databasename: "greenlight-v3"
|
||||
database_name: "greenlight-v3"
|
||||
database_username: "postgres"
|
||||
database_password: ""
|
||||
database_type: "postgres"
|
@ -67,7 +67,7 @@ env:
|
||||
DISCOURSE_DB_USERNAME: {{ database_username }}
|
||||
DISCOURSE_DB_PASSWORD: {{ database_password }}
|
||||
DISCOURSE_DB_HOST: {{ database_host }}
|
||||
DISCOURSE_DB_NAME: {{ database_databasename }}
|
||||
DISCOURSE_DB_NAME: {{ database_name }}
|
||||
|
||||
# Redis Configuration
|
||||
DISCOURSE_REDIS_HOST: {{docker_compose_project_name}}-redis
|
||||
|
@ -14,7 +14,7 @@ services:
|
||||
- USER_GID=1000
|
||||
- DB_TYPE=mysql
|
||||
- DB_HOST={{database_host}}:3306
|
||||
- DB_NAME={{database_databasename}}
|
||||
- DB_NAME={{database_name}}
|
||||
- DB_USER={{database_username}}
|
||||
- DB_PASSWD={{database_password}}
|
||||
- SSH_PORT={{ssh_port}}
|
||||
@ -30,6 +30,11 @@ services:
|
||||
- data:/data
|
||||
- /etc/timezone:/etc/timezone:ro
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://127.0.0.1:3000"]
|
||||
interval: 1m
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
{% include 'templates/docker-container-networks.yml.j2' %}
|
||||
{% include 'templates/docker-container-depends-on-just-database.yml.j2' %}
|
||||
|
||||
|
@ -16,7 +16,7 @@ This Ansible role is designed for setting up and managing a GitLab server runnin
|
||||
## Role Variables
|
||||
Variables are defined in `vars/main.yml`. Key variables include:
|
||||
- `docker_compose_instance_directory`: Directory for Docker Compose instances.
|
||||
- `docker_compose_project_name`, `database_host`, `database_databasename`, `database_username`, `database_password`: Database configuration variables.
|
||||
- `docker_compose_project_name`, `database_host`, `database_name`, `database_username`, `database_password`: Database configuration variables.
|
||||
|
||||
## Handlers
|
||||
- `recreate gitlab`: Restarts GitLab using Docker Compose when changes are detected.
|
||||
|
@ -20,7 +20,7 @@ services:
|
||||
gitlab_rails['db_port'] = 5432
|
||||
gitlab_rails['db_username'] = '{{database_username}}'
|
||||
gitlab_rails['db_password'] = '{{database_password}}'
|
||||
gitlab_rails['db_database'] = "{{database_databasename}}"
|
||||
gitlab_rails['db_database'] = "{{database_name}}"
|
||||
nginx['listen_port'] = 80
|
||||
nginx['listen_https'] = false
|
||||
|
||||
|
@ -12,7 +12,7 @@ services:
|
||||
JOOMLA_DB_HOST: "{{database_host}}:3306"
|
||||
JOOMLA_DB_USER: "{{database_username}}"
|
||||
JOOMLA_DB_PASSWORD: "{{database_password}}"
|
||||
JOOMLA_DB_NAME: "{{database_databasename}}"
|
||||
JOOMLA_DB_NAME: "{{database_name}}"
|
||||
restart: always
|
||||
volumes:
|
||||
- data:/var/www/html
|
||||
|
@ -29,6 +29,6 @@
|
||||
|
||||
- name: setup routine for listmonk
|
||||
command:
|
||||
cmd: "yes | docker compose run -T --rm application ./listmonk --install"
|
||||
cmd: docker compose run -T --rm application sh -c "yes | ./listmonk --install"
|
||||
chdir: "{{docker_compose_instance_directory}}"
|
||||
when: setup | bool
|
@ -20,7 +20,7 @@ user = "{{database_username}}"
|
||||
password = "{{database_password}}"
|
||||
|
||||
# Ensure that this database has been created in Postgres.
|
||||
database = "{{database_databasename}}"
|
||||
database = "{{database_name}}"
|
||||
|
||||
ssl_mode = "disable"
|
||||
max_open = 25
|
||||
|
@ -66,6 +66,14 @@
|
||||
meta: flush_handlers
|
||||
when: setup | bool
|
||||
|
||||
- name: wait for database
|
||||
wait_for:
|
||||
host: 127.0.0.1
|
||||
port: "{{ http_port }}"
|
||||
delay: "{{database_delay}}"
|
||||
timeout: 300
|
||||
when: setup | bool
|
||||
|
||||
- name: execute database migration
|
||||
command:
|
||||
cmd: "docker compose -p mailu exec admin flask mailu admin admin {{top_domain}} {{mailu_initial_root_password}}"
|
||||
|
@ -143,11 +143,11 @@ DB_FLAVOR=mysql
|
||||
DB_USER={{database_username}}
|
||||
DB_PW={{database_password}}
|
||||
DB_HOST={{database_host}}:3306
|
||||
DB_NAME={{database_databasename}}
|
||||
DB_NAME={{database_name}}
|
||||
ROUNDCUBE_DB_FLAVOR=mysql
|
||||
ROUNDCUBE_DB_USER={{database_username}}
|
||||
ROUNDCUBE_DB_PW={{database_password}}
|
||||
ROUNDCUBE_DB_NAME={{database_databasename}}
|
||||
ROUNDCUBE_DB_NAME={{database_name}}
|
||||
ROUNDCUBE_DB_HOST={{database_host}}:3306
|
||||
|
||||
|
||||
|
@ -19,7 +19,7 @@ Before using this role, ensure you have the following:
|
||||
## Configuration
|
||||
Configure the role by setting the required variables. These can be set in the playbook or in a separate variable file:
|
||||
- `central_mariadb_root_password`: The root password for the MariaDB server.
|
||||
- `database_databasename`: The name of the initial database to create.
|
||||
- `database_name`: The name of the initial database to create.
|
||||
- `database_username`: The username for the database user.
|
||||
- `database_password`: The password for the database user.
|
||||
|
||||
|
@ -42,13 +42,13 @@
|
||||
wait_for:
|
||||
host: 127.0.0.1
|
||||
port: 3306
|
||||
delay: 10
|
||||
delay: "{{database_delay}}"
|
||||
timeout: 300
|
||||
when: run_once_docker_mariadb is not defined
|
||||
|
||||
- name: "Create database: {{ database_databasename }}"
|
||||
- name: "Create database: {{ database_name }}"
|
||||
mysql_db:
|
||||
name: "{{ database_databasename }}"
|
||||
name: "{{ database_name }}"
|
||||
state: present
|
||||
login_user: root
|
||||
login_password: "{{ central_mariadb_root_password }}"
|
||||
@ -60,7 +60,7 @@
|
||||
name: "{{database_username}}"
|
||||
password: "{{database_password}}"
|
||||
host: "%"
|
||||
priv: '{{database_databasename}}.*:ALL'
|
||||
priv: '{{database_name}}.*:ALL'
|
||||
state: present
|
||||
login_user: root
|
||||
login_password: "{{central_mariadb_root_password}}"
|
||||
|
@ -8,7 +8,7 @@ VAPID_PUBLIC_KEY={{mastodon_vapid_public_key}}
|
||||
|
||||
DB_HOST={{database_host}}
|
||||
DB_PORT=5432
|
||||
DB_NAME={{database_databasename}}
|
||||
DB_NAME={{database_name}}
|
||||
DB_USER={{database_username}}
|
||||
DB_PASS={{database_password}}
|
||||
|
||||
|
@ -16,7 +16,7 @@ services:
|
||||
MATOMO_DATABASE_ADAPTER: "mysql"
|
||||
MATOMO_DATABASE_USERNAME: "{{database_username}}"
|
||||
MATOMO_DATABASE_PASSWORD: "{{database_password}}"
|
||||
MATOMO_DATABASE_DBNAME: "{{database_databasename}}"
|
||||
MATOMO_DATABASE_DBNAME: "{{database_name}}"
|
||||
volumes:
|
||||
- data:/var/www/html
|
||||
{% include 'templates/docker-container-depends-on-just-database.yml.j2' %}
|
||||
|
@ -13,7 +13,7 @@ database:
|
||||
args:
|
||||
user: "{{database_username}}"
|
||||
password: "{{database_password}}"
|
||||
database: "{{database_databasename}}"
|
||||
database: "{{database_name}}"
|
||||
host: "{{database_host}}"
|
||||
cp_min: 5
|
||||
cp_max: 10
|
||||
|
@ -14,7 +14,7 @@ services:
|
||||
volumes:
|
||||
- data:/var/www/html
|
||||
environment:
|
||||
MYSQL_DATABASE: "{{database_databasename}}"
|
||||
MYSQL_DATABASE: "{{database_name}}"
|
||||
MYSQL_USER: "{{database_username}}"
|
||||
MYSQL_PASSWORD: "{{database_password}}"
|
||||
MYSQL_HOST: {{database_host}}:3306
|
||||
@ -32,6 +32,11 @@ services:
|
||||
- "{{path_docker_volumes}}nextcloud/nginx.conf:/etc/nginx/nginx.conf:ro"
|
||||
volumes_from:
|
||||
- application
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:80/"]
|
||||
interval: 1m
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
{% include 'templates/docker-container-networks.yml.j2' %}
|
||||
|
||||
cron:
|
||||
|
@ -13,6 +13,6 @@ PORT=127.0.0.1:{{http_port}}
|
||||
OPENPROJECT_RAILS__RELATIVE__URL__ROOT=
|
||||
IMAP_ENABLED=false
|
||||
POSTGRES_PASSWORD="{{ database_password }}"
|
||||
DATABASE_URL="postgres://{{ database_username }}:{{ database_password }}@{{database_host}}/{{database_databasename}}?pool=20&encoding=unicode&reconnect=true"
|
||||
DATABASE_URL="postgres://{{ database_username }}:{{ database_password }}@{{database_host}}/{{database_name}}?pool=20&encoding=unicode&reconnect=true"
|
||||
RAILS_MIN_THREADS=4
|
||||
RAILS_MAX_THREADS=16
|
@ -1,7 +1,7 @@
|
||||
# Database / Postgres service configuration
|
||||
POSTGRES_USER={{database_username}}
|
||||
POSTGRES_PASSWORD={{peertube_database_password}}
|
||||
POSTGRES_DB={{database_databasename}}
|
||||
POSTGRES_DB={{database_name}}
|
||||
PEERTUBE_DB_USERNAME={{database_username}}
|
||||
PEERTUBE_DB_PASSWORD={{peertube_database_password}}
|
||||
PEERTUBE_DB_SSL=false
|
||||
|
@ -1,3 +1,3 @@
|
||||
docker_compose_project_name: "peertube"
|
||||
database_type: "mariadb"
|
||||
database_type: "postgres"
|
||||
database_password: "{{peertube_database_password}}"
|
@ -56,7 +56,7 @@ MAIL_ENCRYPTION=tls
|
||||
|
||||
## Databases (MySQL)
|
||||
DB_CONNECTION=mysql
|
||||
DB_DATABASE={{database_databasename}}
|
||||
DB_DATABASE={{database_name}}
|
||||
DB_HOST={{database_host}}
|
||||
DB_PASSWORD="{{pixelfed_database_password}}"
|
||||
DB_PORT=3306
|
||||
|
@ -5,7 +5,7 @@ This Ansible role is designed to deploy a PostgreSQL database using Docker. It i
|
||||
|
||||
## Role Variables
|
||||
- `central_postgres_password`: The password for the PostgreSQL superuser (`postgres`).
|
||||
- `database_databasename`: Name of the database to be created.
|
||||
- `database_name`: Name of the database to be created.
|
||||
- `database_username`: Username for the database user.
|
||||
- `database_password`: Password for the database user.
|
||||
|
||||
|
@ -31,7 +31,7 @@
|
||||
wait_for:
|
||||
host: "127.0.0.1"
|
||||
port: "5432"
|
||||
delay: 0
|
||||
delay: "{{database_delay}}"
|
||||
timeout: 300
|
||||
when: run_once_docker_postgres is not defined
|
||||
|
||||
@ -41,9 +41,9 @@
|
||||
state: present
|
||||
when: run_once_docker_postgres is not defined
|
||||
|
||||
- name: "Create database: {{ database_databasename }}"
|
||||
- name: "Create database: {{ database_name }}"
|
||||
postgresql_db:
|
||||
name: "{{ database_databasename }}"
|
||||
name: "{{ database_name }}"
|
||||
state: present
|
||||
login_user: postgres
|
||||
login_password: "{{ central_postgres_password }}"
|
||||
@ -54,7 +54,7 @@
|
||||
postgresql_user:
|
||||
name: "{{ database_username }}"
|
||||
password: "{{ database_password }}"
|
||||
db: "{{ database_databasename }}"
|
||||
db: "{{ database_name }}"
|
||||
state: present
|
||||
login_user: postgres
|
||||
login_password: "{{ central_postgres_password }}"
|
||||
@ -63,7 +63,7 @@
|
||||
|
||||
- name: "Set privileges for database user: {{ database_username }}"
|
||||
postgresql_privs:
|
||||
db: "{{ database_databasename }}"
|
||||
db: "{{ database_name }}"
|
||||
role: "{{ database_username }}"
|
||||
objs: ALL_IN_SCHEMA
|
||||
privs: ALL
|
||||
@ -76,7 +76,7 @@
|
||||
|
||||
- name: Grant all privileges at the database level
|
||||
postgresql_privs:
|
||||
db: "{{ database_databasename }}"
|
||||
db: "{{ database_name }}"
|
||||
role: "{{ database_username }}"
|
||||
privs: ALL
|
||||
type: database
|
||||
@ -88,7 +88,7 @@
|
||||
|
||||
- name: Grant all privileges on all tables in the public schema
|
||||
postgresql_privs:
|
||||
db: "{{ database_databasename }}"
|
||||
db: "{{ database_name }}"
|
||||
role: "{{ database_username }}"
|
||||
objs: ALL_IN_SCHEMA
|
||||
privs: ALL
|
||||
@ -102,7 +102,7 @@
|
||||
|
||||
- name: Set comprehensive privileges for user on public schema
|
||||
postgresql_query:
|
||||
db: "{{ database_databasename }}"
|
||||
db: "{{ database_name }}"
|
||||
login_user: postgres
|
||||
login_password: "{{ central_postgres_password }}"
|
||||
login_host: 127.0.0.1
|
||||
|
@ -14,9 +14,14 @@ services:
|
||||
WORDPRESS_DB_HOST: "{{database_host}}:3306"
|
||||
WORDPRESS_DB_USER: "{{database_username}}"
|
||||
WORDPRESS_DB_PASSWORD: "{{database_password}}"
|
||||
WORDPRESS_DB_NAME: "{{database_databasename}}"
|
||||
WORDPRESS_DB_NAME: "{{database_name}}"
|
||||
volumes:
|
||||
- data:/var/www/html
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:80/"]
|
||||
interval: 1m
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
{% include 'templates/docker-container-depends-on-just-database.yml.j2' %}
|
||||
{% include 'templates/docker-container-networks.yml.j2' %}
|
||||
|
||||
|
@ -15,10 +15,15 @@ services:
|
||||
YOURLS_DB_HOST: "{{database_host}}"
|
||||
YOURLS_DB_USER: "{{database_username}}"
|
||||
YOURLS_DB_PASS: "{{database_password}}"
|
||||
YOURLS_DB_NAME: "{{database_databasename}}"
|
||||
YOURLS_DB_NAME: "{{database_name}}"
|
||||
YOURLS_SITE: "https://{{domain}}"
|
||||
YOURLS_USER: "{{yourls_user}}"
|
||||
YOURLS_PASS: "{{yourls_user_password}}"
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://127.0.0.1/admin/"]
|
||||
interval: 1m
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
|
||||
{% include 'templates/docker-container-depends-on-just-database.yml.j2' %}
|
||||
{% include 'templates/docker-container-networks.yml.j2' %}
|
||||
|
@ -8,15 +8,9 @@
|
||||
dest: "{{nginx_servers_directory}}{{domain}}.conf"
|
||||
notify: restart nginx
|
||||
|
||||
- name: nginx-homepage repo git
|
||||
- name: "pull homepage from {{nginx_homepage_repository_address}}"
|
||||
git:
|
||||
repo: "{{nginx_homepage_repository_address}}"
|
||||
dest: "{{nginx_homepage_root}}"
|
||||
update: yes
|
||||
register: git_result
|
||||
ignore_errors: true
|
||||
|
||||
- name: Warn if repo is not reachable
|
||||
debug:
|
||||
msg: "Warning: Repository is not reachable."
|
||||
when: git_result.failed
|
||||
ignore_errors: true
|
20
servers.yml
20
servers.yml
@ -77,6 +77,7 @@
|
||||
vars:
|
||||
domain: "{{domain_mailu}}"
|
||||
http_port: 8007
|
||||
setup: "{{ setup_mailu }}"
|
||||
|
||||
- name: setup elk hosts
|
||||
hosts: elk
|
||||
@ -93,10 +94,11 @@
|
||||
roles:
|
||||
- role: docker-mastodon
|
||||
vars:
|
||||
domain: "{{domain_mastodon}}"
|
||||
domains: "{{ [domain] + domains_mastodon_alternates }}"
|
||||
http_port: 8009
|
||||
stream_port: 4001
|
||||
domain: "{{domain_mastodon}}"
|
||||
domains: "{{ [domain] + domains_mastodon_alternates }}"
|
||||
http_port: 8009
|
||||
stream_port: 4001
|
||||
setup: "{{ setup_mastodon }}"
|
||||
|
||||
- name: setup pixelfed hosts
|
||||
hosts: pixelfed
|
||||
@ -186,8 +188,9 @@
|
||||
roles:
|
||||
- role: docker-listmonk
|
||||
vars:
|
||||
domain: "{{domain_listmonk}}"
|
||||
http_port: 8019
|
||||
domain: "{{domain_listmonk}}"
|
||||
http_port: 8019
|
||||
setup: "{{ setup_listmonk }}"
|
||||
|
||||
- name: setup discourse
|
||||
hosts: discourse
|
||||
@ -244,8 +247,9 @@
|
||||
roles:
|
||||
- role: docker-akaunting
|
||||
vars:
|
||||
domain: "{{domain_akaunting}}"
|
||||
http_port: 8025
|
||||
domain: "{{domain_akaunting}}"
|
||||
http_port: 8025
|
||||
setup: "{{ setup_akaunting }}"
|
||||
|
||||
# Native Webserver Roles
|
||||
- name: setup nginx-homepages
|
||||
|
@ -7,7 +7,7 @@
|
||||
image: mariadb
|
||||
restart: always
|
||||
environment:
|
||||
MYSQL_DATABASE: "{{database_databasename}}"
|
||||
MYSQL_DATABASE: "{{database_name}}"
|
||||
MYSQL_USER: "{{database_username}}"
|
||||
MYSQL_PASSWORD: "{{database_password}}"
|
||||
MYSQL_ROOT_PASSWORD: "{{database_password}}"
|
||||
|
@ -6,11 +6,11 @@
|
||||
environment:
|
||||
- POSTGRES_PASSWORD={{database_password}}
|
||||
- POSTGRES_USER={{database_username}}
|
||||
- POSTGRES_DB={{database_databasename}}
|
||||
- POSTGRES_DB={{database_name}}
|
||||
- POSTGRES_INITDB_ARGS="--encoding=UTF8 --locale=C"
|
||||
restart: always
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "pg_isready -U {{database_databasename}}"]
|
||||
test: ["CMD-SHELL", "pg_isready -U {{database_name}}"]
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 6
|
||||
|
@ -1,6 +1,6 @@
|
||||
docker_compose_instance_directory: "{{ path_docker_compose_instances + docker_compose_project_name + '/' }}"
|
||||
database_instance: "{{ 'central-' + database_type if enable_central_database else docker_compose_project_name }}"
|
||||
database_host: "{{ 'central-' + database_type if enable_central_database else 'database' }}"
|
||||
database_databasename: "{{ docker_compose_project_name }}"
|
||||
database_name: "{{ docker_compose_project_name }}"
|
||||
database_username: "{{ docker_compose_project_name }}"
|
||||
database_version: "{{ postgres_default_version }}"
|
||||
# This will lead to problems with bbb and openproject
|
||||
database_version: "{{ postgres_default_version }}"
|
Loading…
Reference in New Issue
Block a user