add freqtrade bot
This commit is contained in:
		
							
								
								
									
										1
									
								
								freqtrade-NFIx5/.README.j2
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								freqtrade-NFIx5/.README.j2
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					# Home Assistant Community Add-on: Freqtrade Robot NFI
 | 
				
			||||||
							
								
								
									
										139
									
								
								freqtrade-NFIx5/DOCS.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										139
									
								
								freqtrade-NFIx5/DOCS.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,139 @@
 | 
				
			|||||||
 | 
					# Home Assistant Community Add-on: Example
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					This is an example add-on for Home Assistant. When started, it displays a
 | 
				
			||||||
 | 
					random quote every 5 seconds.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					It shows off several features and structures like:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- Full blown GitHub repository.
 | 
				
			||||||
 | 
					- General Dockerfile structure and setup.
 | 
				
			||||||
 | 
					- The use of the `config.yaml` and `build.yaml` files.
 | 
				
			||||||
 | 
					- General shell scripting structure (`run.sh`).
 | 
				
			||||||
 | 
					- Quality assurance using CodeClimate.
 | 
				
			||||||
 | 
					- Continuous integration and deployment using GitLab.
 | 
				
			||||||
 | 
					- Usage of the Community Home Assistant Add-ons build environment.
 | 
				
			||||||
 | 
					- Small use of the Bash function library in our base images.
 | 
				
			||||||
 | 
					- The use of Docker label schema.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Installation
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The installation of this add-on is pretty straightforward and not different in
 | 
				
			||||||
 | 
					comparison to installing any other Home Assistant add-on.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					1. Click the Home Assistant My button below to open the add-on on your Home
 | 
				
			||||||
 | 
					   Assistant instance.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   [![Open this add-on in your Home Assistant instance.][addon-badge]][addon]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					1. Click the "Install" button to install the add-on.
 | 
				
			||||||
 | 
					1. Start the "Example" add-on.
 | 
				
			||||||
 | 
					1. Check the logs of the "Example" add-on to see it in action.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Configuration
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Eventought this add-on is just an example add-on, it does come with some
 | 
				
			||||||
 | 
					configuration options to play around with.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					**Note**: _Remember to restart the add-on when the configuration is changed._
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Example add-on configuration:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```yaml
 | 
				
			||||||
 | 
					log_level: info
 | 
				
			||||||
 | 
					seconds_between_quotes: 5
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Option: `log_level`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The `log_level` option controls the level of log output by the add-on and can
 | 
				
			||||||
 | 
					be changed to be more or less verbose, which might be useful when you are
 | 
				
			||||||
 | 
					dealing with an unknown issue. Possible values are:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- `trace`: Show every detail, like all called internal functions.
 | 
				
			||||||
 | 
					- `debug`: Shows detailed debug information.
 | 
				
			||||||
 | 
					- `info`: Normal (usually) interesting events.
 | 
				
			||||||
 | 
					- `warning`: Exceptional occurrences that are not errors.
 | 
				
			||||||
 | 
					- `error`: Runtime errors that do not require immediate action.
 | 
				
			||||||
 | 
					- `fatal`: Something went terribly wrong. Add-on becomes unusable.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Please note that each level automatically includes log messages from a
 | 
				
			||||||
 | 
					more severe level, e.g., `debug` also shows `info` messages. By default,
 | 
				
			||||||
 | 
					the `log_level` is set to `info`, which is the recommended setting unless
 | 
				
			||||||
 | 
					you are troubleshooting.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Option: `seconds_between_quotes`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Sets the number of seconds between the output of each quote. The value
 | 
				
			||||||
 | 
					must be between `1` and `120` seconds. This value is set to `5` seconds by
 | 
				
			||||||
 | 
					default.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Changelog & Releases
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					This repository keeps a change log using [GitHub's releases][releases]
 | 
				
			||||||
 | 
					functionality.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Releases are based on [Semantic Versioning][semver], and use the format
 | 
				
			||||||
 | 
					of `MAJOR.MINOR.PATCH`. In a nutshell, the version will be incremented
 | 
				
			||||||
 | 
					based on the following:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- `MAJOR`: Incompatible or major changes.
 | 
				
			||||||
 | 
					- `MINOR`: Backwards-compatible new features and enhancements.
 | 
				
			||||||
 | 
					- `PATCH`: Backwards-compatible bugfixes and package updates.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Support
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Got questions?
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					You have several options to get them answered:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- The [Home Assistant Community Add-ons Discord chat server][discord] for add-on
 | 
				
			||||||
 | 
					  support and feature requests.
 | 
				
			||||||
 | 
					- The [Home Assistant Discord chat server][discord-ha] for general Home
 | 
				
			||||||
 | 
					  Assistant discussions and questions.
 | 
				
			||||||
 | 
					- The Home Assistant [Community Forum][forum].
 | 
				
			||||||
 | 
					- Join the [Reddit subreddit][reddit] in [/r/homeassistant][reddit]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					You could also [open an issue here][issue] GitHub.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Authors & contributors
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The original setup of this repository is by [Franck Nijhof][frenck].
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					For a full list of all authors and contributors,
 | 
				
			||||||
 | 
					check [the contributor's page][contributors].
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## License
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					MIT License
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Copyright (c) 2017-2024 Franck Nijhof
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Permission is hereby granted, free of charge, to any person obtaining a copy
 | 
				
			||||||
 | 
					of this software and associated documentation files (the "Software"), to deal
 | 
				
			||||||
 | 
					in the Software without restriction, including without limitation the rights
 | 
				
			||||||
 | 
					to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 | 
				
			||||||
 | 
					copies of the Software, and to permit persons to whom the Software is
 | 
				
			||||||
 | 
					furnished to do so, subject to the following conditions:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The above copyright notice and this permission notice shall be included in all
 | 
				
			||||||
 | 
					copies or substantial portions of the Software.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 | 
				
			||||||
 | 
					IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 | 
				
			||||||
 | 
					FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 | 
				
			||||||
 | 
					AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 | 
				
			||||||
 | 
					LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 | 
				
			||||||
 | 
					OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 | 
				
			||||||
 | 
					SOFTWARE.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[addon-badge]: https://my.home-assistant.io/badges/supervisor_addon.svg
 | 
				
			||||||
 | 
					[addon]: https://my.home-assistant.io/redirect/supervisor_addon/?addon=a0d7b954_example&repository_url=https%3A%2F%2Fgithub.com%2Fhassio-addons%2Frepository
 | 
				
			||||||
 | 
					[contributors]: https://github.com/hassio-addons/addon-example/graphs/contributors
 | 
				
			||||||
 | 
					[discord-ha]: https://discord.gg/c5DvZ4e
 | 
				
			||||||
 | 
					[discord]: https://discord.me/hassioaddons
 | 
				
			||||||
 | 
					[forum]: https://community.home-assistant.io/t/repository-community-hass-io-add-ons/24705?u=frenck
 | 
				
			||||||
 | 
					[frenck]: https://github.com/frenck
 | 
				
			||||||
 | 
					[issue]: https://github.com/hassio-addons/addon-example/issues
 | 
				
			||||||
 | 
					[reddit]: https://reddit.com/r/homeassistant
 | 
				
			||||||
 | 
					[releases]: https://github.com/hassio-addons/addon-example/releases
 | 
				
			||||||
 | 
					[semver]: http://semver.org/spec/v2.0.0.html
 | 
				
			||||||
							
								
								
									
										60
									
								
								freqtrade-NFIx5/Dockerfile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										60
									
								
								freqtrade-NFIx5/Dockerfile
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,60 @@
 | 
				
			|||||||
 | 
					ARG BUILD_FROM=ghcr.io/hassio-addons/base:17.1.0
 | 
				
			||||||
 | 
					# hadolint ignore=DL3006
 | 
				
			||||||
 | 
					FROM ${BUILD_FROM}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ENV LANG C.UTF-8
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Build arguments
 | 
				
			||||||
 | 
					ARG BUILD_ARCH
 | 
				
			||||||
 | 
					ARG BUILD_DATE
 | 
				
			||||||
 | 
					ARG BUILD_DESCRIPTION
 | 
				
			||||||
 | 
					ARG BUILD_NAME
 | 
				
			||||||
 | 
					ARG BUILD_REF
 | 
				
			||||||
 | 
					ARG BUILD_REPOSITORY
 | 
				
			||||||
 | 
					ARG BUILD_VERSION
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Copy root filesystem
 | 
				
			||||||
 | 
					COPY rootfs /
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Install necessary dependencies
 | 
				
			||||||
 | 
					RUN apk add --no-cache git python3 py3-pip curl
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Set the working directory
 | 
				
			||||||
 | 
					WORKDIR /freq
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Clone the Freqtrade repository
 | 
				
			||||||
 | 
					RUN git clone https://github.com/freqtrade/freqtrade.git /freq
 | 
				
			||||||
 | 
					# Optionally, switch to the stable branch for novice users
 | 
				
			||||||
 | 
					ARG FREQTRADE_BRANCH=stable
 | 
				
			||||||
 | 
					RUN git checkout ${FREQTRADE_BRANCH}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Make setup script executable
 | 
				
			||||||
 | 
					RUN chmod +x ./setup.sh
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Run the setup script to install dependencies
 | 
				
			||||||
 | 
					RUN ./setup.sh -i
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Activate the virtual environment (implicitly handled in entrypoint or CMD)
 | 
				
			||||||
 | 
					RUN echo "source /freq/.venv/bin/activate" >> ~/.bashrc
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					RUN source /freq/.venv/bin/activate
 | 
				
			||||||
 | 
					RUN pip install --upgrade pip && pip install --user --no-cache-dir --no-build-isolation -r /freqtrade/tests/requirements.txt
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					RUN chmod +x /etc/s6-overlay/s6-rc.d/fqmbotnfix5/*
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Labels
 | 
				
			||||||
 | 
					LABEL \
 | 
				
			||||||
 | 
					    io.hass.name="Freqtrade NostalgiaForInfinity x5 bot" \
 | 
				
			||||||
 | 
					    io.hass.description="Freqtrade NostalgiaForInfinity x5 bot" \
 | 
				
			||||||
 | 
					    io.hass.arch="${BUILD_ARCH}" \
 | 
				
			||||||
 | 
					    io.hass.type="addon" \
 | 
				
			||||||
 | 
					    io.hass.version="v0.0.0"\
 | 
				
			||||||
 | 
					    maintainer="feres mezned" \
 | 
				
			||||||
 | 
					    org.opencontainers.image.title="Freqtrade NostalgiaForInfinity x5 bot" \
 | 
				
			||||||
 | 
					    org.opencontainers.image.description="Freqtrade NostalgiaForInfinity x5 bot" \
 | 
				
			||||||
 | 
					    org.opencontainers.image.vendor="Home Assistant Local Add-ons" \
 | 
				
			||||||
 | 
					    org.opencontainers.image.authors="Feres MEZNED" \
 | 
				
			||||||
 | 
					    org.opencontainers.image.licenses="NO" \
 | 
				
			||||||
 | 
					    org.opencontainers.image.url="https://mezgit.duckdns.org/mezned/HAddons" \
 | 
				
			||||||
 | 
					    org.opencontainers.image.source="https://mezgit.duckdns.org/mezned/HAddons/freqtrade-NFIx5" 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										8
									
								
								freqtrade-NFIx5/build.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								freqtrade-NFIx5/build.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,8 @@
 | 
				
			|||||||
 | 
					---
 | 
				
			||||||
 | 
					build_from:
 | 
				
			||||||
 | 
					  aarch64: ghcr.io/hassio-addons/base:17.1.0
 | 
				
			||||||
 | 
					  amd64: ghcr.io/hassio-addons/base:17.1.0
 | 
				
			||||||
 | 
					  armv7: ghcr.io/hassio-addons/base:17.1.0
 | 
				
			||||||
 | 
					codenotary:
 | 
				
			||||||
 | 
					  base_image: codenotary@feres.dev
 | 
				
			||||||
 | 
					  signer: codenotary@feres.dev
 | 
				
			||||||
							
								
								
									
										64
									
								
								freqtrade-NFIx5/config.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										64
									
								
								freqtrade-NFIx5/config.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,64 @@
 | 
				
			|||||||
 | 
					---
 | 
				
			||||||
 | 
					name: "Freqtrade NFI Bot Add-on"
 | 
				
			||||||
 | 
					version: "1.0.0"
 | 
				
			||||||
 | 
					slug: "afreqtrade_nfi_bot"
 | 
				
			||||||
 | 
					description: "Home Assistant add-on that runs Freqtrade NFI Bot"
 | 
				
			||||||
 | 
					url: https://mezgit.duckdns.org/mezned/HAddons/freqtrade-NFIx5
 | 
				
			||||||
 | 
					init: false
 | 
				
			||||||
 | 
					arch:
 | 
				
			||||||
 | 
					  - aarch64
 | 
				
			||||||
 | 
					  - amd64
 | 
				
			||||||
 | 
					  - armv7
 | 
				
			||||||
 | 
					hassio_api: true
 | 
				
			||||||
 | 
					homeassistant_api: true
 | 
				
			||||||
 | 
					auth_api: true
 | 
				
			||||||
 | 
					docker_api: true
 | 
				
			||||||
 | 
					host_network: true
 | 
				
			||||||
 | 
					host_pid: true
 | 
				
			||||||
 | 
					map:
 | 
				
			||||||
 | 
					  - share:rw
 | 
				
			||||||
 | 
					  - /var/run/docker.sock:/var/run/docker.sock:rw
 | 
				
			||||||
 | 
					  - /share/fqm_bot_nfix5/user_data:/freqtrade/user_data
 | 
				
			||||||
 | 
					  - /share/fqm_bot_nfix5/user_data/data:/freqtrade/user_data/data
 | 
				
			||||||
 | 
					  - /share/fqm_bot_nfix5/configs:/freqtrade/configs
 | 
				
			||||||
 | 
					ports:
 | 
				
			||||||
 | 
					  8989/tcp: 8989
 | 
				
			||||||
 | 
					options:
 | 
				
			||||||
 | 
					  bot_name: "fqm_bot_nfix5"
 | 
				
			||||||
 | 
					  max_open_trade: "4"
 | 
				
			||||||
 | 
					  trading_mode: "spot"
 | 
				
			||||||
 | 
					  exchange_name: "binance"
 | 
				
			||||||
 | 
					  exchange_key: ""
 | 
				
			||||||
 | 
					  exchange_token: ""
 | 
				
			||||||
 | 
					  telegram_enabled: "true"
 | 
				
			||||||
 | 
					  telegram_token: ""
 | 
				
			||||||
 | 
					  telegram_chat_id: ""
 | 
				
			||||||
 | 
					  api_server_enabled: "true"
 | 
				
			||||||
 | 
					  api_server_port: "8989"
 | 
				
			||||||
 | 
					  api_server_username: ""
 | 
				
			||||||
 | 
					  api_server_password: ""
 | 
				
			||||||
 | 
					  api_server_jwt_secret_key: ""
 | 
				
			||||||
 | 
					  api_server_ws_token: ""
 | 
				
			||||||
 | 
					  timezone: "Europe/Paris"
 | 
				
			||||||
 | 
					  dry_run: "true"
 | 
				
			||||||
 | 
					  strategy: "NostalgiaForInfinityX5" 
 | 
				
			||||||
 | 
					  log_level: "info"
 | 
				
			||||||
 | 
					schema:
 | 
				
			||||||
 | 
					  bot_name: str
 | 
				
			||||||
 | 
					  max_open_trade: str
 | 
				
			||||||
 | 
					  trading_mode: str
 | 
				
			||||||
 | 
					  exchange_name: str
 | 
				
			||||||
 | 
					  exchange_key: str
 | 
				
			||||||
 | 
					  exchange_token: str
 | 
				
			||||||
 | 
					  telegram_enabled: str
 | 
				
			||||||
 | 
					  telegram_token: str
 | 
				
			||||||
 | 
					  telegram_chat_id: str
 | 
				
			||||||
 | 
					  api_server_enabled: str
 | 
				
			||||||
 | 
					  api_server_port: str
 | 
				
			||||||
 | 
					  api_server_username: str
 | 
				
			||||||
 | 
					  api_server_password: str
 | 
				
			||||||
 | 
					  api_server_jwt_secret_key: str
 | 
				
			||||||
 | 
					  api_server_ws_token: str
 | 
				
			||||||
 | 
					  dry_run: str
 | 
				
			||||||
 | 
					  strategy: str
 | 
				
			||||||
 | 
					  log_level: list(trace|debug|info|notice|warning|error|fatal)?
 | 
				
			||||||
@@ -0,0 +1,45 @@
 | 
				
			|||||||
 | 
					#!/command/with-contenv bashio
 | 
				
			||||||
 | 
					# shellcheck shell=bash
 | 
				
			||||||
 | 
					# ==============================================================================
 | 
				
			||||||
 | 
					# Home Assistant Community Add-on: Example
 | 
				
			||||||
 | 
					# ==============================================================================
 | 
				
			||||||
 | 
					declare exit_code
 | 
				
			||||||
 | 
					readonly exit_code_container=$(</run/s6-linux-init-container-results/exitcode)
 | 
				
			||||||
 | 
					readonly exit_code_service="${1}"
 | 
				
			||||||
 | 
					readonly exit_code_signal="${2}"
 | 
				
			||||||
 | 
					readonly service="fqmbotnfix5"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					bashio::log.info \
 | 
				
			||||||
 | 
					  "Service ${service} exited with code ${exit_code_service}" \
 | 
				
			||||||
 | 
					  "(by signal ${exit_code_signal})"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Received a signal
 | 
				
			||||||
 | 
					if [[ "${exit_code_service}" -eq 256 ]]; then
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # The signal might be a result of another service crashing. Only
 | 
				
			||||||
 | 
					  # overwrite the container exit code if it is not already set.
 | 
				
			||||||
 | 
					  if [[ "${exit_code_container}" -eq 0 ]]; then
 | 
				
			||||||
 | 
					    echo $((128 + $exit_code_signal)) > /run/s6-linux-init-container-results/exitcode
 | 
				
			||||||
 | 
					  fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # If the signal is SIGTERM, we should halt the container and take down
 | 
				
			||||||
 | 
					  # the whole  process tree.
 | 
				
			||||||
 | 
					  [[ "${exit_code_signal}" -eq 15 ]] && exec /run/s6/basedir/bin/halt
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# The service exited with a non-zero exit code, which means it crashed.
 | 
				
			||||||
 | 
					elif [[ "${exit_code_service}" -ne 0 ]]; then
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # The service might be a result of another service crashing. Only
 | 
				
			||||||
 | 
					  # overwrite the container exit code if it is not already set.
 | 
				
			||||||
 | 
					  if [[ "${exit_code_container}" -eq 0 ]]; then
 | 
				
			||||||
 | 
					    echo "${exit_code_service}" > /run/s6-linux-init-container-results/exitcode
 | 
				
			||||||
 | 
					  fi
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					  # We should halt the container and take down the whole process tree.
 | 
				
			||||||
 | 
					  exec /run/s6/basedir/bin/halt
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# The service exited with a zero exit code, which means it exited, let
 | 
				
			||||||
 | 
					# S6 supervision restart it.
 | 
				
			||||||
 | 
					else
 | 
				
			||||||
 | 
					  bashio::log.info "Service ${service} restarting..."
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
@@ -0,0 +1,56 @@
 | 
				
			|||||||
 | 
					#!/command/with-contenv bashio
 | 
				
			||||||
 | 
					# shellcheck shell=bash
 | 
				
			||||||
 | 
					# ==============================================================================
 | 
				
			||||||
 | 
					# Home Assistant Community Add-on: Example
 | 
				
			||||||
 | 
					# Example init script, runs before any other service
 | 
				
			||||||
 | 
					# ==============================================================================
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					declare log_level
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					bashio::log.info 'Starting Freqtrade NostalgiaForInfinity x5 bot...'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					journal_path='/var/log/journal'
 | 
				
			||||||
 | 
					if ! bashio::fs.directory_exists "${journal_path}" || [ -z "$(ls -A ${journal_path})" ]; then
 | 
				
			||||||
 | 
					    bashio::log.info "No journal at ${journal_path}, looking for journal in /run/log/journal instead"
 | 
				
			||||||
 | 
					    journal_path='/run/log/journal'
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					case "$(bashio::config 'log_level')" in \
 | 
				
			||||||
 | 
					    trace)      ;& \
 | 
				
			||||||
 | 
					    debug)      log_level='debug' ;; \
 | 
				
			||||||
 | 
					    notice)     ;& \
 | 
				
			||||||
 | 
					    warning)    log_level='warn' ;; \
 | 
				
			||||||
 | 
					    error)      ;& \
 | 
				
			||||||
 | 
					    fatal)      log_level='error' ;; \
 | 
				
			||||||
 | 
					    *)          log_level='info' ;; \
 | 
				
			||||||
 | 
					esac;
 | 
				
			||||||
 | 
					bashio::log.info "Freqtrade log level set to ${log_level}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export "JOURNAL_PATH=${journal_path}"
 | 
				
			||||||
 | 
					export "LOG_LEVEL=${log_level}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					bashio::log.info "Export Freqtrade environment variables"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export "FREQTRADE__BOT_NAME=$(bashio::config 'bot_name')"
 | 
				
			||||||
 | 
					export "FREQTRADE__MAX_OPEN_TRADES=$(bashio::config 'max_open_trade')"
 | 
				
			||||||
 | 
					export "FREQTRADE__TRADING_MODE=$(bashio::config 'trading_mode')"
 | 
				
			||||||
 | 
					export "FREQTRADE__EXCHANGE__NAME=$(bashio::config 'exchange_name')"
 | 
				
			||||||
 | 
					export "FREQTRADE__EXCHANGE__KEY=$(bashio::config 'exchange_key')"
 | 
				
			||||||
 | 
					export "FREQTRADE__EXCHANGE__SECRET=$(bashio::config 'exchange_token')"
 | 
				
			||||||
 | 
					export "FREQTRADE__TELEGRAM__ENABLED=$(bashio::config 'telegram_enabled')"
 | 
				
			||||||
 | 
					export "FREQTRADE__TELEGRAM__TOKEN=$(bashio::config 'telegram_token')"
 | 
				
			||||||
 | 
					export "FREQTRADE__TELEGRAM__CHAT_ID=$(bashio::config 'telegram_chat_id')"
 | 
				
			||||||
 | 
					export "FREQTRADE__API_SERVER__ENABLED=$(bashio::config 'api_server_enabled')"
 | 
				
			||||||
 | 
					export "FREQTRADE__API_SERVER__LISTEN_PORT=$(bashio::config 'api_server_port')"
 | 
				
			||||||
 | 
					export "FREQTRADE__API_SERVER__USERNAME=$(bashio::config 'api_server_username')"
 | 
				
			||||||
 | 
					export "FREQTRADE__API_SERVER__PASSWORD=$(bashio::config 'api_server_password')"
 | 
				
			||||||
 | 
					export "FREQTRADE__API_SERVER__JWT_SECRET_KEY=$(bashio::config 'api_server_jwt_secret_key')"
 | 
				
			||||||
 | 
					export "FREQTRADE__API_SERVER__WS_TOKEN=$(bashio::config 'api_server_ws_token')"
 | 
				
			||||||
 | 
					# Time Zone
 | 
				
			||||||
 | 
					export "TZ=$(bashio::config 'timezone')"
 | 
				
			||||||
 | 
					export "FREQTRADE__DRY_RUN=$(bashio::config 'dry_run')"
 | 
				
			||||||
 | 
					export "FREQTRADE__STRATEGY=$(bashio::config 'strategy')"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					bashio::log.info "starting the bot ..."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					exec /freqtrade/.venv/bin/freqtrade trade --db-url sqlite:////freqtrade/user_data/${FREQTRADE__BOT_NAME:-Example_Test_Account}_${FREQTRADE__EXCHANGE__NAME:-binance}_${FREQTRADE__TRADING_MODE:-spot}-tradesv3.sqlite --log-file /freqtrade/user_data/logs/${FREQTRADE__BOT_NAME:-Example_Test_Account}-${FREQTRADE__EXCHANGE__NAME:-binance}-${FREQTRADE__STRATEGY:-NostalgiaForInfinityX5}-${FREQTRADE__TRADING_MODE:-spot}.log
 | 
				
			||||||
@@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					longrun
 | 
				
			||||||
@@ -36,7 +36,7 @@ storage_config:
 | 
				
			|||||||
    directory: /data/loki/chunks
 | 
					    directory: /data/loki/chunks
 | 
				
			||||||
 | 
					
 | 
				
			||||||
compactor:
 | 
					compactor:
 | 
				
			||||||
  working_directory: /data/loki/boltdb-shipper-compactor
 | 
					  working_directory: /data/loki/tsdb-shipper-compactor
 | 
				
			||||||
  retention_enabled: true
 | 
					  retention_enabled: true
 | 
				
			||||||
  delete_request_store: filesystem  # Added this line
 | 
					  delete_request_store: filesystem  # Added this line
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user