Skip to content

Commit d06c0a6

Browse files
authored
Merge pull request #1825 from pi-hole/development
dev -> master for release
2 parents 4decae8 + ad1288d commit d06c0a6

File tree

7 files changed

+60
-26
lines changed

7 files changed

+60
-26
lines changed

.github/CODEOWNERS

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# see https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners#codeowners-syntax
2+
3+
# These owners will be the default owners for everything in
4+
# the repo. Unless a later match takes precedence,
5+
* @pi-hole/docker-maintainers"

.github/dependabot.yml

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,17 +8,13 @@ updates:
88
day: saturday
99
time: "10:00"
1010
target-branch: development
11-
reviewers:
12-
- "pi-hole/docker-maintainers"
1311
- package-ecosystem: "docker"
1412
directory: "/src/"
1513
schedule:
1614
interval: "weekly"
1715
day: saturday
1816
time: "10:00"
1917
target-branch: development
20-
reviewers:
21-
- "pi-hole/docker-maintainers"
2218
- package-ecosystem: pip
2319
directory: "/test"
2420
schedule:
@@ -27,5 +23,3 @@ updates:
2723
time: "10:00"
2824
open-pull-requests-limit: 10
2925
target-branch: development
30-
reviewers:
31-
- "pi-hole/docker-maintainers"

.github/workflows/build-and-publish.yml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,10 @@ jobs:
2222
matrix:
2323
platform: [linux/amd64, linux/386, linux/arm/v6, linux/arm/v7, linux/arm64]
2424
alpine_version: [3.19]
25-
include:
26-
- platform: linux/riscv64
27-
alpine_version: edge
25+
# RISCV is currently not working on GHA, and so FTL is unavailable for this platform.
26+
# include:
27+
# - platform: linux/riscv64
28+
# alpine_version: edge
2829

2930
steps:
3031
- name: Prepare name for digest up/download

README.md

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525

2626
> [!CAUTION]
2727
>
28-
> ## !!! THE LATEST VERSION CONTAINS BREAKING CHANGES
28+
> ## !!! VERSIONS SINCE 2025.02.0 CONTAIN BREAKING CHANGES IF UPGRADING FROM 2024.07.0 OR OLDER
2929
>
3030
> **Pi-hole v6 has been entirely redesigned from the ground up and contains many breaking changes.**
3131
>
@@ -173,6 +173,13 @@ Here is a rundown of other arguments for your docker-compose / docker run.
173173
- Port conflicts? Stop your server's existing DNS / Web services.
174174
- Don't forget to stop your services from auto-starting again after you reboot.
175175
- Ubuntu users see below for more detailed information.
176+
- If only ports 80 and/or 443 are in use, you have two options:
177+
- Change the container's port mapping by adjusting the Docker `-p` flags or the `ports:` section in the compose file. For example, change `- "80:80/tcp"` to `- "8080:80/tcp"` to expose the container’s internal HTTP port 80 as 8080 on the host.
178+
- Or, when running the container in `network_mode: host`, where port mappings are not available, change the ports used by the Pi-hole web server using the `FTLCONF_webserver_port` environment variable.<br>
179+
Example:<br>
180+
`FTLCONF_webserver_port: '8080o,[::]:8080o,8443os,[::]:8443os'`<br>
181+
This makes the web interface available on HTTP port 8080 and HTTPS port 8443 for both IPv4 and IPv6.
182+
- **Note:** This only applies to web interface ports (80 and 443). DNS (53), DHCP (67), and NTP (123) ports must still be handled via Docker port mappings or host networking.
176183
- Docker's default network mode `bridge` isolates the container from the host's network. This is a more secure setting, but requires setting the Pi-hole DNS option for _Interface listening behavior_ to "Listen on all interfaces, permit all origins".
177184
- If you're using a Red Hat based distribution with an SELinux Enforcing policy, add `:z` to line with volumes.
178185

build.sh

