diff --git a/README.md b/README.md index 1cf99cd..54be86e 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Openpunk's ansible recovery +# OpenPunk's ansible recovery This is my failsafe (and also my helpful migration tool) for restoring the OpenPunk server. This handles setting everything back up, including: diff --git a/tasks/blog-setup.yml b/tasks/blog-setup.yml index 3841a40..5d623ea 100644 --- a/tasks/blog-setup.yml +++ b/tasks/blog-setup.yml @@ -3,9 +3,26 @@ repo: "https://github.com/CPunch/openpunk.git" dest: "/var/www/{{ domain }}" +- name: Setup git config + copy: + src: templates/.gitconfig + dest: /root/.gitconfig + owner: root + mode: u=rw,g=,o= + - name: Build blog command: cmd: hugo chdir: "/var/www/{{ domain }}" -# TODO: missing cron job for regenerating the static blog every hour \ No newline at end of file +- name: Install updateBlog script + template: + src: templates/blog/updateBlog + dest: /usr/local/bin/updateBlog + mode: u+rwx + +- name: Setup blog cron job + cron: + name: Build blog every hour + minute: 0 + job: /usr/local/bin/updateBlog \ No newline at end of file diff --git a/tasks/deadswitch.yml b/tasks/deadswitch.yml new file mode 100644 index 0000000..e69de29 diff --git a/tasks/essential.yml b/tasks/essential.yml index 074af78..a79469f 100644 --- a/tasks/essential.yml +++ b/tasks/essential.yml @@ -25,4 +25,14 @@ - tor - ufw - htop + - zsh # :D - python3-certbot-nginx + +- name: Setup default shell (zsh) + shell: chsh -s /usr/bin/zsh + +- name: Clone Powerlevel10k theme + shell: git clone --depth=1 https://github.com/romkatv/powerlevel10k.git /root/powerlevel10k + +- name: Install Powerlevel10k theme + shell: echo 'source /root/powerlevel10k/powerlevel10k.zsh-theme' > /root/.zshrc \ No newline at end of file diff --git a/tasks/gitea.yml b/tasks/gitea.yml index e087ba3..fa2d4f4 100644 --- a/tasks/gitea.yml +++ b/tasks/gitea.yml @@ -1,9 +1,13 @@ - name: Configure Gitea - become: yes - become_user: gitea template: src: templates/gitea/app.ini dest: /etc/gitea/app.ini + owner: gitea + +- name: Setup Gitea database + become: yes + become_user: gitea + shell: gitea migrate -c /etc/gitea/app.ini - name: Reload Gitea systemd: diff --git a/templates/.gitconfig b/templates/.gitconfig new file mode 100644 index 0000000..632ed4d --- /dev/null +++ b/templates/.gitconfig @@ -0,0 +1,7 @@ +[user] + email = openpunk@proton.me + name = OpenPunk +[core] + editor = nano +[pull] + rebase = true diff --git a/templates/blog/deadswitch b/templates/blog/deadswitch new file mode 100644 index 0000000..3807054 --- /dev/null +++ b/templates/blog/deadswitch @@ -0,0 +1,26 @@ +#! /bin/bash +# This is meant to be run by cron, just setup a cronjob to run this script every day or so +# This script checks if a file ($fileSwitch) is last modified > $dayLimit days ago & if so a script is run +# On your computer or laptop, setup a cronjob to run an ssh command to modify $fileSwitch every couple hours or so. + +fileTrigger="$HOME/.deadtrigger" +fileLock="$HOME/.deadlock" # if this file exists, the deadmans switch will be disabled. This file is automatically created when the switch is pulled +scriptToRun="$HOME/deadman/imdead.sh" +dayLimit=14 # 14 day trigger + +# if our file lock exists, we already ran OR the switch has been disabled on purpose +if [ -f "$fileLock" ]; then + exit 0 +fi + +# time has to be in seconds so dayLimit (days) * 24 (hours in a day) * 60 (mins in an hour) * 60 (seconds in a min) +let "triggerTime=$dayLimit * 24 * 60 * 60" +let "lastPing=$(stat -c %Y $fileTrigger)" +let "currTime=$(date +%s)" +let "dTime=$currTime-$lastPing" +echo $dTime +if [ $dTime -gt $triggerTime ] +then + touch $fileLock + bash $scriptToRun +fi \ No newline at end of file diff --git a/templates/blog/imdead.sh b/templates/blog/imdead.sh new file mode 100644 index 0000000..0113bf7 --- /dev/null +++ b/templates/blog/imdead.sh @@ -0,0 +1,19 @@ +#!/bin/bash + +cd $HOME/deadman + +postTemplate='dead.md' +pageName='openpunk/content/pages/dead.md' +currDate=$(date '+%Y-%m-%d') + +git clone git@github.com:CPunch/openpunk.git +cp $postTemplate $pageName + +# replace our {{DATE}} with the current date +sed -i 's/{{DATE}}/'$currDate'/g' $pageName + +# commit & push the post +cd openpunk +git add . +git commit -m "DeadSwitch: Posted dead message" +git push diff --git a/templates/blog/updateBlog b/templates/blog/updateBlog new file mode 100644 index 0000000..a09fef8 --- /dev/null +++ b/templates/blog/updateBlog @@ -0,0 +1,5 @@ +#!/bin/bash +cd /var/www/{{ domain }} +/usr/bin/git fetch origin +/usr/bin/git reset --hard origin/main +/usr/bin/hugo \ No newline at end of file diff --git a/templates/gitea/app.ini b/templates/gitea/app.ini index 20cdb32..235970c 100644 --- a/templates/gitea/app.ini +++ b/templates/gitea/app.ini @@ -2,6 +2,16 @@ APP_NAME = OpenPunk Gitea RUN_USER = gitea RUN_MODE = prod +[database] +DB_TYPE = sqlite3 +HOST = 127.0.0.1:5432 +NAME = gitea +USER = gitea +PASSWD = +SSL_MODE = disable +CHARSET = utf8 +PATH = /var/lib/gitea/data/gitea.db + [repository] ROOT = /var/lib/gitea/gitea-repositories