Apply prettier formatting

This commit is contained in:
Marty Oehme 2024-06-24 20:36:55 +02:00
parent 6b4c4ccde4
commit c498b3ced8
Signed by: Marty
GPG key ID: EDBF2ED917B2EF6A
76 changed files with 123 additions and 202 deletions

View file

@ -12,7 +12,7 @@ vagrant plugin install vagrant-hosts vagrant-hostsupdater
``` ```
Additionally, since the test setup mirrors the production setup in that it makes use of subdomains for the individual hosted applications, Additionally, since the test setup mirrors the production setup in that it makes use of subdomains for the individual hosted applications,
the server needs to be reachable under a domain name, the server needs to be reachable under a domain name,
not just an IP address. not just an IP address.
For now this is most simply accomplished through editing the hosts file, e.g.: For now this is most simply accomplished through editing the hosts file, e.g.:
@ -23,21 +23,20 @@ For now this is most simply accomplished through editing the hosts file, e.g.:
``` ```
This will allow you to reach the main domain under `http(s)://ansible.test` and sets up two subdomains that can be reached. This will allow you to reach the main domain under `http(s)://ansible.test` and sets up two subdomains that can be reached.
Be aware that the hosts file does not support subdomain wildcards. Be aware that the hosts file does not support subdomain wildcards.
You will have to specify each hostname individually or use a tool such as `dnsmasq`. You will have to specify each hostname individually or use a tool such as `dnsmasq`.
Read more [here](https://serverfault.com/questions/118378/in-my-etc-hosts-file-on-linux-osx-how-do-i-do-a-wildcard-subdomain). Read more [here](https://serverfault.com/questions/118378/in-my-etc-hosts-file-on-linux-osx-how-do-i-do-a-wildcard-subdomain).
Then you are ready to run the complete infrastructure setup locally, Then you are ready to run the complete infrastructure setup locally,
simply by executing `ansible-playbook site.yml`. simply by executing `ansible-playbook site.yml`.
You can of course pick and choose what should be executed with host limits, tags, group variables, and so on, You can of course pick and choose what should be executed with host limits, tags, group variables, and so on,
but this should provide an easy way to see if a) the playbook is working as intended and b) what it does is useful. but this should provide an easy way to see if a) the playbook is working as intended and b) what it does is useful.
## Deployment ## Deployment
Most variables to be changed should be set either through `group_variables` or `host_variables`. Most variables to be changed should be set either through `group_variables` or `host_variables`.
For my deployment I have a `production` group under `group_variables` which houses both a `vars.yml` containing basic variables For my deployment I have a `production` group under `group_variables` which houses both a `vars.yml` containing basic variables
(like `server_domain`, `caddy_email`, etc.) (like `server_domain`, `caddy_email`, etc.)
and a `vault.yml` which houses everything that should ideally not be lying around in plain-text and a `vault.yml` which houses everything that should ideally not be lying around in plain-text
(individual container and database passwords for the various roles etc). (individual container and database passwords for the various roles etc).

View file

@ -1,22 +1,21 @@
--- ---
docker_swarm_advertise_addr: eth1 docker_swarm_advertise_addr: eth1
caddy_use_debug: yes caddy_use_debug: yes
caddy_tls_use_staging: yes caddy_tls_use_staging: yes
blog_use_https: no blog_use_https: no
caddy_use_https: no caddy_use_https: no
forgejo_use_https: no forgejo_use_https: no
landingpage_use_https: no landingpage_use_https: no
miniflux_use_https: no miniflux_use_https: no
monica_use_https: no monica_use_https: no
nextcloud_use_https: no nextcloud_use_https: no
ntfy_use_https: no ntfy_use_https: no
searx_use_https: no searx_use_https: no
shaarli_use_https: no shaarli_use_https: no
traggo_use_https: no traggo_use_https: no
wallabag_use_https: no wallabag_use_https: no
whoami_use_https: no whoami_use_https: no
server_domain: ansible.test server_domain: ansible.test

View file

@ -1,7 +1,7 @@
# Caddy # Caddy
Caddy is the reverse proxy for all other services running on the infrastructure. Caddy is the reverse proxy for all other services running on the infrastructure.
It was chosen for its relative ease of use, It was chosen for its relative ease of use,
interactible API and https-by-default setup. interactible API and https-by-default setup.
## Variables ## Variables
@ -48,28 +48,27 @@ caddy_version: alpine
Sets the docker image version to be used. Sets the docker image version to be used.
## Internal variables ## Internal variables
```yaml ```yaml
caddy_stack: caddy_stack:
name: caddy name: caddy
compose: "{{ lookup('template', 'docker-stack.yml.j2') | from_yaml }}" compose: "{{ lookup('template', 'docker-stack.yml.j2') | from_yaml }}"
``` ```
Defines the actual docker stack which will later run on the target. Defines the actual docker stack which will later run on the target.
The name can be changed and will be used as a proxy target (`caddy.mydomain.com` or `192.168.1.1/caddy`) --- The name can be changed and will be used as a proxy target (`caddy.mydomain.com` or `192.168.1.1/caddy`) ---
though to be clear there is no intention currently to expose the caddy to the web at the moment.\ though to be clear there is no intention currently to expose the caddy to the web at the moment.\
The compose option defines which template to use for the `docker-stack.yml` file. You can either change options for the stack in the template file, The compose option defines which template to use for the `docker-stack.yml` file. You can either change options for the stack in the template file,
or directly here like the following: or directly here like the following:
```yaml ```yaml
compose: compose:
- "{{ lookup('template', 'docker-stack.yml.j2') | from_yaml }}" - "{{ lookup('template', 'docker-stack.yml.j2') | from_yaml }}"
- version: '3' - version: "3"
services: services:
another-container: another-container:
image: nginx:latest image: nginx:latest
# ... # ...
``` ```

View file

@ -1,5 +1,4 @@
--- ---
caddy_version: alpine caddy_version: alpine
caddy_caddyfile_dir: "{{ docker_stack_files_dir }}/caddy" caddy_caddyfile_dir: "{{ docker_stack_files_dir }}/caddy"

View file

@ -1,4 +1,3 @@
--- ---
dependencies: dependencies:
- docker-swarm - docker-swarm

View file

@ -1,5 +1,4 @@
--- ---
caddy_stack: caddy_stack:
name: caddy name: caddy
compose: "{{ lookup('template', 'docker-stack.yml.j2') | from_yaml }}" compose: "{{ lookup('template', 'docker-stack.yml.j2') | from_yaml }}"

View file

