Draft role for Heriverse/Stratigraph
This commit is contained in:
11
playbooks/heriverse.yml
Normal file
11
playbooks/heriverse.yml
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
---
|
||||||
|
- name: Configure webserver with Docker, Heriverse and Caddy
|
||||||
|
hosts:
|
||||||
|
- localhost
|
||||||
|
become: true
|
||||||
|
vars:
|
||||||
|
server_name: "heriverse.stratigraph"
|
||||||
|
|
||||||
|
roles:
|
||||||
|
- docker
|
||||||
|
- heriverse
|
||||||
3
roles/heriverse/defaults/main.yml
Normal file
3
roles/heriverse/defaults/main.yml
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
heriverse_repo_url: "https://git.3dresearch.it/stratigraph/docker-heriverse"
|
||||||
|
# Note: replace with the domain name for Caddy config
|
||||||
|
#server_name: "heriverse.stratigraph"
|
||||||
5
roles/heriverse/handlers/main.yml
Normal file
5
roles/heriverse/handlers/main.yml
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
- name: Restart Caddy
|
||||||
|
ansible.builtin.service:
|
||||||
|
name: caddy
|
||||||
|
state: restarted
|
||||||
68
roles/heriverse/tasks/main.yml
Normal file
68
roles/heriverse/tasks/main.yml
Normal file
@@ -0,0 +1,68 @@
|
|||||||
|
---
|
||||||
|
- name: Ensure ACL is installed
|
||||||
|
ansible.builtin.package:
|
||||||
|
name:
|
||||||
|
- acl
|
||||||
|
state: present
|
||||||
|
update_cache: yes
|
||||||
|
|
||||||
|
- name: Ensure git is installed
|
||||||
|
ansible.builtin.package:
|
||||||
|
name:
|
||||||
|
- git
|
||||||
|
state: present
|
||||||
|
update_cache: yes
|
||||||
|
|
||||||
|
- name: Ensure Caddy is installed
|
||||||
|
ansible.builtin.package:
|
||||||
|
name:
|
||||||
|
- caddy
|
||||||
|
state: present
|
||||||
|
update_cache: yes
|
||||||
|
|
||||||
|
- name: Create Heriverse user
|
||||||
|
ansible.builtin.user:
|
||||||
|
name: heriverse
|
||||||
|
shell: /usr/sbin/nologin
|
||||||
|
home: /opt/heriverse
|
||||||
|
create_home: true
|
||||||
|
password: '*'
|
||||||
|
|
||||||
|
- name: Ensure Heriverse directory exists
|
||||||
|
ansible.builtin.file:
|
||||||
|
path: /opt/heriverse/docker-herivese
|
||||||
|
state: directory
|
||||||
|
owner: heriverse
|
||||||
|
group: heriverse
|
||||||
|
mode: "0755"
|
||||||
|
|
||||||
|
- name: Clone Heriverse repo
|
||||||
|
ansible.builtin.git:
|
||||||
|
repo: "{{ heriverse_repo_url }}"
|
||||||
|
dest: /opt/heriverse/docker-heriverse
|
||||||
|
clone: true
|
||||||
|
become: true
|
||||||
|
become_user: heriverse
|
||||||
|
|
||||||
|
- name: Create and start all Heriverse services
|
||||||
|
community.docker.docker_compose_v2:
|
||||||
|
project_src: /opt/heriverse/docker-heriverse
|
||||||
|
pull: missing
|
||||||
|
register: output
|
||||||
|
|
||||||
|
- name: Execute entrypoint script
|
||||||
|
ansible.builtin.command:
|
||||||
|
chdir: /opt/heriverse/docker-heriverse
|
||||||
|
cmd: './entrypoint.sh'
|
||||||
|
become: true
|
||||||
|
become_user: heriverse
|
||||||
|
|
||||||
|
- name: Copy Caddy config file
|
||||||
|
ansible.builtin.template:
|
||||||
|
src: Caddyfile.j2
|
||||||
|
dest: "/etc/caddy/Caddyfile"
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
mode: '0644'
|
||||||
|
notify: Restart Caddy
|
||||||
|
|
||||||
25
roles/heriverse/templates/Caddyfile.j2
Normal file
25
roles/heriverse/templates/Caddyfile.j2
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
{{ server_name }} {
|
||||||
|
# Don't show ATON's frontend home page
|
||||||
|
redir / /a/heriverse 302
|
||||||
|
|
||||||
|
request_body {
|
||||||
|
max_size 2GB # This can be made configurable
|
||||||
|
}
|
||||||
|
|
||||||
|
# `handle_path` is required where URIs must be rewritten
|
||||||
|
handle_path /server/* {
|
||||||
|
reverse_proxy localhost:3000
|
||||||
|
}
|
||||||
|
|
||||||
|
handle /auth* {
|
||||||
|
reverse_proxy localhost:8080
|
||||||
|
}
|
||||||
|
|
||||||
|
handle_path /couchdb/* {
|
||||||
|
reverse_proxy localhost:5984
|
||||||
|
}
|
||||||
|
|
||||||
|
handle /* {
|
||||||
|
reverse_proxy localhost:8081
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user