Skip to content

Commit

Permalink
docs[bookworm]: Updated doc for v5
Browse files Browse the repository at this point in the history
  • Loading branch information
sidey79 committed Nov 10, 2024
1 parent f3850c4 commit ede58b8
Show file tree
Hide file tree
Showing 3 changed files with 225 additions and 19 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -389,7 +389,7 @@ jobs:
needs: [test_build, cpan_build]
strategy:
matrix:
dockerfile: [-bullseye, -threaded-bullseye, -bookworm, -threaded-bookworm]
dockerfile: [-bookworm, -threaded-bookworm]
env:
TAG_LATEST: ${{ (contains(matrix.dockerfile,'threaded') || github.event.release.prerelease == 1) && 'false' || 'auto' }}
# Steps represent a sequence of tasks that will be executed as part of the job
Expand Down
48 changes: 39 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ A Docker image for [FHEM](https://fhem.de/) house automation system, based on De

## Installation
Pre-build images are available on [Docker Hub](https://hub.docker.com/r/fhem/fhem)
Reccomended pulling from [Github Container Registry](https://github.com/orgs/fhem/packages) to allow automatic image for your system.
Recommended pulling from [Github Container Registry](https://github.com/orgs/fhem/packages) to allow automatic image for your system.

### From Docker Hub

Expand All @@ -20,23 +20,37 @@ Reccomended pulling from [Github Container Registry](https://github.com/orgs/fhe

#### Image with serval services installed

Updated versions based on
##### Version 5 (beta)

- debian bookworm
- Perl 5.36.3 (optional threaded)
- NodeJS 18 LTS
- Python 3.9.2
- Python 2.7.18
- Supported Plattforms: linux/amd64, linux/arm/v7, linux/arm64
- NOTE: alexa-fhem, alexa-cookie, gassistant-fhem, homebridge, homebridge-fhem, tradfri-fhem are not installed per default!

docker pull ghcr.io/fhem/fhem-docker:5-bullseye
docker pull ghcr.io/fhem/fhem-docker:5-threaded-bullseye

##### Version 4 - EOL Jan 2025

- debian bullseye
- Perl 5.36.3 (optional threaded)
- NodeJS 18 LTS
- Python 3.9.2
- Python 2.7.18
- Supported Plattforms: linux/amd64, linux/arm/v7, linux/arm64
- NOTE: alexa-fhem, alexa-cookie, gassistant-fhem, homebridge, homebridge-fhem, tradfri-fhem are not installed per default!
- NOTE: alexa-fhem, alexa-cookie, gassistant-fhem, homebridge, homebridge-fhem, tradfri-fhem are not installed per default!

docker pull ghcr.io/fhem/fhem-docker:4-bullseye
docker pull ghcr.io/fhem/fhem-docker:4-threaded-bullseye
docker pull ghcr.io/fhem/fhem-docker:4-bookworm
docker pull ghcr.io/fhem/fhem-docker:4-threaded-bookworm

If you are using 3rd Party modules which are not available on the FHEM svn repository, you may need this image, because it has more perl modules preinstalled.

To let this image work correctly, you need as least a FHEM revision 25680 or newer.

##### Not updated anymore since Jan 2024
##### Version 3 - EOL Jan 2024

- debian buster
- Perl 5.28.1
Expand All @@ -53,7 +67,23 @@ To let this image work correctly, you need as least a FHEM revision 25680 or new

#### Image with perl core services installed

- debian bullseye

##### Version 5 (beta)

- debian bookworm
- Perl 5.36.3 (optional threaded)
- Python 3.9.2
- Python 2.7.18
- Supported Plattforms: linux/amd64, linux/arm/v7, linux/arm64, linux/i386,

docker pull ghcr.io/fhem/fhem-minimal-docker:5-bookworm
docker pull ghcr.io/fhem/fhem-minimal-docker:5-threaded-bookworm

If you are using only modules which are provided via FHEM svn repository, you mostly can use this smaller image.

##### Version 4 - EOL Jan 2025

- debian bullseye
- Perl 5.36.3 (optional threaded)
- Python 3.9.2
- Python 2.7.18
Expand All @@ -64,7 +94,7 @@ To let this image work correctly, you need as least a FHEM revision 25680 or new

If you are using only modules which are provided via FHEM svn repository, you mostly can use this smaller image.

##### Not updated anymore since Jan 2024
##### Version 3 - EOL Jan 2024

- debian buster
- Perl 5.28.1
Expand All @@ -77,7 +107,7 @@ If you are using only modules which are provided via FHEM svn repository, you mo

#### To start your container right away:

docker run -d --name fhem -p 8083:8083 ghcr.io/fhem/fhem-docker:4-bullseye
docker run -d --name fhem -p 8083:8083 ghcr.io/fhem/fhem-docker:5-bookworm

#### Storage
Usually you want to keep your FHEM setup after a container was destroyed (or re-build) so it is a good idea to provide an external directory on your Docker host to keep that data:
Expand Down
194 changes: 185 additions & 9 deletions docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,183 @@ services:
#

# Minimum example w/o any custom environment variables
fhem:
fhem_5_a:
image: ghcr.io/fhem/fhem-docker:5-bookworm
restart: always
networks:
- net
ports:
- "8083:8083"
volumes:
- "./fhem/:/opt/fhem/"

# Example w/ custom environment variables
fhem_5_b:
image: ghcr.io/fhem/fhem-docker:5-bookworm
restart: always
networks:
- net
ports:
- "8083:8083"
volumes:
- "./fhem/:/opt/fhem/"
environment:
FHEM_UID: 6061
FHEM_GID: 6061
TIMEOUT: 10
RESTART: 1
TELNETPORT: 7072
TZ: Europe/Berlin
# CONFIGTYPE: configDB

# Example to connect USB to the container w/o
# privileged mode (preferred method)
fhem_5_c:
image: ghcr.io/fhem/fhem-docker:5-bookworm
restart: always
networks:
- net
ports:
- "8083:8083"
volumes:
- "./fhem/:/opt/fhem/"
devices:
- "/dev/ttyUSB0:/dev/ttyUSB0"
environment:
FHEM_UID: 6061
FHEM_GID: 6061
TIMEOUT: 10
RESTART: 1
TELNETPORT: 7072
TZ: Europe/Berlin

# Example to connect USB to the container w/
# privileged mode (not recommended for security reasons)
fhem_5_d:
image: ghcr.io/fhem/fhem-docker:5-bookworm
restart: always
privileged: true
networks:
- net
ports:
- "8083:8083"
volumes:
- "./fhem/:/opt/fhem/"
- "/dev/ttyUSB0:/dev/ttyUSB0"
environment:
FHEM_UID: 6061
FHEM_GID: 6061
TIMEOUT: 10
RESTART: 1
TELNETPORT: 7072
TZ: Europe/Berlin

# Example for privileged container w/
# host network (not recommended for security reasons)
fhem_5_e:
image: ghcr.io/fhem/fhem-docker:5-bookworm
restart: always
privileged: true
network_mode: "host"
ports:
- "8083:8083"
volumes:
- "./fhem/:/opt/fhem/"
environment:
FHEM_UID: 6061
FHEM_GID: 6061
TIMEOUT: 10
RESTART: 1
TELNETPORT: 7072
TZ: Europe/Berlin


# example with adding a cpan packages to your image
fhem_5_f:
build:
context: .
dockerfile_inline: |
FROM ghcr.io/fhem/fhem-docker:5-bookworm
RUN <<EOF
cpm install --show-build-log-on-failure --configure-timeout=360 --workers=$(nproc) --local-lib-contained /usr/src/app/3rdparty/ << YOUR PAACKAGE NAME >>
EOF
pull_policy: build
restart: always
networks:
- net
ports:
- "8083:8083"
volumes:
- "./fhem/:/opt/fhem/"

# example with extending debian packages to your image
fhem_5_g:
build:
context: .
dockerfile_inline: |
FROM ghcr.io/fhem/fhem-docker:5-bookworm
RUN <<EOF
LC_ALL=C DEBIAN_FRONTEND=noninteractive apt-get update
LC_ALL=C DEBIAN_FRONTEND=noninteractive apt-get install -qqy --no-install-recommends <DEBIAN PACKAGENAME>
LC_ALL=C apt-get autoremove -qqy && LC_ALL=C apt-get clean
EOF
pull_policy: build
restart: always
networks:
- net
ports:
- "8083:8083"
volumes:
- "./fhem/:/opt/fhem/"

# example with extending npm packages to your image
fhem_5_h:
build:
context: .
dockerfile_inline: |
FROM ghcr.io/fhem/fhem-docker:5-bookworm
RUN <<EOF
npm install -g --unsafe-perm --production <NPM PACKAGENAME>
npm cache clean --force
EOF
pull_policy: build
restart: always
networks:
- net
ports:
- "8083:8083"
volumes:
- "./fhem/:/opt/fhem/"


# example with extending python packages to your image
fhem_5_i:
build:
context: .
dockerfile_inline: |
FROM ghcr.io/fhem/fhem-docker:5-bookworm
RUN <<EOF
pip3 install --no-cache-dir <PIP PACKAGENAME>
EOF
pull_policy: build
restart: always
networks:
- net
ports:
- "8083:8083"
volumes:
- "./fhem/:/opt/fhem/"




####
# HINT: use only ONE of the example "fhem:" service
# definitions below !
#

# Minimum example w/o any custom environment variables
fhem_4_a:
image: ghcr.io/fhem/fhem-docker:4-bullseye
restart: always
networks:
Expand All @@ -33,7 +209,7 @@ services:
- "./fhem/:/opt/fhem/"

# Example w/ custom environment variables
fhem:
fhem_4_b:
image: ghcr.io/fhem/fhem-docker:4-bullseye
restart: always
networks:
Expand All @@ -53,7 +229,7 @@ services:

# Example to connect USB to the container w/o
# privileged mode (preferred method)
fhem:
fhem_4_c:
image: ghcr.io/fhem/fhem-docker:4-bullseye
restart: always
networks:
Expand All @@ -74,7 +250,7 @@ services:

# Example to connect USB to the container w/
# privileged mode (not recommended for security reasons)
fhem:
fhem_4_d:
image: ghcr.io/fhem/fhem-docker:4-bullseye
restart: always
privileged: true
Expand All @@ -95,7 +271,7 @@ services:

# Example for privileged container w/
# host network (not recommended for security reasons)
fhem:
fhem_4_e:
image: ghcr.io/fhem/fhem-docker:4-bullseye
restart: always
privileged: true
Expand All @@ -114,7 +290,7 @@ services:


# example with adding a cpan packages to your image
fhem:
fhem_4_f:
build:
context: .
dockerfile_inline: |
Expand All @@ -132,7 +308,7 @@ services:
- "./fhem/:/opt/fhem/"

# example with extending debian packages to your image
fhem:
fhem_4_g:
build:
context: .
dockerfile_inline: |
Expand All @@ -152,7 +328,7 @@ services:
- "./fhem/:/opt/fhem/"

# example with extending npm packages to your image
fhem:
fhem_4_h:
build:
context: .
dockerfile_inline: |
Expand All @@ -172,7 +348,7 @@ services:


# example with extending python packages to your image
fhem:
fhem_4_i:
build:
context: .
dockerfile_inline: |
Expand Down

0 comments on commit ede58b8

Please sign in to comment.