@ -1,7 +1,7 @@
# Caddy # Caddy
Caddy is the reverse proxy for all other services running on the infrastructure. Caddy is the reverse proxy for all other services running on the infrastructure.
It was chosen for its relative ease of use, It was chosen for its relative ease of use,
interactible API and https-by-default setup. interactible API and https-by-default setup.
## Variables ## Variables
@ -48,28 +48,27 @@ caddy_version: alpine
Sets the docker image version to be used. Sets the docker image version to be used.
## Internal variables ## Internal variables
```yaml ```yaml
caddy_stack: caddy_stack:
name: caddy name: caddy
compose: "{{ lookup('template', 'docker-stack.yml.j2') | from_yaml }}" compose: "{{ lookup('template', 'docker-stack.yml.j2') | from_yaml }}"
``` ```
Defines the actual docker stack which will later run on the target. Defines the actual docker stack which will later run on the target.
The name can be changed and will be used as a proxy target (`caddy.mydomain.com` or `192.168.1.1/caddy`) --- The name can be changed and will be used as a proxy target (`caddy.mydomain.com` or `192.168.1.1/caddy`) ---
though to be clear there is no intention currently to expose the caddy to the web at the moment.\ though to be clear there is no intention currently to expose the caddy to the web at the moment.\
The compose option defines which template to use for the `docker-stack.yml` file. You can either change options for the stack in the template file, The compose option defines which template to use for the `docker-stack.yml` file. You can either change options for the stack in the template file,
or directly here like the following: or directly here like the following:
```yaml ```yaml
compose: compose:
- "{{ lookup('template', 'docker-stack.yml.j2') | from_yaml }}" - "{{ lookup('template', 'docker-stack.yml.j2') | from_yaml }}"
- version: '3' - version: "3"
services: services:
another-container: another-container:
image: nginx:latest image: nginx:latest
# ... # ...
``` ```

View file

@ -1,4 +1,3 @@
--- ---
dependencies: dependencies:
- docker-swarm - docker-swarm

View file

@ -1,5 +1,3 @@
--- ---
docker_stack_files_dir: /stacks docker_stack_files_dir: /stacks
docker_swarm_public_network_name: public docker_swarm_public_network_name: public

View file

@ -1,4 +1,3 @@
--- ---
dependencies: dependencies:
- docker - docker

View file

@ -28,7 +28,7 @@
ansible.builtin.file: ansible.builtin.file:
path: "{{ docker_stack_files_dir }}" path: "{{ docker_stack_files_dir }}"
state: directory state: directory
mode: '0755' mode: "0755"
become: true become: true
tags: tags:
- fs - fs

View file

@ -26,8 +26,8 @@ The docker image version to be used in stack creation.
subdomain_alias: git subdomain_alias: git
``` ```
If the deployed container should be served over a uri that is not the stack name. If the deployed container should be served over a uri that is not the stack name.
By default, it will be set to `git.yourdomain.com` - By default, it will be set to `git.yourdomain.com` -
if this option is not set it will be served on `forgejo.yourdomain.com` instead. if this option is not set it will be served on `forgejo.yourdomain.com` instead.
For now forgejo will still need to be initially set up after installation. For now forgejo will still need to be initially set up after installation.

View file

@ -1,5 +1,4 @@
--- ---
forgejo_version: 7 forgejo_version: 7
forgejo_upstream_file_dir: "{{ docker_stack_files_dir }}/{{ stack_name }}" forgejo_upstream_file_dir: "{{ docker_stack_files_dir }}/{{ stack_name }}"

View file

@ -1,5 +1,4 @@
--- ---
galaxy_info: galaxy_info:
author: Marty Oehme author: Marty Oehme
description: Light-weight git hosting description: Light-weight git hosting

View file

@ -9,4 +9,3 @@
- apt - apt
- download - download
- packages - packages

View file

@ -36,7 +36,7 @@
ansible.builtin.file: ansible.builtin.file:
path: "/app/forgejo/" path: "/app/forgejo/"
state: directory state: directory
mode: '0770' mode: "0770"
owner: "{{ git_user['uid'] }}" owner: "{{ git_user['uid'] }}"
group: "{{ git_user['group'] }}" group: "{{ git_user['group'] }}"
become: true become: true
@ -47,7 +47,7 @@
dest: "/app/forgejo/forgejo" dest: "/app/forgejo/forgejo"
owner: "{{ git_user['uid'] }}" owner: "{{ git_user['uid'] }}"
group: "{{ git_user['group'] }}" group: "{{ git_user['group'] }}"
mode: '0750' mode: "0750"
become: true become: true
- name: Host machine forgejo command points to passthrough command - name: Host machine forgejo command points to passthrough command

View file

@ -1,5 +1,4 @@
--- ---
stack_name: forgejo stack_name: forgejo
stack_image: "codeberg.org/forgejo/forgejo" stack_image: "codeberg.org/forgejo/forgejo"

View file

@ -1,10 +1,10 @@
# landingpage # landingpage
The public face of my server. The public face of my server.
Not much to see here honestly, Not much to see here honestly,
just a few simple lines of html explaining what this server is about and how to contact me. just a few simple lines of html explaining what this server is about and how to contact me.
I don't see anybody else benefiting massively from this role but me, I don't see anybody else benefiting massively from this role but me,
but if you want the same web presence go for it I suppose 😉 but if you want the same web presence go for it I suppose 😉
## Defaults ## Defaults
@ -31,7 +31,6 @@ The docker image version to be used in stack creation.
subdomain_alias: www subdomain_alias: www
``` ```
If the deployed container should be served over a uri that is not the stack name. If the deployed container should be served over a uri that is not the stack name.
By default, it will be set to `www.yourdomain.com` - By default, it will be set to `www.yourdomain.com` -
if this option is not set it will be served on `landingpage.yourdomain.com` instead. if this option is not set it will be served on `landingpage.yourdomain.com` instead.

View file

@ -1,5 +1,4 @@
--- ---
landingpage_version: latest landingpage_version: latest
landingpage_upstream_file_dir: "{{ docker_stack_files_dir }}/{{ stack_name }}" landingpage_upstream_file_dir: "{{ docker_stack_files_dir }}/{{ stack_name }}"

View file

@ -3,7 +3,7 @@
ansible.builtin.file: ansible.builtin.file:
path: "{{ landingpage_upstream_file_dir }}" path: "{{ landingpage_upstream_file_dir }}"
state: directory state: directory
mode: '0755' mode: "0755"
become: true become: true
listen: "update landingpage upstream" listen: "update landingpage upstream"
@ -40,7 +40,7 @@
community.docker.docker_container_exec: community.docker.docker_container_exec:
container: "{{ caddy_container_id }}" container: "{{ caddy_container_id }}"
command: > command: >
curl -X POST -H "Content-Type: application/json" -d @{{ landingpage_upstream_file_dir }}/upstream.json localhost:2019/config/apps/http/servers/{{ (landingpage_use_https == True) | ternary(caddy_https_server_name, caddy_http_server_name) }}/routes/0/ curl -X POST -H "Content-Type: application/json" -d @{{ landingpage_upstream_file_dir }}/upstream.json localhost:2019/config/apps/http/servers/{{ (landingpage_use_https == True) | ternary(caddy_https_server_name, caddy_http_server_name) }}/routes/0/
become: true become: true
listen: "update landingpage upstream" listen: "update landingpage upstream"
@ -50,4 +50,3 @@
state: absent state: absent
become: true become: true
listen: "update landingpage upstream" listen: "update landingpage upstream"

