feat: Add basic setup for Payload CMS

This commit is contained in:
2025-02-23 13:24:05 +01:00
parent 150decaabc
commit 575a6a212f
7 changed files with 62 additions and 20 deletions
@@ -0,0 +1,3 @@
---
ssh_user: payload
frontend_domain: cms.2martens.de
+2 -1
View File
@@ -11,9 +11,10 @@ gitea ansible_host=giteajim.uber.space ansible_python_interpreter=/usr/bin/pytho
[frontend] [frontend]
wahlrecht-frontend ansible_host=gienah.uberspace.de ansible_python_interpreter=/usr/bin/python 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 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] [applications]
api-server ansible_host=49.13.77.70 ansible_python_interpreter=/usr/bin/python3 api-server ansible_host=49.13.77.70 ansible_python_interpreter=/usr/bin/python3
[keycloak] [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
+7 -19
View File
@@ -33,25 +33,6 @@
remote_user: "{{ ssh_user }}" remote_user: "{{ ssh_user }}"
roles: roles:
- gitea - 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 - name: Set up Keycloak
hosts: keycloak hosts: keycloak
gather_facts: false gather_facts: false
@@ -59,3 +40,10 @@
tags: keycloak tags: keycloak
roles: roles:
- keycloak - keycloak
- name: Set up Payload
hosts: payload
gather_facts: false
remote_user: "{{ ssh_user }}"
tags: payload
roles:
- payload
+2
View File
@@ -0,0 +1,2 @@
---
node_version: 20
+26
View File
@@ -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