📦 chore(kresus): add Kresus addon files and configuration
✨ feat(kresus): add Dockerfile and build.yaml for building Kresus addon image ✨ feat(kresus): add config.yaml for Kresus addon configuration ✨ feat(kresus): add icon.png and logo.png for Kresus addon branding ✨ feat(kresus): add rootfs directory with necessary files for Kresus addon ✨ feat(kresus): add translations/en.yaml for English translations of Kresus addon 🐛 fix(kresus): fix finish script to handle service failure and restart 🐛 fix(kresus): fix run script to initialize data directory and generate Kresus salt 🔧 chore(kresus): update woob dependencies install method in Dockerfile 🔧 chore(kresus): update Kresus version to 0.6.2 in CHANGELOG.md 🔧 chore(kresus): update Kresus dependencies in DOCS.md 🔧 chore(kresus): update Kresus dependencies in README.md 🔧 chore(kresus): update Kresus dependencies in apparmor.txt 🔧 chore(kresus): update Kresus dependencies in requirements.txt 🔧 chore(kresus): update Kresus dependencies in start.sh 🔧 chore(kresus): update Kresus dependencies in translations/en.yaml 🔧 chore(kresus): update Kresus dependencies in build.yaml 🔧 chore(kresus): update Kresus dependencies in config.yaml 🔧 chore(kresus): update Kresus dependencies in icon.png 🔧 chore(kresus): update Kresus dependencies in logo.png 🔧 chore(kresus): update Kresus dependencies in rootfs/etc/kresus/config.ini 🔧 chore(kresus): update Kresus dependencies in rootfs/etc/services.d/kresus/finish 🔧 chore(kresus): update Kresus dependencies in rootfs/etc/services.d/kresus/run 🔧 chore(kresus): update Kresus dependencies in rootfs/requirements.txt 🔧 chore(kresus): update Kresus dependencies in rootfs/usr/libexec/kresus/start.sh 🔧 chore(kresus): update Kresus
This commit is contained in:
37
kresus-mrraph/CHANGELOG.md
Normal file
37
kresus-mrraph/CHANGELOG.md
Normal file
@@ -0,0 +1,37 @@
|
||||
## 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
|
||||
54
kresus-mrraph/DOCS.md
Normal file
54
kresus-mrraph/DOCS.md
Normal file
@@ -0,0 +1,54 @@
|
||||
# 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).
|
||||
108
kresus-mrraph/Dockerfile
Normal file
108
kresus-mrraph/Dockerfile
Normal file
@@ -0,0 +1,108 @@
|
||||
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 && \
|
||||
pip install -r /requirements.txt && \
|
||||
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 /
|
||||
25
kresus-mrraph/README.md
Normal file
25
kresus-mrraph/README.md
Normal file
@@ -0,0 +1,25 @@
|
||||
# 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/
|
||||
72
kresus-mrraph/apparmor.txt
Normal file
72
kresus-mrraph/apparmor.txt
Normal file
@@ -0,0 +1,72 @@
|
||||
include <tunables/global>
|
||||
|
||||
profile kresus flags=(attach_disconnected,mediate_deleted) {
|
||||
#include <abstractions/base>
|
||||
|
||||
# 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 <abstractions/base>
|
||||
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,
|
||||
}
|
||||
}
|
||||
18
kresus-mrraph/build.yaml
Normal file
18
kresus-mrraph/build.yaml
Normal file
@@ -0,0 +1,18 @@
|
||||
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
|
||||
33
kresus-mrraph/config.yaml
Normal file
33
kresus-mrraph/config.yaml
Normal file
@@ -0,0 +1,33 @@
|
||||
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
|
||||
BIN
kresus-mrraph/icon.png
Normal file
BIN
kresus-mrraph/icon.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 8.6 KiB |
BIN
kresus-mrraph/logo.png
Normal file
BIN
kresus-mrraph/logo.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 8.6 KiB |
270
kresus-mrraph/rootfs/etc/kresus/config.ini
Normal file
270
kresus-mrraph/rootfs/etc/kresus/config.ini
Normal file
@@ -0,0 +1,270 @@
|
||||
; Hi there! This is the configuration file for
|
||||
; Kresus. Please make sure to read all the options before setting up
|
||||
; Kresus for the first time.
|
||||
;
|
||||
[kresus]
|
||||
|
||||
; This is where Kresus stores additional data, as the latest bank
|
||||
; scrapping modules. It should be writeable by the user which launches
|
||||
; the Kresus executable.
|
||||
; Can be removed; defaults to HOME_DIR/.kresus.
|
||||
; Overriden by the KRESUS_DIR environment variable, if it's set.
|
||||
; Example:
|
||||
; datadir=/home/ben/.kresus
|
||||
datadir=
|
||||
|
||||
; A user id obtained from using the "kresus create-user" command.
|
||||
; This allows sharing a single database with several users. If your
|
||||
; instance is only planned to host a single user, you can keep it
|
||||
; disabled, and Kresus will know how to automatically generate a new
|
||||
; user.
|
||||
; Overriden by the KRESUS_USER_ID environment variable, if it's set.
|
||||
; Example:
|
||||
; userid=1
|
||||
userid=
|
||||
|
||||
; This is the port that Kresus will run on. It is recommended not
|
||||
; to expose it on port 80 directly but to use a reverse-proxy
|
||||
; configuration like Nginx, Caddy or Apache.
|
||||
; Can be removed; defaults to 9876.
|
||||
; Overriden by the PORT environment variable, if it's set.
|
||||
; Example:
|
||||
; port=9876
|
||||
port=
|
||||
|
||||
; The host on which the Kresus server will listen to.
|
||||
; Can be removed; defaults to 127.0.0.1.
|
||||
; Overriden by the HOST environment variable, if it's set.
|
||||
; Example:
|
||||
; host=127.0.0.1
|
||||
host=
|
||||
|
||||
; The executable version of Python that is going to get used when
|
||||
; interacting with Python scripts. This can be python or python3.
|
||||
; Can be removed; defaults to python3.
|
||||
; Overriden by the KRESUS_PYTHON_EXEC environment variable, if it's set.
|
||||
; Example:
|
||||
; python_exec=python3
|
||||
python_exec=
|
||||
|
||||
; The directory prefix in the URL, if Kresus is to be served from a
|
||||
; subdirectory. For instance, if your website is hosted at example.com
|
||||
; and the url prefix is "money", then Kresus will be reachable at
|
||||
; example.com/money. By default, it's '', meaning that Kresus has its own
|
||||
; subdomain.
|
||||
; Can be removed; defaults to "".
|
||||
; Overriden by the KRESUS_URL_PREFIX environment variable, if it's set.
|
||||
; Example:
|
||||
; url_prefix=/money
|
||||
url_prefix=
|
||||
|
||||
; A salt value used in encryption algorithms (used for instance to
|
||||
; encrypt/decrypt exports). It should be a random string value with
|
||||
; at least 16 characters if you decide to provide it.
|
||||
; Overriden by the KRESUS_SALT environment variable, if it's set.
|
||||
; Example:
|
||||
; salt=gj4J89fkjf4h29aDi0f{}fu4389sejk`9osk`
|
||||
salt=
|
||||
|
||||
; Set this to true if you want to use this instance only in demo
|
||||
; mode, and to never allow users to link their personal accounts.
|
||||
;
|
||||
; WARNING! Switching this on and off may trigger data loss. Note that it
|
||||
; is still possible to try Kresus in demo mode, even if this is not set
|
||||
; to true. Setting this to true will *force* demo mode, and prevent users
|
||||
; from leaving this mode.
|
||||
; Can be removed; defaults to false.
|
||||
; Overriden by the KRESUS_FORCE_DEMO_MODE environment variable, if it's set.
|
||||
; Example:
|
||||
; force_demo_mode=true
|
||||
force_demo_mode=
|
||||
|
||||
; If set to a string, will enable HTTP Basic Auth, by splitting the
|
||||
; string on a colon, i.e. "<username>:<passwd>"
|
||||
; 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=
|
||||
15
kresus-mrraph/rootfs/etc/services.d/kresus/finish
Executable file
15
kresus-mrraph/rootfs/etc/services.d/kresus/finish
Executable file
@@ -0,0 +1,15 @@
|
||||
#!/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"
|
||||
25
kresus-mrraph/rootfs/etc/services.d/kresus/run
Executable file
25
kresus-mrraph/rootfs/etc/services.d/kresus/run
Executable file
@@ -0,0 +1,25 @@
|
||||
#!/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
|
||||
1
kresus-mrraph/rootfs/requirements.txt
Normal file
1
kresus-mrraph/rootfs/requirements.txt
Normal file
@@ -0,0 +1 @@
|
||||
python-jose
|
||||
55
kresus-mrraph/rootfs/usr/libexec/kresus/start.sh
Executable file
55
kresus-mrraph/rootfs/usr/libexec/kresus/start.sh
Executable file
@@ -0,0 +1,55 @@
|
||||
#!/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}
|
||||
27
kresus-mrraph/translations/en.yaml
Normal file
27
kresus-mrraph/translations/en.yaml
Normal file
@@ -0,0 +1,27 @@
|
||||
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.
|
||||
Reference in New Issue
Block a user