From e434f7392e7dd98a431295c48e278c5d32eb3bce Mon Sep 17 00:00:00 2001 From: Alexandre <44178713+alexbelgium@users.noreply.github.com> Date: Tue, 18 Feb 2025 13:37:08 +0000 Subject: [PATCH] Use symlinks --- immich_2/CHANGELOG.md | 338 +++++++++++++++++ immich_2/Dockerfile | 156 ++++++++ immich_2/README.md | 74 ++++ immich_2/apparmor.txt | 66 ++++ immich_2/icon.png | Bin 0 -> 16711 bytes immich_2/logo.png | Bin 0 -> 6866 bytes .../rootfs/etc/cont-init.d/01-migrate.sh | 0 .../rootfs/etc/cont-init.d/20-folders.sh | 0 .../rootfs/etc/cont-init.d/99-run.sh | 0 immich_cuda/CHANGELOG.md | 339 +----------------- immich_cuda/Dockerfile | 157 +------- immich_cuda/README.md | 75 +--- immich_cuda/apparmor.txt | 67 +--- immich_cuda/icon.png | Bin 16711 -> 18 bytes immich_cuda/logo.png | Bin 6866 -> 18 bytes immich_cuda/rootfs | 1 + immich_openvino/CHANGELOG.md | 339 +----------------- immich_openvino/Dockerfile | 157 +------- immich_openvino/README.md | 75 +--- immich_openvino/apparmor.txt | 67 +--- immich_openvino/icon.png | Bin 16711 -> 18 bytes immich_openvino/logo.png | Bin 6866 -> 18 bytes immich_openvino/rootfs | 1 + .../rootfs/etc/cont-init.d/01-migrate.sh | 22 -- .../rootfs/etc/cont-init.d/20-folders.sh | 95 ----- .../rootfs/etc/cont-init.d/99-run.sh | 196 ---------- 26 files changed, 644 insertions(+), 1581 deletions(-) create mode 100644 immich_2/CHANGELOG.md create mode 100644 immich_2/Dockerfile create mode 100644 immich_2/README.md create mode 100644 immich_2/apparmor.txt create mode 100644 immich_2/icon.png create mode 100644 immich_2/logo.png rename {immich_cuda => immich_2}/rootfs/etc/cont-init.d/01-migrate.sh (100%) rename {immich_cuda => immich_2}/rootfs/etc/cont-init.d/20-folders.sh (100%) rename {immich_cuda => immich_2}/rootfs/etc/cont-init.d/99-run.sh (100%) mode change 100644 => 120000 immich_cuda/CHANGELOG.md mode change 100644 => 120000 immich_cuda/Dockerfile mode change 100644 => 120000 immich_cuda/README.md mode change 100644 => 120000 immich_cuda/apparmor.txt mode change 100644 => 120000 immich_cuda/icon.png mode change 100644 => 120000 immich_cuda/logo.png create mode 120000 immich_cuda/rootfs mode change 100644 => 120000 immich_openvino/CHANGELOG.md mode change 100644 => 120000 immich_openvino/Dockerfile mode change 100644 => 120000 immich_openvino/README.md mode change 100644 => 120000 immich_openvino/apparmor.txt mode change 100644 => 120000 immich_openvino/icon.png mode change 100644 => 120000 immich_openvino/logo.png create mode 120000 immich_openvino/rootfs delete mode 100755 immich_openvino/rootfs/etc/cont-init.d/01-migrate.sh delete mode 100755 immich_openvino/rootfs/etc/cont-init.d/20-folders.sh delete mode 100755 immich_openvino/rootfs/etc/cont-init.d/99-run.sh diff --git a/immich_2/CHANGELOG.md b/immich_2/CHANGELOG.md new file mode 100644 index 000000000..a43da92b9 --- /dev/null +++ b/immich_2/CHANGELOG.md @@ -0,0 +1,338 @@ +## 1.126.1-9 (17-02-2025) +- Minor bugs fixed +## 1.126.1-7 (16-02-2025) +- RISK OF BREAKING CHANGE : backup both immich & postgres before starting +- RISK OF BREAKING CHANGE : rewrite and improve database creation tool using addon options (overwritting manual database creation) +- SECURITY FIX : avoid hardcoding the postgres root password and change it if was already applied +- NEW FUNCTION : allow to define a library path outside of the data location. For example, if you specify /mnt/NAS/MyPictures as "library_location", and /mnt/NAS/Immich as "data_location", it will then create the whole structure in /mnt/NAS/Immich including the /mnt/NAS/Immich/library. However, this will just be a symlink to /mnt/NAS/MyPictures ; allowing people to still manage their hard drives in a more linear manner +- Ensure host is reachable before starting +- Autocorrect homeassistant.local to local ip +- Align configuration with /addon_configs +- Add gpu access + +## 1.126.1 (15-02-2025) +- Update to latest version from imagegenius/docker-immich (changelog : https://github.com/imagegenius/docker-immich/releases) + +## 1.125.7 (01-02-2025) +- Update to latest version from imagegenius/docker-immich (changelog : https://github.com/imagegenius/docker-immich/releases) + +## 1.125.2 (25-01-2025) +- Update to latest version from imagegenius/docker-immich (changelog : https://github.com/imagegenius/docker-immich/releases) +## 1.124.2-2 (11-01-2025) +- Minor bugs fixed + +## 1.124.2 (11-01-2025) +- Update to latest version from imagegenius/docker-immich (changelog : https://github.com/imagegenius/docker-immich/releases) + +## 1.123.0 (21-12-2024) +- Update to latest version from imagegenius/docker-immich (changelog : https://github.com/imagegenius/docker-immich/releases) + +## 1.122.3 (14-12-2024) +- Update to latest version from imagegenius/docker-immich (changelog : https://github.com/imagegenius/docker-immich/releases) +## 1.122.1-4 (10-12-2024) +- Fix compatibility with postgres 15 addon + +## 1.122.1-3 (08-12-2024) +- Fix healthcheck (thanks @red-avtovo) + +## 1.122.1-2 (08-12-2024) +- Minor bugs fixed + +## 1.122.1 (07-12-2024) +- Update to latest version from imagegenius/docker-immich (changelog : https://github.com/imagegenius/docker-immich/releases) + +## 1.121.0 (23-11-2024) +- Update to latest version from imagegenius/docker-immich (changelog : https://github.com/imagegenius/docker-immich/releases) + +## 1.120.2 (16-11-2024) +- Update to latest version from imagegenius/docker-immich (changelog : https://github.com/imagegenius/docker-immich/releases) + +## 1.120.1 (09-11-2024) +- Update to latest version from imagegenius/docker-immich (changelog : https://github.com/imagegenius/docker-immich/releases) + +## 1.119.1 (02-11-2024) +- Update to latest version from imagegenius/docker-immich (changelog : https://github.com/imagegenius/docker-immich/releases) + +## 1.118.2 (19-10-2024) +- Update to latest version from imagegenius/docker-immich (changelog : https://github.com/imagegenius/docker-immich/releases) + +## 1.117.0 (05-10-2024) +- Update to latest version from imagegenius/docker-immich (changelog : https://github.com/imagegenius/docker-immich/releases) + +## 1.116.2 (28-09-2024) +- Update to latest version from imagegenius/docker-immich (changelog : https://github.com/imagegenius/docker-immich/releases) + +## 1.115.0 (14-09-2024) +- Update to latest version from imagegenius/docker-immich (changelog : https://github.com/imagegenius/docker-immich/releases) + +## 1.114.0 (07-09-2024) +- Update to latest version from imagegenius/docker-immich (changelog : https://github.com/imagegenius/docker-immich/releases) + +## 1.113.0 (31-08-2024) +- Update to latest version from imagegenius/docker-immich (changelog : https://github.com/imagegenius/docker-immich/releases) + +## 1.112.1 (17-08-2024) +- Update to latest version from imagegenius/docker-immich (changelog : https://github.com/imagegenius/docker-immich/releases) + +## 1.111.0 (03-08-2024) +- Update to latest version from imagegenius/docker-immich (changelog : https://github.com/imagegenius/docker-immich/releases) + +## 1.110.0 (27-07-2024) +- Update to latest version from imagegenius/docker-immich (changelog : https://github.com/imagegenius/docker-immich/releases) + +## 1.109.2 (20-07-2024) +- Update to latest version from imagegenius/docker-immich (changelog : https://github.com/imagegenius/docker-immich/releases) + +## 1.108.0 (13-07-2024) +- Update to latest version from imagegenius/docker-immich (changelog : https://github.com/imagegenius/docker-immich/releases) + +## 1.107.2 (06-07-2024) +- Update to latest version from imagegenius/docker-immich (changelog : https://github.com/imagegenius/docker-immich/releases) +## 1.106.4-3 (24-06-2024) +- Minor bugs fixed +## 1.106.4-2 (15-06-2024) +- Minor bugs fixed + +## 1.106.4 (15-06-2024) +- Update to latest version from imagegenius/docker-immich (changelog : https://github.com/imagegenius/docker-immich/releases) + +## 1.105.1 (18-05-2024) +- Update to latest version from imagegenius/docker-immich (changelog : https://github.com/imagegenius/docker-immich/releases) + +## 1.103.1 (04-05-2024) +- Update to latest version from imagegenius/docker-immich (changelog : https://github.com/imagegenius/docker-immich/releases) + +## 1.102.3 (27-04-2024) +- Update to latest version from imagegenius/docker-immich (changelog : https://github.com/imagegenius/docker-immich/releases) + +## 1.101.0 (06-04-2024) +- Update to latest version from imagegenius/docker-immich (changelog : https://github.com/imagegenius/docker-immich/releases) + +## 1.100.0 (30-03-2024) +- Update to latest version from imagegenius/docker-immich (changelog : https://github.com/imagegenius/docker-immich/releases) + +## 1.99.0 (23-03-2024) +- Update to latest version from imagegenius/docker-immich + +## 1.98.2 (16-03-2024) +- Update to latest version from imagegenius/docker-immich + +## 1.98.1 (09-03-2024) + +- Minor bugs fixed + +## 1.98.0 (09-03-2024) + +- Update to latest version from imagegenius/docker-immich + +## 1.97.0 (02-03-2024) + +- Update to latest version from imagegenius/docker-immich + +## 1.95.1 (24-02-2024) + +- Update to latest version from imagegenius/docker-immich + +## 1.94.1 (03-02-2024) + +- Update to latest version from imagegenius/docker-immich +- ⚠ PLEASE BACKUP before updating! Non reversible changes +- ⚠ BREAKING change : dependency on the update postgres image for vector.rs support, it will not work if you do not update postgres ! +- ⚠ Database location changed from /data to /addon_configs/xxx-postgres : no expected user impact other that all configuration files will also be located in this folder accessible with addons such as Filebrowser + +## 1.90.2 (09-12-2023) + +- Update to latest version from imagegenius/docker-immich + +## 1.89.0 (02-12-2023) + +- Update to latest version from imagegenius/docker-immich +## 1.88.2-3 (27-11-2023) + +- Minor bugs fixed +- Fix : add REVERSE_GEOCODING_DUMP_DIRECTORY in config environment + +## 1.88.2 (25-11-2023) + +- Update to latest version from imagegenius/docker-immich +## 1.88.1-7 (24-11-2023) + +- Minor bugs fixed +## 1.88.1-6 (23-11-2023) + +- Minor bugs fixed +## 1.88.1-5 (23-11-2023) + +- Minor bugs fixed +- Fixed REDIS error + +## 1.88.1 (21-11-2023) + +- Update to latest version from imagegenius/docker-immich + +## 1.87.0 (19-11-2023) + +- Update to latest version from imagegenius/docker-immich + +## 1.86.0 (18-11-2023) + +- Update to latest version from imagegenius/docker-immich + +## 1.85.0 (11-11-2023) + +- Update to latest version from imagegenius/docker-immich + +## 1.84.0 (04-11-2023) + +- Update to latest version from imagegenius/docker-immich + +## 1.82.1 (20-10-2023) + +- Update to latest version from imagegenius/docker-immich + +## 1.81.1 (07-10-2023) + +- Update to latest version from imagegenius/docker-immich +## 1.79.1-2 (24-09-2023) + +- Minor bugs fixed +- Feat : new optional settings for ML workers and timeout https://github.com/alexbelgium/hassio-addons/issues/996 + +## 1.79.1 (23-09-2023) + +- Update to latest version from imagegenius/docker-immich +## 1.78.1-6 (22-09-2023) + +- Minor bugs fixed +## 1.78.1-5 (21-09-2023) + +- Minor bugs fixed +- YOU WILL LOSE DATA : the upstream container has removed the embedded postgres (read more https://github.com/imagegenius/docker-immich/issues/90). You now need to install and configure the postgress add-on from this same repo, and reference it in the addon options. This means you will lose your current database, and will need to recreate it from scratch. Your previous database will still be exported to the file /config/addons_config/immich/old_database.gzip. However exporting it to the postgres container is quite complex and not supported. +- BREAKING CHANGE : referencing the postgres options is now required. You can either install the postgres add-on from my repo, or this one for example : https://github.com/Expaso/hassos-addons/tree/master/timescaledb +- Switch from jammy branch to latest due to deprecation + +## 1.78.1 (16-09-2023) + +- Update to latest version from imagegenius/docker-immich + +## 1.77.0 (09-09-2023) + +- Update to latest version from imagegenius/docker-immich + +## 1.75.2 (27-08-2023) + +- Update to latest version from imagegenius/docker-immich + +## 1.75.0 (26-08-2023) + +- Update to latest version from imagegenius/docker-immich + +## 1.74.0 (26-08-2023) + +- Update to latest version from imagegenius/docker-immich + +## 1.73.0 (19-08-2023) + +- Update to latest version from imagegenius/docker-immich + +## 1.72.2 (12-08-2023) + +- Update to latest version from imagegenius/docker-immich + +## 1.71.0 (05-08-2023) + +- Update to latest version from imagegenius/docker-immich + +## 1.70.0 (29-07-2023) + +- Update to latest version from imagegenius/docker-immich + +## 1.68.0 (22-07-2023) + +- Update to latest version from imagegenius/docker-immich + +## 1.67.2 (15-07-2023) + +- Update to latest version from imagegenius/docker-immich + +## 1.66.1 (08-07-2023) + +- Update to latest version from imagegenius/docker-immich +- Beware that using the built-in Postgres 14 will likely fail at some point. It is recommended to upgrade to an external Postgres 15 database. A solution is the specific addon I've built. See https://github.com/imagegenius/docker-immich/issues/90 + +## 1.57.1-jammy (27-05-2023) + +- Minor bugs fixed +- Switch to jammy branch (new features could break but is required until a separate Postgres addon is made) + +## 1.57.1 (27-05-2023) + +- Update to latest version from imagegenius/docker-immich + +## 1.56.1 (19-05-2023) + +- Update to latest version from imagegenius/docker-immich + +## 1.55.1 (13-05-2023) + +- Update to latest version from imagegenius/docker-immich +- Feat : cifsdomain added + +## 1.54.1 (23-04-2023) + +- Update to latest version from imagegenius/docker-immich + +## 1.54.0 (21-04-2023) + +- Update to latest version from imagegenius/docker-immich + +## 1.53.0-2 (18-04-2023) + +- Minor bugs fixed +- Fix : add option `TYPESENSE_ENABLED` https://github.com/alexbelgium/hassio-addons/issues/802 + +## 1.53.0 (08-04-2023) + +- Update to latest version from imagegenius/docker-immich + +## 1.52.1 (31-03-2023) + +- Update to latest version from imagegenius/docker-immich + +## 1.51.2 (24-03-2023) + +- Update to latest version from imagegenius/docker-immich +- Implemented healthcheck + +## 1.50.1 (04-03-2023) + +- Update to latest version from imagegenius/docker-immich + +## 1.49.0 (25-02-2023) + +- Update to latest version from imagegenius/docker-immich + +## 1.47.3 (19-02-2023) + +- Update to latest version from imagegenius/docker-immich + +## 1.45.0 (04-02-2023) + +- Update to latest version from immich-app/immich + +## 1.43.1 (28-01-2023) + +- Update to latest version from immich-app/immich + +## 1.43.0 (28-01-2023) + +- Update to latest version from immich-app/immich + +## 1.42.0 (21-01-2023) + +- Update to latest version from immich-app/immich + +## 1.41.1 (14-01-2023) + +- Update to latest version from immich-app/immich +- Initial version diff --git a/immich_2/Dockerfile b/immich_2/Dockerfile new file mode 100644 index 000000000..d30c27ac4 --- /dev/null +++ b/immich_2/Dockerfile @@ -0,0 +1,156 @@ +#============================# +# ALEXBELGIUM'S DOCKERFILE # +#============================# +# _.------. +# _.-` ('>.-`"""-. +# '.--'` _'` _ .--.) +# -' '-.-';` ` +# ' - _.' ``'--. +# d '---` .-'""` +# /` +#=== Home Assistant Addon ===# + +################# +# 1 Build Image # +################# + +ARG BUILD_VERSION +ARG BUILD_FROM +FROM $BUILD_FROM + +################## +# 2 Modify Image # +################## + +# Set S6 wait time +ENV S6_CMD_WAIT_FOR_SERVICES=1 \ + S6_CMD_WAIT_FOR_SERVICES_MAXTIME=0 \ + S6_SERVICES_GRACETIME=0 + +USER root + +# Global LSIO modifications +ADD "https://raw.githubusercontent.com/alexbelgium/hassio-addons/master/.templates/ha_lsio.sh" "/ha_lsio.sh" +ARG CONFIGLOCATION="/config" +RUN chmod 744 /ha_lsio.sh && if grep -qr "lsio" /etc; then /ha_lsio.sh "$CONFIGLOCATION"; fi && rm /ha_lsio.sh + +# Install REDIS +ENV DOCKER_MODS="imagegenius/mods:universal-redis" + +# && chmod 777 -R /docker-mods \ +# && /./docker-mods/* || ls / \ +# && if [ !-f /defaults/redis.conf ]; then echo "Not installed" && exit 1; fi +#ENV DOCKER_MODS="" + +################## +# 3 Install apps # +################## + +# Add rootfs +COPY rootfs/ / + +# Uses /bin for compatibility purposes +# hadolint ignore=DL4005 +RUN if [ ! -f /bin/sh ] && [ -f /usr/bin/sh ]; then ln -s /usr/bin/sh /bin/sh; fi && \ + if [ ! -f /bin/bash ] && [ -f /usr/bin/bash ]; then ln -s /usr/bin/bash /bin/bash; fi + +# Modules +ARG MODULES="00-banner.sh 01-custom_script.sh 00-global_var.sh 00-local_mounts.sh 00-smb_mounts.sh" + +# Automatic modules download +ADD "https://raw.githubusercontent.com/alexbelgium/hassio-addons/master/.templates/ha_automodules.sh" "/ha_automodules.sh" +RUN chmod 744 /ha_automodules.sh && /ha_automodules.sh "$MODULES" && rm /ha_automodules.sh + +# Manual apps +ENV PACKAGES="sudo yamllint pip" + +# Automatic apps & bashio +ADD "https://raw.githubusercontent.com/alexbelgium/hassio-addons/master/.templates/ha_autoapps.sh" "/ha_autoapps.sh" +RUN chmod 744 /ha_autoapps.sh && /ha_autoapps.sh "$PACKAGES" && rm /ha_autoapps.sh + +################ +# 4 Entrypoint # +################ + +# Add entrypoint +ENV S6_STAGE2_HOOK=/ha_entrypoint.sh +ADD "https://raw.githubusercontent.com/alexbelgium/hassio-addons/master/.templates/ha_entrypoint.sh" "/ha_entrypoint.sh" + +# Entrypoint modifications +ADD "https://raw.githubusercontent.com/alexbelgium/hassio-addons/master/.templates/ha_entrypoint_modif.sh" "/ha_entrypoint_modif.sh" +RUN chmod 777 /ha_entrypoint.sh /ha_entrypoint_modif.sh && /ha_entrypoint_modif.sh && rm /ha_entrypoint_modif.sh + +RUN sed -i "s|postgresql-16|postgresql-15|g" /etc/s6-overlay/s6-rc.d/init-test-run/run + +# Install dependencies +RUN apt-get update && apt-get install -y --no-install-recommends \ + lsb-release \ + wget \ + gnupg && \ + echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list && \ + wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add - && \ + apt-get update && \ + apt-get install -y --no-install-recommends postgresql-client-15 + +#ENTRYPOINT [ "/usr/bin/env" ] +#CMD [ "/ha_entrypoint.sh" ] + +############ +# 5 Labels # +############ + +ARG BUILD_ARCH +ARG BUILD_DATE +ARG BUILD_DESCRIPTION +ARG BUILD_NAME +ARG BUILD_REF +ARG BUILD_REPOSITORY +ARG BUILD_VERSION +ENV BUILD_VERSION="${BUILD_VERSION}" +LABEL \ + io.hass.name="${BUILD_NAME}" \ + io.hass.description="${BUILD_DESCRIPTION}" \ + io.hass.arch="${BUILD_ARCH}" \ + io.hass.type="addon" \ + io.hass.version=${BUILD_VERSION} \ + maintainer="alexbelgium (https://github.com/alexbelgium)" \ + org.opencontainers.image.title="${BUILD_NAME}" \ + org.opencontainers.image.description="${BUILD_DESCRIPTION}" \ + org.opencontainers.image.vendor="Home Assistant Add-ons" \ + org.opencontainers.image.authors="alexbelgium (https://github.com/alexbelgium)" \ + org.opencontainers.image.licenses="MIT" \ + org.opencontainers.image.url="https://github.com/alexbelgium" \ + org.opencontainers.image.source="https://github.com/${BUILD_REPOSITORY}" \ + org.opencontainers.image.documentation="https://github.com/${BUILD_REPOSITORY}/blob/main/README.md" \ + org.opencontainers.image.created=${BUILD_DATE} \ + org.opencontainers.image.revision=${BUILD_REF} \ + org.opencontainers.image.version=${BUILD_VERSION} + +################# +# 6 Healthcheck # +################# + +# Avoid spamming logs +# hadolint ignore=SC2016 +RUN \ + # Handle Apache configuration + if [ -d /etc/apache2/sites-available ]; then \ + for file in /etc/apache2/sites-*/*.conf; do \ + sed -i '/ /etc/nginx/nginx.conf.new && \ + mv /etc/nginx/nginx.conf.new /etc/nginx/nginx.conf; \ + fi + +ENV HEALTH_PORT="8080" \ + HEALTH_URL="/api/server/ping" +HEALTHCHECK \ + --interval=5s \ + --retries=5 \ + --start-period=30s \ + --timeout=25s \ + CMD curl -A "HealthCheck: Docker/1.0" -s -f "http://127.0.0.1:${HEALTH_PORT}${HEALTH_URL}" &>/dev/null || exit 1 diff --git a/immich_2/README.md b/immich_2/README.md new file mode 100644 index 000000000..2e46d0cce --- /dev/null +++ b/immich_2/README.md @@ -0,0 +1,74 @@ +# Home assistant add-on: immich + +⚠️ The project is under very active development. Expect bugs and changes. Do not use it as the only way to store your photos and videos! (from the developer) + +[![Donate][donation-badge]](https://www.buymeacoffee.com/alexbelgium) +[![Donate][paypal-badge]](https://www.paypal.com/donate/?hosted_button_id=DZFULJZTP3UQA) + +![Version](https://img.shields.io/badge/dynamic/json?label=Version&query=%24.version&url=https%3A%2F%2Fraw.githubusercontent.com%2Falexbelgium%2Fhassio-addons%2Fmaster%2Fimmich%2Fconfig.json) +![Ingress](https://img.shields.io/badge/dynamic/json?label=Ingress&query=%24.ingress&url=https%3A%2F%2Fraw.githubusercontent.com%2Falexbelgium%2Fhassio-addons%2Fmaster%2Fimmich%2Fconfig.json) +![Arch](https://img.shields.io/badge/dynamic/json?color=success&label=Arch&query=%24.arch&url=https%3A%2F%2Fraw.githubusercontent.com%2Falexbelgium%2Fhassio-addons%2Fmaster%2Fimmich%2Fconfig.json) + +[![Codacy Badge](https://app.codacy.com/project/badge/Grade/9c6cf10bdbba45ecb202d7f579b5be0e)](https://www.codacy.com/gh/alexbelgium/hassio-addons/dashboard?utm_source=github.com&utm_medium=referral&utm_content=alexbelgium/hassio-addons&utm_campaign=Badge_Grade) +[![GitHub Super-Linter](https://img.shields.io/github/actions/workflow/status/alexbelgium/hassio-addons/weekly-supelinter.yaml?label=Lint%20code%20base)](https://github.com/alexbelgium/hassio-addons/actions/workflows/weekly-supelinter.yaml) +[![Builder](https://img.shields.io/github/actions/workflow/status/alexbelgium/hassio-addons/onpush_builder.yaml?label=Builder)](https://github.com/alexbelgium/hassio-addons/actions/workflows/onpush_builder.yaml) + +[donation-badge]: https://img.shields.io/badge/Buy%20me%20a%20coffee%20(no%20paypal)-%23d32f2f?logo=buy-me-a-coffee&style=flat&logoColor=white +[paypal-badge]: https://img.shields.io/badge/Buy%20me%20a%20coffee%20with%20Paypal-0070BA?logo=paypal&style=flat&logoColor=white + +_Thanks to everyone having starred my repo! To star it click on the image below, then it will be on top right. Thanks!_ + +[![Stargazers repo roster for @alexbelgium/hassio-addons](https://raw.githubusercontent.com/alexbelgium/hassio-addons/master/.github/stars2.svg)](https://github.com/alexbelgium/hassio-addons/stargazers) + +![downloads evolution](https://raw.githubusercontent.com/alexbelgium/hassio-addons/master/immich/stats.png) + +## About + +Web based files browser. +This addon is based on the [docker image](https://github.com/imagegenius/docker-immich) from imagegenius. + +## Configuration + +Postgresql can be either internal or external + +```yaml + "PGID": "int", + "PUID": "int", + "TZ": "str?", + "cifsdomain": "str?", + "cifspassword": "str?", + "cifsusername": "str?", + "data_location": "str", + "localdisks": "str?", + "networkdisks": "str?", + "DB_HOSTNAME": "str?", + "DB_USERNAME": "str?", + "DB_PORT": "int?", + "DB_PASSWORD": "str?", + "DB_DATABASE_NAME": "str?", + "JWT_SECRET": "str?" +``` + +## Installation + +The installation of this add-on is pretty straightforward and not different in +comparison to installing any other Hass.io add-on. + +1. [Add my Hass.io add-ons repository][repository] to your Hass.io instance. +1. Install this add-on. +1. Click the `Save` button to store your configuration. +1. Start the add-on. +1. Check the logs of the add-on to see if everything went well. +1. Carefully configure the add-on to your preferences, see the official documentation for for that. + +Beware that you need to install a separate postgres addon to be able to connect the database. You can install the postgres addon already in my repository. +Beware to change the password BEFORE starting it ; it won't change afterwards + +## Support + +Create an issue on github, or ask on the [home assistant thread](https://community.home-assistant.io/t/home-assistant-addon-immich/282108/3) + +[repository]: https://github.com/alexbelgium/hassio-addons +[aarch64-shield]: https://img.shields.io/badge/aarch64-yes-green.svg +[amd64-shield]: https://img.shields.io/badge/amd64-yes-green.svg +[armv7-shield]: https://img.shields.io/badge/armv7-yes-green.svg diff --git a/immich_2/apparmor.txt b/immich_2/apparmor.txt new file mode 100644 index 000000000..98e97c11d --- /dev/null +++ b/immich_2/apparmor.txt @@ -0,0 +1,66 @@ +#include + +profile db21ed7f_qbittorrent flags=(attach_disconnected,mediate_deleted) { + #include + + capability, + file, + signal, + mount, + umount, + remount, + network udp, + network tcp, + network dgram, + network stream, + network inet, + network inet6, + network netlink raw, + network unix dgram, + + capability setgid, + capability setuid, + capability sys_admin, + capability dac_read_search, + # capability dac_override, + # capability sys_rawio, + +# S6-Overlay + /init ix, + /run/{s6,s6-rc*,service}/** ix, + /package/** ix, + /command/** ix, + /run/{,**} rwk, + /dev/tty rw, + /bin/** ix, + /usr/bin/** ix, + /usr/lib/bashio/** ix, + /etc/s6/** rix, + /run/s6/** rix, + /etc/services.d/** rwix, + /etc/cont-init.d/** rwix, + /etc/cont-finish.d/** rwix, + /init rix, + /var/run/** mrwkl, + /var/run/ mrwkl, + /dev/i2c-1 mrwkl, + # Files required + /dev/fuse mrwkl, + /dev/sda1 mrwkl, + /dev/sdb1 mrwkl, + /dev/nvme0 mrwkl, + /dev/nvme1 mrwkl, + /dev/mmcblk0p1 mrwkl, + /dev/* mrwkl, + /tmp/** mrkwl, + + # Data access + /data/** rw, + + # suppress ptrace denials when using 'docker ps' or using 'ps' inside a container + ptrace (trace,read) peer=docker-default, + + # docker daemon confinement requires explict allow rule for signal + signal (receive) set=(kill,term) peer=/usr/bin/docker, + +} diff --git a/immich_2/icon.png b/immich_2/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..1e4d13669bcba135fca9ff1c4838412b648a57db GIT binary patch literal 16711 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 HGY|X^Xtc}t literal 0 HcmV?d00001 diff --git a/immich_cuda/rootfs/etc/cont-init.d/01-migrate.sh b/immich_2/rootfs/etc/cont-init.d/01-migrate.sh similarity index 100% rename from immich_cuda/rootfs/etc/cont-init.d/01-migrate.sh rename to immich_2/rootfs/etc/cont-init.d/01-migrate.sh diff --git a/immich_cuda/rootfs/etc/cont-init.d/20-folders.sh b/immich_2/rootfs/etc/cont-init.d/20-folders.sh similarity index 100% rename from immich_cuda/rootfs/etc/cont-init.d/20-folders.sh rename to immich_2/rootfs/etc/cont-init.d/20-folders.sh diff --git a/immich_cuda/rootfs/etc/cont-init.d/99-run.sh b/immich_2/rootfs/etc/cont-init.d/99-run.sh similarity index 100% rename from immich_cuda/rootfs/etc/cont-init.d/99-run.sh rename to immich_2/rootfs/etc/cont-init.d/99-run.sh diff --git a/immich_cuda/CHANGELOG.md b/immich_cuda/CHANGELOG.md deleted file mode 100644 index a43da92b9..000000000 --- a/immich_cuda/CHANGELOG.md +++ /dev/null @@ -1,338 +0,0 @@ -## 1.126.1-9 (17-02-2025) -- Minor bugs fixed -## 1.126.1-7 (16-02-2025) -- RISK OF BREAKING CHANGE : backup both immich & postgres before starting -- RISK OF BREAKING CHANGE : rewrite and improve database creation tool using addon options (overwritting manual database creation) -- SECURITY FIX : avoid hardcoding the postgres root password and change it if was already applied -- NEW FUNCTION : allow to define a library path outside of the data location. For example, if you specify /mnt/NAS/MyPictures as "library_location", and /mnt/NAS/Immich as "data_location", it will then create the whole structure in /mnt/NAS/Immich including the /mnt/NAS/Immich/library. However, this will just be a symlink to /mnt/NAS/MyPictures ; allowing people to still manage their hard drives in a more linear manner -- Ensure host is reachable before starting -- Autocorrect homeassistant.local to local ip -- Align configuration with /addon_configs -- Add gpu access - -## 1.126.1 (15-02-2025) -- Update to latest version from imagegenius/docker-immich (changelog : https://github.com/imagegenius/docker-immich/releases) - -## 1.125.7 (01-02-2025) -- Update to latest version from imagegenius/docker-immich (changelog : https://github.com/imagegenius/docker-immich/releases) - -## 1.125.2 (25-01-2025) -- Update to latest version from imagegenius/docker-immich (changelog : https://github.com/imagegenius/docker-immich/releases) -## 1.124.2-2 (11-01-2025) -- Minor bugs fixed - -## 1.124.2 (11-01-2025) -- Update to latest version from imagegenius/docker-immich (changelog : https://github.com/imagegenius/docker-immich/releases) - -## 1.123.0 (21-12-2024) -- Update to latest version from imagegenius/docker-immich (changelog : https://github.com/imagegenius/docker-immich/releases) - -## 1.122.3 (14-12-2024) -- Update to latest version from imagegenius/docker-immich (changelog : https://github.com/imagegenius/docker-immich/releases) -## 1.122.1-4 (10-12-2024) -- Fix compatibility with postgres 15 addon - -## 1.122.1-3 (08-12-2024) -- Fix healthcheck (thanks @red-avtovo) - -## 1.122.1-2 (08-12-2024) -- Minor bugs fixed - -## 1.122.1 (07-12-2024) -- Update to latest version from imagegenius/docker-immich (changelog : https://github.com/imagegenius/docker-immich/releases) - -## 1.121.0 (23-11-2024) -- Update to latest version from imagegenius/docker-immich (changelog : https://github.com/imagegenius/docker-immich/releases) - -## 1.120.2 (16-11-2024) -- Update to latest version from imagegenius/docker-immich (changelog : https://github.com/imagegenius/docker-immich/releases) - -## 1.120.1 (09-11-2024) -- Update to latest version from imagegenius/docker-immich (changelog : https://github.com/imagegenius/docker-immich/releases) - -## 1.119.1 (02-11-2024) -- Update to latest version from imagegenius/docker-immich (changelog : https://github.com/imagegenius/docker-immich/releases) - -## 1.118.2 (19-10-2024) -- Update to latest version from imagegenius/docker-immich (changelog : https://github.com/imagegenius/docker-immich/releases) - -## 1.117.0 (05-10-2024) -- Update to latest version from imagegenius/docker-immich (changelog : https://github.com/imagegenius/docker-immich/releases) - -## 1.116.2 (28-09-2024) -- Update to latest version from imagegenius/docker-immich (changelog : https://github.com/imagegenius/docker-immich/releases) - -## 1.115.0 (14-09-2024) -- Update to latest version from imagegenius/docker-immich (changelog : https://github.com/imagegenius/docker-immich/releases) - -## 1.114.0 (07-09-2024) -- Update to latest version from imagegenius/docker-immich (changelog : https://github.com/imagegenius/docker-immich/releases) - -## 1.113.0 (31-08-2024) -- Update to latest version from imagegenius/docker-immich (changelog : https://github.com/imagegenius/docker-immich/releases) - -## 1.112.1 (17-08-2024) -- Update to latest version from imagegenius/docker-immich (changelog : https://github.com/imagegenius/docker-immich/releases) - -## 1.111.0 (03-08-2024) -- Update to latest version from imagegenius/docker-immich (changelog : https://github.com/imagegenius/docker-immich/releases) - -## 1.110.0 (27-07-2024) -- Update to latest version from imagegenius/docker-immich (changelog : https://github.com/imagegenius/docker-immich/releases) - -## 1.109.2 (20-07-2024) -- Update to latest version from imagegenius/docker-immich (changelog : https://github.com/imagegenius/docker-immich/releases) - -## 1.108.0 (13-07-2024) -- Update to latest version from imagegenius/docker-immich (changelog : https://github.com/imagegenius/docker-immich/releases) - -## 1.107.2 (06-07-2024) -- Update to latest version from imagegenius/docker-immich (changelog : https://github.com/imagegenius/docker-immich/releases) -## 1.106.4-3 (24-06-2024) -- Minor bugs fixed -## 1.106.4-2 (15-06-2024) -- Minor bugs fixed - -## 1.106.4 (15-06-2024) -- Update to latest version from imagegenius/docker-immich (changelog : https://github.com/imagegenius/docker-immich/releases) - -## 1.105.1 (18-05-2024) -- Update to latest version from imagegenius/docker-immich (changelog : https://github.com/imagegenius/docker-immich/releases) - -## 1.103.1 (04-05-2024) -- Update to latest version from imagegenius/docker-immich (changelog : https://github.com/imagegenius/docker-immich/releases) - -## 1.102.3 (27-04-2024) -- Update to latest version from imagegenius/docker-immich (changelog : https://github.com/imagegenius/docker-immich/releases) - -## 1.101.0 (06-04-2024) -- Update to latest version from imagegenius/docker-immich (changelog : https://github.com/imagegenius/docker-immich/releases) - -## 1.100.0 (30-03-2024) -- Update to latest version from imagegenius/docker-immich (changelog : https://github.com/imagegenius/docker-immich/releases) - -## 1.99.0 (23-03-2024) -- Update to latest version from imagegenius/docker-immich - -## 1.98.2 (16-03-2024) -- Update to latest version from imagegenius/docker-immich - -## 1.98.1 (09-03-2024) - -- Minor bugs fixed - -## 1.98.0 (09-03-2024) - -- Update to latest version from imagegenius/docker-immich - -## 1.97.0 (02-03-2024) - -- Update to latest version from imagegenius/docker-immich - -## 1.95.1 (24-02-2024) - -- Update to latest version from imagegenius/docker-immich - -## 1.94.1 (03-02-2024) - -- Update to latest version from imagegenius/docker-immich -- ⚠ PLEASE BACKUP before updating! Non reversible changes -- ⚠ BREAKING change : dependency on the update postgres image for vector.rs support, it will not work if you do not update postgres ! -- ⚠ Database location changed from /data to /addon_configs/xxx-postgres : no expected user impact other that all configuration files will also be located in this folder accessible with addons such as Filebrowser - -## 1.90.2 (09-12-2023) - -- Update to latest version from imagegenius/docker-immich - -## 1.89.0 (02-12-2023) - -- Update to latest version from imagegenius/docker-immich -## 1.88.2-3 (27-11-2023) - -- Minor bugs fixed -- Fix : add REVERSE_GEOCODING_DUMP_DIRECTORY in config environment - -## 1.88.2 (25-11-2023) - -- Update to latest version from imagegenius/docker-immich -## 1.88.1-7 (24-11-2023) - -- Minor bugs fixed -## 1.88.1-6 (23-11-2023) - -- Minor bugs fixed -## 1.88.1-5 (23-11-2023) - -- Minor bugs fixed -- Fixed REDIS error - -## 1.88.1 (21-11-2023) - -- Update to latest version from imagegenius/docker-immich - -## 1.87.0 (19-11-2023) - -- Update to latest version from imagegenius/docker-immich - -## 1.86.0 (18-11-2023) - -- Update to latest version from imagegenius/docker-immich - -## 1.85.0 (11-11-2023) - -- Update to latest version from imagegenius/docker-immich - -## 1.84.0 (04-11-2023) - -- Update to latest version from imagegenius/docker-immich - -## 1.82.1 (20-10-2023) - -- Update to latest version from imagegenius/docker-immich - -## 1.81.1 (07-10-2023) - -- Update to latest version from imagegenius/docker-immich -## 1.79.1-2 (24-09-2023) - -- Minor bugs fixed -- Feat : new optional settings for ML workers and timeout https://github.com/alexbelgium/hassio-addons/issues/996 - -## 1.79.1 (23-09-2023) - -- Update to latest version from imagegenius/docker-immich -## 1.78.1-6 (22-09-2023) - -- Minor bugs fixed -## 1.78.1-5 (21-09-2023) - -- Minor bugs fixed -- YOU WILL LOSE DATA : the upstream container has removed the embedded postgres (read more https://github.com/imagegenius/docker-immich/issues/90). You now need to install and configure the postgress add-on from this same repo, and reference it in the addon options. This means you will lose your current database, and will need to recreate it from scratch. Your previous database will still be exported to the file /config/addons_config/immich/old_database.gzip. However exporting it to the postgres container is quite complex and not supported. -- BREAKING CHANGE : referencing the postgres options is now required. You can either install the postgres add-on from my repo, or this one for example : https://github.com/Expaso/hassos-addons/tree/master/timescaledb -- Switch from jammy branch to latest due to deprecation - -## 1.78.1 (16-09-2023) - -- Update to latest version from imagegenius/docker-immich - -## 1.77.0 (09-09-2023) - -- Update to latest version from imagegenius/docker-immich - -## 1.75.2 (27-08-2023) - -- Update to latest version from imagegenius/docker-immich - -## 1.75.0 (26-08-2023) - -- Update to latest version from imagegenius/docker-immich - -## 1.74.0 (26-08-2023) - -- Update to latest version from imagegenius/docker-immich - -## 1.73.0 (19-08-2023) - -- Update to latest version from imagegenius/docker-immich - -## 1.72.2 (12-08-2023) - -- Update to latest version from imagegenius/docker-immich - -## 1.71.0 (05-08-2023) - -- Update to latest version from imagegenius/docker-immich - -## 1.70.0 (29-07-2023) - -- Update to latest version from imagegenius/docker-immich - -## 1.68.0 (22-07-2023) - -- Update to latest version from imagegenius/docker-immich - -## 1.67.2 (15-07-2023) - -- Update to latest version from imagegenius/docker-immich - -## 1.66.1 (08-07-2023) - -- Update to latest version from imagegenius/docker-immich -- Beware that using the built-in Postgres 14 will likely fail at some point. It is recommended to upgrade to an external Postgres 15 database. A solution is the specific addon I've built. See https://github.com/imagegenius/docker-immich/issues/90 - -## 1.57.1-jammy (27-05-2023) - -- Minor bugs fixed -- Switch to jammy branch (new features could break but is required until a separate Postgres addon is made) - -## 1.57.1 (27-05-2023) - -- Update to latest version from imagegenius/docker-immich - -## 1.56.1 (19-05-2023) - -- Update to latest version from imagegenius/docker-immich - -## 1.55.1 (13-05-2023) - -- Update to latest version from imagegenius/docker-immich -- Feat : cifsdomain added - -## 1.54.1 (23-04-2023) - -- Update to latest version from imagegenius/docker-immich - -## 1.54.0 (21-04-2023) - -- Update to latest version from imagegenius/docker-immich - -## 1.53.0-2 (18-04-2023) - -- Minor bugs fixed -- Fix : add option `TYPESENSE_ENABLED` https://github.com/alexbelgium/hassio-addons/issues/802 - -## 1.53.0 (08-04-2023) - -- Update to latest version from imagegenius/docker-immich - -## 1.52.1 (31-03-2023) - -- Update to latest version from imagegenius/docker-immich - -## 1.51.2 (24-03-2023) - -- Update to latest version from imagegenius/docker-immich -- Implemented healthcheck - -## 1.50.1 (04-03-2023) - -- Update to latest version from imagegenius/docker-immich - -## 1.49.0 (25-02-2023) - -- Update to latest version from imagegenius/docker-immich - -## 1.47.3 (19-02-2023) - -- Update to latest version from imagegenius/docker-immich - -## 1.45.0 (04-02-2023) - -- Update to latest version from immich-app/immich - -## 1.43.1 (28-01-2023) - -- Update to latest version from immich-app/immich - -## 1.43.0 (28-01-2023) - -- Update to latest version from immich-app/immich - -## 1.42.0 (21-01-2023) - -- Update to latest version from immich-app/immich - -## 1.41.1 (14-01-2023) - -- Update to latest version from immich-app/immich -- Initial version diff --git a/immich_cuda/CHANGELOG.md b/immich_cuda/CHANGELOG.md new file mode 120000 index 000000000..eb6700f91 --- /dev/null +++ b/immich_cuda/CHANGELOG.md @@ -0,0 +1 @@ +../immich/CHANGELOG.md \ No newline at end of file diff --git a/immich_cuda/Dockerfile b/immich_cuda/Dockerfile deleted file mode 100644 index d30c27ac4..000000000 --- a/immich_cuda/Dockerfile +++ /dev/null @@ -1,156 +0,0 @@ -#============================# -# ALEXBELGIUM'S DOCKERFILE # -#============================# -# _.------. -# _.-` ('>.-`"""-. -# '.--'` _'` _ .--.) -# -' '-.-';` ` -# ' - _.' ``'--. -# d '---` .-'""` -# /` -#=== Home Assistant Addon ===# - -################# -# 1 Build Image # -################# - -ARG BUILD_VERSION -ARG BUILD_FROM -FROM $BUILD_FROM - -################## -# 2 Modify Image # -################## - -# Set S6 wait time -ENV S6_CMD_WAIT_FOR_SERVICES=1 \ - S6_CMD_WAIT_FOR_SERVICES_MAXTIME=0 \ - S6_SERVICES_GRACETIME=0 - -USER root - -# Global LSIO modifications -ADD "https://raw.githubusercontent.com/alexbelgium/hassio-addons/master/.templates/ha_lsio.sh" "/ha_lsio.sh" -ARG CONFIGLOCATION="/config" -RUN chmod 744 /ha_lsio.sh && if grep -qr "lsio" /etc; then /ha_lsio.sh "$CONFIGLOCATION"; fi && rm /ha_lsio.sh - -# Install REDIS -ENV DOCKER_MODS="imagegenius/mods:universal-redis" - -# && chmod 777 -R /docker-mods \ -# && /./docker-mods/* || ls / \ -# && if [ !-f /defaults/redis.conf ]; then echo "Not installed" && exit 1; fi -#ENV DOCKER_MODS="" - -################## -# 3 Install apps # -################## - -# Add rootfs -COPY rootfs/ / - -# Uses /bin for compatibility purposes -# hadolint ignore=DL4005 -RUN if [ ! -f /bin/sh ] && [ -f /usr/bin/sh ]; then ln -s /usr/bin/sh /bin/sh; fi && \ - if [ ! -f /bin/bash ] && [ -f /usr/bin/bash ]; then ln -s /usr/bin/bash /bin/bash; fi - -# Modules -ARG MODULES="00-banner.sh 01-custom_script.sh 00-global_var.sh 00-local_mounts.sh 00-smb_mounts.sh" - -# Automatic modules download -ADD "https://raw.githubusercontent.com/alexbelgium/hassio-addons/master/.templates/ha_automodules.sh" "/ha_automodules.sh" -RUN chmod 744 /ha_automodules.sh && /ha_automodules.sh "$MODULES" && rm /ha_automodules.sh - -# Manual apps -ENV PACKAGES="sudo yamllint pip" - -# Automatic apps & bashio -ADD "https://raw.githubusercontent.com/alexbelgium/hassio-addons/master/.templates/ha_autoapps.sh" "/ha_autoapps.sh" -RUN chmod 744 /ha_autoapps.sh && /ha_autoapps.sh "$PACKAGES" && rm /ha_autoapps.sh - -################ -# 4 Entrypoint # -################ - -# Add entrypoint -ENV S6_STAGE2_HOOK=/ha_entrypoint.sh -ADD "https://raw.githubusercontent.com/alexbelgium/hassio-addons/master/.templates/ha_entrypoint.sh" "/ha_entrypoint.sh" - -# Entrypoint modifications -ADD "https://raw.githubusercontent.com/alexbelgium/hassio-addons/master/.templates/ha_entrypoint_modif.sh" "/ha_entrypoint_modif.sh" -RUN chmod 777 /ha_entrypoint.sh /ha_entrypoint_modif.sh && /ha_entrypoint_modif.sh && rm /ha_entrypoint_modif.sh - -RUN sed -i "s|postgresql-16|postgresql-15|g" /etc/s6-overlay/s6-rc.d/init-test-run/run - -# Install dependencies -RUN apt-get update && apt-get install -y --no-install-recommends \ - lsb-release \ - wget \ - gnupg && \ - echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list && \ - wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add - && \ - apt-get update && \ - apt-get install -y --no-install-recommends postgresql-client-15 - -#ENTRYPOINT [ "/usr/bin/env" ] -#CMD [ "/ha_entrypoint.sh" ] - -############ -# 5 Labels # -############ - -ARG BUILD_ARCH -ARG BUILD_DATE -ARG BUILD_DESCRIPTION -ARG BUILD_NAME -ARG BUILD_REF -ARG BUILD_REPOSITORY -ARG BUILD_VERSION -ENV BUILD_VERSION="${BUILD_VERSION}" -LABEL \ - io.hass.name="${BUILD_NAME}" \ - io.hass.description="${BUILD_DESCRIPTION}" \ - io.hass.arch="${BUILD_ARCH}" \ - io.hass.type="addon" \ - io.hass.version=${BUILD_VERSION} \ - maintainer="alexbelgium (https://github.com/alexbelgium)" \ - org.opencontainers.image.title="${BUILD_NAME}" \ - org.opencontainers.image.description="${BUILD_DESCRIPTION}" \ - org.opencontainers.image.vendor="Home Assistant Add-ons" \ - org.opencontainers.image.authors="alexbelgium (https://github.com/alexbelgium)" \ - org.opencontainers.image.licenses="MIT" \ - org.opencontainers.image.url="https://github.com/alexbelgium" \ - org.opencontainers.image.source="https://github.com/${BUILD_REPOSITORY}" \ - org.opencontainers.image.documentation="https://github.com/${BUILD_REPOSITORY}/blob/main/README.md" \ - org.opencontainers.image.created=${BUILD_DATE} \ - org.opencontainers.image.revision=${BUILD_REF} \ - org.opencontainers.image.version=${BUILD_VERSION} - -################# -# 6 Healthcheck # -################# - -# Avoid spamming logs -# hadolint ignore=SC2016 -RUN \ - # Handle Apache configuration - if [ -d /etc/apache2/sites-available ]; then \ - for file in /etc/apache2/sites-*/*.conf; do \ - sed -i '/ /etc/nginx/nginx.conf.new && \ - mv /etc/nginx/nginx.conf.new /etc/nginx/nginx.conf; \ - fi - -ENV HEALTH_PORT="8080" \ - HEALTH_URL="/api/server/ping" -HEALTHCHECK \ - --interval=5s \ - --retries=5 \ - --start-period=30s \ - --timeout=25s \ - CMD curl -A "HealthCheck: Docker/1.0" -s -f "http://127.0.0.1:${HEALTH_PORT}${HEALTH_URL}" &>/dev/null || exit 1 diff --git a/immich_cuda/Dockerfile b/immich_cuda/Dockerfile new file mode 120000 index 000000000..00fe01b0e --- /dev/null +++ b/immich_cuda/Dockerfile @@ -0,0 +1 @@ +../immich/Dockerfile \ No newline at end of file diff --git a/immich_cuda/README.md b/immich_cuda/README.md deleted file mode 100644 index 2e46d0cce..000000000 --- a/immich_cuda/README.md +++ /dev/null @@ -1,74 +0,0 @@ -# Home assistant add-on: immich - -⚠️ The project is under very active development. Expect bugs and changes. Do not use it as the only way to store your photos and videos! (from the developer) - -[![Donate][donation-badge]](https://www.buymeacoffee.com/alexbelgium) -[![Donate][paypal-badge]](https://www.paypal.com/donate/?hosted_button_id=DZFULJZTP3UQA) - -![Version](https://img.shields.io/badge/dynamic/json?label=Version&query=%24.version&url=https%3A%2F%2Fraw.githubusercontent.com%2Falexbelgium%2Fhassio-addons%2Fmaster%2Fimmich%2Fconfig.json) -![Ingress](https://img.shields.io/badge/dynamic/json?label=Ingress&query=%24.ingress&url=https%3A%2F%2Fraw.githubusercontent.com%2Falexbelgium%2Fhassio-addons%2Fmaster%2Fimmich%2Fconfig.json) -![Arch](https://img.shields.io/badge/dynamic/json?color=success&label=Arch&query=%24.arch&url=https%3A%2F%2Fraw.githubusercontent.com%2Falexbelgium%2Fhassio-addons%2Fmaster%2Fimmich%2Fconfig.json) - -[![Codacy Badge](https://app.codacy.com/project/badge/Grade/9c6cf10bdbba45ecb202d7f579b5be0e)](https://www.codacy.com/gh/alexbelgium/hassio-addons/dashboard?utm_source=github.com&utm_medium=referral&utm_content=alexbelgium/hassio-addons&utm_campaign=Badge_Grade) -[![GitHub Super-Linter](https://img.shields.io/github/actions/workflow/status/alexbelgium/hassio-addons/weekly-supelinter.yaml?label=Lint%20code%20base)](https://github.com/alexbelgium/hassio-addons/actions/workflows/weekly-supelinter.yaml) -[![Builder](https://img.shields.io/github/actions/workflow/status/alexbelgium/hassio-addons/onpush_builder.yaml?label=Builder)](https://github.com/alexbelgium/hassio-addons/actions/workflows/onpush_builder.yaml) - -[donation-badge]: https://img.shields.io/badge/Buy%20me%20a%20coffee%20(no%20paypal)-%23d32f2f?logo=buy-me-a-coffee&style=flat&logoColor=white -[paypal-badge]: https://img.shields.io/badge/Buy%20me%20a%20coffee%20with%20Paypal-0070BA?logo=paypal&style=flat&logoColor=white - -_Thanks to everyone having starred my repo! To star it click on the image below, then it will be on top right. Thanks!_ - -[![Stargazers repo roster for @alexbelgium/hassio-addons](https://raw.githubusercontent.com/alexbelgium/hassio-addons/master/.github/stars2.svg)](https://github.com/alexbelgium/hassio-addons/stargazers) - -![downloads evolution](https://raw.githubusercontent.com/alexbelgium/hassio-addons/master/immich/stats.png) - -## About - -Web based files browser. -This addon is based on the [docker image](https://github.com/imagegenius/docker-immich) from imagegenius. - -## Configuration - -Postgresql can be either internal or external - -```yaml - "PGID": "int", - "PUID": "int", - "TZ": "str?", - "cifsdomain": "str?", - "cifspassword": "str?", - "cifsusername": "str?", - "data_location": "str", - "localdisks": "str?", - "networkdisks": "str?", - "DB_HOSTNAME": "str?", - "DB_USERNAME": "str?", - "DB_PORT": "int?", - "DB_PASSWORD": "str?", - "DB_DATABASE_NAME": "str?", - "JWT_SECRET": "str?" -``` - -## Installation - -The installation of this add-on is pretty straightforward and not different in -comparison to installing any other Hass.io add-on. - -1. [Add my Hass.io add-ons repository][repository] to your Hass.io instance. -1. Install this add-on. -1. Click the `Save` button to store your configuration. -1. Start the add-on. -1. Check the logs of the add-on to see if everything went well. -1. Carefully configure the add-on to your preferences, see the official documentation for for that. - -Beware that you need to install a separate postgres addon to be able to connect the database. You can install the postgres addon already in my repository. -Beware to change the password BEFORE starting it ; it won't change afterwards - -## Support - -Create an issue on github, or ask on the [home assistant thread](https://community.home-assistant.io/t/home-assistant-addon-immich/282108/3) - -[repository]: https://github.com/alexbelgium/hassio-addons -[aarch64-shield]: https://img.shields.io/badge/aarch64-yes-green.svg -[amd64-shield]: https://img.shields.io/badge/amd64-yes-green.svg -[armv7-shield]: https://img.shields.io/badge/armv7-yes-green.svg diff --git a/immich_cuda/README.md b/immich_cuda/README.md new file mode 120000 index 000000000..e06be8b26 --- /dev/null +++ b/immich_cuda/README.md @@ -0,0 +1 @@ +../immich/README.md \ No newline at end of file diff --git a/immich_cuda/apparmor.txt b/immich_cuda/apparmor.txt deleted file mode 100644 index 98e97c11d..000000000 --- a/immich_cuda/apparmor.txt +++ /dev/null @@ -1,66 +0,0 @@ -#include - -profile db21ed7f_qbittorrent flags=(attach_disconnected,mediate_deleted) { - #include - - capability, - file, - signal, - mount, - umount, - remount, - network udp, - network tcp, - network dgram, - network stream, - network inet, - network inet6, - network netlink raw, - network unix dgram, - - capability setgid, - capability setuid, - capability sys_admin, - capability dac_read_search, - # capability dac_override, - # capability sys_rawio, - -# S6-Overlay - /init ix, - /run/{s6,s6-rc*,service}/** ix, - /package/** ix, - /command/** ix, - /run/{,**} rwk, - /dev/tty rw, - /bin/** ix, - /usr/bin/** ix, - /usr/lib/bashio/** ix, - /etc/s6/** rix, - /run/s6/** rix, - /etc/services.d/** rwix, - /etc/cont-init.d/** rwix, - /etc/cont-finish.d/** rwix, - /init rix, - /var/run/** mrwkl, - /var/run/ mrwkl, - /dev/i2c-1 mrwkl, - # Files required - /dev/fuse mrwkl, - /dev/sda1 mrwkl, - /dev/sdb1 mrwkl, - /dev/nvme0 mrwkl, - /dev/nvme1 mrwkl, - /dev/mmcblk0p1 mrwkl, - /dev/* mrwkl, - /tmp/** mrkwl, - - # Data access - /data/** rw, - - # suppress ptrace denials when using 'docker ps' or using 'ps' inside a container - ptrace (trace,read) peer=docker-default, - - # docker daemon confinement requires explict allow rule for signal - signal (receive) set=(kill,term) peer=/usr/bin/docker, - -} diff --git a/immich_cuda/apparmor.txt b/immich_cuda/apparmor.txt new file mode 120000 index 000000000..b61f3f896 --- /dev/null +++ b/immich_cuda/apparmor.txt @@ -0,0 +1 @@ +../immich/apparmor.txt \ No newline at end of file diff --git a/immich_cuda/icon.png b/immich_cuda/icon.png deleted file mode 100644 index 1e4d13669bcba135fca9ff1c4838412b648a57db..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16711 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 HGY|X^Xtc}t diff --git a/immich_cuda/logo.png b/immich_cuda/logo.png new file mode 120000 index 000000000..35842927f --- /dev/null +++ b/immich_cuda/logo.png @@ -0,0 +1 @@ +../immich/logo.png \ No newline at end of file diff --git a/immich_cuda/rootfs b/immich_cuda/rootfs new file mode 120000 index 000000000..66bd91c22 --- /dev/null +++ b/immich_cuda/rootfs @@ -0,0 +1 @@ +../immich/rootfs \ No newline at end of file diff --git a/immich_openvino/CHANGELOG.md b/immich_openvino/CHANGELOG.md deleted file mode 100644 index c915fb877..000000000 --- a/immich_openvino/CHANGELOG.md +++ /dev/null @@ -1,338 +0,0 @@ -## 1.126.1-10 (17-02-2025) -- Minor bugs fixed -## 1.126.1-7 (16-02-2025) -- RISK OF BREAKING CHANGE : backup both immich & postgres before starting -- RISK OF BREAKING CHANGE : rewrite and improve database creation tool using addon options (overwritting manual database creation) -- SECURITY FIX : avoid hardcoding the postgres root password and change it if was already applied -- NEW FUNCTION : allow to define a library path outside of the data location. For example, if you specify /mnt/NAS/MyPictures as "library_location", and /mnt/NAS/Immich as "data_location", it will then create the whole structure in /mnt/NAS/Immich including the /mnt/NAS/Immich/library. However, this will just be a symlink to /mnt/NAS/MyPictures ; allowing people to still manage their hard drives in a more linear manner -- Ensure host is reachable before starting -- Autocorrect homeassistant.local to local ip -- Align configuration with /addon_configs -- Add gpu access - -## 1.126.1 (15-02-2025) -- Update to latest version from imagegenius/docker-immich (changelog : https://github.com/imagegenius/docker-immich/releases) - -## 1.125.7 (01-02-2025) -- Update to latest version from imagegenius/docker-immich (changelog : https://github.com/imagegenius/docker-immich/releases) - -## 1.125.2 (25-01-2025) -- Update to latest version from imagegenius/docker-immich (changelog : https://github.com/imagegenius/docker-immich/releases) -## 1.124.2-2 (11-01-2025) -- Minor bugs fixed - -## 1.124.2 (11-01-2025) -- Update to latest version from imagegenius/docker-immich (changelog : https://github.com/imagegenius/docker-immich/releases) - -## 1.123.0 (21-12-2024) -- Update to latest version from imagegenius/docker-immich (changelog : https://github.com/imagegenius/docker-immich/releases) - -## 1.122.3 (14-12-2024) -- Update to latest version from imagegenius/docker-immich (changelog : https://github.com/imagegenius/docker-immich/releases) -## 1.122.1-4 (10-12-2024) -- Fix compatibility with postgres 15 addon - -## 1.122.1-3 (08-12-2024) -- Fix healthcheck (thanks @red-avtovo) - -## 1.122.1-2 (08-12-2024) -- Minor bugs fixed - -## 1.122.1 (07-12-2024) -- Update to latest version from imagegenius/docker-immich (changelog : https://github.com/imagegenius/docker-immich/releases) - -## 1.121.0 (23-11-2024) -- Update to latest version from imagegenius/docker-immich (changelog : https://github.com/imagegenius/docker-immich/releases) - -## 1.120.2 (16-11-2024) -- Update to latest version from imagegenius/docker-immich (changelog : https://github.com/imagegenius/docker-immich/releases) - -## 1.120.1 (09-11-2024) -- Update to latest version from imagegenius/docker-immich (changelog : https://github.com/imagegenius/docker-immich/releases) - -## 1.119.1 (02-11-2024) -- Update to latest version from imagegenius/docker-immich (changelog : https://github.com/imagegenius/docker-immich/releases) - -## 1.118.2 (19-10-2024) -- Update to latest version from imagegenius/docker-immich (changelog : https://github.com/imagegenius/docker-immich/releases) - -## 1.117.0 (05-10-2024) -- Update to latest version from imagegenius/docker-immich (changelog : https://github.com/imagegenius/docker-immich/releases) - -## 1.116.2 (28-09-2024) -- Update to latest version from imagegenius/docker-immich (changelog : https://github.com/imagegenius/docker-immich/releases) - -## 1.115.0 (14-09-2024) -- Update to latest version from imagegenius/docker-immich (changelog : https://github.com/imagegenius/docker-immich/releases) - -## 1.114.0 (07-09-2024) -- Update to latest version from imagegenius/docker-immich (changelog : https://github.com/imagegenius/docker-immich/releases) - -## 1.113.0 (31-08-2024) -- Update to latest version from imagegenius/docker-immich (changelog : https://github.com/imagegenius/docker-immich/releases) - -## 1.112.1 (17-08-2024) -- Update to latest version from imagegenius/docker-immich (changelog : https://github.com/imagegenius/docker-immich/releases) - -## 1.111.0 (03-08-2024) -- Update to latest version from imagegenius/docker-immich (changelog : https://github.com/imagegenius/docker-immich/releases) - -## 1.110.0 (27-07-2024) -- Update to latest version from imagegenius/docker-immich (changelog : https://github.com/imagegenius/docker-immich/releases) - -## 1.109.2 (20-07-2024) -- Update to latest version from imagegenius/docker-immich (changelog : https://github.com/imagegenius/docker-immich/releases) - -## 1.108.0 (13-07-2024) -- Update to latest version from imagegenius/docker-immich (changelog : https://github.com/imagegenius/docker-immich/releases) - -## 1.107.2 (06-07-2024) -- Update to latest version from imagegenius/docker-immich (changelog : https://github.com/imagegenius/docker-immich/releases) -## 1.106.4-3 (24-06-2024) -- Minor bugs fixed -## 1.106.4-2 (15-06-2024) -- Minor bugs fixed - -## 1.106.4 (15-06-2024) -- Update to latest version from imagegenius/docker-immich (changelog : https://github.com/imagegenius/docker-immich/releases) - -## 1.105.1 (18-05-2024) -- Update to latest version from imagegenius/docker-immich (changelog : https://github.com/imagegenius/docker-immich/releases) - -## 1.103.1 (04-05-2024) -- Update to latest version from imagegenius/docker-immich (changelog : https://github.com/imagegenius/docker-immich/releases) - -## 1.102.3 (27-04-2024) -- Update to latest version from imagegenius/docker-immich (changelog : https://github.com/imagegenius/docker-immich/releases) - -## 1.101.0 (06-04-2024) -- Update to latest version from imagegenius/docker-immich (changelog : https://github.com/imagegenius/docker-immich/releases) - -## 1.100.0 (30-03-2024) -- Update to latest version from imagegenius/docker-immich (changelog : https://github.com/imagegenius/docker-immich/releases) - -## 1.99.0 (23-03-2024) -- Update to latest version from imagegenius/docker-immich - -## 1.98.2 (16-03-2024) -- Update to latest version from imagegenius/docker-immich - -## 1.98.1 (09-03-2024) - -- Minor bugs fixed - -## 1.98.0 (09-03-2024) - -- Update to latest version from imagegenius/docker-immich - -## 1.97.0 (02-03-2024) - -- Update to latest version from imagegenius/docker-immich - -## 1.95.1 (24-02-2024) - -- Update to latest version from imagegenius/docker-immich - -## 1.94.1 (03-02-2024) - -- Update to latest version from imagegenius/docker-immich -- ⚠ PLEASE BACKUP before updating! Non reversible changes -- ⚠ BREAKING change : dependency on the update postgres image for vector.rs support, it will not work if you do not update postgres ! -- ⚠ Database location changed from /data to /addon_configs/xxx-postgres : no expected user impact other that all configuration files will also be located in this folder accessible with addons such as Filebrowser - -## 1.90.2 (09-12-2023) - -- Update to latest version from imagegenius/docker-immich - -## 1.89.0 (02-12-2023) - -- Update to latest version from imagegenius/docker-immich -## 1.88.2-3 (27-11-2023) - -- Minor bugs fixed -- Fix : add REVERSE_GEOCODING_DUMP_DIRECTORY in config environment - -## 1.88.2 (25-11-2023) - -- Update to latest version from imagegenius/docker-immich -## 1.88.1-7 (24-11-2023) - -- Minor bugs fixed -## 1.88.1-6 (23-11-2023) - -- Minor bugs fixed -## 1.88.1-5 (23-11-2023) - -- Minor bugs fixed -- Fixed REDIS error - -## 1.88.1 (21-11-2023) - -- Update to latest version from imagegenius/docker-immich - -## 1.87.0 (19-11-2023) - -- Update to latest version from imagegenius/docker-immich - -## 1.86.0 (18-11-2023) - -- Update to latest version from imagegenius/docker-immich - -## 1.85.0 (11-11-2023) - -- Update to latest version from imagegenius/docker-immich - -## 1.84.0 (04-11-2023) - -- Update to latest version from imagegenius/docker-immich - -## 1.82.1 (20-10-2023) - -- Update to latest version from imagegenius/docker-immich - -## 1.81.1 (07-10-2023) - -- Update to latest version from imagegenius/docker-immich -## 1.79.1-2 (24-09-2023) - -- Minor bugs fixed -- Feat : new optional settings for ML workers and timeout https://github.com/alexbelgium/hassio-addons/issues/996 - -## 1.79.1 (23-09-2023) - -- Update to latest version from imagegenius/docker-immich -## 1.78.1-6 (22-09-2023) - -- Minor bugs fixed -## 1.78.1-5 (21-09-2023) - -- Minor bugs fixed -- YOU WILL LOSE DATA : the upstream container has removed the embedded postgres (read more https://github.com/imagegenius/docker-immich/issues/90). You now need to install and configure the postgress add-on from this same repo, and reference it in the addon options. This means you will lose your current database, and will need to recreate it from scratch. Your previous database will still be exported to the file /config/addons_config/immich/old_database.gzip. However exporting it to the postgres container is quite complex and not supported. -- BREAKING CHANGE : referencing the postgres options is now required. You can either install the postgres add-on from my repo, or this one for example : https://github.com/Expaso/hassos-addons/tree/master/timescaledb -- Switch from jammy branch to latest due to deprecation - -## 1.78.1 (16-09-2023) - -- Update to latest version from imagegenius/docker-immich - -## 1.77.0 (09-09-2023) - -- Update to latest version from imagegenius/docker-immich - -## 1.75.2 (27-08-2023) - -- Update to latest version from imagegenius/docker-immich - -## 1.75.0 (26-08-2023) - -- Update to latest version from imagegenius/docker-immich - -## 1.74.0 (26-08-2023) - -- Update to latest version from imagegenius/docker-immich - -## 1.73.0 (19-08-2023) - -- Update to latest version from imagegenius/docker-immich - -## 1.72.2 (12-08-2023) - -- Update to latest version from imagegenius/docker-immich - -## 1.71.0 (05-08-2023) - -- Update to latest version from imagegenius/docker-immich - -## 1.70.0 (29-07-2023) - -- Update to latest version from imagegenius/docker-immich - -## 1.68.0 (22-07-2023) - -- Update to latest version from imagegenius/docker-immich - -## 1.67.2 (15-07-2023) - -- Update to latest version from imagegenius/docker-immich - -## 1.66.1 (08-07-2023) - -- Update to latest version from imagegenius/docker-immich -- Beware that using the built-in Postgres 14 will likely fail at some point. It is recommended to upgrade to an external Postgres 15 database. A solution is the specific addon I've built. See https://github.com/imagegenius/docker-immich/issues/90 - -## 1.57.1-jammy (27-05-2023) - -- Minor bugs fixed -- Switch to jammy branch (new features could break but is required until a separate Postgres addon is made) - -## 1.57.1 (27-05-2023) - -- Update to latest version from imagegenius/docker-immich - -## 1.56.1 (19-05-2023) - -- Update to latest version from imagegenius/docker-immich - -## 1.55.1 (13-05-2023) - -- Update to latest version from imagegenius/docker-immich -- Feat : cifsdomain added - -## 1.54.1 (23-04-2023) - -- Update to latest version from imagegenius/docker-immich - -## 1.54.0 (21-04-2023) - -- Update to latest version from imagegenius/docker-immich - -## 1.53.0-2 (18-04-2023) - -- Minor bugs fixed -- Fix : add option `TYPESENSE_ENABLED` https://github.com/alexbelgium/hassio-addons/issues/802 - -## 1.53.0 (08-04-2023) - -- Update to latest version from imagegenius/docker-immich - -## 1.52.1 (31-03-2023) - -- Update to latest version from imagegenius/docker-immich - -## 1.51.2 (24-03-2023) - -- Update to latest version from imagegenius/docker-immich -- Implemented healthcheck - -## 1.50.1 (04-03-2023) - -- Update to latest version from imagegenius/docker-immich - -## 1.49.0 (25-02-2023) - -- Update to latest version from imagegenius/docker-immich - -## 1.47.3 (19-02-2023) - -- Update to latest version from imagegenius/docker-immich - -## 1.45.0 (04-02-2023) - -- Update to latest version from immich-app/immich - -## 1.43.1 (28-01-2023) - -- Update to latest version from immich-app/immich - -## 1.43.0 (28-01-2023) - -- Update to latest version from immich-app/immich - -## 1.42.0 (21-01-2023) - -- Update to latest version from immich-app/immich - -## 1.41.1 (14-01-2023) - -- Update to latest version from immich-app/immich -- Initial version diff --git a/immich_openvino/CHANGELOG.md b/immich_openvino/CHANGELOG.md new file mode 120000 index 000000000..eb6700f91 --- /dev/null +++ b/immich_openvino/CHANGELOG.md @@ -0,0 +1 @@ +../immich/CHANGELOG.md \ No newline at end of file diff --git a/immich_openvino/Dockerfile b/immich_openvino/Dockerfile deleted file mode 100644 index d30c27ac4..000000000 --- a/immich_openvino/Dockerfile +++ /dev/null @@ -1,156 +0,0 @@ -#============================# -# ALEXBELGIUM'S DOCKERFILE # -#============================# -# _.------. -# _.-` ('>.-`"""-. -# '.--'` _'` _ .--.) -# -' '-.-';` ` -# ' - _.' ``'--. -# d '---` .-'""` -# /` -#=== Home Assistant Addon ===# - -################# -# 1 Build Image # -################# - -ARG BUILD_VERSION -ARG BUILD_FROM -FROM $BUILD_FROM - -################## -# 2 Modify Image # -################## - -# Set S6 wait time -ENV S6_CMD_WAIT_FOR_SERVICES=1 \ - S6_CMD_WAIT_FOR_SERVICES_MAXTIME=0 \ - S6_SERVICES_GRACETIME=0 - -USER root - -# Global LSIO modifications -ADD "https://raw.githubusercontent.com/alexbelgium/hassio-addons/master/.templates/ha_lsio.sh" "/ha_lsio.sh" -ARG CONFIGLOCATION="/config" -RUN chmod 744 /ha_lsio.sh && if grep -qr "lsio" /etc; then /ha_lsio.sh "$CONFIGLOCATION"; fi && rm /ha_lsio.sh - -# Install REDIS -ENV DOCKER_MODS="imagegenius/mods:universal-redis" - -# && chmod 777 -R /docker-mods \ -# && /./docker-mods/* || ls / \ -# && if [ !-f /defaults/redis.conf ]; then echo "Not installed" && exit 1; fi -#ENV DOCKER_MODS="" - -################## -# 3 Install apps # -################## - -# Add rootfs -COPY rootfs/ / - -# Uses /bin for compatibility purposes -# hadolint ignore=DL4005 -RUN if [ ! -f /bin/sh ] && [ -f /usr/bin/sh ]; then ln -s /usr/bin/sh /bin/sh; fi && \ - if [ ! -f /bin/bash ] && [ -f /usr/bin/bash ]; then ln -s /usr/bin/bash /bin/bash; fi - -# Modules -ARG MODULES="00-banner.sh 01-custom_script.sh 00-global_var.sh 00-local_mounts.sh 00-smb_mounts.sh" - -# Automatic modules download -ADD "https://raw.githubusercontent.com/alexbelgium/hassio-addons/master/.templates/ha_automodules.sh" "/ha_automodules.sh" -RUN chmod 744 /ha_automodules.sh && /ha_automodules.sh "$MODULES" && rm /ha_automodules.sh - -# Manual apps -ENV PACKAGES="sudo yamllint pip" - -# Automatic apps & bashio -ADD "https://raw.githubusercontent.com/alexbelgium/hassio-addons/master/.templates/ha_autoapps.sh" "/ha_autoapps.sh" -RUN chmod 744 /ha_autoapps.sh && /ha_autoapps.sh "$PACKAGES" && rm /ha_autoapps.sh - -################ -# 4 Entrypoint # -################ - -# Add entrypoint -ENV S6_STAGE2_HOOK=/ha_entrypoint.sh -ADD "https://raw.githubusercontent.com/alexbelgium/hassio-addons/master/.templates/ha_entrypoint.sh" "/ha_entrypoint.sh" - -# Entrypoint modifications -ADD "https://raw.githubusercontent.com/alexbelgium/hassio-addons/master/.templates/ha_entrypoint_modif.sh" "/ha_entrypoint_modif.sh" -RUN chmod 777 /ha_entrypoint.sh /ha_entrypoint_modif.sh && /ha_entrypoint_modif.sh && rm /ha_entrypoint_modif.sh - -RUN sed -i "s|postgresql-16|postgresql-15|g" /etc/s6-overlay/s6-rc.d/init-test-run/run - -# Install dependencies -RUN apt-get update && apt-get install -y --no-install-recommends \ - lsb-release \ - wget \ - gnupg && \ - echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list && \ - wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add - && \ - apt-get update && \ - apt-get install -y --no-install-recommends postgresql-client-15 - -#ENTRYPOINT [ "/usr/bin/env" ] -#CMD [ "/ha_entrypoint.sh" ] - -############ -# 5 Labels # -############ - -ARG BUILD_ARCH -ARG BUILD_DATE -ARG BUILD_DESCRIPTION -ARG BUILD_NAME -ARG BUILD_REF -ARG BUILD_REPOSITORY -ARG BUILD_VERSION -ENV BUILD_VERSION="${BUILD_VERSION}" -LABEL \ - io.hass.name="${BUILD_NAME}" \ - io.hass.description="${BUILD_DESCRIPTION}" \ - io.hass.arch="${BUILD_ARCH}" \ - io.hass.type="addon" \ - io.hass.version=${BUILD_VERSION} \ - maintainer="alexbelgium (https://github.com/alexbelgium)" \ - org.opencontainers.image.title="${BUILD_NAME}" \ - org.opencontainers.image.description="${BUILD_DESCRIPTION}" \ - org.opencontainers.image.vendor="Home Assistant Add-ons" \ - org.opencontainers.image.authors="alexbelgium (https://github.com/alexbelgium)" \ - org.opencontainers.image.licenses="MIT" \ - org.opencontainers.image.url="https://github.com/alexbelgium" \ - org.opencontainers.image.source="https://github.com/${BUILD_REPOSITORY}" \ - org.opencontainers.image.documentation="https://github.com/${BUILD_REPOSITORY}/blob/main/README.md" \ - org.opencontainers.image.created=${BUILD_DATE} \ - org.opencontainers.image.revision=${BUILD_REF} \ - org.opencontainers.image.version=${BUILD_VERSION} - -################# -# 6 Healthcheck # -################# - -# Avoid spamming logs -# hadolint ignore=SC2016 -RUN \ - # Handle Apache configuration - if [ -d /etc/apache2/sites-available ]; then \ - for file in /etc/apache2/sites-*/*.conf; do \ - sed -i '/ /etc/nginx/nginx.conf.new && \ - mv /etc/nginx/nginx.conf.new /etc/nginx/nginx.conf; \ - fi - -ENV HEALTH_PORT="8080" \ - HEALTH_URL="/api/server/ping" -HEALTHCHECK \ - --interval=5s \ - --retries=5 \ - --start-period=30s \ - --timeout=25s \ - CMD curl -A "HealthCheck: Docker/1.0" -s -f "http://127.0.0.1:${HEALTH_PORT}${HEALTH_URL}" &>/dev/null || exit 1 diff --git a/immich_openvino/Dockerfile b/immich_openvino/Dockerfile new file mode 120000 index 000000000..00fe01b0e --- /dev/null +++ b/immich_openvino/Dockerfile @@ -0,0 +1 @@ +../immich/Dockerfile \ No newline at end of file diff --git a/immich_openvino/README.md b/immich_openvino/README.md deleted file mode 100644 index 2e46d0cce..000000000 --- a/immich_openvino/README.md +++ /dev/null @@ -1,74 +0,0 @@ -# Home assistant add-on: immich - -⚠️ The project is under very active development. Expect bugs and changes. Do not use it as the only way to store your photos and videos! (from the developer) - -[![Donate][donation-badge]](https://www.buymeacoffee.com/alexbelgium) -[![Donate][paypal-badge]](https://www.paypal.com/donate/?hosted_button_id=DZFULJZTP3UQA) - -![Version](https://img.shields.io/badge/dynamic/json?label=Version&query=%24.version&url=https%3A%2F%2Fraw.githubusercontent.com%2Falexbelgium%2Fhassio-addons%2Fmaster%2Fimmich%2Fconfig.json) -![Ingress](https://img.shields.io/badge/dynamic/json?label=Ingress&query=%24.ingress&url=https%3A%2F%2Fraw.githubusercontent.com%2Falexbelgium%2Fhassio-addons%2Fmaster%2Fimmich%2Fconfig.json) -![Arch](https://img.shields.io/badge/dynamic/json?color=success&label=Arch&query=%24.arch&url=https%3A%2F%2Fraw.githubusercontent.com%2Falexbelgium%2Fhassio-addons%2Fmaster%2Fimmich%2Fconfig.json) - -[![Codacy Badge](https://app.codacy.com/project/badge/Grade/9c6cf10bdbba45ecb202d7f579b5be0e)](https://www.codacy.com/gh/alexbelgium/hassio-addons/dashboard?utm_source=github.com&utm_medium=referral&utm_content=alexbelgium/hassio-addons&utm_campaign=Badge_Grade) -[![GitHub Super-Linter](https://img.shields.io/github/actions/workflow/status/alexbelgium/hassio-addons/weekly-supelinter.yaml?label=Lint%20code%20base)](https://github.com/alexbelgium/hassio-addons/actions/workflows/weekly-supelinter.yaml) -[![Builder](https://img.shields.io/github/actions/workflow/status/alexbelgium/hassio-addons/onpush_builder.yaml?label=Builder)](https://github.com/alexbelgium/hassio-addons/actions/workflows/onpush_builder.yaml) - -[donation-badge]: https://img.shields.io/badge/Buy%20me%20a%20coffee%20(no%20paypal)-%23d32f2f?logo=buy-me-a-coffee&style=flat&logoColor=white -[paypal-badge]: https://img.shields.io/badge/Buy%20me%20a%20coffee%20with%20Paypal-0070BA?logo=paypal&style=flat&logoColor=white - -_Thanks to everyone having starred my repo! To star it click on the image below, then it will be on top right. Thanks!_ - -[![Stargazers repo roster for @alexbelgium/hassio-addons](https://raw.githubusercontent.com/alexbelgium/hassio-addons/master/.github/stars2.svg)](https://github.com/alexbelgium/hassio-addons/stargazers) - -![downloads evolution](https://raw.githubusercontent.com/alexbelgium/hassio-addons/master/immich/stats.png) - -## About - -Web based files browser. -This addon is based on the [docker image](https://github.com/imagegenius/docker-immich) from imagegenius. - -## Configuration - -Postgresql can be either internal or external - -```yaml - "PGID": "int", - "PUID": "int", - "TZ": "str?", - "cifsdomain": "str?", - "cifspassword": "str?", - "cifsusername": "str?", - "data_location": "str", - "localdisks": "str?", - "networkdisks": "str?", - "DB_HOSTNAME": "str?", - "DB_USERNAME": "str?", - "DB_PORT": "int?", - "DB_PASSWORD": "str?", - "DB_DATABASE_NAME": "str?", - "JWT_SECRET": "str?" -``` - -## Installation - -The installation of this add-on is pretty straightforward and not different in -comparison to installing any other Hass.io add-on. - -1. [Add my Hass.io add-ons repository][repository] to your Hass.io instance. -1. Install this add-on. -1. Click the `Save` button to store your configuration. -1. Start the add-on. -1. Check the logs of the add-on to see if everything went well. -1. Carefully configure the add-on to your preferences, see the official documentation for for that. - -Beware that you need to install a separate postgres addon to be able to connect the database. You can install the postgres addon already in my repository. -Beware to change the password BEFORE starting it ; it won't change afterwards - -## Support - -Create an issue on github, or ask on the [home assistant thread](https://community.home-assistant.io/t/home-assistant-addon-immich/282108/3) - -[repository]: https://github.com/alexbelgium/hassio-addons -[aarch64-shield]: https://img.shields.io/badge/aarch64-yes-green.svg -[amd64-shield]: https://img.shields.io/badge/amd64-yes-green.svg -[armv7-shield]: https://img.shields.io/badge/armv7-yes-green.svg diff --git a/immich_openvino/README.md b/immich_openvino/README.md new file mode 120000 index 000000000..e06be8b26 --- /dev/null +++ b/immich_openvino/README.md @@ -0,0 +1 @@ +../immich/README.md \ No newline at end of file diff --git a/immich_openvino/apparmor.txt b/immich_openvino/apparmor.txt deleted file mode 100644 index 98e97c11d..000000000 --- a/immich_openvino/apparmor.txt +++ /dev/null @@ -1,66 +0,0 @@ -#include - -profile db21ed7f_qbittorrent flags=(attach_disconnected,mediate_deleted) { - #include - - capability, - file, - signal, - mount, - umount, - remount, - network udp, - network tcp, - network dgram, - network stream, - network inet, - network inet6, - network netlink raw, - network unix dgram, - - capability setgid, - capability setuid, - capability sys_admin, - capability dac_read_search, - # capability dac_override, - # capability sys_rawio, - -# S6-Overlay - /init ix, - /run/{s6,s6-rc*,service}/** ix, - /package/** ix, - /command/** ix, - /run/{,**} rwk, - /dev/tty rw, - /bin/** ix, - /usr/bin/** ix, - /usr/lib/bashio/** ix, - /etc/s6/** rix, - /run/s6/** rix, - /etc/services.d/** rwix, - /etc/cont-init.d/** rwix, - /etc/cont-finish.d/** rwix, - /init rix, - /var/run/** mrwkl, - /var/run/ mrwkl, - /dev/i2c-1 mrwkl, - # Files required - /dev/fuse mrwkl, - /dev/sda1 mrwkl, - /dev/sdb1 mrwkl, - /dev/nvme0 mrwkl, - /dev/nvme1 mrwkl, - /dev/mmcblk0p1 mrwkl, - /dev/* mrwkl, - /tmp/** mrkwl, - - # Data access - /data/** rw, - - # suppress ptrace denials when using 'docker ps' or using 'ps' inside a container - ptrace (trace,read) peer=docker-default, - - # docker daemon confinement requires explict allow rule for signal - signal (receive) set=(kill,term) peer=/usr/bin/docker, - -} diff --git a/immich_openvino/apparmor.txt b/immich_openvino/apparmor.txt new file mode 120000 index 000000000..b61f3f896 --- /dev/null +++ b/immich_openvino/apparmor.txt @@ -0,0 +1 @@ +../immich/apparmor.txt \ No newline at end of file diff --git a/immich_openvino/icon.png b/immich_openvino/icon.png deleted file mode 100644 index 1e4d13669bcba135fca9ff1c4838412b648a57db..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16711 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 HGY|X^Xtc}t diff --git a/immich_openvino/logo.png b/immich_openvino/logo.png new file mode 120000 index 000000000..35842927f --- /dev/null +++ b/immich_openvino/logo.png @@ -0,0 +1 @@ +../immich/logo.png \ No newline at end of file diff --git a/immich_openvino/rootfs b/immich_openvino/rootfs new file mode 120000 index 000000000..66bd91c22 --- /dev/null +++ b/immich_openvino/rootfs @@ -0,0 +1 @@ +../immich/rootfs \ No newline at end of file diff --git a/immich_openvino/rootfs/etc/cont-init.d/01-migrate.sh b/immich_openvino/rootfs/etc/cont-init.d/01-migrate.sh deleted file mode 100755 index c6d381053..000000000 --- a/immich_openvino/rootfs/etc/cont-init.d/01-migrate.sh +++ /dev/null @@ -1,22 +0,0 @@ -#!/usr/bin/with-contenv bashio -# shellcheck shell=bash - -MIGRATED="" -PREVIOUS_FOLDER="immich" - -# Move main folder -if [ -f /homeassistant/addons_config/"$PREVIOUS_FOLDER"/config.yaml ]; then - bashio::log.warning "----------------------------------------" - bashio::log.warning "Migrating configuration to the new addon" - bashio::log.warning "----------------------------------------" - cp -rnp /homeassistant/addons_config/"$PREVIOUS_FOLDER"/ /config/ - mv /homeassistant/addons_config/"$PREVIOUS_FOLDER" "$PREVIOUS_FOLDER"_migrated - if [ -d /config/addons_config ]; then rm -r /config/addons_config; fi - echo "Files moved to /addon_configs/$HOSTNAME" -fi - -# Move autoscript -if [ -f /homeassistant/addons_autoscrips/immich.sh ]; then - cp -rnf /homeassistant/addons_autoscrips/"$PREVIOUS_FOLDER".sh /config/ &>/dev/null || true - bashio::log.yellow "... moved "$PREVIOUS_FOLDER".sh from /config/addons_autoscripts to /addon_configs/$HOSTNAME" -fi diff --git a/immich_openvino/rootfs/etc/cont-init.d/20-folders.sh b/immich_openvino/rootfs/etc/cont-init.d/20-folders.sh deleted file mode 100755 index 43c887952..000000000 --- a/immich_openvino/rootfs/etc/cont-init.d/20-folders.sh +++ /dev/null @@ -1,95 +0,0 @@ -#!/usr/bin/with-contenv bashio -# shellcheck shell=bash -set -e - -###################### -# GENERAL PARAMETERS # -###################### - -if bashio::config.has_value "PUID"; then - PUID="$(bashio::config 'PUID')" -else - PUID=0 -fi -if bashio::config.has_value "PGID"; then - PGID="$(bashio::config 'PGID')" -else - PGID=0 -fi - -########################## -# MIGRATIONS AND UPDATES # -########################## - -# Clean typesense -if [ -d /data/typesense ]; then - rm -r /data/typesense -fi - -################# -# DATA_LOCATION # -################# - -bashio::log.info "Setting data location" -DATA_LOCATION="$(bashio::config 'data_location')" -export IMMICH_MEDIA_LOCATION="$DATA_LOCATION" -if [ -d /var/run/s6/container_environment ]; then - printf "%s" "$DATA_LOCATION" > /var/run/s6/container_environment/IMMICH_MEDIA_LOCATION -fi -printf "%s\n" "IMMICH_MEDIA_LOCATION=\"$DATA_LOCATION\"" >> ~/.bashrc - -echo "... check $DATA_LOCATION folder exists" -mkdir -p "$DATA_LOCATION" - -echo "... setting permissions" -chown -R "$PUID":"$PGID" "$DATA_LOCATION" - -echo "... correcting official script" -# shellcheck disable=SC2013 -for file in $(grep -sril '/photos' /etc); do sed -i "s|/photos|$DATA_LOCATION|g" "$file"; done -if [ -f /photos ]; then rm -r /photos; fi -ln -sf "$DATA_LOCATION" /photos -chown "$PUID":"$PGID" /photos - -mkdir -p "$MACHINE_LEARNING_CACHE_FOLDER" -mkdir -p "$REVERSE_GEOCODING_DUMP_DIRECTORY" -chown -R "$PUID":"$PGID" "$MACHINE_LEARNING_CACHE_FOLDER" -chown -R "$PUID":"$PGID" "$REVERSE_GEOCODING_DUMP_DIRECTORY" -chown -R "$PUID":"$PGID" /data -chmod 777 /data - -#################### -# LIBRARY LOCATION # -#################### - -if bashio::config.has_value "library_location"; then - LIBRARY_LOCATION="$(bashio::config 'library_location')" - bashio::log.info "Setting library location to $LIBRARY_LOCATION. This will not move any of your files, you'll need to do this manually" - mkdir -p "$LIBRARY_LOCATION" - chown -R "$PUID":"$PGID" "$LIBRARY_LOCATION" - - # Check if the existing library is a directory and not a symlink and has contents - if [ -d "$DATA_LOCATION/library" ] && [ ! -L "$DATA_LOCATION/library" ] && [ "$(ls -A "$DATA_LOCATION/library")" ]; then - bashio::log.yellow "-------------------------------" - bashio::log.warning "Library folder in $DATA_LOCATION/library already exists, is a real folder, and is not empty. Moving to $DATA_LOCATION/library_old" - bashio::log.yellow "-------------------------------" - mv "$DATA_LOCATION/library" "$DATA_LOCATION/library_old" - sleep 5 - fi - - # Create symbolic link only if it doesn't already exist or is incorrect - if [ ! -L "$DATA_LOCATION/library" ] || [ "$(readlink -f "$DATA_LOCATION/library")" != "$LIBRARY_LOCATION" ]; then - ln -sf "$LIBRARY_LOCATION" "$DATA_LOCATION/library" - fi -fi - -################## -# REDIS LOCATION # -################## - -echo "sed -i \"s=/config/redis=/data/redis=g\" /etc/s6*/s6*/*/run" >> /docker-mods -echo "sed -i \"s=/config/log/redis=/data/log=g\" /etc/s6*/s6*/*/run" >> /docker-mods -mkdir -p /data/redis -mkdir -p /data/log -chmod 777 /data/redis -chmod 777 /data/log diff --git a/immich_openvino/rootfs/etc/cont-init.d/99-run.sh b/immich_openvino/rootfs/etc/cont-init.d/99-run.sh deleted file mode 100755 index d56f7488e..000000000 --- a/immich_openvino/rootfs/etc/cont-init.d/99-run.sh +++ /dev/null @@ -1,196 +0,0 @@ -#!/usr/bin/env bashio -# shellcheck shell=bash -# shellcheck disable=SC2155,SC2016 -set -e - -# Function to export options from JSON to env variables -export_options() { - local json_source="/data/options.json" - bashio::log.info "Exporting addon options from ${json_source}" - - # Get all keys and export their raw values - mapfile -t keys < <(jq -r 'keys[]' "${json_source}") - for key in "${keys[@]}"; do - local value - value=$(jq -r ".${key}" "${json_source}") - if bashio::config.false "verbose" || [[ "$key" == *"PASS"* ]]; then - bashio::log.blue "${key}=******" - else - bashio::log.blue "${key}='${value}'" - fi - export "${key}=${value}" - done -} - -# Function to check and adjust DB_HOSTNAME if necessary -check_db_hostname() { - if [[ "$DB_HOSTNAME" == "homeassistant.local" ]]; then - local host_ip - host_ip=$(bashio::network.ipv4_address) - host_ip=${host_ip%/*} - export DB_HOSTNAME="$host_ip" - bashio::log.warning "DB_HOSTNAME was set to homeassistant.local. Using detected IP: $DB_HOSTNAME" - fi - - if ! ping -c 1 -W 3 "$DB_HOSTNAME" >/dev/null 2>&1; then - bashio::log.warning "------------------------------------" - bashio::log.warning "DB_HOSTNAME ($DB_HOSTNAME) is not reachable." - bashio::log.warning "Please set it to the IP address of your database." - bashio::log.warning "The addon will stop until this is fixed." - bashio::log.warning "------------------------------------" - sleep 30 - bashio::addon.stop - else - echo "$DB_HOSTNAME is reachable." - fi -} - -# Function to migrate internal database to external storage if needed -migrate_database() { - if [ -f /share/postgresql_immich.tar.gz ]; then - bashio::log.warning "Previous database export found at /share/postgresql_immich.tar.gz" - elif [ -d /data/postgresql ]; then - bashio::log.warning "Internal Postgres database detected. Migrating to /share/postgresql_immich.tar.gz" - tar -zcvf /share/postgresql_immich.tar.gz /data/postgresql - rm -rf /data/postgresql - fi -} - -# Function to validate required configuration values -validate_config() { - local missing=false - for var in DB_USERNAME DB_HOSTNAME DB_PASSWORD DB_DATABASE_NAME DB_PORT JWT_SECRET; do - if ! bashio::config.has_value "${var}"; then - bashio::log.error "Missing required configuration: ${var}" - missing=true - fi - done - if [ "$missing" = true ]; then - bashio::exit.nok "Please ensure all required options are set." - fi -} - -# Function to export DB variables to s6 environment if applicable -export_db_env() { - if [ -d /var/run/s6/container_environment ]; then - for var in DB_USERNAME DB_PASSWORD DB_DATABASE_NAME DB_PORT DB_HOSTNAME JWT_SECRET; do - printf "%s" "${!var}" > "/var/run/s6/container_environment/${var}" - done - fi -} - -# Function to set up the root user with a secure password -setup_root_user() { - # Generate DB_ROOT_PASSWORD if not set (12-character alphanumeric). - if bashio::config.has_value "DB_ROOT_PASSWORD"; then - export DB_ROOT_PASSWORD="$(bashio::config 'DB_ROOT_PASSWORD')" - else - bashio::log.warning "DB_ROOT_PASSWORD not set. Generating a random 12-character alphanumeric password and storing it in the addon options." - export DB_ROOT_PASSWORD="$(tr -dc 'A-Za-z0-9' "/var/run/s6/container_environment/DB_ROOT_PASSWORD" - fi - fi - - # Try to connect as root using the default insecure password. - if psql "postgres://root:securepassword@${DB_HOSTNAME}:${DB_PORT}/postgres" -c '\q' 2>/dev/null; then - bashio::log.info "Detected root user with default password. Updating to new DB_ROOT_PASSWORD..." - psql "postgres://${DB_USERNAME}:${DB_PASSWORD}@${DB_HOSTNAME}:${DB_PORT}" <