mirror of
https://github.com/2martens/cloud-configuration.git
synced 2026-10-17 08:37:56 +02:00
feat: Add basic setup for Payload CMS
This commit is contained in:
@@ -0,0 +1,3 @@
|
||||
---
|
||||
ssh_user: payload
|
||||
frontend_domain: cms.2martens.de
|
||||
@@ -11,9 +11,10 @@ gitea ansible_host=giteajim.uber.space ansible_python_interpreter=/usr/bin/pytho
|
||||
[frontend]
|
||||
wahlrecht-frontend ansible_host=gienah.uberspace.de ansible_python_interpreter=/usr/bin/python
|
||||
repo ansible_host=shaula.uberspace.de ansible_python_interpreter=/usr/bin/python
|
||||
payload ansible_host=caelum.uberspace.de ansible_python_interpreter=/usr/bin/python
|
||||
|
||||
[applications]
|
||||
api-server ansible_host=49.13.77.70 ansible_python_interpreter=/usr/bin/python3
|
||||
|
||||
[keycloak]
|
||||
keycloak-server ansible_host=monoceres.uberspace.de ansible_python_interpreter=/usr/bin/python
|
||||
keycloak-server ansible_host=monoceres.uberspace.de ansible_python_interpreter=/usr/bin/python
|
||||
|
||||
@@ -33,25 +33,6 @@
|
||||
remote_user: "{{ ssh_user }}"
|
||||
roles:
|
||||
- gitea
|
||||
- name: Set up application server
|
||||
hosts: applications
|
||||
become: true
|
||||
become_method: ansible.builtin.sudo
|
||||
remote_user: "{{ ssh_user }}"
|
||||
roles:
|
||||
- drone_accessible
|
||||
- docker
|
||||
- nginx
|
||||
- letsencrypt
|
||||
- kafka
|
||||
- name: Set up Spring Boot applications
|
||||
hosts: applications
|
||||
become: true
|
||||
become_method: ansible.builtin.sudo
|
||||
remote_user: "{{ ssh_user }}"
|
||||
tags: springBoot
|
||||
roles:
|
||||
- spring_boot
|
||||
- name: Set up Keycloak
|
||||
hosts: keycloak
|
||||
gather_facts: false
|
||||
@@ -59,3 +40,10 @@
|
||||
tags: keycloak
|
||||
roles:
|
||||
- keycloak
|
||||
- name: Set up Payload
|
||||
hosts: payload
|
||||
gather_facts: false
|
||||
remote_user: "{{ ssh_user }}"
|
||||
tags: payload
|
||||
roles:
|
||||
- payload
|
||||
@@ -0,0 +1,2 @@
|
||||
---
|
||||
node_version: 20
|
||||
@@ -0,0 +1,26 @@
|
||||
---
|
||||
- name: Create service directory
|
||||
ansible.builtin.file:
|
||||
state: directory
|
||||
path: /home/{{ ssh_user }}/etc/services.d
|
||||
owner: "{{ ssh_user }}"
|
||||
group: "{{ ssh_user }}"
|
||||
mode: "755"
|
||||
- name: Create Payload service
|
||||
ansible.builtin.template:
|
||||
src: etc/services.d/payload.ini.j2
|
||||
dest: /home/{{ ssh_user }}/etc/services.d/payload.ini
|
||||
owner: "{{ ssh_user }}"
|
||||
group: "{{ ssh_user }}"
|
||||
mode: "644"
|
||||
- name: Create update script
|
||||
ansible.builtin.template:
|
||||
src: bin/updatePayload.sh.j2
|
||||
dest: /home/{{ ssh_user }}/bin/updatePayload.sh
|
||||
owner: "{{ ssh_user }}"
|
||||
group: "{{ ssh_user }}"
|
||||
mode: "744"
|
||||
- name: Set node version
|
||||
ansible.builtin.command:
|
||||
cmd: "uberspace tools use node {{ node_version }}"
|
||||
cwd: /home/{{ ssh_user }}
|
||||
@@ -0,0 +1,14 @@
|
||||
#!/bin/bash
|
||||
|
||||
if [ ! -e ~/payload-new ]; then
|
||||
echo "No-op: source does not exist."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
DATE=$(date +"%Y-%m-%dT%H:%M:%S")
|
||||
supervisorctl stop payload
|
||||
[ -e ~/payload ] && mv ~/payload ~/payload-old-$DATE
|
||||
mv ~/payload-new ~/payload
|
||||
cd ~/payload
|
||||
npm install
|
||||
supervisorctl start payload
|
||||
@@ -0,0 +1,8 @@
|
||||
[program:payload]
|
||||
directory=%(ENV_HOME)s/payload
|
||||
command=npm run start
|
||||
autostart=true
|
||||
autorestart=true
|
||||
environment=NODE_ENV=production
|
||||
# `startsecs` is set by Uberspace monitoring team, to prevent a broken service from looping
|
||||
startsecs=30
|
||||
Reference in New Issue
Block a user