View file

@ -1,5 +1,4 @@
--- ---
galaxy_info: galaxy_info:
author: Marty Oehme author: Marty Oehme
description: Installs my personal public facing landing page as a docker stack service description: Installs my personal public facing landing page as a docker stack service
@ -7,7 +6,6 @@ galaxy_info:
min_ansible_version: "2.9" min_ansible_version: "2.9"
galaxy_tags: [] galaxy_tags: []
dependencies: dependencies:
- docker-swarm - docker-swarm
- caddy_id - caddy_id

View file

@ -21,4 +21,3 @@
tags: tags:
- docker-swarm - docker-swarm
notify: "update landingpage upstream" notify: "update landingpage upstream"

View file

@ -1,5 +1,4 @@
--- ---
stack_name: landingpage stack_name: landingpage
stack_image: "martyo/cloudserve-landing" stack_image: "martyo/cloudserve-landing"

View file

@ -27,6 +27,6 @@ The docker image version to be used in stack creation.
subdomain_alias: rss subdomain_alias: rss
``` ```
If the deployed container should be served over a uri that is not the stack name. If the deployed container should be served over a uri that is not the stack name.
By default, it will be set to `rss.yourdomain.com` - By default, it will be set to `rss.yourdomain.com` -
if this option is not set it will be served on `miniflux.yourdomain.com` instead. if this option is not set it will be served on `miniflux.yourdomain.com` instead.

View file

@ -1,5 +1,4 @@
--- ---
miniflux_version: latest miniflux_version: latest
miniflux_upstream_file_dir: "{{ docker_stack_files_dir }}/{{ stack_name }}" miniflux_upstream_file_dir: "{{ docker_stack_files_dir }}/{{ stack_name }}"

View file

@ -3,7 +3,7 @@
ansible.builtin.file: ansible.builtin.file:
path: "{{ miniflux_upstream_file_dir }}" path: "{{ miniflux_upstream_file_dir }}"
state: directory state: directory
mode: '0755' mode: "0755"
become: true become: true
listen: "update miniflux upstream" listen: "update miniflux upstream"
@ -40,7 +40,7 @@
community.docker.docker_container_exec: community.docker.docker_container_exec:
container: "{{ caddy_container_id }}" container: "{{ caddy_container_id }}"
command: > command: >
curl -X POST -H "Content-Type: application/json" -d @{{ miniflux_upstream_file_dir }}/upstream.json localhost:2019/config/apps/http/servers/{{ (miniflux_use_https == True) | ternary(caddy_https_server_name, caddy_http_server_name) }}/routes/0/ curl -X POST -H "Content-Type: application/json" -d @{{ miniflux_upstream_file_dir }}/upstream.json localhost:2019/config/apps/http/servers/{{ (miniflux_use_https == True) | ternary(caddy_https_server_name, caddy_http_server_name) }}/routes/0/
become: true become: true
listen: "update miniflux upstream" listen: "update miniflux upstream"
@ -50,4 +50,3 @@
state: absent state: absent
become: true become: true
listen: "update miniflux upstream" listen: "update miniflux upstream"

View file

@ -1,5 +1,4 @@
--- ---
galaxy_info: galaxy_info:
author: Marty Oehme author: Marty Oehme
description: Installs miniflux as a docker stack service description: Installs miniflux as a docker stack service
@ -7,7 +6,6 @@ galaxy_info:
min_ansible_version: "2.9" min_ansible_version: "2.9"
galaxy_tags: [] galaxy_tags: []
dependencies: dependencies:
- docker-swarm - docker-swarm
- caddy_id - caddy_id

View file

@ -21,4 +21,3 @@
tags: tags:
- docker-swarm - docker-swarm
notify: "update miniflux upstream" notify: "update miniflux upstream"

View file

@ -1,5 +1,4 @@
--- ---
stack_name: miniflux stack_name: miniflux
stack_image: "miniflux/miniflux" stack_image: "miniflux/miniflux"

View file

@ -27,8 +27,8 @@ The docker image version to be used in stack creation.
subdomain_alias: prm subdomain_alias: prm
``` ```
If the deployed container should be served over a uri that is not the stack name. If the deployed container should be served over a uri that is not the stack name.
By default, it will be set to `prm.yourdomain.com` (personal relationship manager) - By default, it will be set to `prm.yourdomain.com` (personal relationship manager) -
if this option is not set it will be served on `monica.yourdomain.com` instead. if this option is not set it will be served on `monica.yourdomain.com` instead.
``` ```
@ -38,14 +38,14 @@ monica_db_password: mymonicadbpassword
``` ```
Set the default username and password combination on first container start. Set the default username and password combination on first container start.
If loading from an existing volume this does nothing, otherwise it sets the If loading from an existing volume this does nothing, otherwise it sets the
first user so you can instantly log in. first user so you can instantly log in.
``` ```
monica_app_disable_signups: true monica_app_disable_signups: true
``` ```
Sets the behavior on the login screen --- Sets the behavior on the login screen ---
if set to true (default) will not let anyone but the first user sign up, if set to true (default) will not let anyone but the first user sign up,
who automatically becomes an administrative user. who automatically becomes an administrative user.
If set to false will allow multiple users to sign up on the instance. If set to false will allow multiple users to sign up on the instance.
@ -57,13 +57,13 @@ monica_app_weather_api_key: <your-darksky-key>
If `monica_app_geolocation_api_key` is set, Monica will translate addresses If `monica_app_geolocation_api_key` is set, Monica will translate addresses
input into the app to geographical latitude/ longitude data. input into the app to geographical latitude/ longitude data.
It requires an api key from https://locationiq.com/, which are free for It requires an api key from https://locationiq.com/, which are free for
10.000 daily requests. 10.000 daily requests.
Similarly, if `monica_app_weather_api_key` is set, monica will (afaik) show Similarly, if `monica_app_weather_api_key` is set, monica will (afaik) show
weather data for the location of individual contacts. weather data for the location of individual contacts.
It requires an API key from https://darksky.net/dev/register, where It requires an API key from https://darksky.net/dev/register, where
1.000 daily requests are free. 1.000 daily requests are free.
Be aware, however, that since darksky's sale to Apple, no new API signups are possible. Be aware, however, that since darksky's sale to Apple, no new API signups are possible.
To use this feature, `monica_app_geolocation_api_key` must also be filled out. To use this feature, `monica_app_geolocation_api_key` must also be filled out.
@ -71,8 +71,8 @@ To use this feature, `monica_app_geolocation_api_key` must also be filled out.
monica_mail_host: smtp.eu.mailgun.org monica_mail_host: smtp.eu.mailgun.org
monica_mail_port: 465 monica_mail_port: 465
monica_mail_encryption: tls monica_mail_encryption: tls
monica_mail_username: monica_mail_username:
monica_mail_password: monica_mail_password:
monica_mail_from: monica@yourserver.com monica_mail_from: monica@yourserver.com
monica_mail_from_name: Monica monica_mail_from_name: Monica
monica_mail_new_user_notification_address: "{{ caddy_email }}" monica_mail_new_user_notification_address: "{{ caddy_email }}"
@ -81,5 +81,5 @@ monica_mail_new_user_notification_address: "{{ caddy_email }}"
Sets up the necessary details for Monica to send out registration and reminder e-mails. Sets up the necessary details for Monica to send out registration and reminder e-mails.
Requires an smtp server set up, most easily doable through things like mailgun or sendgrid. Requires an smtp server set up, most easily doable through things like mailgun or sendgrid.
Variables should be relatively self-explanatory, Variables should be relatively self-explanatory,
with `monica_mail_new_user_notification_address` being the address the notifications should be sent *to*, with `monica_mail_new_user_notification_address` being the address the notifications should be sent _to_,
so in all probability some sort of administration address. so in all probability some sort of administration address.

