Update phpvms role
This commit is contained in:
parent
8d9d084c7d
commit
64e1381513
7 changed files with 119 additions and 13 deletions
16
playbooks/roles/backup/files/hooks/phpvms
Executable file
16
playbooks/roles/backup/files/hooks/phpvms
Executable file
|
|
@ -0,0 +1,16 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
service=$(basename "$0")
|
||||||
|
|
||||||
|
backup_path="$1"
|
||||||
|
|
||||||
|
if [ "$2" != "before" ]; then
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
cd "/opt/services/$service" || exit
|
||||||
|
|
||||||
|
docker compose exec mariadb sh -c 'mariadb-dump --all-databases -u root -p"$MYSQL_ROOT_PASSWORD"' >"$backup_path/database.sql"
|
||||||
|
cp resources/views/layouts/SPTheme/config.json "$backup_path/config.json"
|
||||||
|
cp modules/DisposableBasic/Resources/views/web/blank.blade.php "$backup_path/blank.blade.php"
|
||||||
|
cp -r public/uploads/ "$backup_path"
|
||||||
1
playbooks/roles/backup/files/hooks/phpvms_test
Symbolic link
1
playbooks/roles/backup/files/hooks/phpvms_test
Symbolic link
|
|
@ -0,0 +1 @@
|
||||||
|
phpvms
|
||||||
41
playbooks/roles/backup/files/recovery/phpvms
Executable file
41
playbooks/roles/backup/files/recovery/phpvms
Executable file
|
|
@ -0,0 +1,41 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
service=$(basename "$0")
|
||||||
|
|
||||||
|
tmp_dir=$(mktemp -d)
|
||||||
|
backup_dir="$tmp_dir/opt/services/_backup/$service"
|
||||||
|
|
||||||
|
cd /opt/services/backup/
|
||||||
|
|
||||||
|
echo "Restoring backup..."
|
||||||
|
autorestic -c .autorestic.all.yml restore -l "$service" --from borgbase --to "$tmp_dir"
|
||||||
|
echo "Backup restored."
|
||||||
|
|
||||||
|
cd "/opt/services/$service" || exit
|
||||||
|
|
||||||
|
echo "Stopping all services"
|
||||||
|
docker compose down
|
||||||
|
echo "Starting database..."
|
||||||
|
docker compose up -d mariadb
|
||||||
|
|
||||||
|
echo "Waiting for database to start..."
|
||||||
|
sleep 10
|
||||||
|
|
||||||
|
echo "Restoring database..."
|
||||||
|
docker compose exec -T mariadb sh -c 'mariadb -u root -p"$MYSQL_ROOT_PASSWORD"' < "$backup_dir/database.sql"
|
||||||
|
echo "Database restored."
|
||||||
|
|
||||||
|
echo "Restoring other files..."
|
||||||
|
install -o 1000 -g 1000 "$backup_dir/config.json" resources/views/layouts/SPTheme/config.json
|
||||||
|
install -o 1000 -g 1000 "$backup_dir/blank.blade.php" modules/DisposableBasic/Resources/views/web/blank.blade.php
|
||||||
|
cp -rf "$backup_dir/uploads/" public/
|
||||||
|
chown -R 1000:1000 public/uploads
|
||||||
|
echo "Other files restored."
|
||||||
|
|
||||||
|
echo "Removing temporary files..."
|
||||||
|
rm -rf "$tmp_dir"
|
||||||
|
|
||||||
|
echo "Starting services..."
|
||||||
|
docker compose up -d --force-recreate
|
||||||
1
playbooks/roles/backup/files/recovery/phpvms_test
Symbolic link
1
playbooks/roles/backup/files/recovery/phpvms_test
Symbolic link
|
|
@ -0,0 +1 @@
|
||||||
|
phpvms
|
||||||
|
|
@ -11,6 +11,8 @@ phpvms_app_key: "{{ undef() }}"
|
||||||
|
|
||||||
phpvms_domain: "kondor-virtual.de"
|
phpvms_domain: "kondor-virtual.de"
|
||||||
|
|
||||||
|
phpvms_assets_url: "{{ undef() }}"
|
||||||
|
|
||||||
phpvms_svc:
|
phpvms_svc:
|
||||||
domain: "{{ phpvms_domain }}"
|
domain: "{{ phpvms_domain }}"
|
||||||
port: 80
|
port: 80
|
||||||
|
|
@ -120,7 +122,7 @@ phpvms_compose_base:
|
||||||
start_period: 10s
|
start_period: 10s
|
||||||
env_file: .env
|
env_file: .env
|
||||||
volumes:
|
volumes:
|
||||||
- ./modules:/var/www/html/modules:ro
|
- ./modules:/var/www/html/modules:rw
|
||||||
- ./public/:/var/www/html/public:rw
|
- ./public/:/var/www/html/public:rw
|
||||||
- ./storage:/var/www/html/storage:rw
|
- ./storage:/var/www/html/storage:rw
|
||||||
networks:
|
networks:
|
||||||
|
|
@ -139,7 +141,7 @@ phpvms_compose_base:
|
||||||
start_period: 10s
|
start_period: 10s
|
||||||
env_file: .env
|
env_file: .env
|
||||||
volumes:
|
volumes:
|
||||||
- ./modules:/var/www/html/modules:ro
|
- ./modules:/var/www/html/modules:rw
|
||||||
- ./public/:/var/www/html/public:rw
|
- ./public/:/var/www/html/public:rw
|
||||||
- ./storage:/var/www/html/storage:rw
|
- ./storage:/var/www/html/storage:rw
|
||||||
networks:
|
networks:
|
||||||
|
|
|
||||||
|
|
@ -59,6 +59,8 @@
|
||||||
src: https://github.com/FatihKoz/DisposableBasic/releases/download/v3.7.4/DisposableBasic.zip
|
src: https://github.com/FatihKoz/DisposableBasic/releases/download/v3.7.4/DisposableBasic.zip
|
||||||
remote_src: true
|
remote_src: true
|
||||||
dest: "{{ (service_path, 'modules') | path_join }}"
|
dest: "{{ (service_path, 'modules') | path_join }}"
|
||||||
|
exclude:
|
||||||
|
- DisposableBasic/Resources/views/web/blank.blade.php # will be created by user
|
||||||
owner: "{{ phpvms_uid }}"
|
owner: "{{ phpvms_uid }}"
|
||||||
group: "{{ phpvms_gid }}"
|
group: "{{ phpvms_gid }}"
|
||||||
become: true
|
become: true
|
||||||
|
|
@ -74,15 +76,40 @@
|
||||||
become: true
|
become: true
|
||||||
notify: Restart service {{ service_name }}
|
notify: Restart service {{ service_name }}
|
||||||
|
|
||||||
|
- name: Load SPTransfer
|
||||||
|
ansible.builtin.unarchive:
|
||||||
|
src: https://github.com/PaintSplasher/phpvms7_SPTransfer/archive/refs/tags/1.8.tar.gz
|
||||||
|
remote_src: true
|
||||||
|
dest: "{{ (service_path, 'modules') | path_join }}"
|
||||||
|
exclude:
|
||||||
|
- Resources/views/airline.blade.php # will be overwritten by SPTheme
|
||||||
|
- Resources/views/hub.blade.php # will be overwritten by SPTheme
|
||||||
|
extra_opts:
|
||||||
|
- --transform
|
||||||
|
- s/phpvms7_SPTransfer-1.8/SPTransfer/
|
||||||
|
owner: "{{ phpvms_uid }}"
|
||||||
|
group: "{{ phpvms_gid }}"
|
||||||
|
become: true
|
||||||
|
notify: Restart service {{ service_name }}
|
||||||
|
|
||||||
# You must provide this file yourself.
|
# You must provide this file yourself.
|
||||||
- name: Load SPTheme
|
- name: Load SPTheme
|
||||||
ansible.builtin.unarchive:
|
ansible.builtin.unarchive:
|
||||||
src: phpvms7_SPTheme.tar.gz
|
src: phpvms7_SPTheme.tar.gz
|
||||||
dest: "{{ service_path }}"
|
dest: "{{ service_path }}"
|
||||||
include:
|
exclude:
|
||||||
- modules
|
- README.md
|
||||||
- public
|
- public/SPTheme/images/banner/ # provided by custom assets
|
||||||
- resources
|
- public/SPTheme/images/favicon.png # provided by custom assets
|
||||||
|
- public/SPTheme/images/logo.png # provided by custom assets
|
||||||
|
- public/SPTheme/css/colors.css # will be generated
|
||||||
|
- resources/lang/ # will be overwritten by SPTheme DSPack
|
||||||
|
- resources/views/layouts/SPTheme/config.json # will be created by user
|
||||||
|
- resources/views/layouts/SPTheme/dashboard/index.blade.php # will be overwritten by SPTheme DSPack
|
||||||
|
- resources/views/layouts/SPTheme/footer.blade.php # will be overwritten by SPTheme DSPack
|
||||||
|
- resources/views/layouts/SPTheme/nav.blade.php # will be overwritten by SPTheme DSPack
|
||||||
|
- resources/views/layouts/SPTheme/profile/index.blade.php # will be overwritten by SPTheme DSPack
|
||||||
|
- resources/views/layouts/SPTheme/sidebar.blade.php # will be overwritten by SPTheme DSPack
|
||||||
owner: "{{ phpvms_uid }}"
|
owner: "{{ phpvms_uid }}"
|
||||||
group: "{{ phpvms_gid }}"
|
group: "{{ phpvms_gid }}"
|
||||||
become: true
|
become: true
|
||||||
|
|
@ -93,9 +120,19 @@
|
||||||
ansible.builtin.unarchive:
|
ansible.builtin.unarchive:
|
||||||
src: phpvms7_SPTheme_DSPack.tar.gz
|
src: phpvms7_SPTheme_DSPack.tar.gz
|
||||||
dest: "{{ service_path }}"
|
dest: "{{ service_path }}"
|
||||||
include:
|
exclude:
|
||||||
- public
|
- README.md
|
||||||
- resources
|
- public/SPTheme/images/banner/ # provided by custom assets
|
||||||
|
owner: "{{ phpvms_uid }}"
|
||||||
|
group: "{{ phpvms_gid }}"
|
||||||
|
become: true
|
||||||
|
notify: Restart service {{ service_name }}
|
||||||
|
|
||||||
|
- name: Load custom assets
|
||||||
|
ansible.builtin.unarchive:
|
||||||
|
src: "{{ phpvms_assets_url | mandatory }}"
|
||||||
|
remote_src: true
|
||||||
|
dest: "{{ service_path }}"
|
||||||
owner: "{{ phpvms_uid }}"
|
owner: "{{ phpvms_uid }}"
|
||||||
group: "{{ phpvms_gid }}"
|
group: "{{ phpvms_gid }}"
|
||||||
become: true
|
become: true
|
||||||
|
|
|
||||||
|
|
@ -648,10 +648,12 @@ services = {
|
||||||
dns = [{
|
dns = [{
|
||||||
domain = "airline.serguzim.me"
|
domain = "airline.serguzim.me"
|
||||||
}]
|
}]
|
||||||
#backup = [{
|
backup = [
|
||||||
# name = "phpvms_mariadb"
|
{
|
||||||
# type = "docker"
|
name = "phpvms"
|
||||||
#}]
|
type = "hook"
|
||||||
|
}
|
||||||
|
]
|
||||||
auth = false
|
auth = false
|
||||||
database = false
|
database = false
|
||||||
mail = "phpvms@kondor-virtual.de"
|
mail = "phpvms@kondor-virtual.de"
|
||||||
|
|
@ -662,6 +664,12 @@ services = {
|
||||||
dns = [{
|
dns = [{
|
||||||
domain = "airline-test.serguzim.me"
|
domain = "airline-test.serguzim.me"
|
||||||
}]
|
}]
|
||||||
|
backup = [
|
||||||
|
{
|
||||||
|
name = "phpvms_test"
|
||||||
|
type = "hook"
|
||||||
|
}
|
||||||
|
]
|
||||||
auth = false
|
auth = false
|
||||||
database = false
|
database = false
|
||||||
ansible_role = "phpvms"
|
ansible_role = "phpvms"
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue