Compare commits

...

62 Commits

Author SHA1 Message Date
Trez.One efdc8182ca Adding Dockflare labels for tunnels; renaming Signoz migrator containers.
Gitea Branch PR, Cloudflare DNS, README generation, & Docker Deployment / Check and Create PR (push) Successful in 10m54s
Gitea Branch PR, Cloudflare DNS, README generation, & Docker Deployment / Cloudflare DNS Setup (push) Successful in 8m10s
Gitea Branch PR, Cloudflare DNS, README generation, & Docker Deployment / Update README & Generate List of Modified Services (push) Successful in 13m0s
Gitea Branch PR, Cloudflare DNS, README generation, & Docker Deployment / PR Merge (push) Successful in 1m2s
Gitea Branch PR, Cloudflare DNS, README generation, & Docker Deployment / Docker Compose Deployment (push) Has been cancelled
Gitea Branch PR, Cloudflare DNS, README generation, & Docker Deployment / Docker Compose Dry Run (push) Has been cancelled
2025-06-13 13:05:36 -04:00
gitea-sonarqube-bot c5a50eab36 Auto Merge of PR 72 - crowdsec-add-configrations_2025-06-12T06-45-28
Auto-Unseal for Vault / Unseal Vault (push) Failing after 14m16s
Merged by Trez.One
2025-06-12 15:38:07 -04:00
Trez.One 991cdd5a85 ...
Gitea Branch PR & Ansible Deployment / Ansible Lint (push) Has been skipped
Gitea Branch PR & Ansible Deployment / Check and Create PR (push) Successful in 3m0s
Gitea Branch PR & Ansible Deployment / Ansible Config Deployment (push) Has been cancelled
Gitea Branch PR & Ansible Deployment / PR Merge (push) Has been cancelled
2025-06-12 14:35:51 -04:00
Trez.One 674549b86e Working Ansible actions.
Gitea Branch PR & Ansible Deployment / Check and Create PR (push) Successful in 9m33s
Gitea Branch PR & Ansible Deployment / PR Merge (push) Has been cancelled
Gitea Branch PR & Ansible Deployment / Ansible Config Deployment (push) Has been cancelled
Gitea Branch PR & Ansible Deployment / Ansible Lints (push) Has been cancelled
2025-06-12 14:03:07 -04:00
Trez.One 02f209474a Location fix..
Gitea Branch PR & Ansible Deployment / Check and Create PR (push) Successful in 22s
Gitea Branch PR & Ansible Deployment / PR Merge (push) Has been cancelled
Gitea Branch PR & Ansible Deployment / Ansible Config Deployment (push) Has been cancelled
Gitea Branch PR & Ansible Deployment / Ansible Lints (push) Has been cancelled
2025-06-12 13:46:31 -04:00
gitea-sonarqube-bot 80007117b0 Auto Merge of PR 71 - crowdsec-add-configrations_2025-06-12T06-45-28
Merged by Trez.One
2025-06-12 13:37:37 -04:00
Trez.One 9e26a70917 Changing Ansible Playbook action.
Gitea Branch PR & Ansible Deployment / Check and Create PR (push) Successful in 35s
Gitea Branch PR & Ansible Deployment / Ansible Lints (push) Failing after 1m31s
Gitea Branch PR & Ansible Deployment / PR Merge (push) Successful in 15s
Gitea Branch PR & Ansible Deployment / Ansible Config Deployment (push) Failing after 41s
2025-06-12 13:35:11 -04:00
gitea-sonarqube-bot 30ab91b0ca Auto Merge of PR 70 - crowdsec-add-configrations_2025-06-12T06-45-28
Merged by Trez.One
2025-06-12 13:16:45 -04:00
Trez.One 321e28d97f Reverting Python downgrade, manually installing libc6.
Gitea Branch PR & Ansible Deployment / Check and Create PR (push) Successful in 10m16s
Gitea Branch PR & Ansible Deployment / Ansible Lints (push) Failing after 13m22s
Gitea Branch PR & Ansible Deployment / PR Merge (push) Successful in 1m51s
Gitea Branch PR & Ansible Deployment / Ansible Config Deployment (push) Failing after 14m8s
2025-06-12 12:50:35 -04:00
gitea-sonarqube-bot ea068dfaff Auto Merge of PR 69 - crowdsec-add-configrations_2025-06-12T06-45-28
Merged by Trez.One
2025-06-12 12:34:22 -04:00
Trez.One d11b911872 Downgrading Python version (3.12 to 3.11).
Gitea Branch PR & Ansible Deployment / Check and Create PR (push) Successful in 10m28s
Gitea Branch PR & Ansible Deployment / Ansible Lints (push) Failing after 14m22s
Gitea Branch PR & Ansible Deployment / PR Merge (push) Successful in 1m2s
Gitea Branch PR & Ansible Deployment / Ansible Config Deployment (push) Failing after 4m29s
2025-06-12 12:05:38 -04:00
gitea-sonarqube-bot 41f4920f22 Auto Merge of PR 68 - crowdsec-add-configrations_2025-06-12T06-45-28
Merged by Trez.One
2025-06-12 11:55:19 -04:00
Trez.One 99811a4df8 Fix for Ansible Playbook and adding prefix in PR title.
Gitea Branch PR & Ansible Deployment / Check and Create PR (push) Successful in 28s
Gitea Branch PR, Cloudflare DNS, README generation, & Docker Deployment / Check and Create PR (push) Failing after 17s
Gitea Branch PR, Cloudflare DNS, README generation, & Docker Deployment / Docker Compose Dry Run (push) Has been skipped
Gitea Branch PR & Ansible Deployment / Ansible Lints (push) Failing after 4m42s
Gitea Branch PR & Ansible Deployment / PR Merge (push) Failing after 22s
Gitea Branch PR & Ansible Deployment / Ansible Config Deployment (push) Has been skipped
Gitea Branch PR, Cloudflare DNS, README generation, & Docker Deployment / Cloudflare DNS Setup (push) Successful in 7m52s
Gitea Branch PR, Cloudflare DNS, README generation, & Docker Deployment / Update README & Generate List of Modified Services (push) Successful in 21s
Gitea Branch PR, Cloudflare DNS, README generation, & Docker Deployment / PR Merge (push) Failing after 7s
Gitea Branch PR, Cloudflare DNS, README generation, & Docker Deployment / Docker Compose Deployment (push) Has been skipped
2025-06-12 11:52:25 -04:00
gitea-sonarqube-bot 423ab775fb Auto Merge of PR 67 - crowdsec-add-configrations_2025-06-12T06-45-28
Merged by Trez.One
2025-06-12 11:26:51 -04:00
Trez.One 9c1acd1e55 Adding acquisition for Audiobookshelf.
Gitea Branch PR & Ansible Deployment / Check and Create PR (push) Successful in 7m42s
Gitea Branch PR, Cloudflare DNS, README generation, & Docker Deployment / Check and Create PR (push) Successful in 15s
Gitea Branch PR & Ansible Deployment / Ansible Lints (push) Failing after 18m43s
Gitea Branch PR & Ansible Deployment / PR Merge (push) Successful in 5m37s
Gitea Branch PR, Cloudflare DNS, README generation, & Docker Deployment / Docker Compose Dry Run (push) Failing after 1m37s
Gitea Branch PR, Cloudflare DNS, README generation, & Docker Deployment / Cloudflare DNS Setup (push) Successful in 3m26s
Gitea Branch PR & Ansible Deployment / Ansible Config Deployment (push) Failing after 10m49s
Gitea Branch PR, Cloudflare DNS, README generation, & Docker Deployment / Update README & Generate List of Modified Services (push) Successful in 10m38s
Gitea Branch PR, Cloudflare DNS, README generation, & Docker Deployment / PR Merge (push) Successful in 11s
Gitea Branch PR, Cloudflare DNS, README generation, & Docker Deployment / Docker Compose Deployment (push) Has been skipped
2025-06-12 10:52:24 -04:00
Trez.One 1806d78cb2 Increasing Ansible verbosity for troubleshooting.
Gitea Branch PR & Ansible Deployment / Check and Create PR (push) Has been cancelled
Gitea Branch PR & Ansible Deployment / Ansible Lints (push) Has been cancelled
Gitea Branch PR & Ansible Deployment / PR Merge (push) Has been cancelled
Gitea Branch PR & Ansible Deployment / Ansible Config Deployment (push) Has been cancelled
2025-06-12 10:27:14 -04:00
gitea-sonarqube-bot a386050c22 Auto Merge of PR 66 - crowdsec-add-configrations_2025-06-12T06-45-28
Merged by Trez.One
2025-06-12 10:15:41 -04:00
Trez.One 8590cf6bbc Re-enabling CrowdSec mod for SWAG.
Gitea Branch PR & Ansible Deployment / Check and Create PR (push) Successful in 13m23s
Gitea Branch PR & Ansible Deployment / Ansible Lints (push) Failing after 20m19s
Gitea Branch PR & Ansible Deployment / PR Merge (push) Successful in 4m0s
Gitea Branch PR & Ansible Deployment / Ansible Config Deployment (push) Failing after 20m8s
Gitea Branch PR, Cloudflare DNS, README generation, & Docker Deployment / Docker Compose Dry Run (push) Has been cancelled
Gitea Branch PR, Cloudflare DNS, README generation, & Docker Deployment / Cloudflare DNS Setup (push) Has been cancelled
Gitea Branch PR, Cloudflare DNS, README generation, & Docker Deployment / Check and Create PR (push) Has been cancelled
Gitea Branch PR, Cloudflare DNS, README generation, & Docker Deployment / Update README & Generate List of Modified Services (push) Has been cancelled
Gitea Branch PR, Cloudflare DNS, README generation, & Docker Deployment / PR Merge (push) Has been cancelled
Gitea Branch PR, Cloudflare DNS, README generation, & Docker Deployment / Docker Compose Deployment (push) Has been cancelled
2025-06-12 09:40:52 -04:00
Trez.One 70e4ce2c01 Adding several Crowdsec collections. 2025-06-12 09:40:52 -04:00
Trez.One 292c697304 Docker Compose tweaks. 2025-06-12 09:13:04 -04:00
Trez.One 2f0b995167 Docker Compose tweaks. 2025-06-12 09:11:20 -04:00
Trez.One 61ceb86b27 chore: Update README 2025-06-12 12:42:31 +00:00
gitea-sonarqube-bot 00fabdaf10 Auto Merge of PR 65 - crowdsec-add-configrations_2025-06-12T06-45-28
Merged by Trez.One
2025-06-12 08:35:12 -04:00
Trez.One 334d080bc2 CrowdSec config changes and enhancements.
Gitea Branch PR & Ansible Deployment / Check and Create PR (push) Successful in 8m6s
Gitea Branch PR & Ansible Deployment / Ansible Lints (push) Failing after 16m3s
Gitea Branch PR & Ansible Deployment / PR Merge (push) Successful in 14s
Gitea Branch PR & Ansible Deployment / Ansible Config Deployment (push) Failing after 1m15s
Gitea Branch PR, Cloudflare DNS, README generation, & Docker Deployment / Check and Create PR (push) Successful in 4m8s
Gitea Branch PR, Cloudflare DNS, README generation, & Docker Deployment / Cloudflare DNS Setup (push) Successful in 42s
Gitea Branch PR, Cloudflare DNS, README generation, & Docker Deployment / Update README & Generate List of Modified Services (push) Failing after 18s
Gitea Branch PR, Cloudflare DNS, README generation, & Docker Deployment / PR Merge (push) Has been skipped
Gitea Branch PR, Cloudflare DNS, README generation, & Docker Deployment / Docker Compose Dry Run (push) Failing after 10m16s
Gitea Branch PR, Cloudflare DNS, README generation, & Docker Deployment / Docker Compose Deployment (push) Has been cancelled
2025-06-12 08:08:09 -04:00
Trez.One a4ee173417 Ansible pipeline. 2025-06-12 06:33:31 -04:00
Trez.One b769a6e449 Changing time of Vault Unseal playbook. 2025-06-12 05:46:20 -04:00
Trez.One 2f8fecf36f Trying to fix Python dependency for Ansible workflow.
Auto-Unseal for Vault / Unseal Vault (push) Successful in 9m46s
2025-06-11 21:00:40 -04:00
Trez.One bf4f1a4e8c Config reorg. 2025-06-11 20:49:43 -04:00
Trez.One e9e142bd3e Pipeline mods. 2025-06-11 20:46:28 -04:00
gitea-sonarqube-bot 31466f47b9 Auto Merge of PR 64 - ansible-config-organization
Merged by Trez.One
2025-06-11 20:40:43 -04:00
Trez.One cbdc8f35a5 Reorganizing configs.
Gitea Branch PR & Ansible Deployment / Check and Create PR (push) Successful in 8m53s
Gitea Branch PR & Ansible Deployment / Docker Compose & Ansible Lints (push) Failing after 12m35s
Gitea Branch PR & Ansible Deployment / PR Merge (push) Successful in 31s
Gitea Branch PR & Ansible Deployment / Ansible Config Deployment (push) Failing after 19m9s
2025-06-11 20:17:16 -04:00
Trez.One 61718cbc59 Modifying Playbook to adhere to dir structure. 2025-06-11 20:17:16 -04:00
gitea-sonarqube-bot a01c420f6b Auto Merge of PR 63 - crowdsec-clean-up
Merged by Trez.One
2025-06-11 18:26:24 -04:00
Trez.One 3fd5a39866 CrowdSec modifications.
Gitea Branch PR & Ansible Deployment / Check and Create PR (push) Successful in 5m1s
Gitea Branch PR, Cloudflare DNS, README generation, & Docker Deployment / Check and Create PR (push) Successful in 14s
Gitea Branch PR & Ansible Deployment / Docker Compose & Ansible Lints (push) Failing after 6m57s
Gitea Branch PR & Ansible Deployment / PR Merge (push) Successful in 40s
Gitea Branch PR, Cloudflare DNS, README generation, & Docker Deployment / Docker Compose Dry Run (push) Failing after 41s
Gitea Branch PR, Cloudflare DNS, README generation, & Docker Deployment / Cloudflare DNS Setup (push) Successful in 58s
Gitea Branch PR & Ansible Deployment / Ansible Config Deployment (push) Failing after 12m17s
Gitea Branch PR, Cloudflare DNS, README generation, & Docker Deployment / Update README & Generate List of Modified Services (push) Successful in 9m49s
Gitea Branch PR, Cloudflare DNS, README generation, & Docker Deployment / PR Merge (push) Failing after 4m8s
Gitea Branch PR, Cloudflare DNS, README generation, & Docker Deployment / Docker Compose Deployment (push) Has been skipped
2025-06-11 18:11:57 -04:00
gitea-sonarqube-bot 05fe650895 Auto Merge of PR 62 - apprise-config-change
Merged by Trez.One
2025-06-11 16:39:15 -04:00
Trez.One 0b3b42d103 Correction in Apprise config.
Gitea Branch PR & Ansible Deployment / Check and Create PR (push) Successful in 6m21s
Gitea Branch PR & Ansible Deployment / Docker Compose & Ansible Lints (push) Failing after 10m0s
Gitea Branch PR & Ansible Deployment / PR Merge (push) Successful in 33s
Gitea Branch PR & Ansible Deployment / Ansible Config Deployment (push) Failing after 53s
2025-06-11 16:21:48 -04:00
Trez.One 9115efd9bb Slight changes to workflows. 2025-06-11 16:21:48 -04:00
Trez.One 7cff89b4cf Adding Authelia auth for DockFlare. 2025-06-11 15:40:36 -04:00
Trez.One 8a442b3b91 Updating Gitea version to 1.26.0. 2025-06-11 11:36:14 -04:00
gitea-sonarqube-bot 584d304497 Auto Merge of PR 61 - dockflare-deployment
Merged by Trez.One
2025-06-11 10:50:24 -04:00
Trez.One 657dffc87e chore: Update README 2025-06-11 14:50:00 +00:00
Trez.One 1f22440560 Quick config fix for Signoz.
Gitea Branch PR, Cloudflare DNS, README generation, & Docker Deployment / Check and Create PR (push) Successful in 18s
Gitea Branch PR, Cloudflare DNS, README generation, & Docker Deployment / Docker Compose Dry Run (push) Successful in 3m49s
Gitea Branch PR, Cloudflare DNS, README generation, & Docker Deployment / Cloudflare DNS Setup (push) Successful in 31s
Gitea Branch PR, Cloudflare DNS, README generation, & Docker Deployment / Update README & Generate List of Modified Services (push) Successful in 2m35s
Gitea Branch PR, Cloudflare DNS, README generation, & Docker Deployment / PR Merge (push) Successful in 21s
Gitea Branch PR, Cloudflare DNS, README generation, & Docker Deployment / Docker Compose Deployment (push) Failing after 24m7s
2025-06-11 10:42:44 -04:00
Trez.One 8aa50012d4 Adding DockFlare service.
Gitea Branch PR, Cloudflare DNS, README generation, & Docker Deployment / Check and Create PR (push) Successful in 36s
Gitea Branch PR, Cloudflare DNS, README generation, & Docker Deployment / Docker Compose Dry Run (push) Successful in 9m3s
Gitea Branch PR, Cloudflare DNS, README generation, & Docker Deployment / Update README & Generate List of Modified Services (push) Has been cancelled
Gitea Branch PR, Cloudflare DNS, README generation, & Docker Deployment / PR Merge (push) Has been cancelled
Gitea Branch PR, Cloudflare DNS, README generation, & Docker Deployment / Docker Compose Deployment (push) Has been cancelled
Gitea Branch PR, Cloudflare DNS, README generation, & Docker Deployment / Cloudflare DNS Setup (push) Has been cancelled
2025-06-11 10:32:13 -04:00
Trez.One 3897475c0f Changing pipelines. 2025-06-11 09:03:59 -04:00
gitea-sonarqube-bot 73f8b02e92 Auto Merge of PR 60 - signoz-test
Merged by Trez.One
2025-06-11 07:45:11 -04:00
Trez.One 4404422b20 chore: Update README 2025-06-11 11:44:49 +00:00
Trez.One 55171ada4b Signoz container name change.
Gitea Branch PR, Cloudflare DNS, README generation, & Docker Deployment / Check and Create PR (push) Successful in 1m14s
Gitea Branch PR, Cloudflare DNS, README generation, & Docker Deployment / Docker Compose Dry Run (push) Failing after 29s
Gitea Branch PR, Cloudflare DNS, README generation, & Docker Deployment / Cloudflare DNS Setup (push) Successful in 30s
Gitea Branch PR, Cloudflare DNS, README generation, & Docker Deployment / Update README & Generate List of Modified Services (push) Successful in 43s
Gitea Branch PR, Cloudflare DNS, README generation, & Docker Deployment / PR Merge (push) Successful in 18s
Gitea Branch PR, Cloudflare DNS, README generation, & Docker Deployment / Docker Compose Deployment (push) Failing after 40s
2025-06-11 07:41:22 -04:00
Trez.One f62d14affd Signoz configurations.
Gitea Branch PR & Ansible Deployment / Check and Create PR (push) Successful in 19m43s
Gitea Branch PR & Ansible Deployment / PR Merge (push) Has been cancelled
Gitea Branch PR & Ansible Deployment / Docker Compose & Ansible Lints (push) Has been cancelled
Gitea Branch PR & Ansible Deployment / Ansible Config Deployment (push) Has been cancelled
2025-06-10 13:41:45 -04:00
Trez.One 544e885b11 Signoz tweaks. 2025-06-10 13:41:45 -04:00
Trez.One ba061e25cb Adding Signoz services. 2025-06-10 11:18:43 -04:00
Trez.One a172516135 Adding Signoz services. 2025-06-10 11:18:43 -04:00
Trez.One 29619bacfc Updating Vault token.
Auto-Unseal for Vault / Unseal Vault (push) Failing after 1s
2025-06-10 10:19:18 -04:00
Trez.One 2193b9046e Adding option of on-demand runs for deployment pipelines. 2025-06-10 09:41:29 -04:00
Trez.One da92354175 Ansible config pipeline tweak. 2025-06-10 09:38:50 -04:00
Trez.One 3ebfc77843 Merge remote-tracking branch 'refs/remotes/origin/main' 2025-06-10 08:43:26 -04:00
Trez.One 94e1f250f3 Changing capabilities for Adguard Home container again. 2025-06-10 08:43:13 -04:00
gitea-sonarqube-bot be5b769b0a Auto Merge of PR 59 - signoz-ansible-configs
Merged by Trez.One
2025-06-10 08:41:33 -04:00
Trez.One 917d23c45d Merge remote-tracking branch 'refs/remotes/origin/main' 2025-06-10 08:28:41 -04:00
Trez.One 86a1576481 Changing capability for Adguard Home container. 2025-06-10 08:27:43 -04:00
Trez.One c819082c7b FreeScout port fix. 2025-06-09 08:45:09 -04:00
Trez.One 4f2afca20b Merge remote-tracking branch 'refs/remotes/origin/main' 2025-06-09 08:20:12 -04:00
Trez.One 00dca2b675 AdGuard SWAG and Homepage labels. 2025-06-09 08:16:47 -04:00
83 changed files with 657 additions and 141 deletions
@@ -1,10 +1,12 @@
name: Gitea Branch PR & Ansible Deployment
on:
workflow_dispatch:
push:
branches-ignore:
- 'main'
paths:
- '**.j2'
- '**/pr-ansible-config-deployment.yaml'
- 'ansible/**.yml'
jobs:
check-and-create-pr:
@@ -40,7 +42,7 @@ jobs:
continue-on-error: true
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_exists=$(tea pr list --repo ${{ github.repository }} --state open --fields index,title,head | egrep ${{ github.ref_name }} | tail -1 | wc -l)
pr_exists=$(tea pr list --repo ${{ github.repository }} --state open --fields index,title,head | egrep '\[ANSIBLE\].*${{ github.ref_name }}' | tail -1 | wc -l)
echo "exists=$pr_exists" >> $GITHUB_OUTPUT
- name: Create PR
if: ${{ steps.check-opened-pr-step.outputs.exists == '0' }}
@@ -48,7 +50,7 @@ jobs:
tea login default gitea-rinoa
pr_index_old=$(tea pr ls --repo ${{ github.repository }} --state all --fields index,title,head --output csv | sed -e 's|"||g' | egrep '^[0-9]' | head -1 | awk -F"," '{print $1}')
pr_index_new=$(expr ${pr_index_old} + 1)
tea pr c -r ${{ github.repository }} -t "Automated PR for ${{ github.ref_name }} - #${pr_index_new}" -d "Automatically created PR for branch: ${{ github.ref_name }}" -a ${{ github.actor }} -L "Docker Compose, Ansible Configs.j2"
tea pr c -r ${{ github.repository }} -t "[ANSIBLE] Automated PR for ${{ github.ref_name }} - #${pr_index_new}" -d "Automatically created PR for branch: ${{ github.ref_name }}" -a ${{ github.actor }} -L "Ansible Configs.j2"
- name: Gotify Notification
uses: eikendev/gotify-action@master
with:
@@ -57,7 +59,7 @@ jobs:
notification_title: 'GITEA: PR Check'
notification_message: 'PR Created 🎟️'
ansible-linting:
name: Docker Compose & Ansible Lints
name: Ansible Lint
needs: [check-and-create-pr]
runs-on: ubuntu-latest
env:
@@ -67,9 +69,6 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Fetch base branch
run: |
git fetch origin ${{ github.event.pull_request.base.ref }}
- name: Cache Ansible Galaxy Collections
uses: actions/cache@v3
with:
@@ -80,11 +79,12 @@ jobs:
- name: Install Ansible
uses: alex-oleshkevich/setup-ansible@v1.0.1
with:
version: "11.0.0"
version: "11.4.0"
- name: Install Vault
uses: cpanato/vault-installer@main
- name: Install hvac
run: pip install hvac
run: |
pip install hvac
- name: Gotify Notification
uses: eikendev/gotify-action@master
with:
@@ -93,16 +93,17 @@ jobs:
notification_title: 'GITEA: Ansible Config Dry Run @ Rinoa'
notification_message: 'Starting Ansible dry run...'
- name: Ansible Playbook Dry Run
uses: arillso/action.playbook@0.1.0
uses: dawidd6/action-ansible-playbook@v3
with:
check: true
galaxy_collections_path: ansible/collections
galaxy_requirements_file: ansible/collections/requirements.yml
inventory: ansible/inventory/hosts.yml
playbook: ansible/docker_config_deploy.yml
private_key: ${{ secrets.RINOA_ANSIBLE_PRIVATE_KEY }}
directory: ansible/
playbook: docker_config_deploy.yml
key: ${{ secrets.RINOA_ANSIBLE_PRIVATE_KEY }}
vault_password: ${{ secrets.ANSIBLE_VAULT_PASSWORD }}
verbose: 0
requirements: collections/requirements.yml
options: |
--check
--inventory inventory/hosts.yml
-v
- name: Gotify Notification
uses: eikendev/gotify-action@master
with:
@@ -139,8 +140,8 @@ jobs:
gotify_app_token: '${{ secrets.RINOA_RUNNER_GOTIFY_TOKEN }}'
notification_title: 'GITEA: PR Merge Successful'
notification_message: 'PR #${{ steps.pr_merge.outputs.pr_index }} merged.'
ansible-config-docker-compose-deploy:
name: Ansible Configs & Docker Compose Deployment
ansible-config-deploy:
name: Ansible Config Deployment
runs-on: ubuntu-latest
needs: [pr-merge]
env:
@@ -152,6 +153,10 @@ jobs:
uses: actions/checkout@v4
with:
ref: main
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: 3.12
- name: Cache Vault install
id: cache-vault
uses: actions/cache@v4
@@ -161,11 +166,12 @@ jobs:
- name: Install Ansible
uses: alex-oleshkevich/setup-ansible@v1.0.1
with:
version: "11.0.0"
version: "11.4.0"
- name: Install Vault
uses: cpanato/vault-installer@main
- name: Install hvac
run: pip install hvac
run: |
pip install hvac
- name: Gotify Notification
uses: eikendev/gotify-action@master
with:
@@ -173,16 +179,16 @@ jobs:
gotify_app_token: '${{ secrets.RINOA_RUNNER_GOTIFY_TOKEN }}'
notification_title: 'GITEA: Ansible Config Deployment @ Rinoa'
notification_message: 'Starting config deployment with Ansible...'
- name: Ansible Playbook Dry Run
uses: arillso/action.playbook@0.1.0
- name: Ansible Playbook Config Deploy
uses: dawidd6/action-ansible-playbook@v3
with:
check: false
galaxy_collections_path: ansible/collections
galaxy_requirements_file: ansible/collections/requirements.yml
inventory: ansible/inventory/hosts.yml
playbook: ansible/docker_config_deploy.yml
private_key: ${{ secrets.RINOA_ANSIBLE_PRIVATE_KEY }}
directory: ansible/
playbook: docker_config_deploy.yml
key: ${{ secrets.RINOA_ANSIBLE_PRIVATE_KEY }}
vault_password: ${{ secrets.ANSIBLE_VAULT_PASSWORD }}
requirements: collections/requirements.yml
options: |
--inventory inventory/hosts.yml
- name: Gotify Notification
uses: eikendev/gotify-action@master
with:
@@ -1,5 +1,6 @@
name: Gitea Branch PR, Cloudflare DNS, README generation, & Docker Deployment
on:
workflow_dispatch:
push:
branches-ignore:
- 'main'
@@ -41,7 +42,7 @@ jobs:
continue-on-error: true
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_exists=$(tea pr list --repo ${{ github.repository }} --state open --fields index,title,head | egrep ${{ github.ref_name }} | tail -1 | wc -l)
pr_exists=$(tea pr list --repo ${{ github.repository }} --state open --fields index,title,head | egrep '\[DOCKER\].*${{ github.ref_name }}' | tail -1 | wc -l)
echo "exists=$pr_exists" >> $GITHUB_OUTPUT
- name: Create PR
if: ${{ steps.check-opened-pr-step.outputs.exists == '0' }}
@@ -49,7 +50,7 @@ jobs:
tea login default gitea-rinoa
pr_index_old=$(tea pr ls --repo ${{ github.repository }} --state all --fields index,title,head --output csv | sed -e 's|"||g' | egrep '^[0-9]' | head -1 | awk -F"," '{print $1}')
pr_index_new=$(expr ${pr_index_old} + 1)
tea pr c -r ${{ github.repository }} -t "Automated PR for ${{ github.ref_name }} - #${pr_index_new}" -d "Automatically created PR for branch: ${{ github.ref_name }}" -a ${{ github.actor }} -L "Docker Compose, Ansible Configs.j2"
tea pr c -r ${{ github.repository }} -t "[DOCKER] Automated PR for ${{ github.ref_name }} - #${pr_index_new}" -d "Automatically created PR for branch: ${{ github.ref_name }}" -a ${{ github.actor }} -L "Docker Compose"
- name: Gotify Notification
uses: eikendev/gotify-action@master
with:
@@ -65,6 +66,7 @@ jobs:
VAULT_ADDR: ${{ secrets.RINOA_VAULT_ADDR }}
VAULT_TOKEN: ${{ secrets.VAULT_GITEA_TOKEN }}
VAULT_NAMESPACE: ""
RINOA_REGISTRY_PASSWORD: ${{ secrets.BOT_GITEA_PASSWORD }}
outputs:
svc_deploy_list: ${{ steps.modded_svcs.outputs.rinoa_svcs }}
steps:
@@ -75,7 +77,7 @@ jobs:
git fetch origin ${{ github.event.pull_request.base.ref }}
- name: Login to Gitea Container Registry
run: |
docker login -u gitea-sonarqube-bot -p ${{ secrets.BOT_GITEA_PASSWORD }} git.trez.wtf
docker login -u gitea-sonarqube-bot -p ${RINOA_REGISTRY_PASSWORD} git.trez.wtf
- name: Save both versions of docker-compose.yml
run: |
git show origin/main:docker-compose.yml > docker-compose-main.yml || touch docker-compose-main.yml
@@ -134,14 +136,17 @@ jobs:
- name: Docker Compose Dry Run
timeout-minutes: 360
continue-on-error: true
uses: keatonLiu/docker-compose-remote-action@v1.2
uses: chaplyk/docker-compose-remote-action@v1.1
with:
docker_compose_file: docker-compose.yml
docker_args: -d --remove-orphans --pull missing ${{ steps.modded_svcs.outputs.rinoa_svcs }}
ssh_user: gitea-deploy
ssh_host: 192.168.1.254
ssh_host_public_key: ${{ secrets.RINOA_GITEA_PUBLIC_SSH_KEY }}
ssh_private_key: ${{ secrets.RINOA_GITEA_PRIVATE_SSH_KEY }}
ssh_port: 22
ssh_user: gitea-deploy
ssh_key: ${{ secrets.RINOA_GITEA_PRIVATE_SSH_KEY }}
service: ${{ steps.modded_svcs.outputs.rinoa_svcs }}
compose_file: docker-compose.yml
pull: false
build: false
options: -d --remove-orphans
env:
DOCKER_HOST: tcp://dockerproxy:2375
- name: Gotify Notification
@@ -294,11 +299,13 @@ jobs:
docker-compose-deploy:
name: Docker Compose Deployment
runs-on: ubuntu-latest
needs: [pr-merge]
needs: [docker-compose-dry-run, pr-merge]
env:
VAULT_ADDR: ${{ secrets.RINOA_VAULT_ADDR }}
VAULT_TOKEN: ${{ secrets.VAULT_GITEA_TOKEN }}
DOCKER_HOST: tcp://dockerproxy:2375
RINOA_REGISTRY_PASSWORD: ${{ secrets.BOT_GITEA_PASSWORD }}
DOCKER_SVC_LIST: ${{ needs.docker-compose-dry-run.outputs.svc_deploy_list }}
steps:
- name: Checkout
uses: actions/checkout@v4
@@ -310,15 +317,11 @@ jobs:
with:
path: /opt/hostedtoolcache/vault/1.18.0/x64
key: vault-${{ runner.os }}-1.18.0
- name: Install Ansible
uses: alex-oleshkevich/setup-ansible@v1.0.1
with:
version: "11.0.0"
- name: Install Vault
uses: cpanato/vault-installer@main
- name: Login to Gitea Container Registry
run: |
docker login -u gitea-sonarqube-bot -p ${{ secrets.BOT_GITEA_PASSWORD }} git.trez.wtf
docker login -u gitea-sonarqube-bot -p ${RINOA_REGISTRY_PASSWORD} git.trez.wtf
- name: Gotify Notification
uses: eikendev/gotify-action@master
with:
@@ -332,14 +335,19 @@ jobs:
- name: Docker Compose Deployment
timeout-minutes: 360
continue-on-error: true
uses: keatonLiu/docker-compose-remote-action@v1.2
uses: chaplyk/docker-compose-remote-action@v1.1
env:
DOCKER_HOST: tcp://dockerproxy:2375
with:
docker_compose_file: docker-compose.yml
docker_args: -d --remove-orphans --pull missing ${{ docker-compose-dry-run.outputs.svc_deploy_list }}
ssh_user: gitea-deploy
ssh_host: 192.168.1.254
ssh_host_public_key: ${{ secrets.RINOA_GITEA_PUBLIC_SSH_KEY }}
ssh_private_key: ${{ secrets.RINOA_GITEA_PRIVATE_SSH_KEY }}
ssh_port: 22
ssh_user: gitea-deploy
ssh_key: ${{ secrets.RINOA_GITEA_PRIVATE_SSH_KEY }}
service: ${DOCKER_SVC_LIST}
compose_file: docker-compose.yml
pull: false
build: false
options: -d --remove-orphans
- name: Gotify Notification
uses: eikendev/gotify-action@master
with:
+2 -1
View File
@@ -1,7 +1,8 @@
name: Auto-Unseal for Vault
on:
workflow_dispatch:
schedule:
- cron: "30 2 * * *"
- cron: "0 5 * * *"
jobs:
auto-unseal:
name: Unseal Vault
+9 -1
View File
@@ -31,6 +31,7 @@
| dawarich-sidekiq | freikin/dawarich:latest |
| dead-man-hand | ghcr.io/bkupidura/dead-man-hand:latest |
| docker-socket-proxy | ghcr.io/tecnativa/docker-socket-proxy:latest |
| dockflare | alplat/dockflare:stable |
| duplicati | lscr.io/linuxserver/duplicati:latest |
| excalidraw | excalidraw/excalidraw:latest |
| explo | ghcr.io/lumepart/explo:latest |
@@ -38,7 +39,7 @@
| flaresolverr | ghcr.io/flaresolverr/flaresolverr:latest |
| freescout | tiredofit/freescout:latest |
| ghost | ghost:latest |
| gitea | gitea/gitea:1.23.1 |
| gitea | gitea/gitea:1.24.0 |
| gitea-db | postgres:14 |
| gitea-runner | gitea/act_runner:latest |
| gitea-sonarqube-bot | justusbunsi/gitea-sonarqube-bot:v0.4.0 |
@@ -129,6 +130,13 @@
| scrutiny | ghcr.io/analogj/scrutiny:master-omnibus |
| searxng | searxng/searxng:latest |
| semaphore | semaphoreui/semaphore:v2.12.14 |
| signoz-init-clickhouse | clickhouse/clickhouse-server:24.1.2-alpine |
| signoz-zookeeper-1 | bitnami/zookeeper:3.7.1 |
| signoz-clickhouse | clickhouse/clickhouse-server:24.1.2-alpine |
| signoz-app | signoz/signoz:v0.86.2 |
| signoz-otel-collector | signoz/signoz-otel-collector:v0.111.42 |
| signoz-schema-migrator-sync | signoz/signoz-schema-migrator:v0.111.42 |
| signoz-schema-migrator-async | signoz/signoz-schema-migrator:v0.111.42 |
| sonarqube | mc1arke/sonarqube-with-community-branch-plugin:lts |
| sonarqube-pg-db | postgres:17-alpine |
| sonarr | lscr.io/linuxserver/sonarr:latest |
@@ -0,0 +1,6 @@
{% set vault_addr = 'https://vault.trez.wtf' %}
{% set secrets_path = 'rinoa-docker/env' %}
urls:
- gotify://gotify/{{ lookup('community.hashi_vault.vault_kv2_get', 'env', engine_mount_point='rinoa-docker', url=vault_addr, token=vault_token_cleaned)['secret']['APPRISE_GOTIFY_TOKEN'] }}
- mailto://{{ lookup('community.hashi_vault.vault_kv2_get', 'env', engine_mount_point='rinoa-docker', url=vault_addr, token=vault_token_cleaned)['secret']['POSTAL_SMTP_AUTH_USER'] }}:{{ lookup('community.hashi_vault.vault_kv2_get', 'env', engine_mount_point='rinoa-docker', url=vault_addr, token=vault_token_cleaned)['secret']['POSTAL_SMTP_AUTH_PASSWORD'] }}@trez.wtf25?smtp=postal-smtp&from=noreply@trez.wtf
@@ -1,6 +0,0 @@
{% set vault_addr = 'https://vault.trez.wtf' %}
{% set secrets_path = 'rinoa-docker/env' %}
urls:
- gotify://gotify/{{ lookup('community.hashi_vault.vault_kv2_get', 'env', engine_mount_point='rinoa-docker', url=vault_addr, token=vault_token_cleaned)['secret']['APPRISE_GOTIFY_TOKEN'] }}
- mailtos://{{ lookup('community.hashi_vault.vault_kv2_get', 'env', engine_mount_point='rinoa-docker', url=vault_addr, token=vault_token_cleaned)['secret']['POSTAL_SMTP_AUTH_USER'] }}:{{ lookup('community.hashi_vault.vault_kv2_get', 'env', engine_mount_point='rinoa-docker', url=vault_addr, token=vault_token_cleaned)['secret']['POSTAL_SMTP_AUTH_PASSWORD'] }}@trez.wtf25?smtp=postal-smtp&from=noreply@trez.wtf
@@ -0,0 +1,65 @@
{% set vault_addr = 'https://vault.trez.wtf' %}
{% set secrets_path = 'rinoa-docker/env' %}
source: journalctl
journalctl_filter:
- "--directory=/var/log/host/"
labels:
type: syslog
---
filenames:
- /var/log/swag/*
labels:
type: nginx
---
filenames:
- /var/log/auth/auth.log
labels:
type: syslog
---
filenames:
- /var/lib/mysql/log/mysql/*
- /var/lib/mysql/databases/*.err
- /var/lib/mysql/databases/*.log
labels:
type: mariadb
---
source: docker
container_name:
- adguard
labels:
type: adguardhome
---
source: docker
container_name:
- mongodb
labels:
type: mongodb
---
source: docker
container_name:
- immich-server
labels:
type: immich
---
source: docker
container_name:
- uptimekuma
labels:
type: uptime-kuma
---
source: docker
container_name:
- jellyfin
labels:
type: jellyfin
---
source: docker
container_name:
- navidrome
labels:
type: navidrome
---
filenames:
- /var/log/audiobookshelf/*.txt
labels:
type: audiobookshelf
@@ -0,0 +1,51 @@
{% set vault_addr = 'https://vault.trez.wtf' %}
{% set secrets_path = 'rinoa-docker/env' %}
common:
daemonize: false
log_media: stdout
log_level: info
log_dir: /var/log/
config_paths:
config_dir: /etc/crowdsec/
data_dir: /var/lib/crowdsec/data/
simulation_path: /etc/crowdsec/simulation.yaml
hub_dir: /etc/crowdsec/hub/
index_path: /etc/crowdsec/hub/.index.json
notification_dir: /etc/crowdsec/notifications/
plugin_dir: /usr/local/lib/crowdsec/plugins/
crowdsec_service:
acquisition_path: /etc/crowdsec/acquis.yaml
acquisition_dir: /etc/crowdsec/acquis.d
parser_routines: 1
plugin_config:
user: nobody
group: nobody
cscli:
output: human
db_config:
log_level: info
type: sqlite
db_path: /var/lib/crowdsec/data/crowdsec.db
flush:
max_items: 5000
max_age: 7d
use_wal: false
api:
client:
insecure_skip_verify: false
credentials_path: /etc/crowdsec/local_api_credentials.yaml
server:
log_level: info
listen_uri: 0.0.0.0:8080
profiles_path: /etc/crowdsec/profiles.yaml
trusted_ips: # IP ranges, or IPs which can have admin API access
- 127.0.0.1
- ::1
online_client: # Central API credentials (to push signals and receive bad IPs)
credentials_path: /etc/crowdsec/online_api_credentials.yaml
enable: true
prometheus:
enabled: true
level: full
listen_addr: 0.0.0.0
listen_port: 6060
@@ -0,0 +1,6 @@
{% set vault_addr = 'https://vault.trez.wtf' %}
{% set secrets_path = 'rinoa-docker/env' %}
url: https://api.crowdsec.net/
login: {{ lookup('community.hashi_vault.vault_kv2_get', 'env', engine_mount_point='rinoa-docker', url=vault_addr, token=vault_token_cleaned)['secret']['CROWDSEC_ONLINE_PASSWORD'] }}
password: {{ lookup('community.hashi_vault.vault_kv2_get', 'env', engine_mount_point='rinoa-docker', url=vault_addr, token=vault_token_cleaned)['secret']['CROWDSEC_ONLINE_PASSWORD'] }}
@@ -1,15 +0,0 @@
{% set vault_addr = 'https://vault.trez.wtf' %}
{% set secrets_path = 'rinoa-docker/env' %}
source: journalctl
journalctl_filter:
- "--directory=/var/log/host/"
labels:
type: syslog
---
filenames:
- /var/log/swag/*
labels:
type: nginx
---
@@ -7,7 +7,7 @@
-->
<zookeeper>
<node index="1">
<host>zookeeper-1</host>
<host>signoz-zookeeper-1</host>
<port>2181</port>
</node>
<node index="2">
@@ -52,7 +52,7 @@
<!-- Optional. Shard weight when writing data. Default: 1. -->
<!-- <weight>1</weight> -->
<replica>
<host>clickhouse</host>
<host>signoz-clickhouse</host>
<port>9000</port>
<!-- Optional. Priority of the replica for load_balancing. Default: 1 (less value has more priority). -->
<!-- <priority>1</priority> -->
@@ -7,7 +7,7 @@
-->
<zookeeper>
<node index="1">
<host>zookeeper-1</host>
<host>signoz-zookeeper-1</host>
<port>2181</port>
</node>
<!-- <node index="2">
@@ -52,7 +52,7 @@
<!-- Optional. Shard weight when writing data. Default: 1. -->
<!-- <weight>1</weight> -->
<replica>
<host>clickhouse</host>
<host>signoz-clickhouse</host>
<port>9000</port>
<!-- Optional. Priority of the replica for load_balancing. Default: 1 (less value has more priority). -->
<!-- <priority>1</priority> -->
@@ -0,0 +1,103 @@
receivers:
otlp:
protocols:
grpc:
endpoint: 0.0.0.0:4317
http:
endpoint: 0.0.0.0:4318
prometheus:
config:
global:
scrape_interval: 60s
scrape_configs:
- job_name: otel-collector
static_configs:
- targets:
- localhost:8888
labels:
job_name: otel-collector
processors:
batch:
send_batch_size: 10000
send_batch_max_size: 11000
timeout: 10s
resourcedetection:
# Using OTEL_RESOURCE_ATTRIBUTES envvar, env detector adds custom labels.
detectors: [env, system]
timeout: 2s
signozspanmetrics/delta:
metrics_exporter: clickhousemetricswrite, signozclickhousemetrics
metrics_flush_interval: 60s
latency_histogram_buckets: [100us, 1ms, 2ms, 6ms, 10ms, 50ms, 100ms, 250ms, 500ms, 1000ms, 1400ms, 2000ms, 5s, 10s, 20s, 40s, 60s ]
dimensions_cache_size: 100000
aggregation_temporality: AGGREGATION_TEMPORALITY_DELTA
enable_exp_histogram: true
dimensions:
- name: service.namespace
default: default
- name: deployment.environment
default: default
# This is added to ensure the uniqueness of the timeseries
# Otherwise, identical timeseries produced by multiple replicas of
# collectors result in incorrect APM metrics
- name: signoz.collector.id
- name: service.version
- name: browser.platform
- name: browser.mobile
- name: k8s.cluster.name
- name: k8s.node.name
- name: k8s.namespace.name
- name: host.name
- name: host.type
- name: container.name
extensions:
health_check:
endpoint: 0.0.0.0:13133
pprof:
endpoint: 0.0.0.0:1777
exporters:
clickhousetraces:
datasource: tcp://clickhouse:9000/signoz_traces
low_cardinal_exception_grouping: ${env:LOW_CARDINAL_EXCEPTION_GROUPING}
use_new_schema: true
clickhousemetricswrite:
endpoint: tcp://clickhouse:9000/signoz_metrics
disable_v2: true
resource_to_telemetry_conversion:
enabled: true
clickhousemetricswrite/prometheus:
endpoint: tcp://clickhouse:9000/signoz_metrics
disable_v2: true
signozclickhousemetrics:
dsn: tcp://clickhouse:9000/signoz_metrics
clickhouselogsexporter:
dsn: tcp://clickhouse:9000/signoz_logs
timeout: 10s
use_new_schema: true
# debug: {}
service:
telemetry:
logs:
encoding: json
metrics:
address: 0.0.0.0:8888
extensions:
- health_check
- pprof
pipelines:
traces:
receivers: [otlp]
processors: [signozspanmetrics/delta, batch]
exporters: [clickhousetraces]
metrics:
receivers: [otlp]
processors: [batch]
exporters: [clickhousemetricswrite, signozclickhousemetrics]
metrics/prometheus:
receivers: [prometheus]
processors: [batch]
exporters: [clickhousemetricswrite/prometheus, signozclickhousemetrics]
logs:
receivers: [otlp]
processors: [batch]
exporters: [clickhouselogsexporter]
@@ -1 +0,0 @@
server_endpoint: ws://signoz:4320/v1/opamp
+29 -7
View File
@@ -1,20 +1,42 @@
---
- name: Deploy Docker Service Configurations
hosts: rinoa
vars:
appdata_base_path: "~/.docker/config/appdata"
template_base_path: "{{ playbook_dir }}/app-configs"
tasks:
- name: Recursively collect all Jinja2 templates (*.j2)
ansible.builtin.find:
paths: "{{ template_base_path }}"
patterns: "*.j2"
recurse: true
register: template_files
- name: Set relative template path (without .j2) for each file
ansible.builtin.set_fact:
rel_template_path: >-
{{ item.path
| regex_replace('^' + (template_base_path | regex_escape) + '/', '')
| regex_replace('\\.j2$', '') }}
loop: "{{ template_files.files }}"
loop_control:
loop_var: item
register: rel_paths
- name: Ensure target directories exist
ansible.builtin.file:
path: "{{ appdata_base_path }}/{{ (item | basename | regex_replace('\\.j2$', '') | regex_replace('_', '/') | regex_replace('/[^/]+$', '')) }}"
path: "{{ appdata_base_path }}/{{ item.ansible_facts.rel_template_path | dirname }}"
state: directory
mode: '0755'
loop: "{{ query('fileglob', 'app-configs/*.j2') }}"
loop: "{{ rel_paths.results }}"
loop_control:
label: "{{ item.ansible_facts.rel_template_path }}"
- name: Deploy configuration templates
- name: Deploy rendered templates
ansible.builtin.template:
src: "{{ item }}"
dest: "{{ appdata_base_path }}/{{ item | basename | regex_replace('\\.j2$', '') | regex_replace('_', '/') }}"
src: "{{ item.item.path | regex_replace('^' + (playbook_dir | regex_escape) + '/', '') }}"
dest: "{{ appdata_base_path }}/{{ item.ansible_facts.rel_template_path }}"
mode: '0644'
loop: "{{ query('fileglob', 'app-configs/*.j2') }}"
loop: "{{ rel_paths.results }}"
loop_control:
label: "{{ item.ansible_facts.rel_template_path }}"
+9 -9
View File
@@ -1,14 +1,14 @@
vault_addr: "https://vault.trez.wtf"
vault_token: !vault |
$ANSIBLE_VAULT;1.1;AES256
39306238386563313462666238333237346239326636633731326263653639646235363937386333
6138653434613437643134653463363230303038373765380a636162663734393632396638313261
39613730633935373063663030616131653731376461333762633131633066366165343536323031
3539373461383138310a383734313237313231363539383632323130336536656662313861336261
65393033633461363837366462656134386430353236343136616161663364376261623834366466
30303765393039376666303937663839663630623063666135313636353432396161333434653435
32623634313531343466613966663139333234616137646636636134373264333263343533393331
32313530373164653730656662383837626139643364376134376634613237323063343731663734
36306335303936633334353564306239663563366435316464343039373965383032
62353532343234343230663331623062376533346166343963383464303535646362376233663361
3532343530653365663331393339646337653564316337390a646264353561623132366635343032
63326535376434353837663334366336613631346161363034646134333439613531376362646161
6438316662626566340a346665666234386630633764376336333063363934643162393565386330
35333139303939613232303264646236326637613862303339353334623066393966353032333839
33323962303635333335376364366336663035303530396262356130373537363134303937353433
34393338336666396338616465666466613931373461663761366235643437646136373039353939
33643133313264303637646336653537383337336661313765663366356262343064316334313337
35306232303132653566356130343366313139336665313737363732613261623439
vault_token_cleaned: "{{ vault_token | regex_replace('\\n', '') }}"
secrets_path: "rinoa-docker/env"
+310 -48
View File
@@ -1,13 +1,5 @@
name: compose
networks:
bitmagnet:
driver: bridge
ipam:
config:
- gateway: 192.168.55.1
subnet: 192.168.55.0/27
driver: default
name: compose_bitmagnet
default:
name: compose_default
nextcloud-aio:
@@ -51,6 +43,65 @@ x-maxun: &maxun-env
CHROMIUM_FLAGS: '--disable-gpu --no-sandbox --headless=new'
#DEBUG: pw:api
#PWDEBUG: 1
x-signoz-common: &signoz-common
# networks:
# - signoz-net
restart: unless-stopped
# logging:
# options:
# max-size: 50m
# max-file: "3"
x-signoz-clickhouse-defaults: &signoz-clickhouse-defaults
<<: *signoz-common
# addding non LTS version due to this fix https://github.com/ClickHouse/ClickHouse/commit/32caf8716352f45c1b617274c7508c86b7d1afab
image: clickhouse/clickhouse-server:24.1.2-alpine
tty: true
labels:
signoz.io/scrape: "true"
signoz.io/port: "9363"
signoz.io/path: "/metrics"
depends_on:
signoz-init-clickhouse:
condition: service_completed_successfully
signoz-zookeeper-1:
condition: service_healthy
healthcheck:
test:
- CMD
- wget
- --spider
- -q
- 0.0.0.0:8123/ping
interval: 30s
timeout: 5s
retries: 3
ulimits:
nproc: 65535
nofile:
soft: 262144
hard: 262144
x-signoz-zookeeper-defaults: &signoz-zookeeper-defaults
<<: *signoz-common
image: bitnami/zookeeper:3.7.1
user: root
labels:
signoz.io/scrape: "true"
signoz.io/port: "9141"
signoz.io/path: "/metrics"
healthcheck:
test:
- CMD-SHELL
- curl -s -m 2 http://localhost:8080/commands/ruok | grep error | grep null
interval: 30s
timeout: 5s
retries: 3
x-signoz-db-depend: &signoz-db-depend
<<: *signoz-common
depends_on:
signoz-clickhouse:
condition: service_healthy
signoz-schema-migrator-sync:
condition: service_completed_successfully
services:
actual_server:
container_name: actualbudget
@@ -81,6 +132,7 @@ services:
adguard:
cap_add:
- NET_BIND_SERVICE
- NET_RAW
container_name: adguard
environment:
TZ: ${TZ}
@@ -660,7 +712,29 @@ services:
DOCKER_HOST: tcp://dockerproxy:2375
GID: 1000
BOUNCER_KEY_SWAG: ${CROWDSEC_API_KEY}
COLLECTIONS: corvese/apache-guacamole crowdsecurity/home-assistant crowdsecurity/http-cve crowdsecurity/iptables crowdsecurity/linux crowdsecurity/mariadb crowdsecurity/nextcloud crowdsecurity/nginx crowdsecurity/whitelist-good-actors Dominic-Wagner/vaultwarden gauth-fr/immich LePresidente/adguardhome LePresidente/authelia LePresidente/gitea LePresidente/jellyfin LePresidente/ombi plague-doctor/audiobookshelf schiz0phr3ne/sonarr sdwilsh/navidrome timokoessler/mongodb timokoessler/uptime-kuma xs539/joplin-server
COLLECTIONS: >-
corvese/apache-guacamole
crowdsecurity/home-assistant
crowdsecurity/http-cve
crowdsecurity/iptables
crowdsecurity/linux
crowdsecurity/mariadb
crowdsecurity/nextcloud
crowdsecurity/nginx
crowdsecurity/whitelist-good-actors
Dominic-Wagner/vaultwarden
gauth-fr/immich
LePresidente/adguardhome
LePresidente/authelia
LePresidente/gitea
LePresidente/jellyfin
LePresidente/ombi
plague-doctor/audiobookshelf
schiz0phr3ne/sonarr
sdwilsh/navidrome
timokoessler/mongodb
timokoessler/uptime-kuma
xs539/joplin-server
image: crowdsecurity/crowdsec:latest
networks:
default: null
@@ -670,36 +744,16 @@ services:
security_opt:
- no-new-privileges=true
volumes:
- source: ${DOCKER_VOLUME_CONFIG}/crowdsec/config.yaml.local
target: /etc/crowdsec/config.yaml.local
type: bind
bind:
create_host_path: true
- source: ${DOCKER_VOLUME_CONFIG}/crowdsec/local_api_credentials.yaml.local
target: /etc/crowdsec/local_api_credentials.yaml.local
type: bind
bind:
create_host_path: true
- read_only: true
source: ${DOCKER_VOLUME_CONFIG}/swag/log/nginx
target: /var/log/swag
type: bind
bind:
create_host_path: true
- source: crowdsec-config
target: /etc/crowdsec
type: volume
volume: {}
- source: crowdsec-db
target: /var/lib/crowdsec/data
type: volume
volume: {}
- bind:
create_host_path: true
read_only: true
source: /var/log/journal
target: /var/log/host
type: bind
- ${DOCKER_VOLUME_CONFIG}/crowdsec/config.yaml.local:/etc/crowdsec/config.yaml
- ${DOCKER_VOLUME_CONFIG}/crowdsec/local-api-credentials.yaml:/etc/crowdsec/local_api_credentials.yaml
- ${DOCKER_VOLUME_CONFIG}/crowdsec/online-api-credentials.yaml:/etc/crowdsec/online_api_credentials.yaml
- ${DOCKER_VOLUME_CONFIG}/swag/log/nginx:/var/log/swag:ro # SWAG
- ${DOCKER_VOLUME_CONFIG}/mariadb/:/var/lib/mysql:ro # MariaDB
- ${DOCKER_VOLUME_CONFIG}/audiobookshelf/.metadata/logs:/var/log/audiobookself:ro # Audiobookshelf
- crowdsec-config:/etc/crowdsec
- crowdsec-db:/var/lib/crowdsec/data
- /var/log/journal:/var/log/host:ro
- /var/log/auth.log:/var/log/host/auth.log:ro
crowdsec-dashboard:
container_name: crowdsec-dashboard
depends_on:
@@ -987,6 +1041,62 @@ services:
source: /var/run/docker.sock
target: /var/run/docker.sock
type: bind
dockflare:
container_name: dockflare
environment:
AGENT_STATUS_UPDATE_INTERVAL_SECONDS: 10
CF_ACCOUNT_ID: ${CLOUDFLARE_ACCOUNT_ID}
CF_API_TOKEN: ${CLOUDFLAREDDNS_ENVIRONMENT_APITOKEN}
CF_ZONE_ID: ${CLOUDFLARE_ZONE_ID}
CLEANUP_INTERVAL_SECONDS: 300
CLOUDFLARED_NETWORK_NAME: compose_default
DEFAULT_NO_TLS_VERIFY: false
GRACE_PERIOD_SECONDS: 600
LABEL_PREFIX: cloudflare.tunnel
MAX_CONCURRENT_DNS_OPS: 3
RECONCILIATION_BATCH_SIZE: 3
SCAN_ALL_NETWORKS: false
STATE_FILE_PATH: /app/data/state.json
TRUSTED_PROXIES: 192.168.1.0/24,172.18.0.0/16
TUNNEL_DNS_SCAN_ZONE_NAMES:
TUNNEL_NAME: dockflared-tunnel
TZ: ${TZ}
image: alplat/dockflare:stable # Or :unstable for the latest features
labels:
homepage.group: Privacy/Security
homepage.name: DockFlare
homepage.href: https://cftunn.${MY_TLD}
homepage.icon: /icons/dockflare.png
homepage.description: Cloudflare Tunnel controller
swag: enable
swag_auth: authelia
swag_proto: http
swag_url: cftunn.${MY_TLD}
swag.uptime-kuma.enabled: true
swag.uptime-kuma.monitor.url: https://cftunn.${MY_TLD}
swag.uptime-kuma.monitor.interval: 300
### EXAMPLE CF TUNNEL LABELS ###
# Enable DockFlare management for this container
# - "cloudflare.tunnel.enable=true"
# The public hostname to expose
# - "cloudflare.tunnel.hostname=my-service.example.com"
# The internal service address (protocol://container_name_or_ip:port)
# Service type (http, https, tcp, ssh, rdp, http_status) is inferred from the prefix.
# - "cloudflare.tunnel.service=http://my-service:80"
# Optional: Specify a URL path. Only requests to hostname/path will match.
# - "cloudflare.tunnel.path=/app"
# Optional: Specify a different Cloudflare Zone for this hostname
# - "cloudflare.tunnel.zonename=another.example.com"
# Optional: Disable TLS verification if your internal service uses HTTP or a self-signed cert
# - "cloudflare.tunnel.no_tls_verify=true"
# Optional: Specify Origin Server Name (SNI) for TLS connection to origin
# - "cloudflare.tunnel.originsrvname=internal.service.local"
ports:
- 20756:5000
restart: unless-stopped
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- dockflare_data:/app/data
duplicati:
container_name: duplicati
environment:
@@ -1177,13 +1287,14 @@ services:
TIMEZONE: ${TZ}
image: tiredofit/freescout:latest
labels:
homepage.group: Lifestyle
homepage.group: Personal/Professional Services
homepage.name: FreeScout
homepage.icon: sh-freescout.svg
homepage.href: https://support.${MY_TLD}
homepage.description: Lightweight help desk and shared inbox
swag: enable
swag_proto: http
swag_port: 80
swag_url: support.${MY_TLD}
swag.uptime-kuma.enabled: true
swag.uptime-kuma.monitor.url: https://support.${MY_TLD}
@@ -1259,8 +1370,13 @@ services:
GITEA__mailer__SMTP_PORT: 25
GITEA__mailer__USER: ${POSTAL_SMTP_AUTH_USER}
GITEA__mailer__PASSWD: ${POSTAL_SMTP_AUTH_PASSWORD}
image: gitea/gitea:1.23.1
image: gitea/gitea:1.24.0
labels:
cloudflare.tunnel.enable: true
cloudflare.tunnel.hostname: git-ssh.trez.wtf
cloudflare.tunnel.service: http://gitea:22
cloudflare.tunnel.zonename: trez.wtf
cloudflare.tunnel.no_tls_verify: true
homepage.group: Code/DevOps
homepage.name: Gitea
homepage.href: https://git.${MY_TLD}
@@ -1366,13 +1482,7 @@ services:
VPN_SERVICE_PROVIDER: private internet access
expose:
- 8000
extra_hosts:
- bitmagnet-pg-db:192.168.55.8
image: qmcgaw/gluetun:latest
networks:
bitmagnet:
ipv4_address: 192.168.55.7
default: null
ports:
- 3333:3333
- 3334:3334
@@ -4325,6 +4435,11 @@ services:
- "/dev/sdf:/dev/sdf:rwm"
image: ghcr.io/analogj/scrutiny:master-omnibus
labels:
cloudflare.tunnel.enable: true
cloudflare.tunnel.hostname: smartd.trez.wtf
cloudflare.tunnel.service: http://scrutiny:8080
cloudflare.tunnel.zonename: trez.wtf
cloudflare.tunnel.no_tls_verify: true
homepage.group: Infrastructure/App Performance Monitoring
homepage.name: Scrutiny
homepage.href: http://192.168.1.254:8909
@@ -4434,6 +4549,145 @@ services:
- semaphore_config:/etc/semaphore
- semaphore_data:/var/lib/semaphore
- semaphore_tmp:/tmp/semaphore
signoz-init-clickhouse:
<<: *signoz-common
container_name: signoz-init-clickhouse
command:
- bash
- -c
- |
version="v0.0.1"
node_os=$$(uname -s | tr '[:upper:]' '[:lower:]')
node_arch=$$(uname -m | sed s/aarch64/arm64/ | sed s/x86_64/amd64/)
echo "Fetching histogram-binary for $${node_os}/$${node_arch}"
cd /tmp
wget -O histogram-quantile.tar.gz "https://github.com/SigNoz/signoz/releases/download/histogram-quantile%2F$${version}/histogram-quantile_$${node_os}_$${node_arch}.tar.gz"
tar -xvzf histogram-quantile.tar.gz
mv histogram-quantile /var/lib/clickhouse/user_scripts/histogramQuantile
image: clickhouse/clickhouse-server:24.1.2-alpine
restart: on-failure
volumes:
- ${DOCKER_VOLUME_CONFIG}/signoz/common/clickhouse/user_scripts/:/var/lib/clickhouse/user_scripts/
signoz-zookeeper-1:
<<: *signoz-zookeeper-defaults
container_name: signoz-zookeeper-1
environment:
ZOO_SERVER_ID: 1
ALLOW_ANONYMOUS_LOGIN: yes
ZOO_AUTOPURGE_INTERVAL: 1
ZOO_ENABLE_PROMETHEUS_METRICS: yes
ZOO_PROMETHEUS_METRICS_PORT_NUMBER: 9141
# ports:
# - "2181:2181"
# - "2888:2888"
# - "3888:3888"
volumes:
- signoz-zookeeper-1:/bitnami/zookeeper
signoz-clickhouse:
<<: *signoz-clickhouse-defaults
container_name: signoz-clickhouse
expose:
- 9000
ports:
# - "9000:9000"
- "8123:8123"
- "9181:9181"
volumes:
- ${DOCKER_VOLUME_CONFIG}/signoz/common/clickhouse/config.xml:/etc/clickhouse-server/config.xml
- ${DOCKER_VOLUME_CONFIG}/signoz/common/clickhouse/users.xml:/etc/clickhouse-server/users.xml
- ${DOCKER_VOLUME_CONFIG}/signoz/common/clickhouse/custom-function.xml:/etc/clickhouse-server/custom-function.xml
- ${DOCKER_VOLUME_CONFIG}/signoz/common/clickhouse/user_scripts:/var/lib/clickhouse/user_scripts/
- ${DOCKER_VOLUME_CONFIG}/signoz/common/clickhouse/cluster.xml:/etc/clickhouse-server/config.d/cluster.xml
- signoz-clickhouse:/var/lib/clickhouse/
# - ${DOCKER_VOLUME_CONFIG}/signoz/common/clickhouse/storage.xml:/etc/clickhouse-server/config.d/storage.xml
signoz-app:
<<: *signoz-db-depend
container_name: signoz-app
command:
- --config=/root/config/prometheus.yml
environment:
SIGNOZ_ALERTMANAGER_PROVIDER: signoz
SIGNOZ_TELEMETRYSTORE_CLICKHOUSE_DSN: tcp://signoz-clickhouse:9000
SIGNOZ_SQLSTORE_SQLITE_PATH: /var/lib/signoz/signoz.db
DASHBOARDS_PATH: /root/config/dashboards
STORAGE: clickhouse
GODEBUG: netdns=go
TELEMETRY_ENABLED: true
DEPLOYMENT_TYPE: docker-standalone-amd
healthcheck:
test:
- CMD
- wget
- --spider
- -q
- localhost:8080/api/v1/health
interval: 30s
timeout: 5s
retries: 3
image: signoz/signoz:${VERSION:-v0.86.2}
labels:
homepage.group: Infrastructure/App Performance Monitoring
homepage.name: Signoz
homepage.href: https://apm.${MY_TLD}
homepage.icon: signoz.svg
homepage.description: Logs, metrics, and traces in a single pane
swag: enable
swag_proto: http
swag_port: 8080
swag_url: apm.${MY_TLD}
swag.uptime-kuma.enabled: true
swag.uptime-kuma.monitor.url: https://apm.${MY_TLD}
swag.uptime-kuma.monitor.interval: 300
ports:
- 36113:8080 # signoz port
# - "6060:6060" # pprof port
volumes:
- ${DOCKER_VOLUME_CONFIG}/signoz/common/prometheus.yml:/root/config/prometheus.yml
- ${DOCKER_VOLUME_CONFIG}/signoz/common/dashboards:/root/config/dashboards
- signoz-sqlite:/var/lib/signoz/
signoz-otel-collector:
<<: *signoz-db-depend
container_name: signoz-otel-collector
command:
- --config=/etc/otel-collector-config.yaml
- --manager-config=/etc/manager-config.yaml
- --copy-path=/var/tmp/collector-config.yaml
- --feature-gates=-pkg.translator.prometheus.NormalizeName
depends_on:
signoz-app:
condition: service_healthy
environment:
OTEL_RESOURCE_ATTRIBUTES: host.name=signoz-host,os.type=linux
LOW_CARDINAL_EXCEPTION_GROUPING: false
image: signoz/signoz-otel-collector:${OTELCOL_TAG:-v0.111.42}
ports:
# - "1777:1777" # pprof extension
- "4317:4317" # OTLP gRPC receiver
- "4318:4318" # OTLP HTTP receiver
volumes:
- ${DOCKER_VOLUME_CONFIG}/signoz/common/otel/otel-collector-config.yaml:/etc/otel-collector-config.yaml
- ${DOCKER_VOLUME_CONFIG}/signoz/common/otel/otel-collector-opamp-config.yaml:/etc/manager-config.yaml
signoz-schema-migrator-sync:
<<: *signoz-common
image: signoz/signoz-schema-migrator:${OTELCOL_TAG:-v0.111.42}
container_name: signoz-schema-migrator-sync
command:
- sync
- --dsn=tcp://signoz-clickhouse:9000
- --up=
depends_on:
signoz-clickhouse:
condition: service_healthy
restart: on-failure
signoz-schema-migrator-async:
<<: *signoz-db-depend
image: signoz/signoz-schema-migrator:${OTELCOL_TAG:-v0.111.42}
container_name: signoz-schema-migrator-async
command:
- async
- --dsn=tcp://signoz-clickhouse:9000
- --up=
restart: on-failure
sonarqube:
container_name: sonarqube
depends_on:
@@ -4688,7 +4942,7 @@ services:
VALIDATION: dns
CROWDSEC_API_KEY: ${CROWDSEC_API_KEY}
CROWDSEC_LAPI_URL: http://crowdsec:8080
DOCKER_MODS: linuxserver/mods:universal-docker|linuxserver/mods:swag-auto-reload|linuxserver/mods:swag-auto-proxy|linuxserver/mods:swag-dashboard|linuxserver/mods:swag-maxmind|linuxserver/mods:universal-stdout-logs|linuxserver/mods:universal-package-install #|ghcr.io/linuxserver/mods:swag-crowdsec#|linuxserver/mods:swag-auto-uptime-kuma
DOCKER_MODS: linuxserver/mods:universal-docker|linuxserver/mods:swag-auto-reload|linuxserver/mods:swag-auto-proxy|linuxserver/mods:swag-dashboard|linuxserver/mods:swag-maxmind|linuxserver/mods:universal-stdout-logs|linuxserver/mods:universal-package-install|ghcr.io/linuxserver/mods:swag-crowdsec #|linuxserver/mods:swag-auto-uptime-kuma
INSTALL_PACKAGES: nginx-mod-http-js
PROPAGATION: 30
UPTIME_KUMA_PASSWORD: ${UPTIME_KUMA_PASSWORD}
@@ -5235,6 +5489,8 @@ volumes:
name: dawarich_public
dawarich_watched:
name: dawarich_watched
dockflare_data:
name: dockflare_data
fastenhealth-cache:
name: fastenhealth-cache
fastenhealth-db:
@@ -5313,6 +5569,12 @@ volumes:
name: semaphore_data
semaphore_tmp:
name: semaphore_tmp
signoz-clickhouse:
name: signoz-clickhouse
signoz-sqlite:
name: signoz-sqlite
signoz-zookeeper-1:
name: signoz-zookeeper-1
sonarqube-data:
name: sonarqube-data
sonarqube-db: