mash-playbook/setup.yml
2023-06-02 17:26:09 +03:00

152 lines
3.6 KiB
YAML

- name: "Set up a self-hosted server"
hosts: "{{ target if target is defined else 'mash_servers' }}"
become: true
roles:
# This role has no tasks at all
- role: galaxy/com.devture.ansible.role.playbook_help
# This role has no tasks at all
- role: galaxy/com.devture.ansible.role.systemd_docker_base
- when: mash_playbook_docker_installation_enabled | bool
role: galaxy/geerlingguy.docker
vars:
docker_install_compose: false
tags:
- setup-docker
- setup-all
- install-docker
- install-all
- when: devture_docker_sdk_for_python_installation_enabled | bool
role: galaxy/com.devture.ansible.role.docker_sdk_for_python
tags:
- setup-docker
- setup-all
- install-docker
- install-all
- when: devture_timesync_installation_enabled | bool
role: galaxy/com.devture.ansible.role.timesync
tags:
- setup-timesync
- setup-all
- install-timesync
- install-all
- role: mash/playbook_base
- role: galaxy/swap
- when: system_security_ssh_enabled | bool
role: galaxy/ssh
- when: system_security_fail2ban_enabled | bool
role: galaxy/fail2ban
# This role exposes various tags (setup-postgres, setup-all, upgrade-postgres, import-postgres, etc.), so we don't tag it here.
- role: galaxy/com.devture.ansible.role.postgres
- role: galaxy/com.devture.ansible.role.postgres_backup
- role: galaxy/mongodb
- role: galaxy/com.devture.ansible.role.container_socket_proxy
- role: galaxy/com.devture.ansible.role.traefik
- role: galaxy/adguard_home
- role: galaxy/appsmith
- role: galaxy/authentik
- role: galaxy/backup_borg
- role: galaxy/collabora_online
- role: galaxy/docker_registry
- role: galaxy/docker_registry_browser
- role: galaxy/docker_registry_purger
- role: galaxy/firezone
- role: galaxy/focalboard
- role: galaxy/funkwhale
- role: galaxy/gitea
- role: galaxy/gotosocial
- role: galaxy/grafana
- role: galaxy/mariadb
- role: galaxy/miniflux
- role: galaxy/mrs
- role: galaxy/healthchecks
- role: galaxy/hubsite
- role: galaxy/jitsi
- role: galaxy/keycloak
- role: galaxy/lago
- role: galaxy/mobilizon
- role: galaxy/navidrome
- role: galaxy/netbox
- role: galaxy/nextcloud
- role: galaxy/owncast
- role: galaxy/peertube
- role: galaxy/postgis
- role: galaxy/prometheus
- role: galaxy/prometheus_node_exporter
- role: galaxy/prometheus_blackbox_exporter
- role: galaxy/prometheus_postgres_exporter
- role: galaxy/radicale
- role: galaxy/redmine
- role: galaxy/redis
- role: galaxy/soft_serve
- role: galaxy/syncthing
- role: galaxy/vaultwarden
- role: galaxy/uptime_kuma
- role: galaxy/wg_easy
- role: galaxy/com.devture.ansible.role.woodpecker_ci_server
- role: galaxy/com.devture.ansible.role.woodpecker_ci_agent
- role: galaxy/aux
- when: devture_systemd_service_manager_enabled | bool
role: galaxy/com.devture.ansible.role.systemd_service_manager
# This is pretty much last, because we want it to better serve as a "last known good configuration".
# See: https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/2217#issuecomment-1301487601
- when: devture_playbook_state_preserver_enabled | bool
role: galaxy/com.devture.ansible.role.playbook_state_preserver
tags:
- setup-all
- install-all
- role: galaxy/com.devture.ansible.role.playbook_runtime_messages