From a04de3ecff151b5dcaaa11859c45d30fb096f0db Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Wed, 8 Jan 2025 15:49:35 -0500 Subject: [PATCH 01/37] Updated README with HTML comments. --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 53d4d6ad..146e8bb1 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@ # List of Services +`~> yq '.services | to_entries | map({service: .key, image: .value.image})' docker-compose.yml` ```json -~> yq '.services | to_entries | map({service: .key, image: .value.image})' docker-compose.yml - + [ { "service": "actual_server", @@ -585,4 +585,5 @@ "image": "postgres:16-alpine" } ] + ``` \ No newline at end of file From 4c32cb265cc22d40acc87778ce15f5f8181ad192 Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Wed, 8 Jan 2025 15:50:19 -0500 Subject: [PATCH 02/37] Updated deployment pipeline; testing Vault action and README list. --- .gitea/workflows/deployment.yml | 53 +++++++++++++++++++++++++-------- 1 file changed, 41 insertions(+), 12 deletions(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index a842a0c9..c5136623 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -41,9 +41,12 @@ jobs: uses: actions/checkout@v4 - name: Generate ephemeral .env compose file - id: generate-env-file-pr - run: | - echo "${{ secrets.RINOA_ENV }}" > .env + uses: Simporter/get-env-file-from-vault@v1.0.2 + with: + VAULT_ADDR: https://vault.trez.wtf + VAULT_USERNAME: gitea + VAULT_PASSWORD: ${{ secrets.VAULT_GITEA_PASSWORD }} + VAULT_SECRETS_PATH: ${{ secrets.VAULT_SECRETS_PATH }} - name: Docker Compose Lint uses: yu-ichiro/spin-up-docker-compose-action@v1 @@ -87,6 +90,8 @@ jobs: yq '.services[].labels.swag_url' docker-compose.yml | egrep -v 'null' | sed -e 's|"||g' | awk -F'.' '{print $1}' | sort > compose_subdomains.txt echo "Grabbing subdomains from Cloudflare..." flarectl --json dns list --zone "trez.wtf" --type=CNAME --content "trez.wtf" | jq '.[].Name' | sed -e 's|"||g' | awk -F"." '{print $1}' | sort > cloudflare_subdomains.txt + readme_list=$(yq '.services | to_entries | map({service: .key, image: .value.image})' docker-compose.yml) + echo "readme_list=${readme_list}" >> $GITHUB_ENV - name: Compare Subdomains id: compare-subdomains @@ -109,7 +114,7 @@ jobs: flarectl dns create --zone "trez.wtf" --name "${subdomain}" --type=CNAME --content "trez.wtf" done - merge-pr: + merge-pr-regenerate-readme: name: PR Merge runs-on: ubuntu-latest if: ${{ always() }} @@ -118,11 +123,35 @@ jobs: - name: Checkout uses: actions/checkout@v4 - - name: Tea CLI Setup & PR Merge - run: | - curl -sSL https://dl.gitea.com/tea/main/tea-main-linux-amd64 -o /usr/local/bin/tea - chmod +x /usr/local/bin/tea - echo "Merging PR..." - tea login add --name gitea-rinoa --url ${{ vars.RINOA_GITEA_URL }} --user gitea-sonarqube-bot --password "${{ secrets.BOT_GITEA_PASSWORD }}" --token ${{ secrets.BOT_GITEA_TOKEN }} - pr_index=$(tea pr ls --repo ${{ github.repository }} --state open --fields index,title,head,state --output csv | egrep ${{ gitea.ref_name }} | awk -F, '{print $1}' | sed -e 's|"||g') - tea pr m --repo ${{ github.repository }} --title "${{ github.ref_name }} Auto Merge" --message "Merged by ${{ gitea.actor }}" --output table ${pr_index} \ No newline at end of file + - run: echo ${{ env.readme_list }} + + # - name: Regenerate README + # uses: VisualBean/reactive-readme@v1 + # with: + # value: ${{ env.readme_list }} + # section: compose-services + # branch: ${{ github.ref_name }} + # token: ${{ secrets.BOT_GITEA_TOKEN }} + + # - name: Add/Commit/Push README.md + # uses: mgrybyk-org/git-commit-pull-push-action@v1 + # with: + # add_args: README.md + # repository: ${{ github.repository }} + # branch: ${{ github.head_ref }} + # commit_message: Regenerate README.md + + # - name: Install tea + # uses: supplypike/setup-bin@v4 + # with: + # uri: https://dl.gitea.com/tea/main/tea-main-linux-amd64 + # name: tea + # version: main + + # - name: PR Merge + # run: | + # tea login add --name gitea-rinoa --url ${{ vars.RINOA_GITEA_URL }} --user gitea-sonarqube-bot --password "${{ secrets.BOT_GITEA_PASSWORD }}" --token ${{ secrets.BOT_GITEA_TOKEN }} + # pr_index=$(tea pr ls --repo ${{ github.repository }} --state open --fields index,title,head,state --output csv | egrep ${{ gitea.ref_name }} | awk -F, '{print $1}' | sed -e 's|"||g') + # tea pr m --repo ${{ github.repository }} --title "Auto Merge of PR #${pr_index} - ${{ gitea.ref_name }}" --message "Merged by ${{ gitea.actor }}" --output table ${pr_index} + + \ No newline at end of file From 779a60e962324d4df21b3afb4fe09ef9895b5072 Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Wed, 8 Jan 2025 16:16:54 -0500 Subject: [PATCH 03/37] Updated Gitea URL ref. --- .gitea/workflows/deployment.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index c5136623..e4f7c2c3 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -17,7 +17,7 @@ jobs: - name: PR list id: list-prs run: | - pr_check=$(curl ${{ vars.RINOA_GITEA_URL }}/api/v1/repos/${{ github.repository }}/pulls/main/${{ github.ref_name }} \ + pr_check=$(curl ${{ secrets.RINOA_GITEA_URL }}/api/v1/repos/${{ github.repository }}/pulls/main/${{ github.ref_name }} \ -X 'GET' \ -H 'Accept: application/json' \ -H 'Authorization: token ${{ secrets.BOT_GITEA_TOKEN }}' \ @@ -150,7 +150,7 @@ jobs: # - name: PR Merge # run: | - # tea login add --name gitea-rinoa --url ${{ vars.RINOA_GITEA_URL }} --user gitea-sonarqube-bot --password "${{ secrets.BOT_GITEA_PASSWORD }}" --token ${{ secrets.BOT_GITEA_TOKEN }} + # tea login add --name gitea-rinoa --url ${{ secrets.RINOA_GITEA_URL }} --user gitea-sonarqube-bot --password "${{ secrets.BOT_GITEA_PASSWORD }}" --token ${{ secrets.BOT_GITEA_TOKEN }} # pr_index=$(tea pr ls --repo ${{ github.repository }} --state open --fields index,title,head,state --output csv | egrep ${{ gitea.ref_name }} | awk -F, '{print $1}' | sed -e 's|"||g') # tea pr m --repo ${{ github.repository }} --title "Auto Merge of PR #${pr_index} - ${{ gitea.ref_name }}" --message "Merged by ${{ gitea.actor }}" --output table ${pr_index} From 9bde641bb0ec56bd4093385f8bd24585dfa9ca50 Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Wed, 8 Jan 2025 16:24:09 -0500 Subject: [PATCH 04/37] Updated create PR logic and added in Gitea List PR action. --- .gitea/workflows/deployment.yml | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index e4f7c2c3..1ebb2716 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -14,6 +14,12 @@ jobs: - name: Checkout Code uses: actions/checkout@v4 + - name: PR List (Action) + id: list-prs-action + uses: vicamo/gitea-list-pull-requests@v1.0.1 + with: + state: open + - name: PR list id: list-prs run: | @@ -22,10 +28,11 @@ jobs: -H 'Accept: application/json' \ -H 'Authorization: token ${{ secrets.BOT_GITEA_TOKEN }}' \ -sS | jq '{index: .number, state: .state}') + echo "PR List: ${pr_check}" pr_state=$(echo ${pr_check} | jq -r '.state') - name: Create PR - if: steps.list-prs.outputs.pr_state != 'open' + if: steps.list-prs.outputs.pr_state = null uses: arifer612/Gitea-PR-action@v1.2.0 with: url: ${{ gitea.server_url }} From d62d144bf4c1074dd34373814e25e82c7a1cf318 Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Wed, 8 Jan 2025 16:29:24 -0500 Subject: [PATCH 05/37] Updated create PR logic and added in Gitea List PR action. --- .gitea/workflows/deployment.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index 1ebb2716..535fc29a 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -18,7 +18,7 @@ jobs: id: list-prs-action uses: vicamo/gitea-list-pull-requests@v1.0.1 with: - state: open + state: all - name: PR list id: list-prs From 0c825d323407a40d173815a793795e7d7ec0ce05 Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Wed, 8 Jan 2025 16:34:53 -0500 Subject: [PATCH 06/37] Updated PR List action. --- .gitea/workflows/deployment.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index 535fc29a..deb789ec 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -16,8 +16,9 @@ jobs: - name: PR List (Action) id: list-prs-action - uses: vicamo/gitea-list-pull-requests@v1.0.1 + uses: andrea-armstrong/github-list-pull-requests@v1.0.0 with: + token: ${{ secrets.BOT_GITEA_TOKEN }} state: all - name: PR list @@ -32,7 +33,7 @@ jobs: pr_state=$(echo ${pr_check} | jq -r '.state') - name: Create PR - if: steps.list-prs.outputs.pr_state = null + if: steps.list-prs.outputs.pr_state == null uses: arifer612/Gitea-PR-action@v1.2.0 with: url: ${{ gitea.server_url }} From 1dc4723a2ec09a3c751a2e424e98daa96cdc5c28 Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Wed, 8 Jan 2025 16:36:53 -0500 Subject: [PATCH 07/37] Updated create PR logic. --- .gitea/workflows/deployment.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index deb789ec..d5f7ad8f 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -33,7 +33,7 @@ jobs: pr_state=$(echo ${pr_check} | jq -r '.state') - name: Create PR - if: steps.list-prs.outputs.pr_state == null + if: steps.list-prs-action.outputs.pullRequestNumbers == '' uses: arifer612/Gitea-PR-action@v1.2.0 with: url: ${{ gitea.server_url }} From fcc5bb697e68ca64562803890df6880511c77d3b Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Wed, 8 Jan 2025 16:58:08 -0500 Subject: [PATCH 08/37] Updated create PR logic. --- .gitea/workflows/deployment.yml | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index d5f7ad8f..401eb25a 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -14,26 +14,28 @@ jobs: - name: Checkout Code uses: actions/checkout@v4 - - name: PR List (Action) - id: list-prs-action - uses: andrea-armstrong/github-list-pull-requests@v1.0.0 + - name: Install tea + uses: supplypike/setup-bin@v4 with: - token: ${{ secrets.BOT_GITEA_TOKEN }} - state: all + uri: https://dl.gitea.com/tea/main/tea-main-linux-amd64 + name: tea + version: main + + - name: Install yq + uses: dcarbone/install-yq-action@v1 + - run: | + tea login add --name gitea-rinoa --url ${{ secrets.RINOA_GITEA_URL }} --user gitea-sonarqube-bot --password "${{ secrets.BOT_GITEA_PASSWORD }}" --token ${{ secrets.BOT_GITEA_TOKEN }} + tea login default gitea-rinoa + - name: PR list id: list-prs run: | - pr_check=$(curl ${{ secrets.RINOA_GITEA_URL }}/api/v1/repos/${{ github.repository }}/pulls/main/${{ github.ref_name }} \ - -X 'GET' \ - -H 'Accept: application/json' \ - -H 'Authorization: token ${{ secrets.BOT_GITEA_TOKEN }}' \ - -sS | jq '{index: .number, state: .state}') - echo "PR List: ${pr_check}" - pr_state=$(echo ${pr_check} | jq -r '.state') + tea pr ls --state open --output yaml | yq '.[].state' + echo "pr_state=$(tea pr ls --state open --output yaml | yq '.[].state')" >> $GITHUB_OUTPUT - name: Create PR - if: steps.list-prs-action.outputs.pullRequestNumbers == '' + if: steps.list-prs.outputs.pr_state != '"open"' uses: arifer612/Gitea-PR-action@v1.2.0 with: url: ${{ gitea.server_url }} @@ -98,8 +100,7 @@ jobs: yq '.services[].labels.swag_url' docker-compose.yml | egrep -v 'null' | sed -e 's|"||g' | awk -F'.' '{print $1}' | sort > compose_subdomains.txt echo "Grabbing subdomains from Cloudflare..." flarectl --json dns list --zone "trez.wtf" --type=CNAME --content "trez.wtf" | jq '.[].Name' | sed -e 's|"||g' | awk -F"." '{print $1}' | sort > cloudflare_subdomains.txt - readme_list=$(yq '.services | to_entries | map({service: .key, image: .value.image})' docker-compose.yml) - echo "readme_list=${readme_list}" >> $GITHUB_ENV + yq '.services | to_entries | map({service: .key, image: .value.image})' docker-compose.yml - name: Compare Subdomains id: compare-subdomains From 0882560926382f3d5ca4e5ba232a0848b703b5ba Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Wed, 8 Jan 2025 17:07:34 -0500 Subject: [PATCH 09/37] Updated PR List step --- .gitea/workflows/deployment.yml | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index 401eb25a..bde10e4d 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -23,15 +23,13 @@ jobs: - name: Install yq uses: dcarbone/install-yq-action@v1 - - - run: | - tea login add --name gitea-rinoa --url ${{ secrets.RINOA_GITEA_URL }} --user gitea-sonarqube-bot --password "${{ secrets.BOT_GITEA_PASSWORD }}" --token ${{ secrets.BOT_GITEA_TOKEN }} - tea login default gitea-rinoa - + - name: PR list id: list-prs run: | - tea pr ls --state open --output yaml | yq '.[].state' + tea login add --name gitea-rinoa --url ${{ secrets.RINOA_GITEA_URL }} --user gitea-sonarqube-bot --password "${{ secrets.BOT_GITEA_PASSWORD }}" --token ${{ secrets.BOT_GITEA_TOKEN }} + tea login default gitea-rinoa + tea pr ls --state all --output yaml | yq '.[].state' echo "pr_state=$(tea pr ls --state open --output yaml | yq '.[].state')" >> $GITHUB_OUTPUT - name: Create PR From 478699475e6e6c5b29b72365f3f3828ebf4e79a4 Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Wed, 8 Jan 2025 17:12:55 -0500 Subject: [PATCH 10/37] Updated tea CLI install. --- .gitea/workflows/deployment.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index bde10e4d..a5b5c39d 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -17,9 +17,9 @@ jobs: - name: Install tea uses: supplypike/setup-bin@v4 with: - uri: https://dl.gitea.com/tea/main/tea-main-linux-amd64 - name: tea - version: main + uri: 'https://gitea.com/gitea/tea/releases/download/v0.9.2/tea-0.9.2-linux-amd64' + name: 'tea' + version: '0.9.2' - name: Install yq uses: dcarbone/install-yq-action@v1 @@ -29,7 +29,7 @@ jobs: run: | tea login add --name gitea-rinoa --url ${{ secrets.RINOA_GITEA_URL }} --user gitea-sonarqube-bot --password "${{ secrets.BOT_GITEA_PASSWORD }}" --token ${{ secrets.BOT_GITEA_TOKEN }} tea login default gitea-rinoa - tea pr ls --state all --output yaml | yq '.[].state' + tea pr ls --state all --output yaml echo "pr_state=$(tea pr ls --state open --output yaml | yq '.[].state')" >> $GITHUB_OUTPUT - name: Create PR From 6f2b67f7a7b875262153025f55eed23fc42b4e6f Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Wed, 8 Jan 2025 17:23:00 -0500 Subject: [PATCH 11/37] Added --repo flag for tea CLI. --- .gitea/workflows/deployment.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index a5b5c39d..c3425f5c 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -29,8 +29,8 @@ jobs: run: | tea login add --name gitea-rinoa --url ${{ secrets.RINOA_GITEA_URL }} --user gitea-sonarqube-bot --password "${{ secrets.BOT_GITEA_PASSWORD }}" --token ${{ secrets.BOT_GITEA_TOKEN }} tea login default gitea-rinoa - tea pr ls --state all --output yaml - echo "pr_state=$(tea pr ls --state open --output yaml | yq '.[].state')" >> $GITHUB_OUTPUT + tea pr ls --repo ${{ gitea.repository }} --state all --output yaml + echo "pr_state=$(tea pr ls --repo ${{ gitea.repository }} --state open --output yaml | yq '.[].state')" >> $GITHUB_OUTPUT - name: Create PR if: steps.list-prs.outputs.pr_state != '"open"' From 141901520776747823ec20519637d012f840b4fd Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Wed, 8 Jan 2025 17:27:37 -0500 Subject: [PATCH 12/37] ... --- .gitea/workflows/deployment.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index c3425f5c..4ab382ce 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -28,7 +28,6 @@ jobs: id: list-prs run: | tea login add --name gitea-rinoa --url ${{ secrets.RINOA_GITEA_URL }} --user gitea-sonarqube-bot --password "${{ secrets.BOT_GITEA_PASSWORD }}" --token ${{ secrets.BOT_GITEA_TOKEN }} - tea login default gitea-rinoa tea pr ls --repo ${{ gitea.repository }} --state all --output yaml echo "pr_state=$(tea pr ls --repo ${{ gitea.repository }} --state open --output yaml | yq '.[].state')" >> $GITHUB_OUTPUT @@ -36,7 +35,7 @@ jobs: if: steps.list-prs.outputs.pr_state != '"open"' uses: arifer612/Gitea-PR-action@v1.2.0 with: - url: ${{ gitea.server_url }} + url: ${{ github.server_url }} token: ${{ secrets.BOT_GITEA_TOKEN }} pr-label: 'auto-deploy-pr' From 66cf74a3bf3952aaf55094dab5957d597dc7d72c Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Wed, 8 Jan 2025 17:38:50 -0500 Subject: [PATCH 13/37] ... --- .gitea/workflows/deployment.yml | 43 ++++++++++++++++++--------------- 1 file changed, 23 insertions(+), 20 deletions(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index 4ab382ce..5f46ea9d 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -24,20 +24,17 @@ jobs: - name: Install yq uses: dcarbone/install-yq-action@v1 - - name: PR list + - name: Check if PR exists & Create id: list-prs run: | tea login add --name gitea-rinoa --url ${{ secrets.RINOA_GITEA_URL }} --user gitea-sonarqube-bot --password "${{ secrets.BOT_GITEA_PASSWORD }}" --token ${{ secrets.BOT_GITEA_TOKEN }} - tea pr ls --repo ${{ gitea.repository }} --state all --output yaml - echo "pr_state=$(tea pr ls --repo ${{ gitea.repository }} --state open --output yaml | yq '.[].state')" >> $GITHUB_OUTPUT - - - name: Create PR - if: steps.list-prs.outputs.pr_state != '"open"' - uses: arifer612/Gitea-PR-action@v1.2.0 - with: - url: ${{ github.server_url }} - token: ${{ secrets.BOT_GITEA_TOKEN }} - pr-label: 'auto-deploy-pr' + tea login default gitea-rinoa + pr_state=$(tea pr ls --repo ${{ gitea.repository }} --state open --output yaml | yq '.[].state') + if [ ${pr_state} != 'open' ]; then + tea pr c -r ${{ gitea.repository }} -t "Automated PR for ${{ github.ref_name }}" -d "Automated PR for ${{ github.ref_name }}" + elif [ ${pr_state} == 'open' ]; then + echo "PR already exists, skipping creation..." + fi docker-compose-test: name: Docker Compose Test @@ -97,7 +94,6 @@ jobs: yq '.services[].labels.swag_url' docker-compose.yml | egrep -v 'null' | sed -e 's|"||g' | awk -F'.' '{print $1}' | sort > compose_subdomains.txt echo "Grabbing subdomains from Cloudflare..." flarectl --json dns list --zone "trez.wtf" --type=CNAME --content "trez.wtf" | jq '.[].Name' | sed -e 's|"||g' | awk -F"." '{print $1}' | sort > cloudflare_subdomains.txt - yq '.services | to_entries | map({service: .key, image: .value.image})' docker-compose.yml - name: Compare Subdomains id: compare-subdomains @@ -129,15 +125,22 @@ jobs: - name: Checkout uses: actions/checkout@v4 - - run: echo ${{ env.readme_list }} + - name: Install yq + uses: dcarbone/install-yq-action@v1 + + - name: Generate README list + id: readme-list + run: | + services_list=$(yq '.services | to_entries | map({service: .key, image: .value.image})' docker-compose.yml) + echo "SERVICES_LIST=${services_list}" >> $GITHUB_ENV - # - name: Regenerate README - # uses: VisualBean/reactive-readme@v1 - # with: - # value: ${{ env.readme_list }} - # section: compose-services - # branch: ${{ github.ref_name }} - # token: ${{ secrets.BOT_GITEA_TOKEN }} + - name: Regenerate README + uses: VisualBean/reactive-readme@v1 + with: + value: ${{ env.SERVICES_LIST }} + section: compose-services + branch: ${{ github.ref_name }} + token: ${{ secrets.BOT_GITEA_TOKEN }} # - name: Add/Commit/Push README.md # uses: mgrybyk-org/git-commit-pull-push-action@v1 From 447da2facbb486de0a3702fb8bf14f249db3cbf7 Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Wed, 8 Jan 2025 17:41:59 -0500 Subject: [PATCH 14/37] ... --- .gitea/workflows/deployment.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index 5f46ea9d..43e30f5e 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -30,9 +30,9 @@ jobs: tea login add --name gitea-rinoa --url ${{ secrets.RINOA_GITEA_URL }} --user gitea-sonarqube-bot --password "${{ secrets.BOT_GITEA_PASSWORD }}" --token ${{ secrets.BOT_GITEA_TOKEN }} tea login default gitea-rinoa pr_state=$(tea pr ls --repo ${{ gitea.repository }} --state open --output yaml | yq '.[].state') - if [ ${pr_state} != 'open' ]; then + if [ -z "${pr_state}" ]; then tea pr c -r ${{ gitea.repository }} -t "Automated PR for ${{ github.ref_name }}" -d "Automated PR for ${{ github.ref_name }}" - elif [ ${pr_state} == 'open' ]; then + elif [ ${pr_state} -eq '"open"' ]; then echo "PR already exists, skipping creation..." fi From b8cc7d5fced34a7ca2dfc24b6f4a35be9679e623 Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Wed, 8 Jan 2025 17:58:14 -0500 Subject: [PATCH 15/37] ... --- .gitea/workflows/deployment.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index 43e30f5e..ff1ea84b 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -45,7 +45,7 @@ jobs: uses: actions/checkout@v4 - name: Generate ephemeral .env compose file - uses: Simporter/get-env-file-from-vault@v1.0.2 + uses: n4mespace/get-env-file-from-vault-action@v1.0.0 with: VAULT_ADDR: https://vault.trez.wtf VAULT_USERNAME: gitea From e0c56559d463b549dff7d216056be76dd5367847 Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Wed, 8 Jan 2025 18:03:06 -0500 Subject: [PATCH 16/37] ... --- .gitea/workflows/deployment.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index ff1ea84b..a3920b33 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -29,10 +29,10 @@ jobs: run: | tea login add --name gitea-rinoa --url ${{ secrets.RINOA_GITEA_URL }} --user gitea-sonarqube-bot --password "${{ secrets.BOT_GITEA_PASSWORD }}" --token ${{ secrets.BOT_GITEA_TOKEN }} tea login default gitea-rinoa - pr_state=$(tea pr ls --repo ${{ gitea.repository }} --state open --output yaml | yq '.[].state') - if [ -z "${pr_state}" ]; then + pr_state=$(tea pr ls --repo ${{ gitea.repository }} --state open --output yaml | yq -r '.[].state') + if [ "${pr_state}" != open ]; then tea pr c -r ${{ gitea.repository }} -t "Automated PR for ${{ github.ref_name }}" -d "Automated PR for ${{ github.ref_name }}" - elif [ ${pr_state} -eq '"open"' ]; then + elif [ "${pr_state}" = open ]; then echo "PR already exists, skipping creation..." fi From 6d36871bc8b90e008f64aa24f9eb5d5537796010 Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Wed, 8 Jan 2025 18:05:26 -0500 Subject: [PATCH 17/37] Tweaking PR creation step. --- .gitea/workflows/deployment.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index a3920b33..a900b631 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -29,9 +29,10 @@ jobs: run: | tea login add --name gitea-rinoa --url ${{ secrets.RINOA_GITEA_URL }} --user gitea-sonarqube-bot --password "${{ secrets.BOT_GITEA_PASSWORD }}" --token ${{ secrets.BOT_GITEA_TOKEN }} tea login default gitea-rinoa - pr_state=$(tea pr ls --repo ${{ gitea.repository }} --state open --output yaml | yq -r '.[].state') + tea pr ls --repo ${{ github.repository }} --state open + pr_state=$(tea pr ls --repo ${{ github.repository }} --state open --output yaml | yq -r '.[].state') if [ "${pr_state}" != open ]; then - tea pr c -r ${{ gitea.repository }} -t "Automated PR for ${{ github.ref_name }}" -d "Automated PR for ${{ github.ref_name }}" + tea pr c -r ${{ github.repository }} -t "Automated PR for ${{ github.ref_name }}" -d "Automated PR for ${{ github.ref_name }}" elif [ "${pr_state}" = open ]; then echo "PR already exists, skipping creation..." fi From 8bd92b60523e3b06bb9a341b55b9242709bddc6a Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Wed, 8 Jan 2025 18:11:44 -0500 Subject: [PATCH 18/37] Tweaking PR creation step (csv and awk). --- .gitea/workflows/deployment.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index a900b631..2b95c0e1 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -29,8 +29,7 @@ jobs: run: | tea login add --name gitea-rinoa --url ${{ secrets.RINOA_GITEA_URL }} --user gitea-sonarqube-bot --password "${{ secrets.BOT_GITEA_PASSWORD }}" --token ${{ secrets.BOT_GITEA_TOKEN }} tea login default gitea-rinoa - tea pr ls --repo ${{ github.repository }} --state open - pr_state=$(tea pr ls --repo ${{ github.repository }} --state open --output yaml | yq -r '.[].state') + pr_state=$(tea pr ls --repo ${{ github.repository }} --state open --fields index,title,head,state --output csv | egrep ${{ gitea.ref_name }} | awk -F, '{print $4}' | sed -e 's|"||g') if [ "${pr_state}" != open ]; then tea pr c -r ${{ github.repository }} -t "Automated PR for ${{ github.ref_name }}" -d "Automated PR for ${{ github.ref_name }}" elif [ "${pr_state}" = open ]; then From 0c0b4a9cb37974212979ea9bca956447b50eb118 Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Wed, 8 Jan 2025 18:14:30 -0500 Subject: [PATCH 19/37] Tweaking PR creation step (csv and awk). --- .gitea/workflows/deployment.yml | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index 2b95c0e1..e888252b 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -20,10 +20,7 @@ jobs: uri: 'https://gitea.com/gitea/tea/releases/download/v0.9.2/tea-0.9.2-linux-amd64' name: 'tea' version: '0.9.2' - - - name: Install yq - uses: dcarbone/install-yq-action@v1 - + - name: Check if PR exists & Create id: list-prs run: | @@ -134,6 +131,8 @@ jobs: services_list=$(yq '.services | to_entries | map({service: .key, image: .value.image})' docker-compose.yml) echo "SERVICES_LIST=${services_list}" >> $GITHUB_ENV + - run: echo "${{ env.SERVICES_LIST }}" + - name: Regenerate README uses: VisualBean/reactive-readme@v1 with: From ca7702c372399f4c30cfdadba9ef0f6a630271a4 Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Thu, 9 Jan 2025 08:52:10 -0500 Subject: [PATCH 20/37] Switching to Vault binary install for env generation. --- .gitea/workflows/deployment.yml | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index e888252b..ada4e8f2 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -37,17 +37,27 @@ jobs: name: Docker Compose Test needs: [check-and-create-pr] runs-on: ubuntu-latest + env: + VAULT_ADDR: ${{ secrets.RINOA_VAULT_ADDR }} + VAULT_TOKEN: ${{ secrets.RINOA_VAULT_TOKEN }} steps: - name: Checkout uses: actions/checkout@v4 + + - name: Install jq + uses: dcarbone/install-jq-action@v3.0.1 - - name: Generate ephemeral .env compose file - uses: n4mespace/get-env-file-from-vault-action@v1.0.0 + - name: Install Vault + uses: cpanato/vault-installer@main with: - VAULT_ADDR: https://vault.trez.wtf - VAULT_USERNAME: gitea - VAULT_PASSWORD: ${{ secrets.VAULT_GITEA_PASSWORD }} - VAULT_SECRETS_PATH: ${{ secrets.VAULT_SECRETS_PATH }} + vault-release: '1.18.3' + + - name: Check install + run: vault version + + - name: Generate .env file for linting + run: | + vault kv get -format=json rinoa-docker/env | jq -r '.data.data' | jq -r 'keys[] as $k | "\($k)=\(.[$k])"' > .env - name: Docker Compose Lint uses: yu-ichiro/spin-up-docker-compose-action@v1 From 1584f5ab13f7ead75ce5b3d5e4601cea86709463 Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Thu, 9 Jan 2025 09:02:25 -0500 Subject: [PATCH 21/37] Tweaking of jq for env generation. --- .gitea/workflows/deployment.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index ada4e8f2..40fb5d3f 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -57,7 +57,7 @@ jobs: - name: Generate .env file for linting run: | - vault kv get -format=json rinoa-docker/env | jq -r '.data.data' | jq -r 'keys[] as $k | "\($k)=\(.[$k])"' > .env + vault kv get -format=json rinoa-docker/env | jq -r '.data.data' | jq -r 'keys[] as $k | "\($k)='\''\(.[$k])'\''"' > .env - name: Docker Compose Lint uses: yu-ichiro/spin-up-docker-compose-action@v1 From 4ec7e4ea9f8800d5a2248957ffcfca47bd116385 Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Thu, 9 Jan 2025 09:07:24 -0500 Subject: [PATCH 22/37] Tweaking of README generation. --- .gitea/workflows/deployment.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index 40fb5d3f..0f271eb2 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -138,6 +138,7 @@ jobs: - name: Generate README list id: readme-list run: | + yq '.services | to_entries | map({service: .key, image: .value.image})' docker-compose.yml services_list=$(yq '.services | to_entries | map({service: .key, image: .value.image})' docker-compose.yml) echo "SERVICES_LIST=${services_list}" >> $GITHUB_ENV From 52779ed76c31ae1f77ec48e70dc5e7f60f139b11 Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Thu, 9 Jan 2025 09:15:20 -0500 Subject: [PATCH 23/37] Tweaking of README generation. --- .gitea/workflows/deployment.yml | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index 0f271eb2..3b22ea29 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -52,9 +52,6 @@ jobs: with: vault-release: '1.18.3' - - name: Check install - run: vault version - - name: Generate .env file for linting run: | vault kv get -format=json rinoa-docker/env | jq -r '.data.data' | jq -r 'keys[] as $k | "\($k)='\''\(.[$k])'\''"' > .env @@ -138,7 +135,7 @@ jobs: - name: Generate README list id: readme-list run: | - yq '.services | to_entries | map({service: .key, image: .value.image})' docker-compose.yml + yq ".services | to_entries | map({service: .key, image: .value.image})" docker-compose.yml services_list=$(yq '.services | to_entries | map({service: .key, image: .value.image})' docker-compose.yml) echo "SERVICES_LIST=${services_list}" >> $GITHUB_ENV From 07d79873ecd91c3a74550da2cd1ef2669a0231d1 Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Thu, 9 Jan 2025 09:28:37 -0500 Subject: [PATCH 24/37] Tweaking of yq for README generation. --- .gitea/workflows/deployment.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index 3b22ea29..b006aae9 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -135,8 +135,8 @@ jobs: - name: Generate README list id: readme-list run: | - yq ".services | to_entries | map({service: .key, image: .value.image})" docker-compose.yml - services_list=$(yq '.services | to_entries | map({service: .key, image: .value.image})' docker-compose.yml) + yq '.services | to_entries | map({"service": .key, "image": .value.image})' docker-compose.yml + services_list=$(yq '.services | to_entries | map({"service": .key, "image": .value.image})' docker-compose.yml) echo "SERVICES_LIST=${services_list}" >> $GITHUB_ENV - run: echo "${{ env.SERVICES_LIST }}" From e388bc55d66e199a5d09009a6ac01fedf54b31c9 Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Thu, 9 Jan 2025 10:24:17 -0500 Subject: [PATCH 25/37] . --- .gitea/workflows/deployment.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index b006aae9..15164c9d 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -135,9 +135,10 @@ jobs: - name: Generate README list id: readme-list run: | - yq '.services | to_entries | map({"service": .key, "image": .value.image})' docker-compose.yml services_list=$(yq '.services | to_entries | map({"service": .key, "image": .value.image})' docker-compose.yml) - echo "SERVICES_LIST=${services_list}" >> $GITHUB_ENV + echo "SERVICES_LIST<> $GITHUB_ENV + echo "${services_list}" >> $GITHUB_ENV + echo "EOF" >> $GITHUB_ENV - run: echo "${{ env.SERVICES_LIST }}" From 9469b4f84d985188b52deef8f6ff706ba749eb87 Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Thu, 9 Jan 2025 11:01:53 -0500 Subject: [PATCH 26/37] Typo fix in docker-compose.yml, fixes in README.md and README generation step. --- .gitea/workflows/deployment.yml | 13 ++++++------- README.md | 4 ++-- docker-compose.yml | 2 +- 3 files changed, 9 insertions(+), 10 deletions(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index 15164c9d..25f23517 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -140,15 +140,14 @@ jobs: echo "${services_list}" >> $GITHUB_ENV echo "EOF" >> $GITHUB_ENV - - run: echo "${{ env.SERVICES_LIST }}" - - name: Regenerate README - uses: VisualBean/reactive-readme@v1 + uses: gnpaone/dynamic-update-readme@v1.0.2 with: - value: ${{ env.SERVICES_LIST }} - section: compose-services - branch: ${{ github.ref_name }} - token: ${{ secrets.BOT_GITEA_TOKEN }} + marker_text: + markdown_text: | + ```yaml + ${{ env.SERVICES_LIST }} + ```` # - name: Add/Commit/Push README.md # uses: mgrybyk-org/git-commit-pull-push-action@v1 diff --git a/README.md b/README.md index 146e8bb1..607edf05 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ `~> yq '.services | to_entries | map({service: .key, image: .value.image})' docker-compose.yml` ```json - + [ { "service": "actual_server", @@ -585,5 +585,5 @@ "image": "postgres:16-alpine" } ] - + ``` \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index e3ce8339..d9dc4511 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -4447,7 +4447,7 @@ services: restart: unless-stopped volumes: #"You can set /downloads to whatever you want but will then need to change the Slskd download dir in your config file" - - ${DOCKER_VOLUME_STORAGEE}/downloads:/downloads + - ${DOCKER_VOLUME_STORAGE}/downloads:/downloads #Select where you are storing your config file. Leave "/data" since thats where the script expects the config file to be - ${DOCKER_VOLUME_CONFIG}/soularr:/data soulseek: From 82e9a3d8ff6490f0496a8d4431d00d7c3b440b4e Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Thu, 9 Jan 2025 11:02:25 -0500 Subject: [PATCH 27/37] Typo fix in docker-compose.yml, fixes in README.md and README generation step. --- README.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 607edf05..53128671 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,9 @@ # List of Services `~> yq '.services | to_entries | map({service: .key, image: .value.image})' docker-compose.yml` -```json + +```json [ { "service": "actual_server", @@ -585,5 +586,5 @@ "image": "postgres:16-alpine" } ] - -``` \ No newline at end of file +``` + \ No newline at end of file From 0f77a2960082774500d2a3b9bfc96abd1a729754 Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Thu, 9 Jan 2025 11:09:32 -0500 Subject: [PATCH 28/37] Tweaking README generation step. --- .gitea/workflows/deployment.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index 25f23517..a818b152 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -143,9 +143,9 @@ jobs: - name: Regenerate README uses: gnpaone/dynamic-update-readme@v1.0.2 with: - marker_text: + marker_text: "SERVICES_LIST" markdown_text: | - ```yaml + ```json ${{ env.SERVICES_LIST }} ```` From 454fa5ad4b228d313ef4419a23b00214ddcbafee Mon Sep 17 00:00:00 2001 From: markdown-update-bot Date: Thu, 9 Jan 2025 16:13:54 +0000 Subject: [PATCH 29/37] Update readme with dynamic data --- README.md | 885 +++++++++++++++++++----------------------------------- 1 file changed, 302 insertions(+), 583 deletions(-) diff --git a/README.md b/README.md index 53128671..a0798dc4 100644 --- a/README.md +++ b/README.md @@ -4,587 +4,306 @@ ```json -[ - { - "service": "actual_server", - "image": "docker.io/actualbudget/actual-server:latest" - }, - { - "service": "adguard", - "image": "adguard/adguardhome:latest" - }, - { - "service": "apprise", - "image": "lscr.io/linuxserver/apprise-api:latest" - }, - { - "service": "audiobookshelf", - "image": "ghcr.io/advplyr/audiobookshelf:latest" - }, - { - "service": "authelia", - "image": "authelia/authelia:master" - }, - { - "service": "authelia-pg", - "image": "postgres:16-alpine" - }, - { - "service": "bazarr", - "image": "lscr.io/linuxserver/bazarr:latest" - }, - { - "service": "bitmagnet", - "image": "ghcr.io/bitmagnet-io/bitmagnet:latest" - }, - { - "service": "bitmagnet-pg-db", - "image": "postgres:17-alpine" - }, - { - "service": "bitwarden", - "image": "vaultwarden/server:latest" - }, - { - "service": "bluesky-pds", - "image": "ghcr.io/bluesky-social/pds:latest" - }, - { - "service": "browserless", - "image": "ghcr.io/browserless/chromium:latest" - }, - { - "service": "castopod", - "image": "castopod/castopod:latest" - }, - { - "service": "cloudflared", - "image": "cloudflare/cloudflared:latest" - }, - { - "service": "cloudflareddns", - "image": "ghcr.io/hotio/cloudflareddns:latest" - }, - { - "service": "crowdsec", - "image": "crowdsecurity/crowdsec:latest" - }, - { - "service": "crowdsec-dashboard", - "image": "metabase/metabase" - }, - { - "service": "czkawka", - "image": "jlesage/czkawka" - }, - { - "service": "dagu-scheduler", - "image": "ghcr.io/dagu-org/dagu:latest" - }, - { - "service": "dagu-server", - "image": "ghcr.io/dagu-org/dagu:latest" - }, - { - "service": "delugevpn", - "image": "ghcr.io/binhex/arch-delugevpn:latest" - }, - { - "service": "docker-socket-proxy", - "image": "ghcr.io/tecnativa/docker-socket-proxy:latest" - }, - { - "service": "docuseal", - "image": "docuseal/docuseal:latest" - }, - { - "service": "duplicati", - "image": "lscr.io/linuxserver/duplicati:latest" - }, - { - "service": "fastenhealth", - "image": "ghcr.io/fastenhealth/fasten-onprem:main" - }, - { - "service": "flaresolverr", - "image": "ghcr.io/flaresolverr/flaresolverr:latest" - }, - { - "service": "ghost", - "image": "ghost:latest" - }, - { - "service": "gitea", - "image": "gitea/gitea:1.22.2" - }, - { - "service": "gitea-db", - "image": "postgres:14" - }, - { - "service": "gitea-opengist", - "image": "ghcr.io/thomiceli/opengist:latest" - }, - { - "service": "gitea-runner", - "image": "gitea/act_runner:latest" - }, - { - "service": "gitea-sonarqube-bot", - "image": "justusbunsi/gitea-sonarqube-bot:v0.4.0" - }, - { - "service": "gluetun", - "image": "qmcgaw/gluetun:latest" - }, - { - "service": "gotify", - "image": "gotify/server" - }, - { - "service": "grafana", - "image": "grafana/grafana-enterprise:latest" - }, - { - "service": "grafana-alloy", - "image": "grafana/alloy:latest" - }, - { - "service": "grafana-loki", - "image": "grafana/loki:latest" - }, - { - "service": "grafana-mimir", - "image": "grafana/mimir:latest" - }, - { - "service": "grafana-mimir-memcached", - "image": "memcached" - }, - { - "service": "grafana-pyroscope", - "image": "grafana/pyroscope:latest" - }, - { - "service": "grafana-tempo", - "image": "grafana/tempo:latest" - }, - { - "service": "homepage", - "image": "ghcr.io/gethomepage/homepage:latest" - }, - { - "service": "hortusfox", - "image": "ghcr.io/danielbrendel/hortusfox-web:latest" - }, - { - "service": "hugo", - "image": "hugomods/hugo:exts" - }, - { - "service": "invidious", - "image": "quay.io/invidious/invidious:latest" - }, - { - "service": "invidious-db", - "image": "docker.io/library/postgres:14" - }, - { - "service": "invoice_ninja", - "image": "invoiceninja/invoiceninja:5" - }, - { - "service": "invoice_ninja_proxy", - "image": "nginx" - }, - { - "service": "it-tools", - "image": "ghcr.io/corentinth/it-tools:latest" - }, - { - "service": "jellyfin", - "image": "jellyfin/jellyfin" - }, - { - "service": "jitsi-etherpad", - "image": "etherpad/etherpad:1.8.6" - }, - { - "service": "jitsi-jibri", - "image": "jitsi/jibri:${JITSI_IMAGE_VERSION:-stable}" - }, - { - "service": "jitsi-jicofo", - "image": "jitsi/jicofo:${JITSI_IMAGE_VERSION:-stable}" - }, - { - "service": "jitsi-jigasi", - "image": "jitsi/jigasi:${JITSI_IMAGE_VERSION:-stable}" - }, - { - "service": "jitsi-jvb", - "image": "jitsi/jvb:${JITSI_IMAGE_VERSION:-stable}" - }, - { - "service": "jitsi-prosody", - "image": "jitsi/prosody:${JITSI_IMAGE_VERSION:-stable}" - }, - { - "service": "jitsi-web", - "image": "jitsi/web:${JITSI_IMAGE_VERSION:-stable}" - }, - { - "service": "joplin-db", - "image": "postgres:17-alpine" - }, - { - "service": "joplin", - "image": "joplin/server:latest" - }, - { - "service": "komodo-core", - "image": "ghcr.io/mbecker20/komodo:latest" - }, - { - "service": "komodo-ferretdb", - "image": "ghcr.io/ferretdb/ferretdb" - }, - { - "service": "komodo-periphery", - "image": "ghcr.io/mbecker20/periphery:latest" - }, - { - "service": "komodo-pg-db", - "image": "postgres:17-alpine" - }, - { - "service": "librespeed", - "image": "lscr.io/linuxserver/librespeed:latest" - }, - { - "service": "lidarr", - "image": "lscr.io/linuxserver/lidarr:latest" - }, - { - "service": "lidify", - "image": "thewicklowwolf/lidify:latest" - }, - { - "service": "lldap", - "image": "lldap/lldap:stable" - }, - { - "service": "localai", - "image": "localai/localai:latest-aio-cpu" - }, - { - "service": "maloja", - "image": "krateng/maloja:latest" - }, - { - "service": "mariadb", - "image": "ghcr.io/linuxserver/mariadb" - }, - { - "service": "meshcentral", - "image": "ghcr.io/ylianst/meshcentral:master" - }, - { - "service": "minio", - "image": "minio/minio" - }, - { - "service": "mongodb", - "image": "mongo:7.0" - }, - { - "service": "multi-scrobbler", - "image": "foxxmd/multi-scrobbler" - }, - { - "service": "n8n", - "image": "docker.n8n.io/n8nio/n8n" - }, - { - "service": "navidrome", - "image": "deluan/navidrome:latest" - }, - { - "service": "netbox", - "image": "lscr.io/linuxserver/netbox:latest" - }, - { - "service": "netbox-db", - "image": "postgres:17-alpine" - }, - { - "service": "nextcloud", - "image": "lscr.io/linuxserver/nextcloud:latest" - }, - { - "service": "ollama", - "image": "ollama/ollama" - }, - { - "service": "ombi", - "image": "lscr.io/linuxserver/ombi:latest" - }, - { - "service": "paperless-ngx", - "image": "ghcr.io/paperless-ngx/paperless-ngx:latest" - }, - { - "service": "plausible", - "image": "ghcr.io/plausible/community-edition:v2.1.0" - }, - { - "service": "plausible_db", - "image": "postgres:16-alpine" - }, - { - "service": "plausible_events_db", - "image": "clickhouse/clickhouse-server:24.3.3.102-alpine" - }, - { - "service": "postal-smtp", - "image": "ghcr.io/postalserver/postal:latest" - }, - { - "service": "postal-web", - "image": "ghcr.io/postalserver/postal:latest" - }, - { - "service": "postal-worker", - "image": "ghcr.io/postalserver/postal:latest" - }, - { - "service": "prowlarr", - "image": "lscr.io/linuxserver/prowlarr:latest" - }, - { - "service": "radarec", - "image": "thewicklowwolf/radarec:latest" - }, - { - "service": "radarr", - "image": "lscr.io/linuxserver/radarr:latest" - }, - { - "service": "reactive-resume", - "image": "amruthpillai/reactive-resume:latest" - }, - { - "service": "reactive-resume-pg", - "image": "postgres:16-alpine" - }, - { - "service": "readarr", - "image": "lscr.io/linuxserver/readarr:develop" - }, - { - "service": "redis", - "image": "redis:alpine" - }, - { - "service": "redlib", - "image": "quay.io/redlib/redlib:latest" - }, - { - "service": "sabnzbdvpn", - "image": "ghcr.io/binhex/arch-sabnzbdvpn:latest" - }, - { - "service": "scraperr", - "image": "jpyles0524/scraperr:latest" - }, - { - "service": "scraperr-api", - "image": "jpyles0524/scraperr_api:latest" - }, - { - "service": "scrutiny", - "image": "ghcr.io/analogj/scrutiny:master-omnibus" - }, - { - "service": "searxng", - "image": "searxng/searxng:latest" - }, - { - "service": "semaphore", - "image": "semaphoreui/semaphore:v2.10.32" - }, - { - "service": "slurpit-portal", - "image": "slurpit/portal:latest" - }, - { - "service": "slurpit-scanner", - "image": "slurpit/scanner:latest" - }, - { - "service": "slurpit-scraper", - "image": "slurpit/scraper:latest" - }, - { - "service": "slurpit-warehouse", - "image": "slurpit/warehouse:latest" - }, - { - "service": "sonarqube", - "image": "mc1arke/sonarqube-with-community-branch-plugin:lts" - }, - { - "service": "sonarqube-pg-db", - "image": "postgres:17-alpine" - }, - { - "service": "sonarr", - "image": "lscr.io/linuxserver/sonarr:latest" - }, - { - "service": "sonashow", - "image": "thewicklowwolf/sonashow:latest" - }, - { - "service": "soulseek", - "image": "slskd/slskd" - }, - { - "service": "spotisub", - "image": "blastbeng/spotisub:latest" - }, - { - "service": "swag", - "image": "lscr.io/linuxserver/swag:latest" - }, - { - "service": "synapse", - "image": "docker.io/matrixdotorg/synapse:latest" - }, - { - "service": "synapse-db", - "image": "postgres:16-alpine" - }, - { - "service": "tandoor", - "image": "vabene1111/recipes" - }, - { - "service": "tandoor-pg", - "image": "postgres:16-alpine" - }, - { - "service": "traccar", - "image": "traccar/traccar:latest" - }, - { - "service": "traccar-pg", - "image": "postgres:16-alpine" - }, - { - "service": "unmanic", - "image": "josh5/unmanic:latest" - }, - { - "service": "uptimekuma", - "image": "louislam/uptime-kuma:latest" - }, - { - "service": "vault", - "image": "hashicorp/vault:latest" - }, - { - "service": "wallabag", - "image": "wallabag/wallabag" - }, - { - "service": "wallos", - "image": "bellamy/wallos:latest" - }, - { - "service": "watchtower", - "image": "ghcr.io/containrrr/watchtower:latest" - }, - { - "service": "wazuh.agent", - "image": "opennix/wazuh-agent:latest" - }, - { - "service": "wazuh.dashboard", - "image": "wazuh/wazuh-dashboard:${WAZUH_VERSION}" - }, - { - "service": "wazuh.indexer", - "image": "wazuh/wazuh-indexer:${WAZUH_VERSION}" - }, - { - "service": "wazuh.manager", - "image": "wazuh/wazuh-manager:${WAZUH_VERSION}" - }, - { - "service": "web-check", - "image": "lissy93/web-check" - }, - { - "service": "whodb", - "image": "clidey/whodb" - }, - { - "service": "your_spotify", - "image": "lscr.io/linuxserver/your_spotify:latest" - }, - { - "service": "youtubedl", - "image": "nbr23/youtube-dl-server:latest" - }, - { - "service": "zammad-backup", - "image": "postgres:${ZAMMAD_POSTGRES_VERSION}" - }, - { - "service": "zammad-elasticsearch", - "image": "bitnami/elasticsearch:${ZAMMAD_ELASTICSEARCH_VERSION}" - }, - { - "service": "zammad-init", - "image": "${ZAMMAD_IMAGE_REPO}:${ZAMMAD_VERSION}" - }, - { - "service": "zammad-memcached", - "image": "memcached:${ZAMMAD_MEMCACHE_VERSION}" - }, - { - "service": "zammad-nginx", - "image": "${ZAMMAD_IMAGE_REPO}:${ZAMMAD_VERSION}" - }, - { - "service": "zammad-postgresql", - "image": "postgres:${ZAMMAD_POSTGRES_VERSION}" - }, - { - "service": "zammad-railsserver", - "image": "${ZAMMAD_IMAGE_REPO}:${ZAMMAD_VERSION}" - }, - { - "service": "zammad-redis", - "image": "redis:${ZAMMAD_REDIS_VERSION}" - }, - { - "service": "zammad-scheduler", - "image": "${ZAMMAD_IMAGE_REPO}:${ZAMMAD_VERSION}" - }, - { - "service": "zammad-websocket", - "image": "${ZAMMAD_IMAGE_REPO}:${ZAMMAD_VERSION}" - }, - { - "service": "zitadel", - "image": "ghcr.io/zitadel/zitadel:latest" - }, - { - "service": "zitadel-pg-db", - "image": "postgres:16-alpine" - } -] -``` +- service: actual_server + image: docker.io/actualbudget/actual-server:latest +- service: adguard + image: adguard/adguardhome:latest +- service: apprise + image: lscr.io/linuxserver/apprise-api:latest +- service: audiobookshelf + image: ghcr.io/advplyr/audiobookshelf:latest +- service: authelia + image: authelia/authelia:master +- service: authelia-pg + image: postgres:16-alpine +- service: bazarr + image: lscr.io/linuxserver/bazarr:latest +- service: bitmagnet + image: ghcr.io/bitmagnet-io/bitmagnet:latest +- service: bitmagnet-pg-db + image: postgres:17-alpine +- service: bitwarden + image: vaultwarden/server:latest +- service: bluesky-pds + image: ghcr.io/bluesky-social/pds:latest +- service: browserless + image: ghcr.io/browserless/chromium:latest +- service: bunkerweb + image: bunkerity/bunkerweb:latest +- service: bunkerweb-scheduler + image: bunkerity/bunkerweb-scheduler:latest +- service: bunkerweb-ui + image: bunkerity/bunkerweb-ui:latest +- service: castopod + image: castopod/castopod:latest +- service: cloudflared + image: 'cloudflare/cloudflared:latest' +- service: cloudflareddns + image: ghcr.io/hotio/cloudflareddns:latest +- service: crowdsec + image: crowdsecurity/crowdsec:latest +- service: crowdsec-dashboard + image: metabase/metabase +- service: czkawka + image: jlesage/czkawka +- service: dagu-scheduler + image: ghcr.io/dagu-org/dagu:latest +- service: dagu-server + image: ghcr.io/dagu-org/dagu:latest +- service: delugevpn + image: ghcr.io/binhex/arch-delugevpn:latest +- service: docker-socket-proxy + image: ghcr.io/tecnativa/docker-socket-proxy:latest +- service: docuseal + image: docuseal/docuseal:latest +- service: duplicati + image: lscr.io/linuxserver/duplicati:latest +- service: fastenhealth + image: ghcr.io/fastenhealth/fasten-onprem:main +- service: flaresolverr + image: ghcr.io/flaresolverr/flaresolverr:latest +- service: ghost + image: ghost:latest +- service: gitea + image: gitea/gitea:1.22.6 +- service: gitea-db + image: postgres:14 +- service: gitea-opengist + image: ghcr.io/thomiceli/opengist:latest +- service: gitea-runner + image: gitea/act_runner:latest +- service: gitea-sonarqube-bot + image: justusbunsi/gitea-sonarqube-bot:v0.4.0 +- service: gluetun + image: qmcgaw/gluetun:latest +- service: gotify + image: gotify/server +- service: grafana + image: grafana/grafana-enterprise:latest +- service: grafana-alloy + image: grafana/alloy:latest +- service: grafana-loki + image: grafana/loki:latest +- service: grafana-mimir + image: grafana/mimir:latest +- service: grafana-mimir-memcached + image: memcached +- service: grafana-pyroscope + image: grafana/pyroscope:latest +- service: grafana-tempo + image: grafana/tempo:latest +- service: guacamole + image: flcontainers/guacamole:latest +- service: homepage + image: ghcr.io/gethomepage/homepage:latest +- service: hortusfox + image: ghcr.io/danielbrendel/hortusfox-web:latest +- service: hugo + image: hugomods/hugo:exts +- service: invidious + image: quay.io/invidious/invidious:latest +- service: invidious-db + image: docker.io/library/postgres:14 +- service: invoice_ninja + image: invoiceninja/invoiceninja:5 +- service: invoice_ninja_proxy + image: nginx +- service: it-tools + image: ghcr.io/corentinth/it-tools:latest +- service: jellyfin + image: jellyfin/jellyfin +- service: jitsi-etherpad + image: etherpad/etherpad:1.8.6 +- service: jitsi-jibri + image: jitsi/jibri:${JITSI_IMAGE_VERSION:-stable} +- service: jitsi-jicofo + image: jitsi/jicofo:${JITSI_IMAGE_VERSION:-stable} +- service: jitsi-jigasi + image: jitsi/jigasi:${JITSI_IMAGE_VERSION:-stable} +- service: jitsi-jvb + image: jitsi/jvb:${JITSI_IMAGE_VERSION:-stable} +- service: jitsi-prosody + image: jitsi/prosody:${JITSI_IMAGE_VERSION:-stable} +- service: jitsi-web + image: jitsi/web:${JITSI_IMAGE_VERSION:-stable} +- service: joplin-db + image: postgres:17-alpine +- service: joplin + image: joplin/server:latest +- service: komodo-core + image: ghcr.io/mbecker20/komodo:latest +- service: komodo-ferretdb + image: ghcr.io/ferretdb/ferretdb +- service: komodo-periphery + image: ghcr.io/mbecker20/periphery:latest +- service: komodo-pg-db + image: postgres:17-alpine +- service: librespeed + image: lscr.io/linuxserver/librespeed:latest +- service: lidarr + image: lscr.io/linuxserver/lidarr:latest +- service: lidify + image: thewicklowwolf/lidify:latest +- service: lldap + image: lldap/lldap:stable +- service: localai + image: localai/localai:latest-aio-cpu +- service: maloja + image: krateng/maloja:latest +- service: mariadb + image: ghcr.io/linuxserver/mariadb +- service: mastodon-pg-db + image: postgres:17-alpine +- service: minio + image: minio/minio +- service: mongodb + image: mongo:7.0 +- service: multi-scrobbler + image: foxxmd/multi-scrobbler +- service: n8n + image: docker.n8n.io/n8nio/n8n +- service: navidrome + image: deluan/navidrome:latest +- service: netbox + image: lscr.io/linuxserver/netbox:latest +- service: netbox-db + image: postgres:17-alpine +- service: nextcloud + image: lscr.io/linuxserver/nextcloud:latest +- service: ollama + image: ollama/ollama +- service: ombi + image: lscr.io/linuxserver/ombi:latest +- service: paperless-ngx + image: ghcr.io/paperless-ngx/paperless-ngx:latest +- service: plausible + image: ghcr.io/plausible/community-edition:v2.1.0 +- service: plausible_db + image: postgres:16-alpine +- service: plausible_events_db + image: clickhouse/clickhouse-server:24.3.3.102-alpine +- service: postal-smtp + image: ghcr.io/postalserver/postal:latest +- service: postal-web + image: ghcr.io/postalserver/postal:latest +- service: postal-worker + image: ghcr.io/postalserver/postal:latest +- service: prowlarr + image: lscr.io/linuxserver/prowlarr:latest +- service: radarec + image: thewicklowwolf/radarec:latest +- service: radarr + image: lscr.io/linuxserver/radarr:latest +- service: reactive-resume + image: amruthpillai/reactive-resume:latest +- service: reactive-resume-pg + image: postgres:16-alpine +- service: readarr + image: lscr.io/linuxserver/readarr:develop +- service: redis + image: redis:alpine +- service: redlib + image: quay.io/redlib/redlib:latest +- service: sabnzbdvpn + image: ghcr.io/binhex/arch-sabnzbdvpn:latest +- service: scraperr + image: jpyles0524/scraperr:latest +- service: scraperr-api + image: jpyles0524/scraperr_api:latest +- service: scrutiny + image: ghcr.io/analogj/scrutiny:master-omnibus +- service: searxng + image: searxng/searxng:latest +- service: semaphore + image: semaphoreui/semaphore:v2.10.32 +- service: slurpit-portal + image: slurpit/portal:latest +- service: slurpit-scanner + image: slurpit/scanner:latest +- service: slurpit-scraper + image: slurpit/scraper:latest +- service: slurpit-warehouse + image: slurpit/warehouse:latest +- service: sonarqube + image: mc1arke/sonarqube-with-community-branch-plugin:lts +- service: sonarqube-pg-db + image: postgres:17-alpine +- service: sonarr + image: lscr.io/linuxserver/sonarr:latest +- service: sonashow + image: thewicklowwolf/sonashow:latest +- service: soularr + image: mrusse08/soularr:latest +- service: soulseek + image: slskd/slskd +- service: spotisub + image: blastbeng/spotisub:latest +- service: swag + image: lscr.io/linuxserver/swag:latest +- service: synapse + image: docker.io/matrixdotorg/synapse:latest +- service: synapse-db + image: postgres:16-alpine +- service: tandoor + image: vabene1111/recipes +- service: tandoor-pg + image: postgres:16-alpine +- service: traccar + image: traccar/traccar:latest +- service: traccar-pg + image: postgres:16-alpine +- service: unmanic + image: josh5/unmanic:latest +- service: uptimekuma + image: louislam/uptime-kuma:latest +- service: vault + image: hashicorp/vault:latest +- service: wallabag + image: wallabag/wallabag +- service: wallos + image: bellamy/wallos:latest +- service: watchtower + image: ghcr.io/containrrr/watchtower:latest +- service: wazuh.agent + image: opennix/wazuh-agent:latest +- service: wazuh.dashboard + image: wazuh/wazuh-dashboard:${WAZUH_VERSION} +- service: wazuh.indexer + image: wazuh/wazuh-indexer:${WAZUH_VERSION} +- service: wazuh.manager + image: wazuh/wazuh-manager:${WAZUH_VERSION} +- service: web-check + image: lissy93/web-check +- service: whodb + image: clidey/whodb +- service: your_spotify + image: lscr.io/linuxserver/your_spotify:latest +- service: youtubedl + image: nbr23/youtube-dl-server:latest +- service: zammad-backup + image: postgres:${ZAMMAD_POSTGRES_VERSION} +- service: zammad-elasticsearch + image: bitnami/elasticsearch:${ZAMMAD_ELASTICSEARCH_VERSION} +- service: zammad-init + image: ${ZAMMAD_IMAGE_REPO}:${ZAMMAD_VERSION} +- service: zammad-memcached + image: memcached:${ZAMMAD_MEMCACHE_VERSION} +- service: zammad-nginx + image: ${ZAMMAD_IMAGE_REPO}:${ZAMMAD_VERSION} +- service: zammad-postgresql + image: postgres:${ZAMMAD_POSTGRES_VERSION} +- service: zammad-railsserver + image: ${ZAMMAD_IMAGE_REPO}:${ZAMMAD_VERSION} +- service: zammad-redis + image: redis:${ZAMMAD_REDIS_VERSION} +- service: zammad-scheduler + image: ${ZAMMAD_IMAGE_REPO}:${ZAMMAD_VERSION} +- service: zammad-websocket + image: ${ZAMMAD_IMAGE_REPO}:${ZAMMAD_VERSION} +- service: zitadel + image: ghcr.io/zitadel/zitadel:latest +- service: zitadel-pg-db + image: postgres:16-alpine +```` + \ No newline at end of file From 1777a63b709a9e7bb4b4a7eadb4422b1afa2e446 Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Thu, 9 Jan 2025 11:15:29 -0500 Subject: [PATCH 30/37] Adding the add/commit/push for readme. --- .gitea/workflows/deployment.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index a818b152..f3657647 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -149,13 +149,13 @@ jobs: ${{ env.SERVICES_LIST }} ```` - # - name: Add/Commit/Push README.md - # uses: mgrybyk-org/git-commit-pull-push-action@v1 - # with: - # add_args: README.md - # repository: ${{ github.repository }} - # branch: ${{ github.head_ref }} - # commit_message: Regenerate README.md + - name: Add/Commit/Push README.md + uses: mgrybyk-org/git-commit-pull-push-action@v1 + with: + add_args: README.md + repository: ${{ github.repository }} + branch: ${{ github.head_ref }} + commit_message: Regenerate README.md # - name: Install tea # uses: supplypike/setup-bin@v4 From 296660a17cb9dfcdce98fdf4627426c0e4ba88cd Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Thu, 9 Jan 2025 11:27:19 -0500 Subject: [PATCH 31/37] Re-adding tea install. --- .gitea/workflows/deployment.yml | 23 +++++++++-------------- 1 file changed, 9 insertions(+), 14 deletions(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index f3657647..1f07e6ee 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -145,24 +145,19 @@ jobs: with: marker_text: "SERVICES_LIST" markdown_text: | - ```json + ```yaml ${{ env.SERVICES_LIST }} ```` + commit_email: noreply@trez.wtf + commit_username: gitea-sonarqube-bot + commit_message: "docs: regenerate README" - - name: Add/Commit/Push README.md - uses: mgrybyk-org/git-commit-pull-push-action@v1 + - name: Install tea + uses: supplypike/setup-bin@v4 with: - add_args: README.md - repository: ${{ github.repository }} - branch: ${{ github.head_ref }} - commit_message: Regenerate README.md - - # - name: Install tea - # uses: supplypike/setup-bin@v4 - # with: - # uri: https://dl.gitea.com/tea/main/tea-main-linux-amd64 - # name: tea - # version: main + uri: https://dl.gitea.com/tea/main/tea-main-linux-amd64 + name: tea + version: main # - name: PR Merge # run: | From bb9e491b34df755b6970f2d121509d3abc5f44bd Mon Sep 17 00:00:00 2001 From: markdown-update-bot Date: Thu, 9 Jan 2025 16:30:52 +0000 Subject: [PATCH 32/37] docs: regenerate README --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index a0798dc4..eeb2a223 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ `~> yq '.services | to_entries | map({service: .key, image: .value.image})' docker-compose.yml` -```json +```yaml - service: actual_server image: docker.io/actualbudget/actual-server:latest - service: adguard From a363945eb8e4ba7d04ec7717ba5f01e83b0293ef Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Thu, 9 Jan 2025 13:03:54 -0500 Subject: [PATCH 33/37] Deployment trigger, Gotify notifications. --- .gitea/workflows/deployment.yml | 68 ++++++++++++++++++++++++++++----- 1 file changed, 58 insertions(+), 10 deletions(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index 1f07e6ee..498bc67d 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -120,8 +120,8 @@ jobs: flarectl dns create --zone "trez.wtf" --name "${subdomain}" --type=CNAME --content "trez.wtf" done - merge-pr-regenerate-readme: - name: PR Merge + regenerate-readme: + name: Update README runs-on: ubuntu-latest if: ${{ always() }} needs: [cloudflare-dns-setup] @@ -152,17 +152,65 @@ jobs: commit_username: gitea-sonarqube-bot commit_message: "docs: regenerate README" + deployment-trigger: + name: Deployment Trigger + if: ${{ always() }} + needs: [generate-readme] + runs-on: ubuntu-latest + outputs: + CONTINUE_JOBS: ${{ steps.deploy-trigger.outputs.CONTINUE_JOBS }} + steps: + - name: PR Merge + run: | + tea login add --name gitea-rinoa --url ${{ secrets.RINOA_GITEA_URL }} --user gitea-sonarqube-bot --password "${{ secrets.BOT_GITEA_PASSWORD }}" --token ${{ secrets.BOT_GITEA_TOKEN }} + pr_index=$(tea pr ls --repo ${{ github.repository }} --state open --fields index,title,head,state --output csv | egrep ${{ gitea.ref_name }} | awk -F, '{print $1}' | sed -e 's|"||g') + tea pr m --repo ${{ github.repository }} --title "Auto Merge of PR #${pr_index} - ${{ gitea.ref_name }}" --message "Merged by ${{ gitea.actor }}" --output table ${pr_index} + + - name: Gotify Notification + uses: eikendev/gotify-action@master + with: + gotify_api_base: '${{ secrets.RINOA_GOTIFY_URL }}' + gotify_app_token: '${{ secrets.RINOA_GOTIFY_TOKEN }}' + notification_title: 'Ready to Deploy' + notification_message: 'Ready to deploy: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}/jobs/${{ github.job }}' + + - name: Trigger Deployment + id: deploy-trigger + uses: benhamiltonpro/manual-trigger@v1 + with: + RUN_NAME: "docker-compose-deploy" + + docker-compose-deploy: + name: Merge and Deploy + if: ${{ needs.deployment-trigger.outputs.CONTINUE_JOB == 'manual-step' }} + runs-on: ubuntu-latest + env: + VAULT_ADDR: ${{ secrets.RINOA_VAULT_ADDR }} + VAULT_TOKEN: ${{ secrets.RINOA_VAULT_TOKEN }} + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + ref: main + - name: Install tea uses: supplypike/setup-bin@v4 with: - uri: https://dl.gitea.com/tea/main/tea-main-linux-amd64 - name: tea - version: main + uri: 'https://gitea.com/gitea/tea/releases/download/v0.9.2/tea-0.9.2-linux-amd64' + name: 'tea' + version: '0.9.2' + + - name: Install Vault + uses: cpanato/vault-installer@main - # - name: PR Merge - # run: | - # tea login add --name gitea-rinoa --url ${{ secrets.RINOA_GITEA_URL }} --user gitea-sonarqube-bot --password "${{ secrets.BOT_GITEA_PASSWORD }}" --token ${{ secrets.BOT_GITEA_TOKEN }} - # pr_index=$(tea pr ls --repo ${{ github.repository }} --state open --fields index,title,head,state --output csv | egrep ${{ gitea.ref_name }} | awk -F, '{print $1}' | sed -e 's|"||g') - # tea pr m --repo ${{ github.repository }} --title "Auto Merge of PR #${pr_index} - ${{ gitea.ref_name }}" --message "Merged by ${{ gitea.actor }}" --output table ${pr_index} + - name: Generate .env file for deployment + run: | + vault kv get -format=json rinoa-docker/env | jq -r '.data.data' | jq -r 'keys[] as $k | "\($k)='\''\(.[$k])'\''"' > .env + - name: Docker Compose Deployment + uses: Autom3/docker-deployment-action@3.0.1 + with: + remote_docker_host: gitea-deploy@192.168.1.254 + ssh_private_key: ${{ secrets.RINOA_GITEA_PRIVATE_SSH_KEY }} + ssh_public_key: ${{ secrets.RINOA_GITEA_PUBLIC_SSH_KEY }} \ No newline at end of file From 008febf14a646f2f82c104f6dac292fdf70760d4 Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Thu, 9 Jan 2025 13:12:02 -0500 Subject: [PATCH 34/37] Moved tea install step, added continue-on-error for Cloudflare DNS. --- .gitea/workflows/deployment.yml | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index 498bc67d..b355ffac 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -111,6 +111,7 @@ jobs: - name: Create Subdomains if: steps.compare-subdomains.outputs.output != '' + continue-on-error: true env: CF_API_TOKEN: ${{ secrets.CF_API_TOKEN }} CF_API_EMAIL: ${{ secrets.CF_API_EMAIL }} @@ -160,6 +161,13 @@ jobs: outputs: CONTINUE_JOBS: ${{ steps.deploy-trigger.outputs.CONTINUE_JOBS }} steps: + - name: Install tea + uses: supplypike/setup-bin@v4 + with: + uri: 'https://gitea.com/gitea/tea/releases/download/v0.9.2/tea-0.9.2-linux-amd64' + name: 'tea' + version: '0.9.2' + - name: PR Merge run: | tea login add --name gitea-rinoa --url ${{ secrets.RINOA_GITEA_URL }} --user gitea-sonarqube-bot --password "${{ secrets.BOT_GITEA_PASSWORD }}" --token ${{ secrets.BOT_GITEA_TOKEN }} @@ -192,13 +200,6 @@ jobs: uses: actions/checkout@v4 with: ref: main - - - name: Install tea - uses: supplypike/setup-bin@v4 - with: - uri: 'https://gitea.com/gitea/tea/releases/download/v0.9.2/tea-0.9.2-linux-amd64' - name: 'tea' - version: '0.9.2' - name: Install Vault uses: cpanato/vault-installer@main From 080c8ef37316c8d918aa5f2686d55c89a3927594 Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Thu, 9 Jan 2025 13:16:57 -0500 Subject: [PATCH 35/37] Moved tea install step, added continue-on-error for Cloudflare DNS. --- .gitea/workflows/deployment.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index b355ffac..720fb578 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -192,6 +192,7 @@ jobs: name: Merge and Deploy if: ${{ needs.deployment-trigger.outputs.CONTINUE_JOB == 'manual-step' }} runs-on: ubuntu-latest + needs: [deployment-trigger] env: VAULT_ADDR: ${{ secrets.RINOA_VAULT_ADDR }} VAULT_TOKEN: ${{ secrets.RINOA_VAULT_TOKEN }} From 7d1a5f6ea7092821e3c84dbe2f1c7eda01f50228 Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Thu, 9 Jan 2025 13:21:07 -0500 Subject: [PATCH 36/37] ... --- .gitea/workflows/deployment.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index 720fb578..b6040871 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -155,7 +155,6 @@ jobs: deployment-trigger: name: Deployment Trigger - if: ${{ always() }} needs: [generate-readme] runs-on: ubuntu-latest outputs: From a13c18c529f15d5178e7011a2517fa44aa9a4d11 Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Thu, 9 Jan 2025 13:25:23 -0500 Subject: [PATCH 37/37] ... --- .gitea/workflows/deployment.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index b6040871..3e154bcb 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -124,7 +124,6 @@ jobs: regenerate-readme: name: Update README runs-on: ubuntu-latest - if: ${{ always() }} needs: [cloudflare-dns-setup] steps: - name: Checkout