Lines changed: 33 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,13 @@
44
usage() {
55
echo "Usage: $0 [-l] [-f <ftl_branch>] [-c <core_branch>] [-w <web_branch>] [-t <tag>] [use_cache]"
66
echo "Options:"
7-
echo " -f, --ftlbranch <branch> Specify FTL branch (cannot be used in conjunction with -l)"
8-
echo " -c, --corebranch <branch> Specify Core branch"
9-
echo " -w, --webbranch <branch> Specify Web branch"
10-
echo " -p, --paddbranch <branch> Specify PADD branch"
11-
echo " -t, --tag <tag> Specify Docker image tag (default: pihole:local)"
12-
echo " -l, --local Use locally built FTL binary (requires src/pihole-FTL file)"
13-
echo " use_cache Enable caching (by default --no-cache is used)"
7+
echo " -f, --ftlbranch <branch> Specify FTL branch (cannot be used in conjunction with -l)"
8+
echo " -c, --corebranch <branch> Specify Core branch"
9+
echo " -w, --webbranch <branch> Specify Web branch"
10+
echo " -p, --paddbranch <branch> Specify PADD branch"
11+
echo " -t, --tag <tag> Specify Docker image tag (default: pihole:local)"
12+
echo " -l, --local Use locally built FTL binary (requires src/pihole-FTL file)"
13+
echo " use_cache Enable caching (by default --no-cache is used)"
1414
echo ""
1515
echo "If no options are specified, the following command will be executed:"
1616
echo " docker buildx build src/. --tag pihole:local --load --no-cache"
@@ -21,6 +21,9 @@ usage() {
2121
TAG="pihole:local"
2222
DOCKER_BUILD_CMD="docker buildx build src/. --tag ${TAG} --load --no-cache"
2323
FTL_FLAG=false
24+
CORE_FORK="pi-hole"
25+
WEB_FORK="pi-hole"
26+
PADD_FORK="pi-hole"
2427

2528
# Check if buildx is installed
2629
docker buildx version >/dev/null 2>&1
@@ -34,13 +37,14 @@ fi
3437
check_branch_exists() {
3538
local repo=$1
3639
local branch=$2
40+
local fork=$3
3741
local url
3842

3943
if [ "$repo" == "ftl" ]; then
4044
# Special case for FTL - we check for the binary instead of just the branch - in case it is not yet built.
4145
url="https://ftl.pi-hole.net/${branch}/pihole-FTL-amd64"
4246
else
43-
url="https://github.com/pi-hole/${repo}/blob/${branch}/README.md"
47+
url="https://github.com/${fork}/${repo}/blob/${branch}/README.md"
4448
fi
4549

4650
local http_code
@@ -83,14 +87,14 @@ while [[ $# -gt 0 ]]; do
8387
;;
8488
-c | --corebranch)
8589
CORE_BRANCH="$2"
86-
check_branch_exists "pi-hole" "$CORE_BRANCH"
90+
check_branch_exists "pi-hole" "$CORE_BRANCH" "$CORE_FORK"
8791
DOCKER_BUILD_CMD+=" --build-arg CORE_BRANCH=$CORE_BRANCH"
8892
shift
8993
shift
90-
;;
94+
;;
9195
-w | --webbranch)
9296
WEB_BRANCH="$2"
93-
check_branch_exists "web" "$WEB_BRANCH"
97+
check_branch_exists "web" "$WEB_BRANCH" "$WEB_FORK"
9498
DOCKER_BUILD_CMD+=" --build-arg WEB_BRANCH=$WEB_BRANCH"
9599
shift
96100
shift
@@ -102,6 +106,24 @@ while [[ $# -gt 0 ]]; do
102106
shift
103107
shift
104108
;;
109+
-cf | --corefork)
110+
CORE_FORK="$2"
111+
DOCKER_BUILD_CMD+=" --build-arg CORE_FORK=$CORE_FORK"
112+
shift
113+
shift
114+
;;
115+
-wf | --webfork)
116+
WEB_FORK="$2"
117+
DOCKER_BUILD_CMD+=" --build-arg WEB_FORK=$WEB_FORK"
118+
shift
119+
shift
120+
;;
121+
-pf | --paddfork)
122+
PADD_FORK="$2"
123+
DOCKER_BUILD_CMD+=" --build-arg PADD_FORK=$PADD_FORK"
124+
shift
125+
shift
126+
;;
105127
-t | --tag)
106128
CUSTOM_TAG="$2"
107129
DOCKER_BUILD_CMD=${DOCKER_BUILD_CMD/$TAG/$CUSTOM_TAG}

src/Dockerfile

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,10 @@ ARG FTL_BRANCH="development"
1111
ARG PIHOLE_DOCKER_TAG="dev-localbuild"
1212
ARG PADD_BRANCH="development"
1313

14+
ARG CORE_FORK="pi-hole"
15+
ARG WEB_FORK="pi-hole"
16+
ARG PADD_FORK="pi-hole"
17+
1418
ARG PIHOLE_UID=1000
1519
ARG PIHOLE_GID=1000
1620

@@ -55,11 +59,11 @@ ADD https://ftl.pi-hole.net/macvendor.db /macvendor.db
5559
COPY crontab.txt /crontab.txt
5660

5761
# Add PADD to the container, too.
58-
ADD --chmod=0755 https://raw.githubusercontent.com/pi-hole/PADD/${PADD_BRANCH}/padd.sh /usr/local/bin/padd
62+
ADD --chmod=0755 https://raw.githubusercontent.com/${PADD_FORK}/PADD/${PADD_BRANCH}/padd.sh /usr/local/bin/padd
5963

6064
# download a the main repos from github
61-
RUN git clone --depth 1 --single-branch --branch ${WEB_BRANCH} https://github.com/pi-hole/web.git /var/www/html/admin && \
62-
git clone --depth 1 --single-branch --branch ${CORE_BRANCH} https://github.com/pi-hole/pi-hole.git /etc/.pihole
65+
RUN git clone --depth 1 --single-branch --branch ${WEB_BRANCH} https://github.com/${WEB_FORK}/web.git /var/www/html/admin && \
66+
git clone --depth 1 --single-branch --branch ${CORE_BRANCH} https://github.com/${CORE_FORK}/pi-hole.git /etc/.pihole
6367

6468
RUN cd /etc/.pihole && \
6569
install -Dm755 -d /opt/pihole && \
@@ -97,7 +101,8 @@ RUN if [ "$TARGETPLATFORM" = "linux/amd64" ]; then FTLARCH=amd64; \
97101
elif [ "$TARGETPLATFORM" = "linux/arm/v7" ]; then FTLARCH=armv7; \
98102
# Note for the future, "linux/arm6/v8" is not a valid value for TARGETPLATFORM, despite the CI platform name being that.
99103
elif [ "$TARGETPLATFORM" = "linux/arm64" ]; then FTLARCH=arm64; \
100-
elif [ "$TARGETPLATFORM" = "linux/riscv64" ]; then FTLARCH=riscv64; \
104+
# RISCV is currently not working on GHA, and so FTL is unavailable for this platform.
105+
#elif [ "$TARGETPLATFORM" = "linux/riscv64" ]; then FTLARCH=riscv64; \
101106
else FTLARCH=amd64; fi \
102107
&& echo "Arch: ${TARGETPLATFORM}, FTLARCH: ${FTLARCH}" \
103108
&& if [ "${FTL_BRANCH}" = "master" ]; then URL="https://github.com/pi-hole/ftl/releases/latest/download"; else URL="https://ftl.pi-hole.net/${FTL_BRANCH}"; fi \

test/requirements.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
pytest == 8.3.5
22
pytest-xdist == 3.6.1
3-
pytest-testinfra == 10.1.1
3+
pytest-testinfra == 10.2.2
44
black == 25.1.0
55
pytest-clarity == 1.0.1

0 commit comments

Comments
 (0)