3 Commits

3 changed files with 24 additions and 4 deletions

View File

@@ -2,6 +2,7 @@ FROM python:3.13-slim
RUN useradd --create-home --shell /bin/bash solarcontrol RUN useradd --create-home --shell /bin/bash solarcontrol
WORKDIR /script WORKDIR /script
COPY solarcontrol.py ./ COPY solarcontrol.py ./
RUN pip install --upgrade pip && pip3 install --no-cache-dir paho-mqtt python-dotenv requests RUN pip install --upgrade pip
USER solarcontrol USER solarcontrol
ENTRYPOINT ["/usr/bin/python3", "solarcontrol.py"] RUN pip install --user --no-cache-dir paho-mqtt python-dotenv requests
CMD ["python", "solarcontrol.py"]

View File

@@ -8,7 +8,13 @@ Enforce a zero export (or whatever consumption you like) policy with an OpenDTU-
### Docker ### Docker
Todo To run it using docker, try the `docker-compose.yaml` file present in this repository. You will need the .env file too for that reasons, so the easiest thing is to just run the following commands:
```bash
git clone https://git.privacynerd.de/BlueFox/SolarControl.git && cd SolarControl
vi .env # adjust the script to your needs
docker-compose up -d && docker-compose logs -f
```
### Bare-bone ### Bare-bone
@@ -22,6 +28,11 @@ python3 lge320reader.py
Please note: the .env file needs to be in the same folder or any other folder higher up in the directory structure as the script (more specifically, the WORKDIR). It is just a help, actually, the script searches for specific variables in its environment variables. It only loads the .env file so that you do not need to `export` all the files before running (see https://pypi.org/project/python-dotenv/ for more details). This also means that when using it in docker, you can set the docker containers environment file to that .env file and it will be accepted too. Please note: the .env file needs to be in the same folder or any other folder higher up in the directory structure as the script (more specifically, the WORKDIR). It is just a help, actually, the script searches for specific variables in its environment variables. It only loads the .env file so that you do not need to `export` all the files before running (see https://pypi.org/project/python-dotenv/ for more details). This also means that when using it in docker, you can set the docker containers environment file to that .env file and it will be accepted too.
## Updating
To update, simply use `git pull` to pull the latest changes. Afterwards, you need to restart your script (with docker, just use `docker-compose up -d --force-recreate`).
## Building docker ## Building docker
To build the image for docker, simply use the following commands: To build the image for docker, simply use the following commands:
@@ -30,7 +41,7 @@ To build the image for docker, simply use the following commands:
docker login # login to docker hub docker login # login to docker hub
docker buildx create --name buildx-multi-arch docker buildx create --name buildx-multi-arch
docker buildx use buildx-multi-arch docker buildx use buildx-multi-arch
docker buildx build --no-cache --platform linux/amd64,linux/386,linux/arm/v5,linux/arm/v7,linux/arm64/v8,linux/ppc64le,linux/s390x -t bluefox42/solarcontrol:<TAGNAME> . --push docker buildx build --no-cache --platform linux/amd64,linux/386,linux/arm/v5,linux/arm/v7,linux/arm64/v8,linux/ppc64le,linux/s390x -t bluefox42/solarcontrol:<VERSION> -t bluefox42/solarcontrol:latest . --push
``` ```

8
docker-compose.yaml Normal file
View File

@@ -0,0 +1,8 @@
services:
solarcontrol:
image: bluefox42/solarcontrol:latest
hostname: solarcontrol
container_name: solarcontrol
env_file: ".env"
restart: unless-stopped
stop_grace_period: 15s