mirror of
https://github.com/2martens/cloud-configuration.git
synced 2026-10-17 16:46:51 +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,6 +11,7 @@ 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
|
||||||
|
|||||||
@@ -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
|
||||||
@@ -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