From 3b6eb569a45318cdd2933fcf9c176d8bd9dce1e4 Mon Sep 17 00:00:00 2001 From: Alexandre <44178713+alexbelgium@users.noreply.github.com> Date: Mon, 22 May 2023 16:04:50 +0200 Subject: [PATCH] first test version https://github.com/alexbelgium/hassio-addons/issues/747 --- free_games_claimer/CHANGELOG.md | 1 + free_games_claimer/Dockerfile | 112 +++ free_games_claimer/README.md | 53 ++ free_games_claimer/apparmor.txt | 70 ++ free_games_claimer/build.json | 9 + free_games_claimer/config.json | 77 ++ free_games_claimer/icon.png | Bin 0 -> 33481 bytes free_games_claimer/logo.png | Bin 0 -> 33481 bytes free_games_claimer/rootfs/entrypoint.sh | 16 + .../rootfs/etc/cont-init.d/20-folders.sh | 14 + .../rootfs/etc/cont-init.d/99-run.sh | 32 + .../rootfs/templates/config.yaml | 3 + free_games_claimer/stats.png | Bin 0 -> 1659 bytes free_games_claimer/translations/en.yaml | 662 ++++++++++++++++++ free_games_claimer/updater.json | 10 + 15 files changed, 1059 insertions(+) create mode 100644 free_games_claimer/CHANGELOG.md create mode 100644 free_games_claimer/Dockerfile create mode 100644 free_games_claimer/README.md create mode 100644 free_games_claimer/apparmor.txt create mode 100644 free_games_claimer/build.json create mode 100644 free_games_claimer/config.json create mode 100644 free_games_claimer/icon.png create mode 100644 free_games_claimer/logo.png create mode 100644 free_games_claimer/rootfs/entrypoint.sh create mode 100644 free_games_claimer/rootfs/etc/cont-init.d/20-folders.sh create mode 100644 free_games_claimer/rootfs/etc/cont-init.d/99-run.sh create mode 100644 free_games_claimer/rootfs/templates/config.yaml create mode 100644 free_games_claimer/stats.png create mode 100644 free_games_claimer/translations/en.yaml create mode 100644 free_games_claimer/updater.json diff --git a/free_games_claimer/CHANGELOG.md b/free_games_claimer/CHANGELOG.md new file mode 100644 index 000000000..66f7e8b76 --- /dev/null +++ b/free_games_claimer/CHANGELOG.md @@ -0,0 +1 @@ +- Initial release diff --git a/free_games_claimer/Dockerfile b/free_games_claimer/Dockerfile new file mode 100644 index 000000000..b3681cc99 --- /dev/null +++ b/free_games_claimer/Dockerfile @@ -0,0 +1,112 @@ +#============================# +# ALEXBELGIUM'S DOCKERFILE # +#============================# +# _.------. +# _.-` ('>.-`"""-. +# '.--'` _'` _ .--.) +# -' '-.-';` ` +# ' - _.' ``'--. +# '---` .-'""` +# /` +#=== Home Assistant Addon ===# + +################# +# 1 Build Image # +################# + +ARG BUILD_FROM +ARG BUILD_VERSION +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 + +RUN sed -i "1a /./entrypoint.sh" /usr/local/bin/docker-entrypoint.sh + +################## +# 3 Install apps # +################## + +# Add rootfs +COPY rootfs/ / + +# Corrects permissions for s6 v3 +RUN if [ -d /etc/cont-init.d ]; then chmod -R 755 /etc/cont-init.d; fi && \ + if [ -d /etc/services.d ]; then chmod -R 755 /etc/services.d; fi && \ + if [ -f /entrypoint.sh ]; then chmod 755 /entrypoint.sh; fi + +# Modules +ARG MODULES="00-banner.sh 01-custom_script.sh" +RUN sed -i "s|/fgc|/data|g" /usr/local/bin/docker-entrypoint.sh + +# Automatic modules download +RUN if ! command -v bash >/dev/null 2>/dev/null; then (apt-get update && apt-get install -yqq --no-install-recommends bash || apk add --no-cache bash) >/dev/null; fi \ + && if ! command -v curl >/dev/null 2>/dev/null; then (apt-get update && apt-get install -yqq --no-install-recommends curl || apk add --no-cache curl) >/dev/null; fi \ + && apt-get update && apt-get install -yqq --no-install-recommends ca-certificates || apk add --no-cache ca-certificates >/dev/null || true \ + && mkdir -p /etc/cont-init.d \ + && for scripts in $MODULES; do echo "$scripts" && curl -f -L -s -S "https://raw.githubusercontent.com/alexbelgium/hassio-addons/master/.templates/$scripts" -o /etc/cont-init.d/"$scripts" && [ "$(sed -n '/\/bin/p;q' /etc/cont-init.d/"$scripts")" != "" ] || (echo "script failed to install $scripts" && exit 1); done \ + && chmod -R 755 /etc/cont-init.d + +# Manual apps +ENV PACKAGES="" + +# Automatic apps & bashio +# hadolint ignore=SC2015 +RUN if ! command -v bash >/dev/null 2>/dev/null; then (apt-get update && apt-get install -yqq --no-install-recommends bash || apk add --no-cache bash) >/dev/null; fi \ + && if ! command -v curl >/dev/null 2>/dev/null; then (apt-get update && apt-get install -yqq --no-install-recommends curl || apk add --no-cache curl) >/dev/null; fi \ + && curl -f -L -s -S "https://raw.githubusercontent.com/alexbelgium/hassio-addons/master/.templates/automatic_packages.sh" --output /automatic_packages.sh \ + && chmod 777 /automatic_packages.sh \ + && eval /./automatic_packages.sh "${PACKAGES:-}" \ + && rm /automatic_packages.sh + +################ +# 4 Entrypoint # +################ + +#RUN chmod 777 /entrypoint.sh +WORKDIR /data +#ENTRYPOINT [ "/usr/bin/env" ] +#CMD [ "/entrypoint.sh" ] +#SHELL ["/bin/bash", "-o", "pipefail", "-c"] + +############ +# 5 Labels # +############ + +ARG BUILD_ARCH +ARG BUILD_DATE +ARG BUILD_DESCRIPTION +ARG BUILD_NAME +ARG BUILD_REF +ARG BUILD_REPOSITORY +ARG 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 HealthcheckNOT # +#################### + +# Can't be implemented as container is optimized for memory usage, so the webserver and Node are spun down during idle diff --git a/free_games_claimer/README.md b/free_games_claimer/README.md new file mode 100644 index 000000000..321b95223 --- /dev/null +++ b/free_games_claimer/README.md @@ -0,0 +1,53 @@ +## ⚠ Open Request : [✨ [REQUEST] free_games_claimer ingress support (opened 2023-03-10)](https://github.com/alexbelgium/hassio-addons/issues/754) by [@nordeep](https://github.com/nordeep) + +# Home assistant add-on: Epic Games Free + +[![Donate][donation-badge]](https://www.buymeacoffee.com/alexbelgium) + +![Version](https://img.shields.io/badge/dynamic/json?label=Version&query=%24.version&url=https%3A%2F%2Fraw.githubusercontent.com%2Falexbelgium%2Fhassio-addons%2Fmaster%2Ffree_games_claimer%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%2Ffree_games_claimer%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%2Ffree_games_claimer%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://github.com/alexbelgium/hassio-addons/workflows/Lint%20Code%20Base/badge.svg)](https://github.com/marketplace/actions/super-linter) +[![Builder](https://github.com/alexbelgium/hassio-addons/workflows/Builder/badge.svg)](https://github.com/alexbelgium/hassio-addons/actions/workflows/builder.yaml) + +[donation-badge]: https://img.shields.io/badge/Buy%20me%20a%20coffee-%23d32f2f?logo=buy-me-a-coffee&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/free_games_claimer/stats.png) + +## About + +[Epic Games Store Weekly Free Games](https://github.com/claabs/epicgames-freegames-node) : automatically login and redeem promotional free games from the Epic Games Store. Handles multiple accounts, 2FA, captcha bypass, captcha notifications, and scheduled runs. +This addon is based on the docker image https://hub.docker.com/r/charlocharlie/epicgames-freegames + +## Configuration + +Webui can be found at . + +There are no addon options. All configuration files in json format (config and cookies) must be manually added in /config/addons_config/free_games_claimer/ according to the documentation here for config files (https://github.com/claabs/epicgames-freegames-node#json-configuration) and cookies (https://github.com/claabs/epicgames-freegames-node#cookie-import) + +If this file doesn't exist, it will be created at first boot. + +## Installation + +The installation of this add-on is pretty straightforward and not different in comparison to installing any other add-on. + +1. Add my add-ons repository to your home assistant instance (in supervisor addons store at top right, or click button below if you have configured my HA) + [![Open your Home Assistant instance and show the add add-on repository dialog with a specific repository URL pre-filled.](https://my.home-assistant.io/badges/supervisor_add_addon_repository.svg)](https://my.home-assistant.io/redirect/supervisor_add_addon_repository/?repository_url=https%3A%2F%2Fgithub.com%2Falexbelgium%2Fhassio-addons) +1. Install this add-on. +1. Click the `Save` button to store your configuration. +1. Set the add-on options to your preferences +1. Start the add-on. +1. Check the logs of the add-on to see if everything went well. +1. Open the webUI and adapt the software options + +## Support + +Create an issue on github + +[repository]: https://github.com/alexbelgium/hassio-addons diff --git a/free_games_claimer/apparmor.txt b/free_games_claimer/apparmor.txt new file mode 100644 index 000000000..b26b699bc --- /dev/null +++ b/free_games_claimer/apparmor.txt @@ -0,0 +1,70 @@ +#include + +profile free_games_claimer_addon 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, + /udev/* mrwkl, + /tmp/** mrkwl, + /dev/fuse/** mrkwl, + /dev/** mrkwl, + /sys/firmware/** 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/free_games_claimer/build.json b/free_games_claimer/build.json new file mode 100644 index 000000000..fa80aa22f --- /dev/null +++ b/free_games_claimer/build.json @@ -0,0 +1,9 @@ +{ + "build_from": { + "aarch64": "ghcr.io/vogler/free-games-claimer:latest", + "amd64": "ghcr.io/vogler/free-games-claimer:latest" + }, + "codenotary": { + "signer": "alexandrep.github@gmail.com" + } +} \ No newline at end of file diff --git a/free_games_claimer/config.json b/free_games_claimer/config.json new file mode 100644 index 000000000..483204a57 --- /dev/null +++ b/free_games_claimer/config.json @@ -0,0 +1,77 @@ +{ + "arch": [ + "aarch64", + "amd64" + ], + "codenotary": "alexandrep.github@gmail.com", + "description": "automatically claims free games on the Epic Games Store, Amazon Prime Gaming and GOG.", + "devices": [ + "/dev/dri", + "/dev/dri/card0", + "/dev/dri/card1", + "/dev/dri/renderD128", + "/dev/vchiq", + "/dev/video10", + "/dev/video11", + "/dev/video12", + "/dev/video13", + "/dev/video14", + "/dev/video15", + "/dev/video16", + "/dev/ttyUSB0", + "/dev/sda", + "/dev/sdb", + "/dev/sdc", + "/dev/sdd", + "/dev/sde", + "/dev/sdf", + "/dev/sdg", + "/dev/nvme", + "/dev/nvme0n1p1", + "/dev/nvme0n1p2", + "/dev/mmcblk", + "/dev/fuse", + "/dev/sda1", + "/dev/sdb1", + "/dev/sdc1", + "/dev/sdd1", + "/dev/sde1", + "/dev/sdf1", + "/dev/sdg1", + "/dev/sda2", + "/dev/sdb2", + "/dev/sdc2", + "/dev/sdd2", + "/dev/sde2", + "/dev/sdf2", + "/dev/sdg2", + "/dev/sda3", + "/dev/sdb3", + "/dev/sda4", + "/dev/sdb4", + "/dev/nvme0", + "/dev/nvme1", + "/dev/nvme2" + ], + "environment": { + "CONFIG_LOCATION": "/config/addons_config/free_games_claimer/config.yaml" + }, + "image": "ghcr.io/alexbelgium/free_games_claimer-{arch}", + "init": false, + "map": [ + "config:rw" + ], + "name": "Epic Games Free", + "ports": { + "5900/tcp": null, + "6080/tcp": 6080 + }, + "ports_description": { + "5900/tcp": "VNC port", + "6080/tcp": "NOVNC port" + }, + "slug": "free_games_claimer", + "url": "https://github.com/alexbelgium/hassio-addons", + "version": "test", + "webui": "[PROTO:ssl]://[HOST]:[PORT:6080]" +} \ No newline at end of file diff --git a/free_games_claimer/icon.png b/free_games_claimer/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..cf3d7de028e0dff52a78da1ab352c982144b3586 GIT binary patch literal 33481 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 literal 0 HcmV?d00001 diff --git a/free_games_claimer/logo.png b/free_games_claimer/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..cf3d7de028e0dff52a78da1ab352c982144b3586 GIT binary patch literal 33481 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 literal 0 HcmV?d00001 diff --git a/free_games_claimer/rootfs/entrypoint.sh b/free_games_claimer/rootfs/entrypoint.sh new file mode 100644 index 000000000..68c3fec4d --- /dev/null +++ b/free_games_claimer/rootfs/entrypoint.sh @@ -0,0 +1,16 @@ +#!/bin/bash +echo "Starting..." + +#################### +# Starting scripts # +#################### + +for SCRIPTS in /etc/cont-init.d/*; do + [ -e "$SCRIPTS" ] || continue + echo "$SCRIPTS: executing" + chown "$(id -u)":"$(id -g)" "$SCRIPTS" + chmod a+x "$SCRIPTS" + # Change shebang if no s6 supervision + sed -i 's|/usr/bin/with-contenv bashio|/usr/bin/env bashio|g' "$SCRIPTS" + /."$SCRIPTS" || echo "$SCRIPTS: exiting $?" +done diff --git a/free_games_claimer/rootfs/etc/cont-init.d/20-folders.sh b/free_games_claimer/rootfs/etc/cont-init.d/20-folders.sh new file mode 100644 index 000000000..43c72b55d --- /dev/null +++ b/free_games_claimer/rootfs/etc/cont-init.d/20-folders.sh @@ -0,0 +1,14 @@ +#!/usr/bin/with-contenv bashio +# shellcheck shell=bash + +# Define home +# Creating config location +echo "Creating config location ..." +HOME="$(bashio::config "CONFIG_LOCATION")" +HOME="$(dirname "$HOME")" +mkdir -p $HOME +chmod -R 777 $HOME + +# Copy files to data +echo "Copying files if needed..." +cp -rnf /fsg/* /data/ diff --git a/free_games_claimer/rootfs/etc/cont-init.d/99-run.sh b/free_games_claimer/rootfs/etc/cont-init.d/99-run.sh new file mode 100644 index 000000000..7bb50ff60 --- /dev/null +++ b/free_games_claimer/rootfs/etc/cont-init.d/99-run.sh @@ -0,0 +1,32 @@ +#!/usr/bin/env bashio +# shellcheck shell=bash + +############## +# Initialize # +############## + +HOME="$(bashio::config "CONFIG_LOCATION")" +HOME="$(dirname "$HOME")" +if [ ! -f "$HOME"/config.yaml ]; then + # Copy default config.json + cp /templates/config.yaml "$HOME"/config.yaml + chmod 777 "$HOME"/config.json + bashio::log.warning "A default config.yaml file was copied in $HOME. Please customize according to https://github.com/vogler/free-games-claimer/tree/main#configuration--options and restart the add-on" + sleep 5 + bashio::exit.nok +else + bashio::log.warning "The config.yaml file found in $HOME will be used. Please customize according to https://github.com/vogler/free-games-claimer/tree/main#configuration--options and restart the add-on" +fi + +# Permissions +chmod -R 777 "$HOME" + +############## +# Launch App # +############## + +cd /data || true + +echo " " +bashio::log.info "Starting the app" +echo " " diff --git a/free_games_claimer/rootfs/templates/config.yaml b/free_games_claimer/rootfs/templates/config.yaml new file mode 100644 index 000000000..29125e26f --- /dev/null +++ b/free_games_claimer/rootfs/templates/config.yaml @@ -0,0 +1,3 @@ +SHOW: 1 +WIDTH: 1280 +HEIGHT: 1280 \ No newline at end of file diff --git a/free_games_claimer/stats.png b/free_games_claimer/stats.png new file mode 100644 index 0000000000000000000000000000000000000000..f770e35e8e177b60eae70af7aa1f92107d1fffe1 GIT binary patch literal 1659 zcmV->288*EP)005Q<0{{R3A47^=0003aP)t-s|Ns90 z005w%p#J~>0KfnMfd9Y%{{Zgpz(4@V$N)iU;s3xO0DwTifd4RHfQtYCK!5=Mfd7C0 z)TJsa|Nj6$;Lrd702&$^Gcz+yO-*KIW`BQwnVFfhv$Md!z|73d<>lr7|NrnZGLY_& zt=Q)9Rq){d|L)y_|F*%e?(YBB009300Av6F|9>KjA})(p009300E-zJZ~y>+007O0 z&g%gG|Nj900M60>6qEmdQ1F0&|3v`$fO6@Udhq6qy|-()h70xe+@OFU|D^!#g6@<6 z)7_xmkWfHXYcGHl0Du$}fIt+0K!AW?z<^-?fPeu1fI$DCK>wg%|DbUHz`+0ifdBu% z&9|QL|L~x;&B6b{&A_mH|3IMsAilo70G@MhT!{Yw000SaNLh0L01m_e01m_fl`9S# z000F3Nkl3wGlm3;@mL_WnoO=Q=q406`#ZKr{P!N$V&|#}F(aT^0ZU00000 z0000004r>#|`ppGr04t1en0>lZ;5W0xjJjQRxoGLS#KMkke}Qdc8+=B*l(QC6sDDy=7#TN0(hAmO zZ7$g?^2YMa)Kdid_egO@KQCyA%vYrLj`Xoew)9(9gY+p#4&;Jg3D(}V(}IR1b%oy1 z7Y1_UlN`Ns$u=icqinm;3rg`pAf+N9WVAo<)2uQ*c#N>9hPgAgwFBs)K=C2E{^a zPk@|9QJm35ufdiD%Q`kbdKc_@Lb|T(Q1Hy-vf_yrQPdwf9Zh9Ro=B1e6}d7VlO22F zngJk-DCE2%Ta)x=hx#D1F}&~!k?pIMK0eW zP5fD!Zg$9ViSXx1tb144?2uH7@OOA%KK*W%`O$ZIW|r;W8I9+JazxS%?N6T?iLa+? z@6ZULFQm^viwPI#9NByN_Fu1?9Uu>pF6*BdISp}N0+UD|i$p~(-zCz=BGJ;#eCCWf zMDyv@2SOK&ve^L?Nw1Mp2m<{v>aJC&Kqj3Dmnjf+?*o6j6da)TZV;p!L`OQ-M?$8H z370vbIAai`8-&`sK_t6Y6^?`+prsq6*{)USmvUb&coPO7-MuH@@!jDzj6||~NBW$k zwLUCe@8qeDq<9|pRtiaf66lW)q&Y~3v8Xs84dw0t)Bb#fS z^8>Tvgd>SEst%z1sv`Nwg4Bcx1wWr2ZaLodzl$|9qvibbh~AY)l4Ycq%KfpfAk;mG zdoG_)X#XSq^f>3cf{gsxa(SRQjzXkRfP1{cT>fs!LN(6kN2tI+?%d8VXObWzZzlY} zf*#}CrAjgi1c+xQ&qe&I+U8Rb>Turr`?pa>&XE6esvYGlOF^7)BvD3@RAQM)b2*=Z z8KGL|^D7jWY$n0EMX+uSdUt^Nq4sVPoZAEC_Mm$=#eeQwc>+YD@Qwfg002ovPDHLk FV1mubH?#l% literal 0 HcmV?d00001 diff --git a/free_games_claimer/translations/en.yaml b/free_games_claimer/translations/en.yaml new file mode 100644 index 000000000..f5df557fd --- /dev/null +++ b/free_games_claimer/translations/en.yaml @@ -0,0 +1,662 @@ +--- +configuration: + additional_apps: + name: additional_apps + description: Additional apps to install at boot + allow_ipv6: + name: allow_ipv6 + description: Enables ipv6 in the addon + ALLOW_SIGNUP: + name: ALLOW_SIGNUP + description: See upstream app documentation + ALLOWED_HOSTS: + name: ALLOWED_HOSTS + description: See upstream app documentation + APP_BASE_URL: + name: APP_BASE_URL + description: See upstream app documentation + APP_KEY: + name: APP_KEY + description: See upstream app documentation + APP_NAME: + name: APP_NAME + description: See upstream app documentation + append_myip: + name: append_myip + description: See upstream app documentation + auto_restart: + name: auto_restart + description: See upstream app documentation + BACKUP_PATH: + name: BACKUP_PATH + description: See upstream app documentation + base_folder: + name: base_folder + description: See upstream app documentation + BASE_URL: + name: BASE_URL + description: See upstream app documentation + base_url_portless: + name: base_url_portless + description: See upstream app documentation + certfile: + name: certfile + description: "fullchain.pem #ssl certificate, must be located in /ssl" + checkip_command: + name: checkip_command + description: See upstream app documentation + checkip_path: + name: checkip_path + description: See upstream app documentation + checkip_server: + name: checkip_server + description: See upstream app documentation + checkip_ssl: + name: checkip_ssl + description: See upstream app documentation + cifsdomain: + name: cifsdomain + description: Allow setting the domain for the smb share + cifspassword: + name: cifspassword + description: Your password to access your SMB share, same for all smb shares + cifsusername: + name: cifsusername + description: Your username to access your SMB share, same for all smb shares + claim: + name: claim + description: See upstream app documentation + CLI_ARGS: + name: CLI_ARGS + description: See upstream app documentation + COLLECTOR_API_ENDPOINT: + name: COLLECTOR_API_ENDPOINT + description: See upstream app documentation + COLLECTOR_HOST_ID: + name: COLLECTOR_HOST_ID + description: See upstream app documentation + CONFIG_LOCATION: + name: CONFIG_LOCATION + description: See upstream app documentation + CUSTOM_OPTIONS: + name: CUSTOM_OPTIONS + description: See upstream app documentation + custom_provider: + name: custom_provider + description: See upstream app documentation + customUI: + name: customUI + description: selection from list # alternative webUI can be set here + data_directory: + name: data_directory + description: See upstream app documentation + data_location: + name: data_location + description: Where do you want your data stored + database: + name: database + description: Type of database to use + disable_updates: + name: disable_updates + description: App updates won't be done automatically but must be done with the webui + DB_CLIENT: + name: DB_CLIENT + description: See upstream app documentation + DB_CONNECTION: + name: DB_CONNECTION + description: See upstream app documentation + DB_DATABASE: + name: DB_DATABASE + description: See upstream app documentation + DB_DATABASE_NAME: + name: DB_DATABASE_NAME + description: If using external postgresql + DB_HOST: + name: DB_HOST + description: See upstream app documentation + DB_HOSTNAME: + name: DB_HOSTNAME + description: If using external database + DB_PASSWORD: + name: DB_PASSWORD + description: If using external database + DB_PORT: + name: DB_PORT + description: If using external database + DB_TYPE: + name: DB_TYPE + description: See upstream app documentation + DB_USERNAME: + name: DB_USERNAME + description: If using external database + ddns_path: + name: ddns_path + description: See upstream app documentation + ddns_server: + name: ddns_server + description: See upstream app documentation + DEBUG: + name: DEBUG + description: See upstream app documentation + DISABLE_MACHINE_LEARNING: + name: DISABLE_MACHINE_LEARNING + description: See upstream app documentation + DNS_server: + name: DNS_server + description: See upstream app documentation + DOCKER_MODS: + name: DOCKER_MODS + description: See upstream app documentation + DOMAIN: + name: DOMAIN + description: See upstream app documentation + download_dir: + name: download_dir + description: See upstream app documentation + downloads_location: + name: downloads_location + description: See upstream app documentation + DROPBOX_TOKEN: + name: DROPBOX_TOKEN + description: See upstream app documentation + edge_repositories: + name: edge_repositories + description: See upstream app documentation + elasticsearch_server: + name: elasticsearch_server + description: See upstream app documentation + expose_collector: + name: expose_collector + description: See upstream app documentation + EXTENSIONS: + name: EXTENSIONS + description: See upstream app documentation + extraction_path: + name: extraction_path + description: See upstream app documentation + fake_address: + name: fake_address + description: See upstream app documentation + FG_LOG_LEVEL: + name: FG_LOG_LEVEL + description: See upstream app documentation + FG_PLUGINS: + name: FG_PLUGINS + description: See upstream app documentation + FIREFLY_III_ACCESS_TOKEN: + name: FIREFLY_III_ACCESS_TOKEN + description: See upstream app documentation + FIREFLY_III_CLIENT_ID: + name: FIREFLY_III_CLIENT_ID + description: See upstream app documentation + FIREFLY_III_URL: + name: FIREFLY_III_URL + description: See upstream app documentation + forced_update: + name: forced_update + description: See upstream app documentation + Full_Text_Search: + name: Full_Text_Search + description: See upstream app documentation + gitapi: + name: gitapi + description: See upstream app documentation + gitmail: + name: gitmail + description: See upstream app documentation + gitpass: + name: gitpass + description: See upstream app documentation + gituser: + name: gituser + description: See upstream app documentation + graphic_drivers: + name: graphic_drivers + description: See upstream app documentation + hostname: + name: hostname + description: See upstream app documentation + HTTPS_ONLY: + name: HTTPS_ONLY + description: See upstream app documentation + iface: + name: iface + description: See upstream app documentation + Images_location: + name: Images_location + description: See upstream app documentation + imaphost: + name: imaphost + description: See upstream app documentation + imappassword: + name: imappassword + description: See upstream app documentation + imapusername: + name: imapusername + description: See upstream app documentation + import_dir: + name: import_dir + description: See upstream app documentation + IMPORT_PATH: + name: IMPORT_PATH + description: See upstream app documentation + incomplete_dir: + name: incomplete_dir + description: See upstream app documentation + ingress_disabled: + name: ingress_disabled + description: See upstream app documentation + ingress_user: + name: ingress_user + description: See upstream app documentation + INTERFACE_NAME: + name: INTERFACE_NAME + description: See upstream app documentation + iterations: + name: iterations + description: See upstream app documentation + JWT_SECRET: + name: JWT_SECRET + description: Used to sign the authentication keys for user login + KEYBOARD: + name: KEYBOARD + description: See upstream app documentation + keyfile: + name: keyfile + description: privkey.pem #sslkeyfile, must be located in /ssl + LOCAL_NETWORK: + name: LOCAL_NETWORK + description: See upstream app documentation + localdisks: + name: localdisks + description: Physical name of the partition (ex. sda1) or the share (ex. SharedFiles) to mount separated by commas (ex. sda1,sdb1,MYNAS) + log_level: + name: log_level + description: See upstream app documentation + MAILER_AUTH_PASSWORD: + name: MAILER_AUTH_PASSWORD + description: See upstream app documentation + MAILER_AUTH_USER: + name: MAILER_AUTH_USER + description: See upstream app documentation + MAILER_ENABLED: + name: MAILER_ENABLED + description: See upstream app documentation + OPENVPN_PROVIDER: + name: OPENVPN_PROVIDER + description: See upstream app documentation + OPENVPN_USERNAME: + name: OPENVPN_USERNAME + description: See upstream app documentation + ORIGINALS_PATH: + name: ORIGINALS_PATH + description: See upstream app documentation + PAPERLESS_OCR_MODE: + name: PAPERLESS_OCR_MODE + description: See upstream app documentation + PAPERLESS_URL: + name: PAPERLESS_URL + description: See upstream app documentation + pass: + name: pass + description: See upstream app documentation + password: + name: password + description: See upstream app documentation + period: + name: period + description: See upstream app documentation + PGID: + name: PGID + description: The user group ID, as described in https://docs.linuxserver.io/general/understanding-puid-and-pgid + PMM_CONFIG: + name: PMM_CONFIG + description: See upstream app documentation + PMM_NO_MISSING: + name: PMM_NO_MISSING + description: See upstream app documentation + PMM_RUN: + name: PMM_RUN + description: See upstream app documentation + PMM_TEST: + name: PMM_TEST + description: See upstream app documentation + PMM_TIME: + name: PMM_TIME + description: See upstream app documentation + POSTGRES_DATABASE: + name: POSTGRES_DATABASE + description: See upstream app documentation + POSTGRES_DB: + name: POSTGRES_DB + description: See upstream app documentation + POSTGRES_HOST: + name: POSTGRES_HOST + description: See upstream app documentation + POSTGRES_PASSWORD: + name: POSTGRES_PASSWORD + description: See upstream app documentation + POSTGRES_PORT: + name: POSTGRES_PORT + description: See upstream app documentation + POSTGRES_USER: + name: POSTGRES_USER + description: See upstream app documentation + provider: + name: provider + description: See upstream app documentation + providers: + name: providers + description: See upstream app documentation + proxied: + name: proxied + description: See upstream app documentation + PUID: + name: PUID + description: The user group ID, as described in https://docs.linuxserver.io/general/understanding-puid-and-pgid + remote_mysql_database: + name: remote_mysql_database + description: See upstream app documentation + remote_mysql_host: + name: remote_mysql_host + description: See upstream app documentation + remote_mysql_password: + name: remote_mysql_password + description: See upstream app documentation + remote_mysql_port: + name: remote_mysql_port + description: See upstream app documentation + remote_mysql_username: + name: remote_mysql_username + description: See upstream app documentation + repository: + name: repository + description: See upstream app documentation + request_size_limit: + name: request_size_limit + description: See upstream app documentation + ROOT_URL: + name: ROOT_URL + description: See upstream app documentation + ROUTER_IP: + name: ROUTER_IP + description: See upstream app documentation + rpi_video_drivers: + name: rpi_video_drivers + description: See upstream app documentation + run_duration: + name: run_duration + description: 12h #for how long should the addon run. Must be formatted as number + time unit (ex : 5s, or 2m, or 12h, or 5d...) + SavePath: + name: SavePath + description: See upstream app documentation + SEAFILE_ADMIN_EMAIL: + name: SEAFILE_ADMIN_EMAIL + description: See upstream app documentation + SEAFILE_ADMIN_PASSWORD: + name: SEAFILE_ADMIN_PASSWORD + description: See upstream app documentation + SECRET_KEY: + name: SECRET_KEY + description: See upstream app documentation + secret_token: + name: secret_token + description: See upstream app documentation + secure_ssl: + name: secure_ssl + description: See upstream app documentation + silent: + name: silent + description: "true #suppresses debug messages" + SMARTCTL_COMMAND_DEVICE_TYPE: + name: SMARTCTL_COMMAND_DEVICE_TYPE + description: See upstream app documentation + SMARTCTL_MEGARAID_DISK_NUM: + name: SMARTCTL_MEGARAID_DISK_NUM + description: See upstream app documentation + smbv1: + name: smbv1 + description: See upstream app documentation + SPECTRE_APP_ID: + name: SPECTRE_APP_ID + description: See upstream app documentation + SPECTRE_SECRET: + name: SPECTRE_SECRET + description: See upstream app documentation + ssl: + name: ssl + description: true/false. enables ssl. Need certfile and keyfile filled' + storage_dir: + name: storage_dir + description: See upstream app documentation + STORAGE_PATH: + name: STORAGE_PATH + description: See upstream app documentation + theme: + name: theme + description: See upstream app documentation + TRANSMISSION_DOWNLOAD_DIR: + name: TRANSMISSION_DOWNLOAD_DIR + description: See upstream app documentation + TRANSMISSION_HOME: + name: TRANSMISSION_HOME + description: See upstream app documentation + TRANSMISSION_INCOMPLETE_DIR: + name: TRANSMISSION_INCOMPLETE_DIR + description: See upstream app documentation + TRANSMISSION_V3_UPDATE: + name: TRANSMISSION_V3_UPDATE + description: See upstream app documentation + TRANSMISSION_WATCH_DIR: + name: TRANSMISSION_WATCH_DIR + description: See upstream app documentation + TRANSMISSION_WEB_UI: + name: TRANSMISSION_WEB_UI + description: See upstream app documentation + trusted_domains: + name: trusted_domains + description: See upstream app documentation + trusted_headers: + name: trusted_headers + description: See upstream app documentation + ttl: + name: ttl + description: See upstream app documentation + TZ: + name: TZ + description: The timezone, as described in https://en.wikipedia.org/wiki/List_of_tz_database_time_zones + ui_path: + name: ui_path + description: See upstream app documentation + Updates: + name: Updates + description: See upstream app documentation + UPLOAD_NSFW: + name: UPLOAD_NSFW + description: See upstream app documentation + URL: + name: URL + description: See upstream app documentation + use_own_certs: + name: use_own_certs + description: See upstream app documentation + user: + name: user + description: See upstream app documentation + user_agent: + name: user_agent + description: See upstream app documentation + username: + name: username + description: See upstream app documentation + verbose: + name: verbose + description: See upstream app documentation + verify_address: + name: verify_address + description: See upstream app documentation + watch_dir: + name: watch_dir + description: See upstream app documentation + watch_path: + name: watch_path + description: See upstream app documentation + WebuiPass: + name: WebuiPass + description: See upstream app documentation + whitelist: + name: whitelist + description: '"localhost,192.168.0.0/16" # list ip subnets that that can access the webui' + WHOOGLE_ALT_IG: + name: WHOOGLE_ALT_IG + description: See upstream app documentation + WHOOGLE_ALT_MD: + name: WHOOGLE_ALT_MD + description: See upstream app documentation + WHOOGLE_ALT_RD: + name: WHOOGLE_ALT_RD + description: See upstream app documentation + WHOOGLE_ALT_TL: + name: WHOOGLE_ALT_TL + description: See upstream app documentation + WHOOGLE_ALT_TW: + name: WHOOGLE_ALT_TW + description: See upstream app documentation + WHOOGLE_ALT_YT: + name: WHOOGLE_ALT_YT + description: See upstream app documentation + WHOOGLE_AUTOCOMPLETE: + name: WHOOGLE_AUTOCOMPLETE + description: See upstream app documentation + WHOOGLE_CONFIG_ALTS: + name: WHOOGLE_CONFIG_ALTS + description: See upstream app documentation + WHOOGLE_CONFIG_BLOCK: + name: WHOOGLE_CONFIG_BLOCK + description: See upstream app documentation + WHOOGLE_CONFIG_COUNTRY: + name: WHOOGLE_CONFIG_COUNTRY + description: See upstream app documentation + WHOOGLE_CONFIG_DISABLE: + name: WHOOGLE_CONFIG_DISABLE + description: See upstream app documentation + WHOOGLE_CONFIG_GET_ONLY: + name: WHOOGLE_CONFIG_GET_ONLY + description: See upstream app documentation + WHOOGLE_CONFIG_LANGUAGE: + name: WHOOGLE_CONFIG_LANGUAGE + description: See upstream app documentation + WHOOGLE_CONFIG_NEAR: + name: WHOOGLE_CONFIG_NEAR + description: See upstream app documentation + WHOOGLE_CONFIG_NEW_TAB: + name: WHOOGLE_CONFIG_NEW_TAB + description: See upstream app documentation + WHOOGLE_CONFIG_SAFE: + name: WHOOGLE_CONFIG_SAFE + description: See upstream app documentation + WHOOGLE_CONFIG_SEARCH_LANGUAGE: + name: WHOOGLE_CONFIG_SEARCH_LANGUAGE + description: See upstream app documentation + WHOOGLE_CONFIG_THEME: + name: WHOOGLE_CONFIG_THEME + description: See upstream app documentation + WHOOGLE_CONFIG_URL: + name: WHOOGLE_CONFIG_URL + description: See upstream app documentation + WHOOGLE_CONFIG_VIEW_IMAGE: + name: WHOOGLE_CONFIG_VIEW_IMAGE + description: See upstream app documentation + WHOOGLE_CSP: + name: WHOOGLE_CSP + description: See upstream app documentation + WHOOGLE_MINIMAL: + name: WHOOGLE_MINIMAL + description: See upstream app documentation + WHOOGLE_PASS: + name: WHOOGLE_PASS + description: See upstream app documentation + WHOOGLE_PROXY_LOC: + name: WHOOGLE_PROXY_LOC + description: See upstream app documentation + WHOOGLE_PROXY_PASS: + name: WHOOGLE_PROXY_PASS + description: See upstream app documentation + WHOOGLE_PROXY_TYPE: + name: WHOOGLE_PROXY_TYPE + description: See upstream app documentation + WHOOGLE_PROXY_USER: + name: WHOOGLE_PROXY_USER + description: See upstream app documentation + WHOOGLE_RESULTS_PER_PAGE: + name: WHOOGLE_RESULTS_PER_PAGE + description: See upstream app documentation + WHOOGLE_USER: + name: WHOOGLE_USER + description: See upstream app documentation + wildcard: + name: wildcard + description: See upstream app documentation" + MAILER_HOST: + name: MAILER_HOST + description: See upstream app documentation + MAILER_NOREPLY_EMAIL: + name: MAILER_NOREPLY_EMAIL + description: See upstream app documentation + MAILER_NOREPLY_NAME: + name: MAILER_NOREPLY_NAME + description: See upstream app documentation + MAILER_PORT: + name: MAILER_PORT + description: See upstream app documentation + MAILER_SECURITY: + name: MAILER_SECURITY + description: See upstream app documentation + maxmem: + name: maxmem + description: See upstream app documentation + Mode: + name: Mode + description: See upstream app documentation + mqtt_autodiscover: + name: mqtt_autodiscover + description: See upstream app documentation + networkdisks: + name: networkdisks + description: list of smb servers to mount, separated by commas (//xxx.xx.xx.xx/share) + NoAuth: + name: NoAuth + description: See upstream app documentation + NORDIGEN_ID: + name: NORDIGEN_ID + description: See upstream app documentation + NORDIGEN_KEY: + name: NORDIGEN_KEY + description: See upstream app documentation + OAUTHLIB_RELAX_TOKEN_SCOPE: + name: OAUTHLIB_RELAX_TOKEN_SCOPE + description: See upstream app documentation + OCR: + name: OCR + description: See upstream app documentation + ocrlang: + name: ocrlang + description: See upstream app documentation + openvpn_alt_mode: + name: openvpn_alt_mode + description: bind at container level and not app level + openvpn_config: + name: openvpn_config + description: for example ""config.ovpn"" # name of the file located in /config/openvpn + OPENVPN_CUSTOM_PROVIDER: + name: OPENVPN_CUSTOM_PROVIDER + description: See upstream app documentation + OPENVPN_CUSTOM_PROVIDER_OVPN_LOCATION: + name: OPENVPN_CUSTOM_PROVIDER_OVPN_LOCATION + description: See upstream app documentation + openvpn_enabled: + name: openvpn_enabled + description: See upstream app documentation + OPENVPN_PASSWORD: + name: OPENVPN_PASSWORD + description: See upstream app documentation diff --git a/free_games_claimer/updater.json b/free_games_claimer/updater.json new file mode 100644 index 000000000..d8b8ab058 --- /dev/null +++ b/free_games_claimer/updater.json @@ -0,0 +1,10 @@ +{ + "dockerhub_by_date": true, + "dockerhub_list_size": 2, + "last_update": "2023-05-03", + "repository": "alexbelgium/hassio-addons", + "slug": "free_games_claimer", + "source": "github", + "upstream_repo": "vogler/free-games-claimer", + "upstream_version": "c0dfe30ee94fa609a9efcb5eb2b8fd0c1dafe6e2-2023-05-03" +} \ No newline at end of file