View file

@ -1,5 +1,4 @@
--- ---
monica_version: latest monica_version: latest
monica_upstream_file_dir: "{{ docker_stack_files_dir }}/{{ stack_name }}" monica_upstream_file_dir: "{{ docker_stack_files_dir }}/{{ stack_name }}"
@ -19,8 +18,8 @@ monica_db_password: mymonicadbpassword
#monica_app_weather_api_key: #monica_app_weather_api_key:
#monica_mail_host: smtp.eu.mailgun.org #monica_mail_host: smtp.eu.mailgun.org
#monica_mail_username: #monica_mail_username:
#monica_mail_password: #monica_mail_password:
monica_mail_port: 465 monica_mail_port: 465
monica_mail_encryption: tls monica_mail_encryption: tls
#monica_mail_from: monica@yourserver.com #monica_mail_from: monica@yourserver.com

View file

@ -3,7 +3,7 @@
ansible.builtin.file: ansible.builtin.file:
path: "{{ monica_upstream_file_dir }}" path: "{{ monica_upstream_file_dir }}"
state: directory state: directory
mode: '0755' mode: "0755"
become: true become: true
listen: "update monica upstream" listen: "update monica upstream"
@ -40,7 +40,7 @@
community.docker.docker_container_exec: community.docker.docker_container_exec:
container: "{{ caddy_container_id }}" container: "{{ caddy_container_id }}"
command: > command: >
curl -X POST -H "Content-Type: application/json" -d @{{ monica_upstream_file_dir }}/upstream.json localhost:2019/config/apps/http/servers/{{ (monica_use_https == True) | ternary(caddy_https_server_name, caddy_http_server_name) }}/routes/0/ curl -X POST -H "Content-Type: application/json" -d @{{ monica_upstream_file_dir }}/upstream.json localhost:2019/config/apps/http/servers/{{ (monica_use_https == True) | ternary(caddy_https_server_name, caddy_http_server_name) }}/routes/0/
become: true become: true
listen: "update monica upstream" listen: "update monica upstream"
@ -50,4 +50,3 @@
state: absent state: absent
become: true become: true
listen: "update monica upstream" listen: "update monica upstream"

View file

@ -1,5 +1,4 @@
--- ---
galaxy_info: galaxy_info:
author: Marty Oehme author: Marty Oehme
description: Installs monica as a docker stack service description: Installs monica as a docker stack service
@ -7,7 +6,6 @@ galaxy_info:
min_ansible_version: "2.9" min_ansible_version: "2.9"
galaxy_tags: [] galaxy_tags: []
dependencies: dependencies:
- docker-swarm - docker-swarm
- caddy_id - caddy_id

View file

@ -9,4 +9,3 @@
- apt - apt
- download - download
- packages - packages

View file

@ -12,8 +12,7 @@
ansible.builtin.shell: echo -n 'base64:'; openssl rand -base64 32 ansible.builtin.shell: echo -n 'base64:'; openssl rand -base64 32
register: monica_app_key register: monica_app_key
- set_fact: - set_fact: monica_app_key={{ monica_app_key.stdout }}
monica_app_key={{ monica_app_key.stdout }}
## install container ## install container
- name: Check upstream status - name: Check upstream status
@ -37,4 +36,3 @@
tags: tags:
- docker-swarm - docker-swarm
notify: "update monica upstream" notify: "update monica upstream"

View file

@ -1,5 +1,4 @@
--- ---
stack_name: monica stack_name: monica
stack_image: "monica" stack_image: "monica"

View file

