From 1cd65a7c02aa8e7f994328354ee65a1a742cf3a5 Mon Sep 17 00:00:00 2001 From: root Date: Wed, 14 May 2025 15:24:59 +0200 Subject: [PATCH] . --- hassio-addons/.devcontainer/devcontainer.json | 29 -- hassio-addons/.devcontainer/setup.sh | 5 - hassio-addons/.github/dependabot.yaml | 7 - hassio-addons/.github/workflows/builder.yaml | 113 -------- hassio-addons/.github/workflows/lint.yaml | 41 --- hassio-addons/.pre-commit-config.yaml | 18 -- hassio-addons/LICENSE | 21 -- hassio-addons/README.md | 9 - hassio-addons/backup-s3/CHANGELOG.md | 11 - hassio-addons/backup-s3/Dockerfile | 12 - hassio-addons/backup-s3/README.md | 66 ----- hassio-addons/backup-s3/apparmor.txt | 30 -- hassio-addons/backup-s3/build.yaml | 14 - hassio-addons/backup-s3/config.yaml | 27 -- hassio-addons/backup-s3/icon.png | Bin 4978 -> 0 bytes .../rootfs/etc/services.d/backup/finish | 13 - .../rootfs/etc/services.d/backup/run | 23 -- hassio-addons/backup-s3/translations/en.yaml | 17 -- hassio-addons/kresus/CHANGELOG.md | 37 --- hassio-addons/kresus/DOCS.md | 54 ---- hassio-addons/kresus/Dockerfile | 107 ------- hassio-addons/kresus/README.md | 25 -- hassio-addons/kresus/apparmor.txt | 72 ----- hassio-addons/kresus/build.yaml | 18 -- hassio-addons/kresus/config.yaml | 33 --- hassio-addons/kresus/icon.png | Bin 8772 -> 0 bytes hassio-addons/kresus/logo.png | Bin 8772 -> 0 bytes .../kresus/rootfs/etc/kresus/config.ini | 270 ------------------ .../rootfs/etc/services.d/kresus/finish | 15 - .../kresus/rootfs/etc/services.d/kresus/run | 25 -- .../kresus/rootfs/usr/libexec/kresus/start.sh | 55 ---- hassio-addons/kresus/translations/en.yaml | 27 -- hassio-addons/postgres/CHANGELOG.md | 13 - hassio-addons/postgres/DOCS.md | 76 ----- hassio-addons/postgres/Dockerfile | 16 -- hassio-addons/postgres/README.md | 19 -- hassio-addons/postgres/apparmor.txt | 51 ---- hassio-addons/postgres/build.yaml | 14 - hassio-addons/postgres/config.yaml | 42 --- hassio-addons/postgres/icon.png | Bin 10669 -> 0 bytes hassio-addons/postgres/logo.png | Bin 9903 -> 0 bytes .../rootfs/etc/services.d/postgresql/finish | 15 - .../rootfs/etc/services.d/postgresql/run | 15 - .../rootfs/usr/libexec/postgres/checkdb.sh | 12 - .../rootfs/usr/libexec/postgres/config.sh | 49 ---- .../rootfs/usr/libexec/postgres/initdb.sh | 14 - .../rootfs/usr/libexec/postgres/start.sh | 32 --- hassio-addons/postgres/translations/en.yaml | 12 - hassio-addons/repository.yaml | 3 - kresus-mrraph-test/CHANGELOG.md | 37 --- kresus-mrraph-test/DOCS.md | 54 ---- kresus-mrraph-test/Dockerfile | 39 --- kresus-mrraph-test/README.md | 25 -- kresus-mrraph-test/build.yaml | 12 - kresus-mrraph-test/config.yaml | 30 -- kresus-mrraph-test/icon.png | Bin 8772 -> 0 bytes kresus-mrraph-test/logo.png | Bin 8772 -> 0 bytes kresus-mrraph-test/requirements.txt | 1 - kresus-mrraph-test/start.sh | 56 ---- kresus-mrraph-test/start.sh.ori | 55 ---- kresus-mrraph-test/translations/en.yaml | 27 -- kresus-mrraph/CHANGELOG.md | 37 --- kresus-mrraph/DOCS.md | 54 ---- kresus-mrraph/Dockerfile | 19 -- kresus-mrraph/README.md | 25 -- kresus-mrraph/build.yaml | 12 - kresus-mrraph/config.yaml | 30 -- kresus-mrraph/icon.png | Bin 8772 -> 0 bytes kresus-mrraph/logo.png | Bin 8772 -> 0 bytes kresus-mrraph/requirements.txt | 1 - kresus-mrraph/start.sh | 56 ---- kresus-mrraph/start.sh.ori | 55 ---- kresus-mrraph/translations/en.yaml | 27 -- 73 files changed, 2229 deletions(-) delete mode 100644 hassio-addons/.devcontainer/devcontainer.json delete mode 100755 hassio-addons/.devcontainer/setup.sh delete mode 100644 hassio-addons/.github/dependabot.yaml delete mode 100644 hassio-addons/.github/workflows/builder.yaml delete mode 100644 hassio-addons/.github/workflows/lint.yaml delete mode 100644 hassio-addons/.pre-commit-config.yaml delete mode 100644 hassio-addons/LICENSE delete mode 100644 hassio-addons/README.md delete mode 100644 hassio-addons/backup-s3/CHANGELOG.md delete mode 100644 hassio-addons/backup-s3/Dockerfile delete mode 100644 hassio-addons/backup-s3/README.md delete mode 100644 hassio-addons/backup-s3/apparmor.txt delete mode 100644 hassio-addons/backup-s3/build.yaml delete mode 100644 hassio-addons/backup-s3/config.yaml delete mode 100644 hassio-addons/backup-s3/icon.png delete mode 100755 hassio-addons/backup-s3/rootfs/etc/services.d/backup/finish delete mode 100755 hassio-addons/backup-s3/rootfs/etc/services.d/backup/run delete mode 100644 hassio-addons/backup-s3/translations/en.yaml delete mode 100644 hassio-addons/kresus/CHANGELOG.md delete mode 100644 hassio-addons/kresus/DOCS.md delete mode 100644 hassio-addons/kresus/Dockerfile delete mode 100644 hassio-addons/kresus/README.md delete mode 100644 hassio-addons/kresus/apparmor.txt delete mode 100644 hassio-addons/kresus/build.yaml delete mode 100644 hassio-addons/kresus/config.yaml delete mode 100644 hassio-addons/kresus/icon.png delete mode 100644 hassio-addons/kresus/logo.png delete mode 100644 hassio-addons/kresus/rootfs/etc/kresus/config.ini delete mode 100755 hassio-addons/kresus/rootfs/etc/services.d/kresus/finish delete mode 100755 hassio-addons/kresus/rootfs/etc/services.d/kresus/run delete mode 100755 hassio-addons/kresus/rootfs/usr/libexec/kresus/start.sh delete mode 100644 hassio-addons/kresus/translations/en.yaml delete mode 100644 hassio-addons/postgres/CHANGELOG.md delete mode 100644 hassio-addons/postgres/DOCS.md delete mode 100644 hassio-addons/postgres/Dockerfile delete mode 100644 hassio-addons/postgres/README.md delete mode 100644 hassio-addons/postgres/apparmor.txt delete mode 100644 hassio-addons/postgres/build.yaml delete mode 100644 hassio-addons/postgres/config.yaml delete mode 100644 hassio-addons/postgres/icon.png delete mode 100644 hassio-addons/postgres/logo.png delete mode 100755 hassio-addons/postgres/rootfs/etc/services.d/postgresql/finish delete mode 100755 hassio-addons/postgres/rootfs/etc/services.d/postgresql/run delete mode 100755 hassio-addons/postgres/rootfs/usr/libexec/postgres/checkdb.sh delete mode 100755 hassio-addons/postgres/rootfs/usr/libexec/postgres/config.sh delete mode 100755 hassio-addons/postgres/rootfs/usr/libexec/postgres/initdb.sh delete mode 100755 hassio-addons/postgres/rootfs/usr/libexec/postgres/start.sh delete mode 100644 hassio-addons/postgres/translations/en.yaml delete mode 100644 hassio-addons/repository.yaml delete mode 100644 kresus-mrraph-test/CHANGELOG.md delete mode 100644 kresus-mrraph-test/DOCS.md delete mode 100644 kresus-mrraph-test/Dockerfile delete mode 100644 kresus-mrraph-test/README.md delete mode 100644 kresus-mrraph-test/build.yaml delete mode 100644 kresus-mrraph-test/config.yaml delete mode 100644 kresus-mrraph-test/icon.png delete mode 100644 kresus-mrraph-test/logo.png delete mode 100644 kresus-mrraph-test/requirements.txt delete mode 100755 kresus-mrraph-test/start.sh delete mode 100755 kresus-mrraph-test/start.sh.ori delete mode 100644 kresus-mrraph-test/translations/en.yaml delete mode 100644 kresus-mrraph/CHANGELOG.md delete mode 100644 kresus-mrraph/DOCS.md delete mode 100644 kresus-mrraph/Dockerfile delete mode 100644 kresus-mrraph/README.md delete mode 100644 kresus-mrraph/build.yaml delete mode 100644 kresus-mrraph/config.yaml delete mode 100644 kresus-mrraph/icon.png delete mode 100644 kresus-mrraph/logo.png delete mode 100644 kresus-mrraph/requirements.txt delete mode 100755 kresus-mrraph/start.sh delete mode 100755 kresus-mrraph/start.sh.ori delete mode 100644 kresus-mrraph/translations/en.yaml diff --git a/hassio-addons/.devcontainer/devcontainer.json b/hassio-addons/.devcontainer/devcontainer.json deleted file mode 100644 index 032f121..0000000 --- a/hassio-addons/.devcontainer/devcontainer.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "containerEnv": { - "WORKSPACE_DIRECTORY": "${containerWorkspaceFolder}" - }, - "extensions": [ - "timonwong.shellcheck", - "esbenp.prettier-vscode" - ], - "image": "ghcr.io/home-assistant/devcontainer:addons", - "name": "Example Home Assistant add-on repository", - "postStartCommand": ".devcontainer/setup.sh", - "runArgs": [ - "-e", - "GIT_EDITOR=code --wait", - "--privileged" - ], - "settings": { - "editor.formatOnPaste": false, - "editor.formatOnSave": true, - "editor.formatOnType": true, - "files.trimTrailingWhitespace": true, - "terminal.integrated.defaultProfile.linux": "zsh", - "terminal.integrated.profiles.linux": { - "zsh": { - "path": "/usr/bin/zsh" - } - } - } -} diff --git a/hassio-addons/.devcontainer/setup.sh b/hassio-addons/.devcontainer/setup.sh deleted file mode 100755 index 3f1eebd..0000000 --- a/hassio-addons/.devcontainer/setup.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -# Install pre-commit -sudo apt install -y pre-commit -pre-commit install diff --git a/hassio-addons/.github/dependabot.yaml b/hassio-addons/.github/dependabot.yaml deleted file mode 100644 index 83b26ea..0000000 --- a/hassio-addons/.github/dependabot.yaml +++ /dev/null @@ -1,7 +0,0 @@ -version: 2 -updates: - - package-ecosystem: "github-actions" - directory: "/" - schedule: - interval: weekly - time: "06:00" diff --git a/hassio-addons/.github/workflows/builder.yaml b/hassio-addons/.github/workflows/builder.yaml deleted file mode 100644 index 7cb5b75..0000000 --- a/hassio-addons/.github/workflows/builder.yaml +++ /dev/null @@ -1,113 +0,0 @@ -name: Builder - -env: - BUILD_ARGS: "--test" - MONITORED_FILES: "build.yaml config.yaml Dockerfile rootfs" - -on: - push: - branches: - - main - pull_request: - branches: - - main - -jobs: - init: - runs-on: ubuntu-latest - name: Initialize builds - outputs: - changed_addons: ${{ steps.changed_addons.outputs.addons }} - changed: ${{ steps.changed_addons.outputs.changed }} - steps: - - name: Check out the repository - uses: actions/checkout@v3.5.2 - - - name: Get changed files - id: changed_files - uses: jitterbit/get-changed-files@v1 - - - name: Find add-on directories - id: addons - uses: home-assistant/actions/helpers/find-addons@master - - - name: Get changed add-ons - id: changed_addons - run: | - declare -a changed_addons - for addon in ${{ steps.addons.outputs.addons }}; do - if [[ "${{ steps.changed_files.outputs.all }}" =~ $addon ]]; then - for file in ${{ env.MONITORED_FILES }}; do - if [[ "${{ steps.changed_files.outputs.all }}" =~ $addon/$file ]]; then - if [[ ! "${changed_addons[@]}" =~ $addon ]]; then - changed_addons+=("\"${addon}\","); - fi - fi - done - fi - done - - changed=$(echo ${changed_addons[@]} | rev | cut -c 2- | rev) - - if [[ -n ${changed} ]]; then - echo "Changed add-ons: $changed"; - echo "::set-output name=changed::true"; - echo "::set-output name=addons::[$changed]"; - else - echo "No add-on had any monitored files changed (${{ env.MONITORED_FILES }})"; - fi - build: - needs: init - runs-on: ubuntu-latest - if: needs.init.outputs.changed == 'true' - name: Build ${{ matrix.arch }} ${{ matrix.addon }} add-on - strategy: - matrix: - addon: ${{ fromJson(needs.init.outputs.changed_addons) }} - arch: ["aarch64", "amd64", "armhf", "armv7", "i386"] - - steps: - - name: Check out repository - uses: actions/checkout@v3.5.2 - - - name: Get information - id: info - uses: home-assistant/actions/helpers/info@master - with: - path: "./${{ matrix.addon }}" - - - name: Check if add-on should be built - id: check - run: | - if [[ "${{ steps.info.outputs.architectures }}" =~ ${{ matrix.arch }} ]]; then - echo "::set-output name=build_arch::true"; - echo "::set-output name=image::$(echo ${{ steps.info.outputs.image }} | cut -d'/' -f3)"; - if [[ -z "${{ github.head_ref }}" ]] && [[ "${{ github.event_name }}" == "push" ]]; then - echo "BUILD_ARGS=" >> $GITHUB_ENV; - fi - else - echo "${{ matrix.arch }} is not a valid arch for ${{ matrix.addon }}, skipping build"; - echo "::set-output name=build_arch::false"; - fi - - - name: Login to GitHub Container Registry - if: env.BUILD_ARGS != '--test' - uses: docker/login-action@v2.1.0 - with: - registry: ghcr.io - username: ${{ github.repository_owner }} - password: ${{ secrets.GITHUB_TOKEN }} - - - name: Build ${{ matrix.addon }} add-on - if: steps.check.outputs.build_arch == 'true' - uses: home-assistant/builder@2023.03.0 - with: - args: | - ${{ env.BUILD_ARGS }} \ - --${{ matrix.arch }} \ - --target /data/${{ matrix.addon }} \ - --image "${{ steps.check.outputs.image }}" \ - --docker-hub "ghcr.io/${{ github.repository_owner }}" \ - --addon - env: - CAS_API_KEY: ${{ secrets.CAS_API_KEY }} diff --git a/hassio-addons/.github/workflows/lint.yaml b/hassio-addons/.github/workflows/lint.yaml deleted file mode 100644 index d99a004..0000000 --- a/hassio-addons/.github/workflows/lint.yaml +++ /dev/null @@ -1,41 +0,0 @@ -name: Lint - -on: - push: - branches: - - main - pull_request: - branches: - - main - schedule: - - cron: "0 0 * * *" - -jobs: - find: - name: Find add-ons - runs-on: ubuntu-latest - outputs: - addons: ${{ steps.addons.outputs.addons_list }} - steps: - - name: ⤵️ Check out code from GitHub - uses: actions/checkout@v3.5.2 - - - name: 🔍 Find add-on directories - id: addons - uses: home-assistant/actions/helpers/find-addons@master - - lint: - name: Lint add-on ${{ matrix.path }} - runs-on: ubuntu-latest - needs: find - strategy: - matrix: - path: ${{ fromJson(needs.find.outputs.addons) }} - steps: - - name: ⤵️ Check out code from GitHub - uses: actions/checkout@v3.5.2 - - - name: 🚀 Run Home Assistant Add-on Lint - uses: frenck/action-addon-linter@v2.12 - with: - path: "./${{ matrix.path }}" diff --git a/hassio-addons/.pre-commit-config.yaml b/hassio-addons/.pre-commit-config.yaml deleted file mode 100644 index d668a50..0000000 --- a/hassio-addons/.pre-commit-config.yaml +++ /dev/null @@ -1,18 +0,0 @@ -fail_fast: false -repos: -- repo: https://github.com/pre-commit/pre-commit-hooks - rev: v4.3.0 - hooks: - - id: check-added-large-files - - id: check-json - - id: check-merge-conflict - - id: check-symlinks - - id: check-yaml - - id: destroyed-symlinks - - id: detect-private-key - - id: end-of-file-fixer - - id: mixed-line-ending - args: ["--fix=auto"] - - id: pretty-format-json - args: [--autofix, --indent, "4"] - - id: trailing-whitespace diff --git a/hassio-addons/LICENSE b/hassio-addons/LICENSE deleted file mode 100644 index 32ee9c8..0000000 --- a/hassio-addons/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2022 Ezlo Picori - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/hassio-addons/README.md b/hassio-addons/README.md deleted file mode 100644 index 545fed4..0000000 --- a/hassio-addons/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# Ezlo's custom Home Assistant addons - -This repository defines a few custom addons for Home Assistant. Notably: - -- [Backup S3](./backup-s3): automatically synchronizes your home-assistant backups with a S3-compatible storage backend. -- [PostgreSQL](./postgres): provides a PostgreSQL instance, strongly inspired by the [official MariaDB](https://github.com/home-assistant/addons/tree/master/mariadb) addon. -- [Kresus](./kresus): sets-up a [Kresus](https://kresus.org/) instance which is a personal finances management software. - -These addons are published under [MIT license](./LICENSE). diff --git a/hassio-addons/backup-s3/CHANGELOG.md b/hassio-addons/backup-s3/CHANGELOG.md deleted file mode 100644 index 5945142..0000000 --- a/hassio-addons/backup-s3/CHANGELOG.md +++ /dev/null @@ -1,11 +0,0 @@ -## 3.1.0 - -- Prevent service restart -- Rename configuration keys - -## 3.0.0 - -- Update run script to bashio -- Add proper translations for configuration items -- Sign addon with Codenotary -- Enable Apparmor in complain mode diff --git a/hassio-addons/backup-s3/Dockerfile b/hassio-addons/backup-s3/Dockerfile deleted file mode 100644 index edce5fd..0000000 --- a/hassio-addons/backup-s3/Dockerfile +++ /dev/null @@ -1,12 +0,0 @@ -ARG BUILD_FROM -FROM $BUILD_FROM - -ENV LANG C.UTF-8 - -# add aws-cli and deps -RUN apk add --no-cache py3-pip && \ - pip3 install --no-cache-dir awscli awscli-plugin-endpoint - -# Copy root filesystem -COPY rootfs / -WORKDIR / diff --git a/hassio-addons/backup-s3/README.md b/hassio-addons/backup-s3/README.md deleted file mode 100644 index a19df22..0000000 --- a/hassio-addons/backup-s3/README.md +++ /dev/null @@ -1,66 +0,0 @@ -# Home Assistant Add-on: S3 Backup - -Add-on for uploading hass.io snapshots to AWS S3. - -## Installation - -Under the Add-on Store tab in the Hass.io Supervisor view in HA add this repo as an add-on repository: `https://github.com/ezlo-picori/hassio-addons`. - -Install, then set the config variables that you obtained from setting up the S3 storage: - -```yaml -awskey: `access key id` -awssecret: `secret access key` -awsendpoint: `URL to S3 endpoint` -bucketname: `AWS S3 bucket name` -``` - -## Usage - -To sync your HASSIO backup folder with AWS just click START in this add-on. It will keep a synced cloud-copy, so any purged backup files will not be kept in your bucket either. - -You could automate this using Automation: - -``` -# backups -- alias: Make snapshot - trigger: - platform: time - at: '3:00:00' - condition: - condition: time - weekday: - - mon - action: - service: hassio.snapshot_full - data_template: - name: Automated Backup {{ now().strftime('%Y-%m-%d') }} - -- alias: Upload to S3 - trigger: - platform: time - at: '4:00:00' - condition: - condition: time - weekday: - - mon - action: - service: hassio.addon_start - data: - addon: b2ddf90b_backup_s3 -``` - -The automation above first makes a snapshot at 3am, and then at 3.30am uploads to S3. - -## Help and Debug - -Please post an issue on this repo with your full log. - -## Credits - -This addon was subject to many forks since its original development. -Original project was developed by [rrostt]/[hassio-backup-s3](https://github.com/rrostt/hassio-backup-s3). It has been forked by [jperquin] and then by [mikebell] whose fork served as a basis for the current addon version. - -[jperquin]: https://github.com/jperquin -[mikebell]: https://github.com/mikebell -[rrostt]: https://github.com/rrostt diff --git a/hassio-addons/backup-s3/apparmor.txt b/hassio-addons/backup-s3/apparmor.txt deleted file mode 100644 index 8915d2c..0000000 --- a/hassio-addons/backup-s3/apparmor.txt +++ /dev/null @@ -1,30 +0,0 @@ -#include - -profile example flags=(attach_disconnected,mediate_deleted,complain) { - #include - - # Capabilities - file, - signal (send) set=(kill,term,int,hup,cont), - - # S6-Overlay - /init ix, - /bin/** ix, - /usr/bin/** ix, - /run/{s6,s6-rc*,service}/** ix, - /package/** ix, - /command/** ix, - /etc/services.d/** rwix, - /etc/cont-init.d/** rwix, - /etc/cont-finish.d/** rwix, - /run/{,**} rwk, - /dev/tty rw, - - # Bashio - /usr/lib/bashio/** ix, - /tmp/** rwk, - - # Access to options.json and other files within your addon - /data/** r, - -} diff --git a/hassio-addons/backup-s3/build.yaml b/hassio-addons/backup-s3/build.yaml deleted file mode 100644 index 51f6ba7..0000000 --- a/hassio-addons/backup-s3/build.yaml +++ /dev/null @@ -1,14 +0,0 @@ -build_from: - aarch64: "ghcr.io/home-assistant/aarch64-base:3.16" - amd64: "ghcr.io/home-assistant/amd64-base:3.16" - armhf: "ghcr.io/home-assistant/armhf-base:3.16" - armv7: "ghcr.io/home-assistant/armv7-base:3.16" - i386: "ghcr.io/home-assistant/i386-base:3.16" -labels: - org.opencontainers.image.title: "Ezlo's add-on: S3 Backup" - org.opencontainers.image.description: "Addon for backup synchronization to S3 storage" - org.opencontainers.image.source: "https://github.com/ezlo-picori/hassio-addons" - org.opencontainers.image.licenses: "MIT License" -codenotary: - signer: ezlo@protonmail.com - base_image: notary@home-assistant.io diff --git a/hassio-addons/backup-s3/config.yaml b/hassio-addons/backup-s3/config.yaml deleted file mode 100644 index a70996b..0000000 --- a/hassio-addons/backup-s3/config.yaml +++ /dev/null @@ -1,27 +0,0 @@ -name: Backup S3 -version: 3.1.3 -slug: backup_s3 -codenotary: ezlo@protonmail.com -description: Synchronize your Home-Assistant backups to S3 bucket -url: "https://github.com/ezlo-picori/hassio-addons/tree/main/backup-s3" -arch: - - armhf - - armv7 - - aarch64 - - amd64 - - i386 -image: "ghcr.io/ezlo-picori/haos-addon-backup_s3-{arch}" -init: false -startup: once -options: - s3keyid: "" - s3secret: "" - s3endpoint: "" - bucketname: "" -schema: - s3keyid: str - s3secret: password - s3endpoint: str - bucketname: str -map: - - backup:ro diff --git a/hassio-addons/backup-s3/icon.png b/hassio-addons/backup-s3/icon.png deleted file mode 100644 index 316b3ecc574d33fd6e9e6f88c0ee81df0e9272b3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4978 zcma)AhdbMi_x&U>VkXocL5-@a4%8;7(b}~3D%u#eN>$7t_NrIa42qZ9l-91GmDXRX*Et7Y#mHoyzGyh*m+q{JS8nk!@33y zN?IqfV2cT+6n z=O#I_g4KvjDuSgZr@AQJSDlNkkni{=BUAv;&HxnB*a8K%+)xa%qCpjNq{NczIwPR~ zgu#J|5p}rY9pmFRxl+df49Cr&t3Q{vu;Y42Awaui3;Dh?5c0QKPdO}qyn+kJ*HS@( zNPd+;9@eyUo9%JiBkI7_u%Q9mSDi!s-{W+w!0%jHqk{B`9^7;4{9TukQ!aXP)z#CF z;2}z^W||^z$@ZB@-m9=tKDcl}7vzzLJup*sP!7Ggpu{tVU(`(s%N~luVMEgZ)*q9I z1BMd800IdijRG;$aNr9CP@Bs*dl#29YVlz0^v9cyB*@%MhGdmvZk~D~EI*7zh;@L1R+Pq2B4N89BV_9_Uk*Fso2zj-;jQGv;l z@Y0aYme>wwoI$uM$&k7w9K3Pn5XVQxfV2*r31Q#EXU#V#Fp zUlC=rsW0S@6x$Z#WoVYHg?}@_2@q1Uaw1yC8J-O zZXbtOw?h#55THIc(iJs$Q@`MP{O1-@xRGY})PH^m0Pc3)APmP}zXT zm7C)+d%SL>V?*;zQ;;aKd8adG7bjyaloW7+8>o`mOJ0n$Zr#8wc2g6J@Hvn9nFrZX$cqC>N&j zSzd#kKW5WfTl7tm2LK)3+2uOe(|l~D%YQ^x&NF#wyeGY=8R}`~?Xyc6>(i0^^QNS6@042`7IAm#|j&T!P zFGuhXFM;mbD2!zyNS2@#OS<020-UCazuMJ7RCA)=X!%uywK+N>9@tHjvRcFhe}v+* z17qEI4%Kh7naxq7cQ4eRU0((*Q%GFO zj=)I4Ck@PC4Q&n`=l~f?OsBZ8b{kvJN8!fo>ErvBcjd!EWM6Ou56WQ?+Kmxg@qA8w z+{!UqydetxT=K8C5PmJS_FwD+#9va#dlx#(V2;RSUD_og4K_My;iwsa+W`3{nwQ?R zf4+JDGn_{{$h*fY;F~lSAw?NI5%FewFJ+4ms2wD=-SkA&I~lxSMNg556dIBTYHz5- zhfwklnE~{|UxEP;|3iRe`#1DW5cfwV&W}Nj%s~S+o<@_T_WVhBsz&5W*^-L0h;Sn% zh7!__3XUdbN4L)h1*ub&Erv6_8X_h>%wHyy{8;iXd~~hG6j)ILHu$%_wxLPwE#(+x zQ5Ir=L$=ip83ob5GP&TbtH?qNq1#b@tK71X)p9MJA?~lmw)&>vo zd#OsYDE?YJgr%dwxAe3<%SXDj*eqfzBa@`wNTqTu$5Y2diR521l$y#Pstef=KJ{dA z`c&1olA{vyCS;K77BC|YG*fo5=O7EN)WtzsuC-X1-OoTa>;E@$Zj3ep|29EzX+;1t z@3<~jf4Hxd-EjptR^!9Z!JKP?ODtY7qkGa7;_?P>?$=S9XR!?qcTz;F~~VRDUwoSsnFKwAgV=2eV8nku@} zy|<_}+&#nMOOg7j3<<`cH;he1fbQp+__}p#-3$! z8~N`L1V`nm%OYgp2`A+C%OuBH#2; z?7on|jyN6&3HOPWFD2a}{898anSH5Y*mU-)RStB(to3}{bIkTvBSQYg`B>)=6S6zs z9hXtHn^sB^wV<1bw`>+ydZ*K$Fyc3T4=V~h=T@tlOTMiIr;XwL`+?yktnY&dauHPs!bJ8*Q zb*Fs_SH@W&FC>+c&wY9*LQc8bEHeJJ-ltn67hT@$m^@lz)YidcEBt1*nn2?dqSEu< zd$zTigMPR{l|<>i6uoyw0CK{8p2<~$?xY>Sh6){byxHk)XZ!u4?%k)z#ZZz`NVm?F zpDUBKrS&2Tli=SE4gL|B?kxNX@g4Vz1{}_BJLxaO)cK>Bo*iyKK4D$}6?}nMuN!o6 zb)HFy-&ieEVQ3j>XJr9A4wBW?^Q4Lc_rjDYEh=v)@E!UUhO&tLC)rNr?UWNpnSr4b z*l=r~oRcwU87qPTySJY>ZUFiN*$7!f z+Zj_CKbBDkry7SphGn{(x;M07g=KeWa4NTH)KY|kG0s~Q_iDc7Z1qGBrRvu1G}HX$ z!>Od|pN>ZO27HIDKHp63X3rio?sdDx!S46jA!o8VQrX7p>FF*Z-sM7lZ#6B>cq${W z6kGk!z|c^fPa135Ve-gP%CKvYdLgMG;7>&YxWIwKKOs8!P`}V|uXuPzIWkFLHXS~hWpaIX&*rdwxV&a1QAPD<-H=}Xo(iJ#z@ikIGp4#S&v3%Iv>6Z2J z=wkBEJ0lKk`*&TH#{9@x!H6~-=g6GnPDq?SE?>3C4m9F&7$|bD*Nb5Pl*T+B!%S&`f?@jC z2BP_AGDB4?A!|5}xD$d!+gn4Si%hj+?cX~mcVxSP+IbU+xtL&>_e+_+=IK{)&!6RIs9;orc?&*BjTkedJs-_M)f~KNLja-iziE#%*F6(d|HVq~oP#tU>4PQt&V+a3trz5=^_| z&4TCTmHkIzPBKlI&@Yos8O$Zq26MQj%5bZD-7~5;b&*~j+qg_fK98cZ|Jx7X<9OnH zSY@^&e(n%SG4J1>c{Aa8u!ENwqw5tTX~W4cz4hU4bZQ5z`2wZA1^WsqC=S9<4EG|+rjc7 zwF%zU+n$kNpx)?%IchkEP^WVJt9!t9V|>AC(GYTnghvpi*@wsbyR}oq+XWER}bi~ zy#&1KDU(ev43^;&3DrEmOyl|DLC^H<1>AS(trzYDSxLJU4dATp~@q|dC6*4=}d zfIA?hE&y*)2ArBUfJYuH6!=DOz@Gx+Tw7L!xQx(OF!us8j@BtK9}T;RtE5slx2xZ> zsNw6uu$tW_@9VBl8JBsb-yUt%2+Rc1Vm=;gyC!xnyDU%kTqg3Tuo^=}WHp5JYv*MG z0(I@`8B3{qo1Ab(dT!;@NeRR|1)!O>n$4xP$ZXZ}by*6PE8uWHb}r98t`?W9wn_Y= z*D;EW0WeRdLx&z8y$}v!_*pZs4`ou}Qbc;iO@8Kw0LB8xB1K;O6o(LO0MPcmsC@f3 z{Bx^`zx31cuj${jZL7~7s6t&ON6^nJ-36$^qd^@r$?yeG^T?5=$D90I=jsWMMGSFs)p-~QA9K1^zW1-o&QicBMDimweE#c~ f|AFJkGrq}N)m6@#H3OGVG~j`T{{1R7`|$q*U&m6z diff --git a/hassio-addons/backup-s3/rootfs/etc/services.d/backup/finish b/hassio-addons/backup-s3/rootfs/etc/services.d/backup/finish deleted file mode 100755 index ebdcd39..0000000 --- a/hassio-addons/backup-s3/rootfs/etc/services.d/backup/finish +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env bashio - -declare APP_EXIT_CODE=${1} - -echo "${APP_EXIT_CODE}" > /run/s6-linux-init-container-results/exitcode - -if [[ "${APP_EXIT_CODE}" -eq 0 ]] -then - bashio::log.info "Service ran successfully. Stopping the add-on." -else - bashio::log.warning "Error raised by backup service (error code: ${APP_EXIT_CODE}). Stopping the add-on." -fi -exec /run/s6/basedir/bin/halt diff --git a/hassio-addons/backup-s3/rootfs/etc/services.d/backup/run b/hassio-addons/backup-s3/rootfs/etc/services.d/backup/run deleted file mode 100755 index a6c0238..0000000 --- a/hassio-addons/backup-s3/rootfs/etc/services.d/backup/run +++ /dev/null @@ -1,23 +0,0 @@ -#!/usr/bin/with-contenv bashio - -bashio::log.info "Setting AWS CLI options." - -BUCKET="$(bashio::config 'bucketname')" -ENDPOINT="$(bashio::config 's3endpoint')" -KEY="$(bashio::config 's3keyid')" -SECRET="$(bashio::config 's3secret')" - -aws configure set aws_access_key_id "${KEY}" -aws configure set aws_secret_access_key "${SECRET}" -aws configure set plugins.endpoint awscli_plugin_endpoint - -bashio::log.info "Starting backup synchronisation to S3 bucket ${BUCKET} on endpoint ${ENDPOINT}." - -if aws s3 sync /backup "s3://${BUCKET}/" --no-progress --delete --endpoint-url "${ENDPOINT}" -then - bashio::log.info "Synchronization succeeded." - exit 0 -else - bashio::log.warning "Synchronization failed." - exit 1 -fi diff --git a/hassio-addons/backup-s3/translations/en.yaml b/hassio-addons/backup-s3/translations/en.yaml deleted file mode 100644 index ed0e869..0000000 --- a/hassio-addons/backup-s3/translations/en.yaml +++ /dev/null @@ -1,17 +0,0 @@ -configuration: - awskey: - s3keyid: "S3 Key" - description: >- - Access Key ID for your S3 storage backend. - s3secret: - name: "S3 Secret" - description: >- - Secret Access Key for your S3 storage backend. - s3endpoint: - name: "S3 Endpoint" - description: >- - Endpoint URL end the S3 backend. - bucketname: - name: "S3 Bucket" - description: >- - Name of the bucket used for backup synchronization. diff --git a/hassio-addons/kresus/CHANGELOG.md b/hassio-addons/kresus/CHANGELOG.md deleted file mode 100644 index 1e4983e..0000000 --- a/hassio-addons/kresus/CHANGELOG.md +++ /dev/null @@ -1,37 +0,0 @@ -## 0.6.2 - -- Update woob dependencies install method - -## 0.6.1 - -- Remove support for i386 architecture - -## 0.6.0 - -- Bump Kresus to 0.19.0 - -## 0.5.1 - -- Fix AppArmor profile - -## 0.5.0 - -- Attempt using `alpine:edge` as base image - -## 0.4.2 - -- Fix AppArmor profile - -## 0.4.1 - -- Reinstall py3-lxml by default - -## 0.4.0 - -- Remove python dependencies from Dockerfile to prevent - incompatibility with woob requirements - -## 0.3.0 - -- Use `s6-setuidgid` instead of `su-exec` -- Set AppArmor in complain mode diff --git a/hassio-addons/kresus/DOCS.md b/hassio-addons/kresus/DOCS.md deleted file mode 100644 index a6484b0..0000000 --- a/hassio-addons/kresus/DOCS.md +++ /dev/null @@ -1,54 +0,0 @@ -# Home Assistant Custom Add-on: Kresus - -[Kresus](https://kresus.org/) is an open-source self-hostable Personal Finance Manager. -It automatically retrieves your daily bank transactions, lets you categorize them and manage your monthly budgets. - -It relies on [woob](https://gitlab.com/woob/woob) to fetch data from your bank website. - -## Installation - -Kresus requires a PostgreSQL database to store data. -If you do not already have a PostgreSQL database installed, you may consider the [PostgreSQL addon](https://github.com/ezlo-picori/hassio-addons/tree/main/postgres). - -The installation of Kresus add-on is quite straightforward and do not differ from the standard installation process for Home-Assistant add-ons: - -1. Click the Home Assistant My button below to open the add-on on your Home - Assistant instance. - - [![Open this add-on in your Home Assistant instance.][addon-badge]][addon] - -1. Click the "Install" button to install the add-on. -1. Start the "Kresus" add-on. -1. Check the logs of the "Kresus" add-on to see if everything - went well. A working installation should indicate `Server is ready, let's start the show!` -1. Click the "OPEN WEB UI" button to open Kresus UI. - -## Configuration - -The only configuration configurations required are the database connection options. -If you used the [PostgreSQL add-on](https://github.com/ezlo-picori/hassio-addons/tree/main/postgres) configured with following options: - -```yaml -databases: - - kresus_db -logins: - - password: CHANGEME_kr3sus-p@ssword_CHANGEME - username: kresus_user -rights: - - database: kresus_db - username: kresus_user -``` - -then you may configure kresus with these options: - -```yaml -postgres_hostname: homeassistant.local -postgres_port: 5432 -postgres_user: kresus_user -postgres_password: CHANGEME_kr3sus-p@ssword_CHANGEME -postgres_database: kresus_db -``` - -## Authors & contributors - -The original setup of this repository is by [Ezlo Picori](https://github.com/ezlo-picori). diff --git a/hassio-addons/kresus/Dockerfile b/hassio-addons/kresus/Dockerfile deleted file mode 100644 index 733a82b..0000000 --- a/hassio-addons/kresus/Dockerfile +++ /dev/null @@ -1,107 +0,0 @@ -ARG BUILD_FROM -FROM $BUILD_FROM - -# Default ENV -ENV \ - LANG="C.UTF-8" \ - S6_BEHAVIOUR_IF_STAGE2_FAILS=2 \ - S6_CMD_WAIT_FOR_SERVICES_MAXTIME=0 \ - S6_CMD_WAIT_FOR_SERVICES=1 \ - S6_SERVICES_READYTIME=50 - -# Set shell -SHELL ["/bin/ash", "-o", "pipefail", "-c"] - -# Build Args -ARG \ - BASHIO_VERSION \ - TEMPIO_VERSION \ - S6_OVERLAY_VERSION \ - JEMALLOC_VERSION \ - QEMU_CPU - -# Base system -WORKDIR /usr/src -ARG BUILD_ARCH - -RUN \ - set -x \ - && apk add --no-cache \ - bash \ - bind-tools \ - ca-certificates \ - curl \ - jq \ - tzdata \ - xz \ - \ - && apk add --no-cache --virtual .build-deps \ - build-base \ - autoconf \ - git \ - \ - && if [ "${BUILD_ARCH}" = "armv7" ]; then \ - export S6_ARCH="arm"; \ - elif [ "${BUILD_ARCH}" = "i386" ]; then \ - export S6_ARCH="i686"; \ - elif [ "${BUILD_ARCH}" = "amd64" ]; then \ - export S6_ARCH="x86_64"; \ - else \ - export S6_ARCH="${BUILD_ARCH}"; \ - fi \ - \ - && curl -L -f -s "https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}/s6-overlay-${S6_ARCH}.tar.xz" \ - | tar Jxvf - -C / \ - && curl -L -f -s "https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}/s6-overlay-noarch.tar.xz" \ - | tar Jxvf - -C / \ - && curl -L -f -s "https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}/s6-overlay-symlinks-arch.tar.xz" \ - | tar Jxvf - -C / \ - && curl -L -f -s "https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}/s6-overlay-symlinks-noarch.tar.xz" \ - | tar Jxvf - -C / \ - && mkdir -p /etc/fix-attrs.d \ - && mkdir -p /etc/services.d \ - \ - && git clone "https://github.com/jemalloc/jemalloc" /usr/src/jemalloc \ - && cd /usr/src/jemalloc \ - && git checkout ${JEMALLOC_VERSION} \ - && ./autogen.sh \ - && make -j "$(nproc)" \ - && make install \ - \ - && mkdir -p /usr/src/bashio \ - && curl -L -f -s "https://github.com/hassio-addons/bashio/archive/v${BASHIO_VERSION}.tar.gz" \ - | tar -xzf - --strip 1 -C /usr/src/bashio \ - && mv /usr/src/bashio/lib /usr/lib/bashio \ - && ln -s /usr/lib/bashio/bashio /usr/bin/bashio \ - \ - && curl -L -f -s -o /usr/bin/tempio \ - "https://github.com/home-assistant/tempio/releases/download/${TEMPIO_VERSION}/tempio_${BUILD_ARCH}" \ - && chmod a+x /usr/bin/tempio \ - \ - && apk del .build-deps \ - && rm -rf /usr/src/* - -# S6-Overlay -WORKDIR / -ENTRYPOINT ["/init"] - -# Copy root filesystem -COPY rootfs / - -# Setup base -RUN apk add --no-cache \ - gcc g++ gpgv jpeg-dev pwgen python3-dev py3-lxml py3-pip \ - py3-wheel make nodejs npm zlib-dev && \ - npm install --omit=dev -g kresus@0.19.0 && \ - addgroup kresus && \ - adduser -G kresus -D -H kresus && \ - mkdir -p /woob && \ - chown kresus:kresus /woob && \ - chown -R kresus:kresus /etc/kresus && \ - chmod 0400 /etc/kresus/config.ini && \ - chmod 0755 /etc/kresus - -ENV KRESUS_DIR="/data/kresus" -ENV KRESUS_USER="kresus" - -WORKDIR / diff --git a/hassio-addons/kresus/README.md b/hassio-addons/kresus/README.md deleted file mode 100644 index d20aef7..0000000 --- a/hassio-addons/kresus/README.md +++ /dev/null @@ -1,25 +0,0 @@ -# Home Assistant Add-on: Kresus - -Open source personal accounting solution. - -![Supports aarch64 Architecture][aarch64-shield] -![Supports amd64 Architecture][amd64-shield] -![Supports armhf Architecture][armhf-shield] -![Supports armv7 Architecture][armv7-shield] -![Supports i386 Architecture][i386-shield] - -## About - -[Kresus][kresus] is a free solution for personal accounting management. -It automatically retrieves your daily bank transactions, lets you categorize them -and manage your monthly budgets. - -![Kresus Preview][screenshot] - -[aarch64-shield]: https://img.shields.io/badge/aarch64-yes-green.svg -[amd64-shield]: https://img.shields.io/badge/amd64-yes-green.svg -[armhf-shield]: https://img.shields.io/badge/armhf-yes-green.svg -[armv7-shield]: https://img.shields.io/badge/armv7-yes-green.svg -[i386-shield]: https://img.shields.io/badge/i386-no-red.svg -[screenshot]: https://kresus.org/images/pages/view-all-accounts.png -[kresus]: https://kresus.org/ diff --git a/hassio-addons/kresus/apparmor.txt b/hassio-addons/kresus/apparmor.txt deleted file mode 100644 index 44f634b..0000000 --- a/hassio-addons/kresus/apparmor.txt +++ /dev/null @@ -1,72 +0,0 @@ -include - -profile kresus flags=(attach_disconnected,mediate_deleted) { - #include - - # Capabilities - file, - signal (send) set=(kill,term,int,hup,cont), - capability chown, - capability fowner, - capability kill, - - # S6-Overlay - /init ix, - /bin/** ix, - /usr/bin/** ix, - /run/{s6,s6-rc*,service}/** ix, - /package/** ix, - /command/** ix, - /etc/services.d/** rwix, - /etc/cont-init.d/** rwix, - /etc/cont-finish.d/** rwix, - /run/{,**} rwk, - /dev/tty rw, - - # Access to options.json and other files within your addon - /data/options.json r, - /data/kresus/{,**} rw, - - /package/admin/s6-2.11.2.0/command/s6-applyuidgid cx -> s6setuidgid, - profile s6setuidgid flags=(attach_disconnected,mediate_deleted) { - #include - capability setuid, - capability setgid, - - signal (receive) set=("cont","kill","term"), - - # Generic accesses - /package/admin/s6-2.11.2.0/command/s6-applyuidgid rm, - - /bin/{bash,busybox} ix, - /dev/{null,tty} rw, - /etc/{group,hosts,os-release,passwd,resolv.conf,ssl/**} r, - /package/admin/** rmix, - /run/s6/container_environment** r, - /tmp/.bashio/{,**} rw, - /usr/bin/{curl,jq,ssl_client} rix, - /usr/lib/bashio/bashio ix, - /lib/** rmix, - /tmp/pip-install-** rw, - - # Kresus specific accesses - /data/kresus_salt r, - /data/kresus/{,**} rw, - /etc/kresus/config.ini r, - /woob/ r, - /woob/** lrw, - /woob/.py-deps/** lrwix, - - /usr/bin/{,**} r, - /usr/bin/git ix, - /usr/bin/gpgv ix, - /usr/bin/node ix, - /usr/bin/python3.11 ix, - /usr/bin/pip3 rix, - /usr/libexec/git-core/** ix, - /usr/libexec/kresus/** rix, - /usr/local/lib/node_modules/** rm, - /usr/local/lib/node_modules/kresus/bin/kresus.js rix, - /usr/share/** r, - } -} diff --git a/hassio-addons/kresus/build.yaml b/hassio-addons/kresus/build.yaml deleted file mode 100644 index a953b79..0000000 --- a/hassio-addons/kresus/build.yaml +++ /dev/null @@ -1,18 +0,0 @@ -build_from: - aarch64: "arm64v8/alpine:edge" - armv7: "arm32v7/alpine:edge" - armhf: "arm32v6/alpine:edge" - amd64: "alpine:edge" -labels: - org.opencontainers.image.title: "Home Assistant Add-on: Kresus" - org.opencontainers.image.description: "Kresus addon" - org.opencontainers.image.source: "https://github.com/ezlo-picori/hassio-addons" - org.opencontainers.image.licenses: "MIT License" - io.hass.base.name: alpine -codenotary: - signer: ezlo@protonmail.com -args: - BASHIO_VERSION: 0.14.3 - TEMPIO_VERSION: 2021.09.0 - S6_OVERLAY_VERSION: 3.1.3.0 - JEMALLOC_VERSION: 5.3.0 diff --git a/hassio-addons/kresus/config.yaml b/hassio-addons/kresus/config.yaml deleted file mode 100644 index 0a9d78a..0000000 --- a/hassio-addons/kresus/config.yaml +++ /dev/null @@ -1,33 +0,0 @@ -name: Kresus -version: "0.6.2" -slug: kresus -codenotary: ezlo@protonmail.com -url: "https://github.com/ezlo-picori/hassio-addons/tree/main/kresus" -description: Open source personal accounting management -arch: - - armhf - - armv7 - - aarch64 - - amd64 -image: "ghcr.io/ezlo-picori/haos-addon-kresus-{arch}" -init: false -options: - postgres_hostname: homeassistant.local - postgres_port: 5432 - postgres_user: kresus - postgres_password: null - postgres_database: kresus -panel_icon: mdi:piggy-bank-outline -ports: - 9876/tcp: 9876 -ports_description: - 9876/tcp: "The port to access kresus web server." -schema: - postgres_hostname: str - postgres_port: int - postgres_user: str - postgres_password: password - postgres_database: str - http_basicauth: str? -startup: system -timeout: 20 diff --git a/hassio-addons/kresus/icon.png b/hassio-addons/kresus/icon.png deleted file mode 100644 index df04d0d3b35c63dc0c90ef2847620ee96ece908a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8772 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:" -; Overriden by the KRESUS_AUTH environment variable, if it's set. -; Example: -; auth=foo:bar -auth= - -[woob] - -; The directory in which Woob core is stored. If empty, indicates -; that woob is already in the PYTHON_PATH (e.g. installed at the global -; level) -; Overriden by the KRESUS_WOOB_DIR environment variable, if it's set. -; Example: -; srcdir=/home/ben/code/woob -srcdir= - -; Path to a file containing a valid Woob's source list directory. -; If empty (the default), indicates that Kresus will generate its own -; source list file and will store it in -; KRESUS_DIR/woob-data/sources.list. -; Overriden by the KRESUS_WOOB_SOURCES_LIST environment variable, if it's set. -; Example: -; sources_list=/home/ben/code/woob/sources.list -sources_list= - -[email] - -; The transport method you want to use. Can be either: -; * "sendmail": relies on sendmail executable to be available on your -; system and only sendmail-specific parameters are used, -; -; * "smtp": you should provide proper SMTP credentials to use, in the -; dedicated configuration entries. -; -; If empty, no emails will be sent by Kresus. -; Overriden by the KRESUS_EMAIL_TRANSPORT environment variable, if it's set. -; Example: -; transport=smtp -transport= - -; The path to the sendmail executable to use. If empty, indicates -; that the default sendmail executable will be used. -; Overriden by the KRESUS_EMAIL_SENDMAIL_BIN environment variable, if it's set. -; Example: -; sendmail_bin=/usr/bin/sendmail -sendmail_bin= - -; The email address from which email alerts will be sent. Make sure -; that your domain DNS is correctly configured and that you've done -; what's needed to prevent email alerts from landing in the spam folder. -; Overriden by the KRESUS_EMAIL_FROM environment variable, if it's set. -; Example: -; from=kresus@domain.tld -from= - -; The network address (ipv4, ipv6 or FQDN) of the SMTP server. -; Overriden by the KRESUS_EMAIL_HOST environment variable, if it's set. -; Example: -; host=mail.domain.tld -host= - -; The port to which the SMTP server listens. Default values tend to -; be: 25 (server to server), or 587 (clients to server), or 465 -; (nonstandard). -; Overriden by the KRESUS_EMAIL_PORT environment variable, if it's set. -; Example: -; port=465 -port= - -; The username used during authentication to the SMTP server. If -; empty, indicates an anonymous connection will be used. -; Overriden by the KRESUS_EMAIL_USER environment variable, if it's set. -; Example: -; user=login -user= - -; The password used during authentication to the SMTP server. If -; empty, indicates no password will be used. -; Overriden by the KRESUS_EMAIL_PASSWORD environment variable, if it's set. -; Example: -; password=hunter2 -password= - -; If set to true, will force using a TLS connection. By default, -; emails are sent with STARTTLS, i.e. using TLS if available. -; Can be removed; defaults to false. -; Overriden by the KRESUS_EMAIL_FORCE_TLS environment variable, if it's set. -; Example: -; force_tls=false -force_tls= - -; If set to false, will allow self-signed TLS certificates. -; Can be removed; defaults to true. -; Overriden by the KRESUS_EMAIL_REJECT_UNAUTHORIZED_TLS environment variable, if it's set. -; Example: -; reject_unauthorized_tls=true -reject_unauthorized_tls= - -[notifications] - -; The baseurl from which apprise-api will be called for -; notifications to be sent. -; See https://github.com/caronc/apprise-api#installation for -; installation -; Overriden by the KRESUS_APPRISE_API_BASE_URL environment variable, if it's set. -; Example: -; appriseApiBaseUrl=http://localhost:8000/ -appriseApiBaseUrl= - -[logs] - -; The path to the log file to use. If empty, defaults to kresus.log -; in datadir. -; Overriden by the KRESUS_LOG_FILE environment variable, if it's set. -; Example: -; log_file=/var/log/kresus.log -log_file= - -[db] - -; Database type supported by Kresus, to choose among: -; - postgres -; - sqlite -; -; It must be set by the user. PostgreSQL is recommended and strongly supported; your experience with other databases might vary. -; -; Note using sqlite is *strongly discouraged* because it can't properly handle certain kinds of database migrations. It is only intended for development purposes. -; Overriden by the KRESUS_DB_TYPE environment variable, if it's set. -; Example: -; type=sqlite -type= - -; Logging level for the SQL queries. Possible values are: -; -; - all: will log every SQL query, including queries causing errors. -; - error (default value): will only log SQL queries resulting in errors. This is useful for debugging purposes. -; - none: nothing will be logged. -; Can be removed; defaults to error. -; Overriden by the KRESUS_DB_LOG environment variable, if it's set. -; Example: -; log=error -log= - -; Path to the sqlite database file. Make sure that the user running -; Kresus has the right permissions to write into this file. Required only for -; sqlite. -; Overriden by the KRESUS_DB_SQLITE_PATH environment variable, if it's set. -; Example: -; sqlite_path=/tmp/dev.sqlite -sqlite_path= - -; Path to a directory containing a Unix socket to connect to the -; database, or host address of the database server. Required for postgres. -; -; If using a Unix socket, the socket file's name will be inferred from the -; standard postgres name and the port number. -; Can be removed; defaults to localhost for postgres. -; Overriden by the KRESUS_DB_HOST environment variable, if it's set. -; Example: -; host=localhost -host= - -; Port of the database server. Required for postgres, even when -; using a Unix socket (the port is used to compute the socket's file name). -; Can be removed; defaults to 5432 for postgres. -; Overriden by the KRESUS_DB_PORT environment variable, if it's set. -; Example: -; port=5432 -port= - -; Username to connect to the database server. Required for postgres. -; Overriden by the KRESUS_DB_USERNAME environment variable, if it's set. -; Example: -; username=benjamin -username= - -; Password to connect to the database server. Required for postgres. -; Overriden by the KRESUS_DB_PASSWORD environment variable, if it's set. -; Example: -; password=hunter2 -password= - -; Database name to use. Required for postgres. -; Can be removed; defaults to kresus. -; Overriden by the KRESUS_DB_NAME environment variable, if it's set. -; Example: -; name=kresus -name= diff --git a/hassio-addons/kresus/rootfs/etc/services.d/kresus/finish b/hassio-addons/kresus/rootfs/etc/services.d/kresus/finish deleted file mode 100755 index 230d179..0000000 --- a/hassio-addons/kresus/rootfs/etc/services.d/kresus/finish +++ /dev/null @@ -1,15 +0,0 @@ -#!/usr/bin/env bashio -# ============================================================================== -# Take down the S6 supervision tree when example fails -# s6-overlay docs: https://github.com/just-containers/s6-overlay -# ============================================================================== - -declare APP_EXIT_CODE=${1} - -if [[ "${APP_EXIT_CODE}" -ne 0 ]] && [[ "${APP_EXIT_CODE}" -ne 256 ]]; then - bashio::log.warning "Halt add-on with exit code ${APP_EXIT_CODE}" - echo "${APP_EXIT_CODE}" > /run/s6-linux-init-container-results/exitcode - exec /run/s6/basedir/bin/halt -fi - -bashio::log.info "Service restart after closing" diff --git a/hassio-addons/kresus/rootfs/etc/services.d/kresus/run b/hassio-addons/kresus/rootfs/etc/services.d/kresus/run deleted file mode 100755 index d8bcbce..0000000 --- a/hassio-addons/kresus/rootfs/etc/services.d/kresus/run +++ /dev/null @@ -1,25 +0,0 @@ -#!/usr/bin/with-contenv bashio - -# ============================================================================== -# Init data directory -# ============================================================================== -if ! bashio::fs.directory_exists "${KRESUS_DIR}"; then - bashio::log.info "Create data directory \"${KRESUS_DIR}\"" - mkdir "${KRESUS_DIR}" - chown "${KRESUS_USER}:${KRESUS_USER}" "${KRESUS_DIR}" - chmod 0700 "${KRESUS_DIR}" -fi - -# ============================================================================== -# Generate Kresus salt once -# ============================================================================== -if ! bashio::fs.file_exists "/data/kresus_salt"; then - pwgen 32 1 > /data/kresus_salt - chown "${KRESUS_USER}:${KRESUS_USER}" /data/kresus_salt - chmod 400 /data/kresus_salt -fi - -# ============================================================================== -# Start service as unprivileged user -# ============================================================================== -exec s6-setuidgid "${KRESUS_USER}" /usr/libexec/kresus/start.sh diff --git a/hassio-addons/kresus/rootfs/usr/libexec/kresus/start.sh b/hassio-addons/kresus/rootfs/usr/libexec/kresus/start.sh deleted file mode 100755 index a03d20d..0000000 --- a/hassio-addons/kresus/rootfs/usr/libexec/kresus/start.sh +++ /dev/null @@ -1,55 +0,0 @@ -#!/usr/bin/with-contenv bashio -WOOB_DIR="/woob" -KRESUS_INI_FILE="/etc/kresus/config.ini" - -# ============================================================================== -# Pull latest Woob version -# ============================================================================== -cd "${WOOB_DIR}" || bashio::exit.nok - -bashio::log.info "Clear woob install" -rm -rf {,.[!.],..?}* - -bashio::log.info "Add clean woob install" -wget -qO- https://gitlab.com/woob/woob/-/archive/master/woob-master.tar.gz | tar xz --strip-components=1 - -bashio::log.info "Updating Woob dependencies..." -pip3 install --no-cache-dir --prefix .py-deps . -PYTHONPATH=$(python3 -c "import sys, os; print(os.sep.join(['$(pwd)', '.py-deps', 'lib', f'python{sys.version_info.major}.{sys.version_info.minor}', 'site-packages']))") -export PYTHONPATH -bashio::log.info "Done updating Woob dependencies." - -# ============================================================================== -# Set-up environment variables -# ============================================================================== - -# Basic Kresus options -export PORT=9876 -export HOST=0.0.0.0 -export KRESUS_PYTHON_EXEC=python3 -export KRESUS_WOOB_DIR="${WOOB_DIR}" - -KRESUS_SALT="$(cat /data/kresus_salt)" -export KRESUS_SALT - -# Kresus Basic auth -if bashio::config.has_value 'http_basicauth'; then - KRESUS_AUTH="$(bashio::config 'http_basicauth')" - export KRESUS_AUTH -fi - -# Kresus database -export KRESUS_DB_TYPE="postgres" - -KRESUS_DB_HOST="$(bashio::config 'postgres_hostname')" -KRESUS_DB_PORT="$(bashio::config 'postgres_port')" -KRESUS_DB_USERNAME="$(bashio::config 'postgres_user')" -KRESUS_DB_PASSWORD="$(bashio::config 'postgres_password')" -KRESUS_DB_NAME="$(bashio::config 'postgres_database')" -export KRESUS_DB_HOST KRESUS_DB_PORT KRESUS_DB_USERNAME \ - KRESUS_DB_PASSWORD KRESUS_DB_NAME - -# ============================================================================== -# Start Kresus -# ============================================================================== -kresus -c ${KRESUS_INI_FILE} diff --git a/hassio-addons/kresus/translations/en.yaml b/hassio-addons/kresus/translations/en.yaml deleted file mode 100644 index a9aa6a8..0000000 --- a/hassio-addons/kresus/translations/en.yaml +++ /dev/null @@ -1,27 +0,0 @@ -configuration: - postgres_hostname: - name: "DB hostname" - description: >- - Hostname of the PostgreSQL database. - postgres_port: - name: "DB port" - description: >- - Port of the PostgreSQL database. - postgres_user: - name: "DB user" - description: >- - User to connect to the database. - postgres_password: - name: "DB password" - description: >- - Password of the database user. - postgres_database: - name: "DB database" - description: >- - Name of the kresus database. - http_basicauth: - name: "Authentication" - description: >- - Logins for HTTP basic auth authentication ("login:passwd" format, optional). -network: - 9876/tcp: Port to access kresus web server. diff --git a/hassio-addons/postgres/CHANGELOG.md b/hassio-addons/postgres/CHANGELOG.md deleted file mode 100644 index e8a6217..0000000 --- a/hassio-addons/postgres/CHANGELOG.md +++ /dev/null @@ -1,13 +0,0 @@ -## 0.5.1 - -- Fix detection of existing users - -## 0.5.0 - -- Enforce apparmor -- Do not stop on pg_checksums failure -- Simplify script by setting PGDATA environment variable - -## 0.4.0 - -- Initial test without su-exec diff --git a/hassio-addons/postgres/DOCS.md b/hassio-addons/postgres/DOCS.md deleted file mode 100644 index 4fd9a7c..0000000 --- a/hassio-addons/postgres/DOCS.md +++ /dev/null @@ -1,76 +0,0 @@ -# Home Assistant Add-on: PostgreSQL - -[PostgreSQL](https://www.postgresql.org/) is an open-source relational SQL database. -It can be used as a backend for [Kresus](https://github.com/ezlo-picori/hassio-addons/tree/main/kresus), Nextcloud or even as your Home-Assistant recorder. - -## Installation - -The installation of this add-on is pretty straightforward and not different in -comparison to installing any other Home Assistant add-on. - -1. Click the Home Assistant My button below to open the add-on on your Home - Assistant instance. - - [![Open this add-on in your Home Assistant instance.][addon-badge]][addon] - -1. Click the "Install" button to install the add-on. -1. Change the configuration (see next section) -1. Start the "PostgreSQL" add-on. -1. Check the logs of the add-on to see if everything went well. -1. Enjoy the add-on! - -## Configuration - -The configuration of the PostgreSQL add-on matches that of the official [MariaDB add-on](https://github.com/home-assistant/addons/tree/master/mariadb). - -Example add-on configuration: - -```yaml -databases: - - homeassistant -logins: - - username: homeassistant - password: PASSWORD - - username: read_only_user - password: PASSWORD -rights: - - username: homeassistant - database: homeassistant - - username: read_only_user - database: homeassistant - privileges: - - SELECT -``` - -### Option: `databases` (required) - -Database name, e.g., `homeassistant`. Multiple are allowed. - -### Option: `logins` (required) - -This section defines a create user definition in PostgreSQL. - -### Option: `logins.username` (required) - -Database user login, e.g., `homeassistant`. - -### Option: `logins.password` (required) - -Password for user login. This should be strong and unique. - -### Option: `rights` (required) - -This section grant privileges to users in MariaDB. - -### Option: `rights.username` (required) - -This should be the same user name defined in `logins` -> `username`. - -### Option: `rights.database` (required) - -This should be the same database defined in `databases`. - -### Option: `rights.privileges` (optional) - -A list of privileges to grant to this user from grant like `SELECT` and `CREATE`. -If omitted, grants `ALL PRIVILEGES` to the user. diff --git a/hassio-addons/postgres/Dockerfile b/hassio-addons/postgres/Dockerfile deleted file mode 100644 index de90840..0000000 --- a/hassio-addons/postgres/Dockerfile +++ /dev/null @@ -1,16 +0,0 @@ -# https://developers.home-assistant.io/docs/add-ons/configuration#add-on-dockerfile -ARG BUILD_FROM -FROM $BUILD_FROM - -# Setup base -RUN apk add --no-cache \ - postgresql14 && \ - mkdir /run/postgresql && \ - chown postgres:postgres /run/postgresql - -# Copy root filesystem -COPY rootfs / - -ENV PGDATA=/data/databases - -WORKDIR / diff --git a/hassio-addons/postgres/README.md b/hassio-addons/postgres/README.md deleted file mode 100644 index daafc7c..0000000 --- a/hassio-addons/postgres/README.md +++ /dev/null @@ -1,19 +0,0 @@ -# Home Assistant Add-on: PostgreSQL - -PostgreSQL database in Home-Assistant. - -![Supports aarch64 Architecture][aarch64-shield] -![Supports amd64 Architecture][amd64-shield] -![Supports armhf Architecture][armhf-shield] -![Supports armv7 Architecture][armv7-shield] -![Supports i386 Architecture][i386-shield] - -## About - -You can use this add-on to install the PostgreSQL database and easily define databases, users and their permissions. - -[aarch64-shield]: https://img.shields.io/badge/aarch64-yes-green.svg -[amd64-shield]: https://img.shields.io/badge/amd64-yes-green.svg -[armhf-shield]: https://img.shields.io/badge/armhf-yes-green.svg -[armv7-shield]: https://img.shields.io/badge/armv7-yes-green.svg -[i386-shield]: https://img.shields.io/badge/i386-yes-green.svg diff --git a/hassio-addons/postgres/apparmor.txt b/hassio-addons/postgres/apparmor.txt deleted file mode 100644 index 8ea49e7..0000000 --- a/hassio-addons/postgres/apparmor.txt +++ /dev/null @@ -1,51 +0,0 @@ -include - -profile b2ddf90b_postgres flags=(attach_disconnected,mediate_deleted) { - #include - - # Capabilities - file, - signal (send) set=(kill,term,int,hup,cont), - capability chown, - capability kill, - - # S6-Overlay - /init ix, - /bin/** ix, - /usr/bin/** ix, - /run/{s6,s6-rc*,service}/** ix, - /package/** ix, - /command/** ix, - /etc/services.d/** rwix, - /etc/cont-init.d/** rwix, - /etc/cont-finish.d/** rwix, - /run/{,**} rwk, - /dev/tty rw, - - # Access to options.json and other files within your addon - /data/options.json r, - - /package/admin/s6-2.11.1.2/command/s6-applyuidgid cx -> s6setuidgid, - profile s6setuidgid flags=(attach_disconnected,mediate_deleted) { - #include - capability setuid, - capability setgid, - - signal (receive) set=("cont","kill","term"), - - /bin/{bash,busybox} ix, - /data/databases/{,**} lrw, - /dev/{null,tty} rw, - /dev/shm/PostgreSQL.* rw, - /etc/{hosts,passwd,resolv.conf,ssl/*} r, - /package/admin/** rmix, - /run/postgresql/* rw, - /run/s6/container_environment** r, - /tmp/.bashio/{,**} rw, - /usr/bin/{curl,jq} rix, - /usr/libexec/postgres{ql14,}/** rix, - /usr/lib/** rm, - /usr/lib/bashio/bashio ix, - /usr/share/{icu,postgresql14,zoneinfo}/** r, - } -} diff --git a/hassio-addons/postgres/build.yaml b/hassio-addons/postgres/build.yaml deleted file mode 100644 index 40a28be..0000000 --- a/hassio-addons/postgres/build.yaml +++ /dev/null @@ -1,14 +0,0 @@ -build_from: - aarch64: "ghcr.io/home-assistant/aarch64-base:3.16" - amd64: "ghcr.io/home-assistant/amd64-base:3.16" - armhf: "ghcr.io/home-assistant/armhf-base:3.16" - armv7: "ghcr.io/home-assistant/armv7-base:3.16" - i386: "ghcr.io/home-assistant/i386-base:3.16" -labels: - org.opencontainers.image.title: "Home Assistant Add-on: PostgreSQL" - org.opencontainers.image.description: "PostgreSQL database addon" - org.opencontainers.image.source: "https://github.com/ezlo-picori/hassio-addons" - org.opencontainers.image.licenses: "MIT License" -codenotary: - signer: ezlo@protonmail.com - base_image: notary@home-assistant.io diff --git a/hassio-addons/postgres/config.yaml b/hassio-addons/postgres/config.yaml deleted file mode 100644 index f3b7f95..0000000 --- a/hassio-addons/postgres/config.yaml +++ /dev/null @@ -1,42 +0,0 @@ -name: PostgreSQL -version: 0.5.1 -slug: postgres -codenotary: ezlo@protonmail.com -url: "https://github.com/ezlo-picori/hassio-addons/tree/main/postgres" -description: PostgreSQL database -arch: - - armhf - - armv7 - - aarch64 - - amd64 - - i386 -image: "ghcr.io/ezlo-picori/haos-addon-postgres-{arch}" -init: false -options: - databases: - - homeassistant - logins: - - password: null - username: homeassistant - rights: - - database: homeassistant - username: homeassistant -ports: - 5432/tcp: 5432 -ports_description: - 5432/tcp: "The port to access the database engine." -schema: - databases: - - str - logins: - - username: str - password: password - rights: - - database: str - privileges: - - "list(ALTER|CREATE|CREATE ROUTINE|CREATE TEMPORARY TABLES|\ - CREATE VIEW|DELETE|DELETE HISTORY|DROP|EVENT|GRANT OPTION|INDEX|\ - INSERT|LOCK TABLES|SELECT|SHOW VIEW|TRIGGER|UPDATE)?" - username: str -startup: system -timeout: 20 diff --git a/hassio-addons/postgres/icon.png b/hassio-addons/postgres/icon.png deleted file mode 100644 index 7f9cb7b10d30d02a0d91f2d6ba1331e2d9da84e0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10669 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 diff --git a/hassio-addons/postgres/logo.png b/hassio-addons/postgres/logo.png deleted file mode 100644 index d404139ef0c5fb5d7556200f14ee4c6865d9017a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9903 zcmcI~RZtvE(CxCg6I_BjEUv-b1Hs+hgS)#E2<{LdxGx?&I4lGU9-PJ9;qu+5`+DoI z|6yhxdg|0jPfwrf6Z1t`79E8c1pok`%gafry^oLY%^V5gy>E;l1p@#S0C_2K4R50p zLqu;4=|z#wL*#IL3b`{Xmg~geSydS6j%(sj(a+zEKyn{Md7c!W@;(ifp4N=yr`^iukT>Jaofc`}cW(`3=x4XDF7}!A!8w=zWgMoJ^Ik32i zjRm3{*r73?ECJwgA&!Nq^UO>r??4>?Ga&U-i&=VVS8)qW3%(upouiSAWO8Z}N0Z#2 z+Wtd~=S+aL58SN52H2m1KuZ!AJ}?gkpiQa^qErdvrGI)NJ60ojX5v-D`-VHIBTwHj zsZ+@uzxh#RNbfaGmaZ_=llg!yH7(%%-Eh?x-`r4sXct-|(9%%^VWBEK;W9`D%TjJg ztVbP_KRv(|N*XRmCfiNBe*K!Pl*JiSUS8gyQK1%j{I}`ILm-a>1Uh#4 z`t|EXsba?Q*+$P9Ar8(qmOk5Aci1z$D}}29&UDcF3^WA%Ipi9_J=BHTmDHlfv9`AM zpOKN#Y`v)@smMu_<+znKH}P&k(CfE9F zbaw7@hltP?f7sD6wS2hT#u#^JMcST5EYKJ;-C(Dv4?`Oqk~MvgSNE$*%l&|{O~)v(;K zD&MBe%PzfgCLms( zyM%)uo2r{q!z@NOK|`0ma!r*(r7~ImW>INE0>3F%k_?lJ+`w`g*G&fe?I=J|=KKfc z2MNv}jw~*o%>>V6v7=Thot`JqEkWy$k`c}15@YYP3KTqe&<`Kan7)74M8e9r41 zRq}<3a)W`QD0f@8`1rR;Ol1t`5)397l59JaR!k4%wRh9ssE03(7VG?gji2@$_(6Xb zKlYOSecam}J!KUQoHv5q)sFKT8zZG}Nn2dTHD_12quU+ol-6`{uTR}wNgU6J^USVc zmc{4Gx(GV6{U~8$bMRpVSBRRL`qL3e;&pJ@^XFwOkS!FrK)op~bh9DA;9mlnz>uin z!U|3!6Aa1$qm(1$-g^4}6)0`8@bF4gHm*bH3_5AoKiWHHh?DiFiP#unDra3!=H1rH zbR>y^@@)!N=n9BN1Rw%#8%?$usl9O?j@|eaG~YuCE&MF;LHEph*84kqMNc`4)piz1 zE|Y9OFJ=9Fw4nj@#{2FgF1z!j`83%GO&5s(y+B7V?o;_^ecE@o4dM_v@QXQ-$ zsIt7lfsLm0U`#Cto4)X?IxI+G4QFm?c|IV$TN^O!LjT>jELcnIUc@ zJKMU-4;MZ^3TTV$F0uj`_1X9qDjX~&EBhyuO_}^ojktnI6IU+u zKX~YH-Tr9m{>6Niw&CKb2uleNtlO+W7l;W9XB}mIhmQhby340st?H@X3GN8W`Gd$L z_|0|gWkO_6@J!}Q4_#ej-KN{&aJF<7?5OWZi;<+1_j$C~lwAHVRsQ8|`4u-R zI3v#{xap*`Rzg!R?t>!Fc>B(58|%#vpPE*hpx0;D-LW*J?_AbyZ;d&1&{lDjAGDCp zkaagxc={H*`IK2hfAt}7sv&0ninh9s=J6->rqCxg?3){so)@V^b(FXHN{a;FJ+xP` zrq%Hj+BhNab1~%Y*SIOwY46DQ!@NGVNqCznku5c7cU5b=a?i}y+xY00Sw#j9Q3*Y9 z77Vnkq>G!2M;(K|z4wf&>5S93%4bO$7)_&B%5~%Y{4C{a;mLu#eOoLwIVYsDR>E*D zgj-LhJAKt0e&^ZO1M?n@@%cl45FfNRT7I8Q6^MCL>9JjKUk*)dE$%o$H`tC1I(!W9 z!6v#fVB%ZQFVbPPHNtUdqwls!NI{-v_|9B~cKM_W{`jc?4wB$%gC8EQ`XPIq`S?h- z7?Q!37+y&y4KvP=oG#{^NLO2$W1B$Cqc+*G$eL>GZ|eGZcumpn!lxt?s3v>GT4Jv7 z?0#jG$xYPpg{q|53x`dANgWskR?^BAB}kp%R^p7o(SAw23fNg~cLQ3J8kM-5UVetG7pD)@`(ixz4{V zITjp}Q(7nusi{=l|GnFi;|XV+%y`b-3Dn91`MqIQAxBsp6_(UpYLOi-G#4uc)340d z472zm^_^gv>b0ai{J2@#oh{Lou1Gw4?na<1Q-gOK!PXg12+ml04CoP6-!CWEn$Q3H zQ9+pL67mz12s|XQqbBWP%G=<-Vg`mmWz7mpoldU@~DgQj+g! zl#X_zvL)%G`r(votQY=4b}o65LFPAZycAwF zDz)rB(g!ryLJA`C!)s0^3#T62m_CEDs&-9-nRd2SHZZ3pM#=IWVjdwD#XIEfuX9++y{y2*Sj-iRK)!MGL{N&T9p`4dq zzvySQk;F?s;caT{!*Tq?uoS^8v!ST%KUaw_p z=9Jw^9j&T5OD5#tq@&zJUegn7C{X*Mx**9c`l^GoS)V_)9^ymQKhR=mKnVu@K*pR}7IF9(<$w`WYB~8fBCfKnqg}q#sEM0GH&x{4MOpmWZS8gL zbIHfxQauIRfAyF{RdTG8?rBxcw6<(*0D45f3IJ(nn+Ut$8CjiL%q`B ziVi-j0YjdE2h|G3E$3nIx3A_e@To|WwzfEIhD86{{Z)&?{zg0#R@bt z2CLeZgYj5R@0_2*XVfrBFIHlL1Jjf;@E|PYmNd(hG!+^ZDcr9PAz! zRKuj$7-Un@MHRKwm^IMh778Sl*&R|S zew#|KlKxA5aXcSK8`MKWOQOYu)_L`N_D*osk8{`W=sPpRAOCEHq|qaja%D{2tBMag zS1~3tvQsNeqNgv~o9WmPBEiH|F%6CH{GV*6?Bem>BwbawU`Ro~P&HgeE6Id}ggi|F zi~ac<@c+t2X}g-?T9^ILnS`hhXSwHza1Q+UT^Y7x4Fx}JUPaO-z+kn8 z7#^2jJxN;uKgkM*xWX3JVrmbm4jI$ zM(GbjFUoZ5|0l_NEKEIcu)h~S90o;ekKFXk%+Bk0u&p*f4+eiB(8ld8##2jHi@b&3h4xO7p$U$+o zMI-J(wD{fc?ct<18A7NQTTVn&tD$(?d_E$Cs|>MlxaL5>P-EPGed^+FY;>lj@h;RM zdj8OE#59P0?^lWWL>R>Hpx4i&M;#BR&_R1cOzAxD#QhPY4`y8v7g7UYigoJmbsU*z z!?pT>>#Lh8z;_+WUR&l5G&T52WooeHONe22l5rCLuTtwwz;VXBEp_AE1M#!9QHyhb zw|B3#$#k9Z@jrIAV)dQo$Rree|Ecu24(1z!^3giBA9h z>qFMHdmx3A!LMqPc8bIyroBFf`tykM@;Zf9v39+|T$cL|4DdnyUZm_JP}?Gz82P-3 zMzxz8`Y&m1Do=1DV#0)f3}1@KX~)YX?s9h{=bIQ&CR080rNW90e0RnBDuMiCN;W`@1_3%?LdAfJwk8s0#)VCc;>iC)1md) zAfa$q^C9s!b&hF=R;_p^yfo}{4*BX{nwhb_saoD2=bbD^58m5>se!- zS1Uh%oTjU%gmJmg{Ztjm^(-DT7c?z07SLX40hoLMG@QP{BViiKF$U;7u@J4b=Qm3S z536T@Fm>^a=`lkRrG`<~v&}<^qGEn)kl&rSXR&B=XILR4#_^vzPNF1&3};}9ivTlx zPEJm`$Y#$Q=x;dZxpH*C%?$SQSZZ}0ZS1#J__&^2?mn7-@jsjIzMcq#2XqAj3$UD} zdBsRmVN&P~hTgdyQG{<$zlYcNQdkVkB1qA(KOC~I&pQogz86LuL!_$PqX7W;2CVsn z>e!&!;g@mjAJBjMp%2|nCu45=qWjlM27dqKwx_xj8vgGu{TFR30}@Q+dp-Z@;11tn z4D#cqWUO699;anp)4gHhE z_fK|@9klPyCw?(TAt;z)iC1<>GxFmq$JC|N*`Ra5y z`#2IlC&)RqI8Y}Cz)k`v?AM856Hn%YgZ~Y@cZ$&#soqQcxlLKCBDn@fH=WBI{Kz)A zQBsn~)usUun?x?693Q6r`28PTPRJkcec;bGzd0@>$NP_t_b6`#18$0gL9Eb@kj7T% zJG=6H=N`x(vA!CASoKPWO3iUmFg~{EHT0j}v9umR&Ct+_UNFRtWAL7g5fSrPajm!p ziXy4C&EOy^#Y&_5^FBBSbJOa|^?R|#$$B%B38&$U<^PPy(Rf{^b2Z2Aaw*+Kc{18& z)hK=gu;v?7FcQ}2={?A`-!`zEVtJvZo7nb_ZHy>LUZ2bLE8SL`yyc_-bIvb)Q_iBE zs&vyDvYF0_Iv!K7<;!m$LKWdy@hMF@@^r zc4#Ca#+vzhU5BUsnHz$`Q072C_A4z|$heqSV1LSE3e%OlbVl?x%zCYzbZdUB(B#f+ zHjn)e={Wq^n-!jHo*ddy0?K@Q>cK0-fsBzMdt~qrWGCyT-GYB4zhH+!Hw9B}A8S-1 z{-t!>R(ZN&?A5Z!u%_a-*KwFvE&tC*vbeC@~9YZR9TL zi&7W%+Onwv6o6W|cZ7h#z56@|2UoE(jKXOI$Vsm!fwXXZc017>dSvXW!j|TzK-w5> z_h2xBSTiDEK{@R+G-P!EILQ6wd_OkPFLE=V?PBfIjGYLo<;wm2y#*QGd|f3!H@z1K@iY|F z1M{(fx*?+yt3f+~t2AN;JE2F?pm5e!#_-w7#nX!aFQR4hQ@5Xpz0Oeye)hqxUw<2wY{AU$IA+3~KkduxYH5 z@^9D;XWiq?1_tiGb&SG)#e67o-KLqv_~xh;Z_8q0%Lu>kGJ#*WS1s5ghS+VlnI(iH zG8&H8@@ct|j`6D*?fmq+qmbwvWRI|j$&!H@@GV6xEMr0v-u@$(W_fA59Uo zuXPGBW%FFR7AaA>Ne&Gni`o4m8gw#Y^YloBzg@FE6*0Pd?CG80!0bQG zzMZS8yBComRrcY;^?dd5#i2bC7p)og!((a8=eiS81|9u!V2f}QZE4^95s=SDlUokSUH zpy?^Xes^*;*)2N7yp5W^%X0wI!plAdAv}{Y*W2U2)*s<0Sf=sG$O3Uv#R-%UP*oEp z>ez$lm>Geak2=pHG#ro%KRWdnoBebh9$nM9)ZPt}>HrKts+OFtlA715AXYFLd?DAZ zmH`!C2-oodjJqAoFNM|orS4bp=X`?cA`xSp=Dvj&e1V0{(|_4MXM;{wc~lAmaxx|~ zVZt}Ra6(?}AXcPRk1W+tUDav0;1^Uy1j)baTy6t*FW7B--Q77k`wfSNj5eC!({wDh zEKYTHcEtX3iAJj{NLN4T#>%ZfraXs!J6O7YVbP^bVA@E~d#}>d>M{G`WJ1Qi1w2W< z$Vf|#1%@6LpKj2-;1@WpHO*!(JpyIyZyw4!4$th016iLR8U#+;tDD>$u(me1{!;sN`A#y~ zMaN>4fq*HuD9O!NxxN*1i_=^}tM~LY=S1u(Pl8K=7>c7qxJF+c$99uavu2Q zYi*^yTs-dhcNQ5<#envRbBe5Q&*Lj`j)j7io#={8h@zsR$gAE`Wx)FMAD8TEManDg zbB(sUW%5kh!+DV*XxnwuA-$)U=yAE}DFL8Q(JI6~qb8Z_u9_Pi9#z~<%*Jx|++rgB+~u=ia*FKMO~(ms7&d&24(#{ES> z*P;h7gMF6Cdw?|%jftT^T1e2YAea3HKR3MXhiUM{{RxkvmWvzm@jGMKbk5H>BR{hH zrO-FT;zT&HS}v>3mo?^c-l7RXgTEZ!cLQ=x1kL-_rp#W( zoOm_YJ>Gu%gvT=(jeO7+h-b-iStlc{T3^YWp1aqd(vY9cd5C`CA0QNNiuCqQGKh5lg6w21Arto>5Y3FwmdT zOq!KKN)F*>zJxIG^K0lQZvBHl$^|e5E+ISa^A=6}(*yw=x9S|K+cl$TE!eP+YqFVyxofYy_* z;ea)xarcXy@R(9;vV_aFr$eb)>6R_gWiJECCLLfw_AxIpqVuo1;KZLQ6u*DHr}s96 zFTNMb52pH;x9GLX7}=C@)M%z6Z_jR7{4QpzZG|Ev0y=%08GTDoY~aqG8XITsFF4bwuoDgQBI0>{+5%ic&Mge1vJahp$FUX`A8e_4nTO z9MVZFIos1)+eyKkF|#;v$p}ZfQU5Igvj`VaTHa*&$tF;H)PhS~jO1 zk6iV+JfH{tWgHI-5YY8sX$s-4)l>3zJ$m_aWZ2>JDllz&_RazSdOUB45#&yMR<%E_ z?{AF^cCzVQUbai>O(wQa;=gtlqXLorl`{Iye<1yxqh;cMU2fiR}w&N{LM1`Syn+XTzWiPi-~zTVxRogbbqk zU45_6*KhV4ReHemu{(P`?Grsfk>f#wyMsnW?^cq`rwJBUjcrn!tEjD zXjGQdIr}Fw8UCVLCv4}eLeZf(1h7=Iev_~To*GplZbVtREh~yn*_9&j|JA*lMoAh( z?c!ewJ;jRHFysn%Nm|U|jt7lYw5{YadBB8^_I(N^j-ka^mxr7ZA}R(Q`WRxDPC%cd z4q8gax~gv_WL;}cITxOau})zkwUl|pX^Jji#6wy7`ub*)aioHo|E;GolVdu|EySK^ zl9Ud`5lkZ;wsGm|dH<2l6%Bg*R|OvHw&M=Uzb&&abW3ZC4lqSPqdJi*Q73R7OR1rp z#krVA-5HbcNT-0JOp`87@jkgs6I~ekVY%#+{pQM^k>5j8<}5ZRwbjuTWRX^^;EBi+ zj&@nUQuy)(i=_)L%peuqgf8@LH;Ozk85R-4CbWIY9l2nxMxVU-J?qk1t75=P0v-|_ zIM5{sCaP+BYz-oR)^=2Y(`qmqYW_O5;eVBYMykN3EZ5#o-2zMC1D6`t)ct*=K=J_6 z4_DD#ZQNs&I2uUPguhi)Jey<|t< z_Xe6)NnQ9;`3c=+eF&?@1dU-tJWklr&{xr+R zf3B~oE*&G&WV{bGPG%}Z1S9^azTIzQhOoza2o8gHZ%8SjlSZg0U3OwYWW|3pFHa9< zO5ma7KGtG|tG*_Az6mpyo&)^!?Cf7UJT3jD8)U&F`_DeawWpf6-bN@(*bv5Ve(V+_ zSd+fBlo)zl2>S%~YFQGWEIE`_PG(EvdO>r=y-5pmbz@8@U7-KwS4?A+POU92YOj-k zb^f&IrwZ_%_a9d9l)lS0=78rDwNwkM|IPk^2k(G^rtL=Y{5=G|5vseJw$H* zDKKF-4<&+!hkQba=%~_E&m-5jwm6svx1P4}3hnsoQtpcLYMZKv<&M_J5tGl$obPpQ zSsU9);IxfJVI;@@i|)TzuU4wi4!PfZN_(Q&v}VB%k&eOOo+}!blC}NKDThYa$H4HP zd-$O&5ktw?eSBNVLq+@!GqXF;V~VF2-_e4g-xUisWwPZMX}IvS!v8J%7%lRN zMO>0tVU+~U$iziz358#s1dk?$*tL!FJI98^B7I+#f*cep2HVh zr>0o9h7Ne}uUX+;MB|-kX;F9P`ac=`nAULFX_yt<3YWr+#$@TiegBT=SruNK3^O;$5#?q@@2ew*vYQ~7>F%;s5{u diff --git a/hassio-addons/postgres/rootfs/etc/services.d/postgresql/finish b/hassio-addons/postgres/rootfs/etc/services.d/postgresql/finish deleted file mode 100755 index 230d179..0000000 --- a/hassio-addons/postgres/rootfs/etc/services.d/postgresql/finish +++ /dev/null @@ -1,15 +0,0 @@ -#!/usr/bin/env bashio -# ============================================================================== -# Take down the S6 supervision tree when example fails -# s6-overlay docs: https://github.com/just-containers/s6-overlay -# ============================================================================== - -declare APP_EXIT_CODE=${1} - -if [[ "${APP_EXIT_CODE}" -ne 0 ]] && [[ "${APP_EXIT_CODE}" -ne 256 ]]; then - bashio::log.warning "Halt add-on with exit code ${APP_EXIT_CODE}" - echo "${APP_EXIT_CODE}" > /run/s6-linux-init-container-results/exitcode - exec /run/s6/basedir/bin/halt -fi - -bashio::log.info "Service restart after closing" diff --git a/hassio-addons/postgres/rootfs/etc/services.d/postgresql/run b/hassio-addons/postgres/rootfs/etc/services.d/postgresql/run deleted file mode 100755 index b73f71d..0000000 --- a/hassio-addons/postgres/rootfs/etc/services.d/postgresql/run +++ /dev/null @@ -1,15 +0,0 @@ -#!/usr/bin/with-contenv bashio -# ============================================================================== -# Start PostgreSQL service -# ============================================================================== - -if ! bashio::fs.directory_exists "${PGDATA}"; then - bashio::log.info "Create database directory \"${PGDATA}\"" - mkdir "${PGDATA}" - chown postgres:postgres "${PGDATA}" - - exec s6-setuidgid postgres /usr/libexec/postgres/initdb.sh -else - bashio::log.info "Using existing postgres initial system" - exec s6-setuidgid postgres /usr/libexec/postgres/checkdb.sh -fi diff --git a/hassio-addons/postgres/rootfs/usr/libexec/postgres/checkdb.sh b/hassio-addons/postgres/rootfs/usr/libexec/postgres/checkdb.sh deleted file mode 100755 index 3ee75bd..0000000 --- a/hassio-addons/postgres/rootfs/usr/libexec/postgres/checkdb.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/usr/bin/with-contenv bashio -# ======================================================= -# 1 - Check database checksums in PGDATA directory -# 2 - Delegate execution to database start procedure -# ======================================================= - -# Initialize database -bashio::log.info "Checking data integrity" -pg_checksums --check || bashio::log.warning "Error raised when checking data integrity, still trying to start the database." - -# Delegate execution to start script -/usr/libexec/postgres/start.sh diff --git a/hassio-addons/postgres/rootfs/usr/libexec/postgres/config.sh b/hassio-addons/postgres/rootfs/usr/libexec/postgres/config.sh deleted file mode 100755 index ed89452..0000000 --- a/hassio-addons/postgres/rootfs/usr/libexec/postgres/config.sh +++ /dev/null @@ -1,49 +0,0 @@ -#!/usr/bin/with-contenv bashio -# ======================================================= -# 1 - Create missing databases -# 2 - Initialize users -# 3 - Initialize permissions -# 4 - Delegate execution to monitoring -# ======================================================= - -# Init databases -bashio::log.info "Ensure databases exists" -for database in $(bashio::config "databases"); do - if psql "${database}" -c '' &> /dev/null; then - bashio::log.info "Database ${database} already defined" - else - bashio::log.info "Create database ${database}" - psql -c "CREATE DATABASE ${database};" 2> /dev/null || true - fi -done - -# Init logins -bashio::log.info "Ensure users exists and are updated" -for login in $(bashio::config "logins|keys"); do - USERNAME=$(bashio::config "logins[${login}].username") - PASSWORD=$(bashio::config "logins[${login}].password") - - if ! psql -U "${USERNAME}" -d "postgres" -c '' &> /dev/null; then - bashio::log.info "Create user ${USERNAME}" - psql -c "CREATE USER ${USERNAME};" - fi - bashio::log.info "Set password of user ${USERNAME}" - psql -c "ALTER USER ${USERNAME} WITH PASSWORD '${PASSWORD}';" -done - -# Init rights -bashio::log.info "Init/Update rights" -for right in $(bashio::config "rights|keys"); do - USERNAME=$(bashio::config "rights[${right}].username") - DATABASE=$(bashio::config "rights[${right}].database") - - if bashio::config.exists "rights[${right}].privileges"; then - PRIVILEGES=$(bashio::config "rights[${right}].privileges") - bashio::log.info "Granting ${PRIVILEGES} to ${USERNAME} on ${DATABASE}" - psql -c "REVOKE ALL PRIVILEGES ON DATABASE ${DATABASE} FROM ${USERNAME};" 2> /dev/null || true - psql -c "GRANT ${PRIVILEGES} ON DATABASE ${DATABASE} TO ${USERNAME};" 2> /dev/null || true - else - bashio::log.info "Granting all privileges to ${USERNAME} on ${DATABASE}" - psql -c "GRANT ALL PRIVILEGES ON DATABASE ${DATABASE} TO ${USERNAME};" 2> /dev/null || true - fi -done diff --git a/hassio-addons/postgres/rootfs/usr/libexec/postgres/initdb.sh b/hassio-addons/postgres/rootfs/usr/libexec/postgres/initdb.sh deleted file mode 100755 index 49a6c2f..0000000 --- a/hassio-addons/postgres/rootfs/usr/libexec/postgres/initdb.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/usr/bin/with-contenv bashio -# ======================================================= -# 1 - Initialize the database in PGDATA directory -# 2 - Delegate execution to database start procedure -# ======================================================= - -# Initialize database -bashio::log.info "Create a new postgres initial system" -initdb --data-checksums > /dev/null -echo "host all all 0.0.0.0/0 scram-sha-256" >> "${PGDATA}/pg_hba.conf" -echo "listen_addresses='*'" >> "${PGDATA}/postgresql.conf" - -# Delegate execution to start script -/usr/libexec/postgres/start.sh diff --git a/hassio-addons/postgres/rootfs/usr/libexec/postgres/start.sh b/hassio-addons/postgres/rootfs/usr/libexec/postgres/start.sh deleted file mode 100755 index 3d384ed..0000000 --- a/hassio-addons/postgres/rootfs/usr/libexec/postgres/start.sh +++ /dev/null @@ -1,32 +0,0 @@ -#!/usr/bin/with-contenv bashio -# ======================================================= -# 1 - Start the PostgreSQL database -# 2 - Trap stop signals to properly stop the database -# 3 - Delegate execution to configuration application -# ======================================================= - -# Start the database -bashio::log.info "Starting PostgreSQL..." -postgres & -POSTGRES_PID=$! - -# Wait until DB is running -while ! psql -c '' 2> /dev/null; do - sleep 1 -done -bashio::log.info "PostgreSQL database started." - -# Register stop -function stop_postgres() { - pg_ctl stop -m smart - # Successful exit, avoid wait exit status to propagate - exit 0 -} -trap "stop_postgres" SIGTERM SIGHUP - -# Apply database configuration -/usr/libexec/postgres/config.sh - -# Wait for process to end -bashio::log.info "Waiting for PostgreSQL termination..." -wait "${POSTGRES_PID}" diff --git a/hassio-addons/postgres/translations/en.yaml b/hassio-addons/postgres/translations/en.yaml deleted file mode 100644 index 0a999ee..0000000 --- a/hassio-addons/postgres/translations/en.yaml +++ /dev/null @@ -1,12 +0,0 @@ -configuration: - databases: - name: Databases - description: Database names. - logins: - name: Logins - description: This section defines a create user definition in PostgreSQL. - rights: - name: Rights - description: This section grant privileges to users in PostgreSQL. -network: - 5432/tcp: The port to access the database engine. diff --git a/hassio-addons/repository.yaml b/hassio-addons/repository.yaml deleted file mode 100644 index d7e78d8..0000000 --- a/hassio-addons/repository.yaml +++ /dev/null @@ -1,3 +0,0 @@ -name: Ezlo's custom Home Assistant addons -url: "https://github.com/ezlo-picori/hassio-addons" -maintainer: Ezlo Picori diff --git a/kresus-mrraph-test/CHANGELOG.md b/kresus-mrraph-test/CHANGELOG.md deleted file mode 100644 index 1e4983e..0000000 --- a/kresus-mrraph-test/CHANGELOG.md +++ /dev/null @@ -1,37 +0,0 @@ -## 0.6.2 - -- Update woob dependencies install method - -## 0.6.1 - -- Remove support for i386 architecture - -## 0.6.0 - -- Bump Kresus to 0.19.0 - -## 0.5.1 - -- Fix AppArmor profile - -## 0.5.0 - -- Attempt using `alpine:edge` as base image - -## 0.4.2 - -- Fix AppArmor profile - -## 0.4.1 - -- Reinstall py3-lxml by default - -## 0.4.0 - -- Remove python dependencies from Dockerfile to prevent - incompatibility with woob requirements - -## 0.3.0 - -- Use `s6-setuidgid` instead of `su-exec` -- Set AppArmor in complain mode diff --git a/kresus-mrraph-test/DOCS.md b/kresus-mrraph-test/DOCS.md deleted file mode 100644 index a6484b0..0000000 --- a/kresus-mrraph-test/DOCS.md +++ /dev/null @@ -1,54 +0,0 @@ -# Home Assistant Custom Add-on: Kresus - -[Kresus](https://kresus.org/) is an open-source self-hostable Personal Finance Manager. -It automatically retrieves your daily bank transactions, lets you categorize them and manage your monthly budgets. - -It relies on [woob](https://gitlab.com/woob/woob) to fetch data from your bank website. - -## Installation - -Kresus requires a PostgreSQL database to store data. -If you do not already have a PostgreSQL database installed, you may consider the [PostgreSQL addon](https://github.com/ezlo-picori/hassio-addons/tree/main/postgres). - -The installation of Kresus add-on is quite straightforward and do not differ from the standard installation process for Home-Assistant add-ons: - -1. Click the Home Assistant My button below to open the add-on on your Home - Assistant instance. - - [![Open this add-on in your Home Assistant instance.][addon-badge]][addon] - -1. Click the "Install" button to install the add-on. -1. Start the "Kresus" add-on. -1. Check the logs of the "Kresus" add-on to see if everything - went well. A working installation should indicate `Server is ready, let's start the show!` -1. Click the "OPEN WEB UI" button to open Kresus UI. - -## Configuration - -The only configuration configurations required are the database connection options. -If you used the [PostgreSQL add-on](https://github.com/ezlo-picori/hassio-addons/tree/main/postgres) configured with following options: - -```yaml -databases: - - kresus_db -logins: - - password: CHANGEME_kr3sus-p@ssword_CHANGEME - username: kresus_user -rights: - - database: kresus_db - username: kresus_user -``` - -then you may configure kresus with these options: - -```yaml -postgres_hostname: homeassistant.local -postgres_port: 5432 -postgres_user: kresus_user -postgres_password: CHANGEME_kr3sus-p@ssword_CHANGEME -postgres_database: kresus_db -``` - -## Authors & contributors - -The original setup of this repository is by [Ezlo Picori](https://github.com/ezlo-picori). diff --git a/kresus-mrraph-test/Dockerfile b/kresus-mrraph-test/Dockerfile deleted file mode 100644 index ff92201..0000000 --- a/kresus-mrraph-test/Dockerfile +++ /dev/null @@ -1,39 +0,0 @@ -FROM node:lts-bookworm-slim - -ENV LANG="C.UTF-8" - -# Install Weboob OS-level dependencies. -RUN apt-get update \ -&& apt-get install -y git python3 python3-dev libffi-dev \ - libxml2-dev libxslt-dev libyaml-dev libtiff-dev libjpeg-dev zlib1g-dev \ - libfreetype6-dev libwebp-dev build-essential gcc g++ wget mupdf-tools \ - python3-pip \ - && rm -rf /var/lib/apt/lists/ - -# Install Weboob python dependencies -RUN mkdir /tmp/install && cd /tmp/install -#RUN $(which pip) install --upgrade setuptools -RUN pip install html2text simplejson BeautifulSoup PyExecJS pdfminer python-jose -RUN rm -rf /tmp/install - -# Setup kresus layout. -RUN useradd -d /home/kreseus -m -s /bin/bash -U user && \ - mkdir -p /data/kreseus && \ - mkdir -p /data/weboob && \ - npm install -g --production kresus; - -# Run server. -ENV HOST 0.0.0.0 -ENV KRESUS_DIR /data/kreseus -ENV KRESUS_WEBOOB_DIR /data/weboob -ENV NODE_ENV production - -EXPOSE 9876 - -COPY ./config.example.ini /opt/config.ini -RUN chmod -x /opt/config.ini -COPY ./docker/entrypoint.sh /entrypoint.sh -RUN chmod +x /entrypoint.sh - -ENTRYPOINT ["/entrypoint.sh"] -CMD ["kresus --config /opt/config.ini"] diff --git a/kresus-mrraph-test/README.md b/kresus-mrraph-test/README.md deleted file mode 100644 index d20aef7..0000000 --- a/kresus-mrraph-test/README.md +++ /dev/null @@ -1,25 +0,0 @@ -# Home Assistant Add-on: Kresus - -Open source personal accounting solution. - -![Supports aarch64 Architecture][aarch64-shield] -![Supports amd64 Architecture][amd64-shield] -![Supports armhf Architecture][armhf-shield] -![Supports armv7 Architecture][armv7-shield] -![Supports i386 Architecture][i386-shield] - -## About - -[Kresus][kresus] is a free solution for personal accounting management. -It automatically retrieves your daily bank transactions, lets you categorize them -and manage your monthly budgets. - -![Kresus Preview][screenshot] - -[aarch64-shield]: https://img.shields.io/badge/aarch64-yes-green.svg -[amd64-shield]: https://img.shields.io/badge/amd64-yes-green.svg -[armhf-shield]: https://img.shields.io/badge/armhf-yes-green.svg -[armv7-shield]: https://img.shields.io/badge/armv7-yes-green.svg -[i386-shield]: https://img.shields.io/badge/i386-no-red.svg -[screenshot]: https://kresus.org/images/pages/view-all-accounts.png -[kresus]: https://kresus.org/ diff --git a/kresus-mrraph-test/build.yaml b/kresus-mrraph-test/build.yaml deleted file mode 100644 index f5f795f..0000000 --- a/kresus-mrraph-test/build.yaml +++ /dev/null @@ -1,12 +0,0 @@ -build_from: - aarch64: "node:lts-bookworm-slim" -labels: - org.opencontainers.image.title: "Home Assistant Add-on: Kresus Local TEST" - org.opencontainers.image.description: "Kresus Local TEST addon" - org.opencontainers.image.licenses: "MIT License" - io.hass.base.name: alpine -args: - BASHIO_VERSION: 0.14.3 - TEMPIO_VERSION: 2021.09.0 - S6_OVERLAY_VERSION: 3.1.3.0 - JEMALLOC_VERSION: 5.3.0 diff --git a/kresus-mrraph-test/config.yaml b/kresus-mrraph-test/config.yaml deleted file mode 100644 index fb5bc81..0000000 --- a/kresus-mrraph-test/config.yaml +++ /dev/null @@ -1,30 +0,0 @@ -name: Kresus Local TEST -version: "0.6.2" -slug: kresuslocaltest -description: Open source personal accounting management -arch: - - armhf - - armv7 - - aarch64 - - amd64 -init: false -options: - postgres_hostname: homeassistant.local - postgres_port: 5432 - postgres_user: kresus - postgres_password: null - postgres_database: kresus -panel_icon: mdi:piggy-bank-outline -ports: - 9876/tcp: 9876 -ports_description: - 9876/tcp: "The port to access kresus web server." -schema: - postgres_hostname: str - postgres_port: int - postgres_user: str - postgres_password: password - postgres_database: str - http_basicauth: str? -startup: system -timeout: 20 diff --git a/kresus-mrraph-test/icon.png b/kresus-mrraph-test/icon.png deleted file mode 100644 index df04d0d3b35c63dc0c90ef2847620ee96ece908a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8772 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 - Hostname of the PostgreSQL database. - postgres_port: - name: "DB port" - description: >- - Port of the PostgreSQL database. - postgres_user: - name: "DB user" - description: >- - User to connect to the database. - postgres_password: - name: "DB password" - description: >- - Password of the database user. - postgres_database: - name: "DB database" - description: >- - Name of the kresus database. - http_basicauth: - name: "Authentication" - description: >- - Logins for HTTP basic auth authentication ("login:passwd" format, optional). -network: - 9876/tcp: Port to access kresus web server. diff --git a/kresus-mrraph/CHANGELOG.md b/kresus-mrraph/CHANGELOG.md deleted file mode 100644 index 1e4983e..0000000 --- a/kresus-mrraph/CHANGELOG.md +++ /dev/null @@ -1,37 +0,0 @@ -## 0.6.2 - -- Update woob dependencies install method - -## 0.6.1 - -- Remove support for i386 architecture - -## 0.6.0 - -- Bump Kresus to 0.19.0 - -## 0.5.1 - -- Fix AppArmor profile - -## 0.5.0 - -- Attempt using `alpine:edge` as base image - -## 0.4.2 - -- Fix AppArmor profile - -## 0.4.1 - -- Reinstall py3-lxml by default - -## 0.4.0 - -- Remove python dependencies from Dockerfile to prevent - incompatibility with woob requirements - -## 0.3.0 - -- Use `s6-setuidgid` instead of `su-exec` -- Set AppArmor in complain mode diff --git a/kresus-mrraph/DOCS.md b/kresus-mrraph/DOCS.md deleted file mode 100644 index a6484b0..0000000 --- a/kresus-mrraph/DOCS.md +++ /dev/null @@ -1,54 +0,0 @@ -# Home Assistant Custom Add-on: Kresus - -[Kresus](https://kresus.org/) is an open-source self-hostable Personal Finance Manager. -It automatically retrieves your daily bank transactions, lets you categorize them and manage your monthly budgets. - -It relies on [woob](https://gitlab.com/woob/woob) to fetch data from your bank website. - -## Installation - -Kresus requires a PostgreSQL database to store data. -If you do not already have a PostgreSQL database installed, you may consider the [PostgreSQL addon](https://github.com/ezlo-picori/hassio-addons/tree/main/postgres). - -The installation of Kresus add-on is quite straightforward and do not differ from the standard installation process for Home-Assistant add-ons: - -1. Click the Home Assistant My button below to open the add-on on your Home - Assistant instance. - - [![Open this add-on in your Home Assistant instance.][addon-badge]][addon] - -1. Click the "Install" button to install the add-on. -1. Start the "Kresus" add-on. -1. Check the logs of the "Kresus" add-on to see if everything - went well. A working installation should indicate `Server is ready, let's start the show!` -1. Click the "OPEN WEB UI" button to open Kresus UI. - -## Configuration - -The only configuration configurations required are the database connection options. -If you used the [PostgreSQL add-on](https://github.com/ezlo-picori/hassio-addons/tree/main/postgres) configured with following options: - -```yaml -databases: - - kresus_db -logins: - - password: CHANGEME_kr3sus-p@ssword_CHANGEME - username: kresus_user -rights: - - database: kresus_db - username: kresus_user -``` - -then you may configure kresus with these options: - -```yaml -postgres_hostname: homeassistant.local -postgres_port: 5432 -postgres_user: kresus_user -postgres_password: CHANGEME_kr3sus-p@ssword_CHANGEME -postgres_database: kresus_db -``` - -## Authors & contributors - -The original setup of this repository is by [Ezlo Picori](https://github.com/ezlo-picori). diff --git a/kresus-mrraph/Dockerfile b/kresus-mrraph/Dockerfile deleted file mode 100644 index 54acad6..0000000 --- a/kresus-mrraph/Dockerfile +++ /dev/null @@ -1,19 +0,0 @@ -ARG BUILD_FROM -FROM $BUILD_FROM - -COPY requirements.txt /requirements.txt -COPY start.sh /usr/libexec/kresus/start.sh - -# Addintional Python Libs -RUN pip install -r /requirements.txt && \ - npm install --omit=dev -g kresus@0.20.0 && \ - cd /woob && \ - rm -rf {,.[!.],..?}* && \ - wget -qO- https://gitlab.com/woob/woob/-/archive/master/woob-master.tar.gz | tar xz --strip-components=1 && \ - pip3 install --no-cache-dir --prefix .py-deps . && \ - chown -R kresus:kresus /woob && \ - chown -R kresus:kresus /etc/kresus && \ - chown -R kresus:kresus .py-deps woob .ci .gitlab modules tests tools woob.egg-info man weboob icons docs && \ - chmod 0400 /etc/kresus/config.ini && \ - chmod 0755 /etc/kresus && \ - rm -rf {,.[!.],..?}* \ No newline at end of file diff --git a/kresus-mrraph/README.md b/kresus-mrraph/README.md deleted file mode 100644 index d20aef7..0000000 --- a/kresus-mrraph/README.md +++ /dev/null @@ -1,25 +0,0 @@ -# Home Assistant Add-on: Kresus - -Open source personal accounting solution. - -![Supports aarch64 Architecture][aarch64-shield] -![Supports amd64 Architecture][amd64-shield] -![Supports armhf Architecture][armhf-shield] -![Supports armv7 Architecture][armv7-shield] -![Supports i386 Architecture][i386-shield] - -## About - -[Kresus][kresus] is a free solution for personal accounting management. -It automatically retrieves your daily bank transactions, lets you categorize them -and manage your monthly budgets. - -![Kresus Preview][screenshot] - -[aarch64-shield]: https://img.shields.io/badge/aarch64-yes-green.svg -[amd64-shield]: https://img.shields.io/badge/amd64-yes-green.svg -[armhf-shield]: https://img.shields.io/badge/armhf-yes-green.svg -[armv7-shield]: https://img.shields.io/badge/armv7-yes-green.svg -[i386-shield]: https://img.shields.io/badge/i386-no-red.svg -[screenshot]: https://kresus.org/images/pages/view-all-accounts.png -[kresus]: https://kresus.org/ diff --git a/kresus-mrraph/build.yaml b/kresus-mrraph/build.yaml deleted file mode 100644 index 2da25fa..0000000 --- a/kresus-mrraph/build.yaml +++ /dev/null @@ -1,12 +0,0 @@ -build_from: - aarch64: "ghcr.io/ezlo-picori/haos-addon-kresus-aarch64:latest" -labels: - org.opencontainers.image.title: "Home Assistant Add-on: Kresus Local" - org.opencontainers.image.description: "Kresus Local addon" - org.opencontainers.image.licenses: "MIT License" - io.hass.base.name: alpine -args: - BASHIO_VERSION: 0.14.3 - TEMPIO_VERSION: 2021.09.0 - S6_OVERLAY_VERSION: 3.1.3.0 - JEMALLOC_VERSION: 5.3.0 diff --git a/kresus-mrraph/config.yaml b/kresus-mrraph/config.yaml deleted file mode 100644 index 3c4dc02..0000000 --- a/kresus-mrraph/config.yaml +++ /dev/null @@ -1,30 +0,0 @@ -name: Kresus Local -version: "0.6.2" -slug: kresuslocal -description: Open source personal accounting management -arch: - - armhf - - armv7 - - aarch64 - - amd64 -init: false -options: - postgres_hostname: homeassistant.local - postgres_port: 5432 - postgres_user: kresus - postgres_password: null - postgres_database: kresus -panel_icon: mdi:piggy-bank-outline -ports: - 9876/tcp: 9876 -ports_description: - 9876/tcp: "The port to access kresus web server." -schema: - postgres_hostname: str - postgres_port: int - postgres_user: str - postgres_password: password - postgres_database: str - http_basicauth: str? -startup: system -timeout: 20 diff --git a/kresus-mrraph/icon.png b/kresus-mrraph/icon.png deleted file mode 100644 index df04d0d3b35c63dc0c90ef2847620ee96ece908a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8772 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 - Hostname of the PostgreSQL database. - postgres_port: - name: "DB port" - description: >- - Port of the PostgreSQL database. - postgres_user: - name: "DB user" - description: >- - User to connect to the database. - postgres_password: - name: "DB password" - description: >- - Password of the database user. - postgres_database: - name: "DB database" - description: >- - Name of the kresus database. - http_basicauth: - name: "Authentication" - description: >- - Logins for HTTP basic auth authentication ("login:passwd" format, optional). -network: - 9876/tcp: Port to access kresus web server.