@ -4,13 +4,14 @@ A full office suite and groupware proposition,
though its main draw for most is the file synchronization abilities. though its main draw for most is the file synchronization abilities.
AKA Dropbox replacement. AKA Dropbox replacement.
This software can grow enormous and enormously complicated, This software can grow enormous and enormously complicated,
this Ansible setup role concentrates on 3 things: this Ansible setup role concentrates on 3 things:
* a stable and secure base setup from the official docker container
* automatic setup of an email pipeline so users can reset passwords and be updated of changes
* the ability to use S3 object storage as the primary way of storing users' files
The rest should be taken care of either automatically, - a stable and secure base setup from the official docker container
- automatic setup of an email pipeline so users can reset passwords and be updated of changes
- the ability to use S3 object storage as the primary way of storing users' files
The rest should be taken care of either automatically,
or supplied after the fact (if using different plugins or similar). or supplied after the fact (if using different plugins or similar).
## Defaults ## Defaults
@ -32,7 +33,7 @@ nextcloud_version: fpm
nextcloud_db_version: 12 nextcloud_db_version: 12
``` ```
The docker image version to be used in stack creation. The docker image version to be used in stack creation.
The role sets up the `php-fpm` version of the official Nextcloud image. The role sets up the `php-fpm` version of the official Nextcloud image.
That means, Caddy is used in front as the server which presents all pages That means, Caddy is used in front as the server which presents all pages
and access to files, the Nextcloud image itself only serves as the PHP data store. and access to files, the Nextcloud image itself only serves as the PHP data store.
@ -41,17 +42,17 @@ If changing the version to one relying on Nextcloud's in-built Apache server,
take care to change where the upstream proxy is pointing to since the Caddy server in front loses its meaning. take care to change where the upstream proxy is pointing to since the Caddy server in front loses its meaning.
The second variable points to the docker image that should be used for the PostgreSQL database, The second variable points to the docker image that should be used for the PostgreSQL database,
with 12 pre-filled as default. with 12 pre-filled as default.
You can put this to latest, but should take care to migrate the database correctly when an update rolls around, You can put this to latest, but should take care to migrate the database correctly when an update rolls around,
or it *will* destroy your data at some point. or it _will_ destroy your data at some point.
Generally, it seems easier to pin this to a specific version and then only update manually. Generally, it seems easier to pin this to a specific version and then only update manually.
```yml ```yml
subdomain_alias: files subdomain_alias: files
``` ```
If the deployed container should be served over a uri that is not the stack name. If the deployed container should be served over a uri that is not the stack name.
By default, it will be set to `files.yourdomain.com` - By default, it will be set to `files.yourdomain.com` -
if this option is not set it will be served on `nextcloud.yourdomain.com` instead. if this option is not set it will be served on `nextcloud.yourdomain.com` instead.
If you change or delete this, you should also change what `nextcloud_trusted_domains` points to. If you change or delete this, you should also change what `nextcloud_trusted_domains` points to.
@ -66,7 +67,7 @@ nextcloud_db_password: secretnextcloud
``` ```
Sets the default username and password for application and database. Sets the default username and password for application and database.
All of these variables are necessary to circumvent the manual installation process All of these variables are necessary to circumvent the manual installation process
you would usually be faced with on first creating a Nextcloud instance. you would usually be faced with on first creating a Nextcloud instance.
Ideally change all of these for your personal setup, Ideally change all of these for your personal setup,
but it is especially important to change the app admin login data since they are what is public facing. but it is especially important to change the app admin login data since they are what is public facing.
@ -77,7 +78,7 @@ nextcloud_trusted_domains: "{{ subdomain_alias }}.{{ server_domain }}"
The domains that are allowed to access your Nextcloud instance. The domains that are allowed to access your Nextcloud instance.
Should point to any domains that you want it accessible on, Should point to any domains that you want it accessible on,
can be a space-separated list of them. can be a space-separated list of them.
Take care to include the sub-domain if your are accessing it through one of them. Take care to include the sub-domain if your are accessing it through one of them.
[Further explanation](https://blog.martyoeh.me/posts/2021-11-18-nextcloud-trusted-domains/). [Further explanation](https://blog.martyoeh.me/posts/2021-11-18-nextcloud-trusted-domains/).
@ -130,7 +131,6 @@ If your details are correct, Nextcloud should automatically set up S3 as its pri
Be careful if you switch an existing data volume of the Nextcloud image to S3 Be careful if you switch an existing data volume of the Nextcloud image to S3
as you will lose all access to existing files. as you will lose all access to existing files.
The files *should* not be deleted at this point, The files _should_ not be deleted at this point,
only access will be lost, only access will be lost,
but you are playing with fire at this point. but you are playing with fire at this point.

View file

@ -1,5 +1,4 @@
--- ---
# set preferred application version # set preferred application version
nextcloud_version: 28-fpm-alpine nextcloud_version: 28-fpm-alpine
# set preferred postgres version # set preferred postgres version
@ -31,7 +30,6 @@ nextcloud_smtp_authtype: LOGIN
# nextcloud_smtp_password: <smtp-password> # nextcloud_smtp_password: <smtp-password>
nextcloud_smtp_from_address: noreply nextcloud_smtp_from_address: noreply
nextcloud_smtp_from_domain: "{{ server_domain }}" nextcloud_smtp_from_domain: "{{ server_domain }}"
# the following block is required *fully* for primary object storage # the following block is required *fully* for primary object storage
# nextcloud_s3_host: s3.eu-central-1.wasabisys.com # nextcloud_s3_host: s3.eu-central-1.wasabisys.com
# nextcloud_s3_bucket: nextcloud # nextcloud_s3_bucket: nextcloud

View file

@ -3,7 +3,7 @@
ansible.builtin.file: ansible.builtin.file:
path: "{{ nextcloud_upstream_file_dir }}" path: "{{ nextcloud_upstream_file_dir }}"
state: directory state: directory
mode: '0755' mode: "0755"
become: true become: true
listen: "update nextcloud upstream" listen: "update nextcloud upstream"
@ -40,7 +40,7 @@
community.docker.docker_container_exec: community.docker.docker_container_exec:
container: "{{ caddy_container_id }}" container: "{{ caddy_container_id }}"
command: > command: >
curl -X POST -H "Content-Type: application/json" -d @{{ nextcloud_upstream_file_dir }}/upstream.json localhost:2019/config/apps/http/servers/{{ (nextcloud_use_https == True) | ternary(caddy_https_server_name, caddy_http_server_name) }}/routes/0/ curl -X POST -H "Content-Type: application/json" -d @{{ nextcloud_upstream_file_dir }}/upstream.json localhost:2019/config/apps/http/servers/{{ (nextcloud_use_https == True) | ternary(caddy_https_server_name, caddy_http_server_name) }}/routes/0/
become: true become: true
listen: "update nextcloud upstream" listen: "update nextcloud upstream"
@ -50,4 +50,3 @@
state: absent state: absent
become: true become: true
listen: "update nextcloud upstream" listen: "update nextcloud upstream"

View file

@ -1,5 +1,4 @@
--- ---
galaxy_info: galaxy_info:
author: Marty Oehme author: Marty Oehme
description: Installs nextcloud as a docker stack service description: Installs nextcloud as a docker stack service
@ -7,7 +6,6 @@ galaxy_info:
min_ansible_version: "2.9" min_ansible_version: "2.9"
galaxy_tags: [] galaxy_tags: []
dependencies: dependencies:
- docker-swarm - docker-swarm
- caddy_id - caddy_id

View file

@ -14,7 +14,7 @@
ansible.builtin.file: ansible.builtin.file:
path: "{{ nextcloud_upstream_file_dir }}" path: "{{ nextcloud_upstream_file_dir }}"
state: directory state: directory
mode: '0755' mode: "0755"
become: true become: true
notify: "update nextcloud upstream" notify: "update nextcloud upstream"
@ -36,4 +36,3 @@
tags: tags:
- docker-swarm - docker-swarm
notify: "update nextcloud upstream" notify: "update nextcloud upstream"

View file

@ -1,5 +1,4 @@
--- ---
stack_name: nextcloud stack_name: nextcloud
stack_image: "nextcloud" stack_image: "nextcloud"

View file

@ -19,7 +19,7 @@ The on-target directory where the proxy configuration file should be stashed.
ntfy_use_https: true ntfy_use_https: true
``` ```
Whether the service should be reachable through http (port 80) or through https (port 443) and provision an https certificate. Whether the service should be reachable through http (port 80) or through https (port 443) and provision an https certificate.
Usually you will want this to stay `true`, Usually you will want this to stay `true`,
especially on the public facing web. especially on the public facing web.
@ -33,8 +33,8 @@ The docker image version to be used in stack creation.
subdomain_alias: push subdomain_alias: push
``` ```
If the deployed container should be served over a uri that is not the stack name. If the deployed container should be served over a uri that is not the stack name.
By default, it will be set to `push.yourdomain.com` - By default, it will be set to `push.yourdomain.com` -
if this option is not set it will be served on `ntfy.yourdomain.com` instead. if this option is not set it will be served on `ntfy.yourdomain.com` instead.
The individual `ntfy` options to be changed are very well described on The individual `ntfy` options to be changed are very well described on

View file

@ -3,7 +3,7 @@
ansible.builtin.file: ansible.builtin.file:
path: "{{ ntfy_upstream_file_dir }}" path: "{{ ntfy_upstream_file_dir }}"
state: directory state: directory
mode: '0755' mode: "0755"
become: true become: true
listen: "update ntfy upstream" listen: "update ntfy upstream"
@ -40,7 +40,6 @@
community.docker.docker_container_exec: community.docker.docker_container_exec:
container: "{{ caddy_container_id }}" container: "{{ caddy_container_id }}"
command: > command: >
curl -X POST -H "Content-Type: application/json" -d @{{ ntfy_upstream_file_dir }}/upstream.json localhost:2019/config/apps/http/servers/{{ (ntfy_use_https == True) | ternary(caddy_https_server_name, caddy_http_server_name) }}/routes/0/ curl -X POST -H "Content-Type: application/json" -d @{{ ntfy_upstream_file_dir }}/upstream.json localhost:2019/config/apps/http/servers/{{ (ntfy_use_https == True) | ternary(caddy_https_server_name, caddy_http_server_name) }}/routes/0/
become: true become: true
listen: "update ntfy upstream" listen: "update ntfy upstream"

View file

@ -1,5 +1,4 @@
--- ---
galaxy_info: galaxy_info:
author: Marty Oehme author: Marty Oehme
description: Installs a self-hosted push notification service through docker-swarm. description: Installs a self-hosted push notification service through docker-swarm.
@ -7,7 +6,6 @@ galaxy_info:
min_ansible_version: "2.9" min_ansible_version: "2.9"
galaxy_tags: [] galaxy_tags: []
dependencies: dependencies:
- docker-swarm - docker-swarm
- caddy_id - caddy_id

View file

@ -3,7 +3,7 @@
ansible.builtin.file: ansible.builtin.file:
path: "{{ ntfy_upstream_file_dir }}" path: "{{ ntfy_upstream_file_dir }}"
state: directory state: directory
mode: '0755' mode: "0755"
become: true become: true
- name: Move ntfy configuration file to target dir - name: Move ntfy configuration file to target dir
@ -35,4 +35,3 @@
tags: tags:
- docker-swarm - docker-swarm
notify: "update ntfy upstream" notify: "update ntfy upstream"

View file

@ -1,5 +1,4 @@
--- ---
stack_name: ntfy stack_name: ntfy
stack_image: "binwiederhier/ntfy" stack_image: "binwiederhier/ntfy"

View file

@ -26,8 +26,8 @@ The docker image version to be used in stack creation.
subdomain_alias: search subdomain_alias: search
``` ```
If the deployed container should be served over a uri that is not the stack name. If the deployed container should be served over a uri that is not the stack name.
By default, it will be set to `search.yourdomain.com` - By default, it will be set to `search.yourdomain.com` -
if this option is not set it will be served on `searx.yourdomain.com` instead. if this option is not set it will be served on `searx.yourdomain.com` instead.
``` ```
@ -39,11 +39,11 @@ searx_authentication:
By default, the searx instance is not protected with a login, however you By default, the searx instance is not protected with a login, however you
can have caddy provide a basic auth login form by using this variable. can have caddy provide a basic auth login form by using this variable.
You can either change the login to suit you by generating a combination You can either change the login to suit you by generating a combination
(or multiple, it will also work with an arbitrary amount of logins), (or multiple, it will also work with an arbitrary amount of logins),
or remove the necessity to login altogether by not setting the or remove the necessity to login altogether by not setting the
`searx_authentication` variable to anything. `searx_authentication` variable to anything.
The password needs to be in a hashed format, which is easiest to accomplish The password needs to be in a hashed format, which is easiest to accomplish
with the help of caddy itself --- simply doing `caddy hash-password` will with the help of caddy itself --- simply doing `caddy hash-password` will
allow you to create a new hashed password. allow you to create a new hashed password.

View file

@ -1,5 +1,4 @@
--- ---
searx_version: latest searx_version: latest
searx_upstream_file_dir: "{{ docker_stack_files_dir }}/{{ stack_name }}" searx_upstream_file_dir: "{{ docker_stack_files_dir }}/{{ stack_name }}"
@ -8,7 +7,6 @@ searx_use_https: true
# the subdomain link searx will be reachable under # the subdomain link searx will be reachable under
subdomain_alias: search subdomain_alias: search
# searx_authentication: # searx_authentication:
# - username: mysearxusername # - username: mysearxusername
# password: JDJhJDE0JFdjUnQ5WWllcU8wa01xS0JBS2dlMy5zMEhRTmxqTXdIZmdjcTN6ZGFwRjJlYUdoSHAwRUhL # mysearxpassword # password: JDJhJDE0JFdjUnQ5WWllcU8wa01xS0JBS2dlMy5zMEhRTmxqTXdIZmdjcTN6ZGFwRjJlYUdoSHAwRUhL # mysearxpassword

View file

@ -3,7 +3,7 @@
ansible.builtin.file: ansible.builtin.file:
path: "{{ searx_upstream_file_dir }}" path: "{{ searx_upstream_file_dir }}"
state: directory state: directory
mode: '0755' mode: "0755"
become: true become: true
listen: "update searx upstream" listen: "update searx upstream"
@ -40,7 +40,7 @@
community.docker.docker_container_exec: community.docker.docker_container_exec:
container: "{{ caddy_container_id }}" container: "{{ caddy_container_id }}"
command: > command: >
curl -X POST -H "Content-Type: application/json" -d @{{ searx_upstream_file_dir }}/upstream.json localhost:2019/config/apps/http/servers/{{ (searx_use_https == True) | ternary(caddy_https_server_name, caddy_http_server_name) }}/routes/0/ curl -X POST -H "Content-Type: application/json" -d @{{ searx_upstream_file_dir }}/upstream.json localhost:2019/config/apps/http/servers/{{ (searx_use_https == True) | ternary(caddy_https_server_name, caddy_http_server_name) }}/routes/0/
become: true become: true
listen: "update searx upstream" listen: "update searx upstream"
@ -50,4 +50,3 @@
state: absent state: absent
become: true become: true
listen: "update searx upstream" listen: "update searx upstream"

View file

@ -1,5 +1,4 @@
--- ---
galaxy_info: galaxy_info:
author: Marty Oehme author: Marty Oehme
description: Installs searx as a docker stack service description: Installs searx as a docker stack service
@ -7,7 +6,6 @@ galaxy_info:
min_ansible_version: "2.9" min_ansible_version: "2.9"
galaxy_tags: [] galaxy_tags: []
dependencies: dependencies:
- docker-swarm - docker-swarm
- caddy_id - caddy_id

View file

@ -21,4 +21,3 @@
tags: tags:
- docker-swarm - docker-swarm
notify: "update searx upstream" notify: "update searx upstream"

View file

@ -1,5 +1,4 @@
--- ---
stack_name: searx stack_name: searx
stack_image: "searxng/searxng" stack_image: "searxng/searxng"

View file

@ -3,11 +3,11 @@
A simple and fast bookmark manager. A simple and fast bookmark manager.
Can be deployed in minutes and takes minimum amount of resources. Can be deployed in minutes and takes minimum amount of resources.
Be aware that shaarli installations can *not* be fully automated. Be aware that shaarli installations can _not_ be fully automated.
That means after running this ansible role you will still have to setup up the first run wizard and create a user and so forth That means after running this ansible role you will still have to setup up the first run wizard and create a user and so forth
(if not running with an existing data-store). (if not running with an existing data-store).
Do this quickly after setup, Do this quickly after setup,
*especially* if your instance is public-facing! _especially_ if your instance is public-facing!
{: .alert .alert-warning} {: .alert .alert-warning}
## Defaults ## Defaults
@ -34,7 +34,6 @@ The docker image version to be used in stack creation.
subdomain_alias: links subdomain_alias: links
``` ```
If the deployed container should be served over a uri that is not the stack name. If the deployed container should be served over a uri that is not the stack name.
By default, it will be set to `links.yourdomain.com` - By default, it will be set to `links.yourdomain.com` -
if this option is not set it will be served on `shaarli.yourdomain.com` instead. if this option is not set it will be served on `shaarli.yourdomain.com` instead.

View file

@ -1,5 +1,4 @@
--- ---
shaarli_version: release # they offer: latest and release (stable) versions shaarli_version: release # they offer: latest and release (stable) versions
shaarli_upstream_file_dir: "{{ docker_stack_files_dir }}/{{ stack_name }}" shaarli_upstream_file_dir: "{{ docker_stack_files_dir }}/{{ stack_name }}"

View file

@ -3,7 +3,7 @@
ansible.builtin.file: ansible.builtin.file:
path: "{{ shaarli_upstream_file_dir }}" path: "{{ shaarli_upstream_file_dir }}"
state: directory state: directory
mode: '0755' mode: "0755"
become: true become: true
listen: "update shaarli upstream" listen: "update shaarli upstream"
@ -40,7 +40,7 @@
community.docker.docker_container_exec: community.docker.docker_container_exec:
container: "{{ caddy_container_id }}" container: "{{ caddy_container_id }}"
command: > command: >
curl -X POST -H "Content-Type: application/json" -d @{{ shaarli_upstream_file_dir }}/upstream.json localhost:2019/config/apps/http/servers/{{ (shaarli_use_https == True) | ternary(caddy_https_server_name, caddy_http_server_name) }}/routes/0/ curl -X POST -H "Content-Type: application/json" -d @{{ shaarli_upstream_file_dir }}/upstream.json localhost:2019/config/apps/http/servers/{{ (shaarli_use_https == True) | ternary(caddy_https_server_name, caddy_http_server_name) }}/routes/0/
become: true become: true
listen: "update shaarli upstream" listen: "update shaarli upstream"
@ -50,4 +50,3 @@
state: absent state: absent
become: true become: true
listen: "update shaarli upstream" listen: "update shaarli upstream"

View file

@ -1,5 +1,4 @@
--- ---
galaxy_info: galaxy_info:
author: Marty Oehme author: Marty Oehme
description: Installs shaarli as a docker stack service description: Installs shaarli as a docker stack service
@ -7,7 +6,6 @@ galaxy_info:
min_ansible_version: "2.9" min_ansible_version: "2.9"
galaxy_tags: [] galaxy_tags: []
dependencies: dependencies:
- docker-swarm - docker-swarm
- caddy_id - caddy_id

View file

@ -21,4 +21,3 @@
tags: tags:
- docker-swarm - docker-swarm
notify: "update shaarli upstream" notify: "update shaarli upstream"

View file

@ -1,5 +1,4 @@
--- ---
stack_name: shaarli stack_name: shaarli
stack_image: "ghcr.io/shaarli/shaarli" stack_image: "ghcr.io/shaarli/shaarli"

View file

@ -27,8 +27,8 @@ The docker image version to be used in stack creation.
subdomain_alias: time subdomain_alias: time
``` ```
If the deployed container should be served over a uri that is not the stack name. If the deployed container should be served over a uri that is not the stack name.
By default, it will be set to `time.yourdomain.com` - By default, it will be set to `time.yourdomain.com` -
if this option is not set it will be served on `traggo.yourdomain.com` instead. if this option is not set it will be served on `traggo.yourdomain.com` instead.
``` ```
@ -37,5 +37,5 @@ traggo_password: mytraggopassword
``` ```
Set the default username and password combination on first container start. Set the default username and password combination on first container start.
If loading from an existing volume this does nothing, otherwise it sets the If loading from an existing volume this does nothing, otherwise it sets the
first user so you can instantly log in. first user so you can instantly log in.

View file

@ -1,5 +1,4 @@
--- ---
traggo_version: latest traggo_version: latest
traggo_upstream_file_dir: "{{ docker_stack_files_dir }}/{{ stack_name }}" traggo_upstream_file_dir: "{{ docker_stack_files_dir }}/{{ stack_name }}"

View file

@ -3,7 +3,7 @@
ansible.builtin.file: ansible.builtin.file:
path: "{{ traggo_upstream_file_dir }}" path: "{{ traggo_upstream_file_dir }}"
state: directory state: directory
mode: '0755' mode: "0755"
become: true become: true
listen: "update traggo upstream" listen: "update traggo upstream"
@ -40,7 +40,7 @@
community.docker.docker_container_exec: community.docker.docker_container_exec:
container: "{{ caddy_container_id }}" container: "{{ caddy_container_id }}"
command: > command: >
curl -X POST -H "Content-Type: application/json" -d @{{ traggo_upstream_file_dir }}/upstream.json localhost:2019/config/apps/http/servers/{{ (traggo_use_https == True) | ternary(caddy_https_server_name, caddy_http_server_name) }}/routes/0/ curl -X POST -H "Content-Type: application/json" -d @{{ traggo_upstream_file_dir }}/upstream.json localhost:2019/config/apps/http/servers/{{ (traggo_use_https == True) | ternary(caddy_https_server_name, caddy_http_server_name) }}/routes/0/
become: true become: true
listen: "update traggo upstream" listen: "update traggo upstream"
@ -50,4 +50,3 @@
state: absent state: absent
become: true become: true
listen: "update traggo upstream" listen: "update traggo upstream"

View file

@ -1,5 +1,4 @@
--- ---
galaxy_info: galaxy_info:
author: Marty Oehme author: Marty Oehme
description: Installs traggo as a docker stack service description: Installs traggo as a docker stack service
@ -7,7 +6,6 @@ galaxy_info:
min_ansible_version: "2.9" min_ansible_version: "2.9"
galaxy_tags: [] galaxy_tags: []
dependencies: dependencies:
- docker-swarm - docker-swarm
- caddy_id - caddy_id

View file

@ -21,4 +21,3 @@
tags: tags:
- docker-swarm - docker-swarm
notify: "update traggo upstream" notify: "update traggo upstream"

View file

@ -1,5 +1,4 @@
--- ---
stack_name: traggo stack_name: traggo
stack_image: "traggo/server" stack_image: "traggo/server"

View file

@ -39,4 +39,3 @@ stack_image: "wallabag/wallabag"
``` ```
The docker hub image to be use in provisioning. The docker hub image to be use in provisioning.

View file

@ -1,5 +1,4 @@
--- ---
wallabag_version: latest wallabag_version: latest
wallabag_upstream_file_dir: "{{ docker_stack_files_dir }}/{{ stack_name }}" wallabag_upstream_file_dir: "{{ docker_stack_files_dir }}/{{ stack_name }}"

View file

@ -3,7 +3,7 @@
ansible.builtin.file: ansible.builtin.file:
path: "{{ wallabag_upstream_file_dir }}" path: "{{ wallabag_upstream_file_dir }}"
state: directory state: directory
mode: '0755' mode: "0755"
become: true become: true
listen: "update wallabag upstream" listen: "update wallabag upstream"
@ -40,7 +40,7 @@
community.docker.docker_container_exec: community.docker.docker_container_exec:
container: "{{ caddy_container_id }}" container: "{{ caddy_container_id }}"
command: > command: >
curl -X POST -H "Content-Type: application/json" -d @{{ wallabag_upstream_file_dir }}/upstream.json localhost:2019/config/apps/http/servers/{{ (wallabag_use_https == True) | ternary(caddy_https_server_name, caddy_http_server_name) }}/routes/0/ curl -X POST -H "Content-Type: application/json" -d @{{ wallabag_upstream_file_dir }}/upstream.json localhost:2019/config/apps/http/servers/{{ (wallabag_use_https == True) | ternary(caddy_https_server_name, caddy_http_server_name) }}/routes/0/
become: true become: true
listen: "update wallabag upstream" listen: "update wallabag upstream"

View file

@ -1,5 +1,4 @@
--- ---
galaxy_info: galaxy_info:
author: Marty Oehme author: Marty Oehme
description: Installs wallabag as a docker stack service description: Installs wallabag as a docker stack service
@ -7,7 +6,6 @@ galaxy_info:
min_ansible_version: "2.9" min_ansible_version: "2.9"
galaxy_tags: [] galaxy_tags: []
dependencies: dependencies:
- docker-swarm - docker-swarm
- caddy_id - caddy_id

View file

@ -1,5 +1,4 @@
--- ---
stack_name: wallabag stack_name: wallabag
stack_image: "wallabag/wallabag" stack_image: "wallabag/wallabag"

View file

@ -1,5 +1,4 @@
--- ---
whoami_version: latest whoami_version: latest
whoami_upstream_file_dir: "{{ docker_stack_files_dir }}/{{ stack.name }}" whoami_upstream_file_dir: "{{ docker_stack_files_dir }}/{{ stack.name }}"

View file

@ -3,7 +3,7 @@
ansible.builtin.file: ansible.builtin.file:
path: "{{ whoami_upstream_file_dir }}" path: "{{ whoami_upstream_file_dir }}"
state: directory state: directory
mode: '0755' mode: "0755"
become: true become: true
listen: "update whoami upstream" listen: "update whoami upstream"
@ -40,7 +40,7 @@
community.docker.docker_container_exec: community.docker.docker_container_exec:
container: "{{ caddy_container_id }}" container: "{{ caddy_container_id }}"
command: > command: >
curl -X POST -H "Content-Type: application/json" -d @{{ whoami_upstream_file_dir }}/upstream.json localhost:2019/config/apps/http/servers/{{ (whoami_use_https == True) | ternary(caddy_https_server_name, caddy_http_server_name) }}/routes/0/ curl -X POST -H "Content-Type: application/json" -d @{{ whoami_upstream_file_dir }}/upstream.json localhost:2019/config/apps/http/servers/{{ (whoami_use_https == True) | ternary(caddy_https_server_name, caddy_http_server_name) }}/routes/0/
become: true become: true
listen: "update whoami upstream" listen: "update whoami upstream"
@ -50,4 +50,3 @@
state: absent state: absent
become: true become: true
listen: "update whoami upstream" listen: "update whoami upstream"

View file

@ -1,5 +1,4 @@
--- ---
dependencies: dependencies:
- docker-swarm - docker-swarm
- caddy_id - caddy_id

View file

@ -22,4 +22,3 @@
tags: tags:
- docker-swarm - docker-swarm
notify: "update whoami upstream" notify: "update whoami upstream"

View file

@ -1,6 +1,4 @@
--- ---
stack: stack:
name: whoami name: whoami
compose: "{{ lookup('template', 'docker-stack.yml.j2') | from_yaml }}" compose: "{{ lookup('template', 'docker-stack.yml.j2') | from_yaml }}"

View file

@ -21,13 +21,13 @@
- name: Install caddy reverse proxy - name: Install caddy reverse proxy
import_role: import_role:
role: caddy role: caddy
tags: tags:
- caddy - caddy
- name: Grab caddy container id for all following services - name: Grab caddy container id for all following services
import_role: import_role:
role: caddy_id role: caddy_id
tags: tags:
- caddy_id - caddy_id
- always - always