From 72b1f37e8bdc0ddc4f1eb0f299731670db2c34e3 Mon Sep 17 00:00:00 2001
From: Oh My Felix
Date: Fri, 29 May 2026 07:57:50 +0000
Subject: [PATCH 1/5] Add Dockette CI rollout baseline
---
.github/workflows/docker.yml | 76 +++++++++++++++++++++---------------
Makefile | 8 ++++
README.md | 22 +++--------
3 files changed, 59 insertions(+), 47 deletions(-)
diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml
index 5b58b41..8f25ac3 100644
--- a/.github/workflows/docker.yml
+++ b/.github/workflows/docker.yml
@@ -1,48 +1,62 @@
-name: Docker
+name: "Docker"
on:
+ workflow_dispatch:
+
push:
- branches: master
+ branches: ["master"]
+
+ schedule:
+ - cron: "0 8 * * 1"
permissions:
contents: read
jobs:
- docker:
- runs-on: ubuntu-latest
-
- name: Docker (dockette/expose)
+ test:
+ name: "Test"
+ runs-on: "ubuntu-latest"
steps:
- - name: Checkout
+ - name: "Checkout"
uses: actions/checkout@v4
- - name: Login to DockerHub
- uses: docker/login-action@v3
- with:
- username: ${{ secrets.DOCKERHUB_USERNAME }}
- password: ${{ secrets.DOCKERHUB_TOKEN }}
-
- - name: Set up QEMU
- uses: docker/setup-qemu-action@v3
-
- - name: Set up Docker Buildx
+ - name: "Set up Docker Buildx"
uses: docker/setup-buildx-action@v3
- - name: Cache Docker layers
- uses: actions/cache@v4
+ - name: "Build image"
+ uses: docker/build-push-action@v6
with:
- path: /tmp/.buildx-cache
- key: ${{ runner.os }}-buildx-${{ github.sha }}
- restore-keys: |
- ${{ runner.os }}-buildx-
+ context: "."
+ load: true
+ tags: "dockette/expose"
+
+ - name: "Test image"
+ run: "make test"
+
+ build:
+ name: "Build"
+ needs: ["test"]
+ uses: dockette/.github/.github/workflows/docker.yml@master
+ secrets: inherit
+ with:
+ image: "dockette/expose"
+ tag: "latest"
+ context: "."
+
+ docs:
+ name: "Docs"
+ runs-on: "ubuntu-latest"
+ needs: ["build"]
+ if: github.ref == 'refs/heads/master'
- - name: Build and push
- uses: docker/build-push-action@v6
+ steps:
+ - name: "Checkout"
+ uses: actions/checkout@v4
+
+ - name: "Update Docker Hub description"
+ uses: peter-evans/dockerhub-description@v5
with:
- context: .
- push: true
- tags: dockette/expose
- cache-from: type=local,src=/tmp/.buildx-cache
- cache-to: type=local,dest=/tmp/.buildx-cache
- platforms: linux/amd64,linux/arm64
+ username: ${{ secrets.DOCKERHUB_USERNAME }}
+ password: ${{ secrets.DOCKERHUB_TOKEN }}
+ repository: "dockette/expose"
diff --git a/Makefile b/Makefile
index 3973d1d..4211cdc 100644
--- a/Makefile
+++ b/Makefile
@@ -1,5 +1,13 @@
DOCKER_IMAGE=dockette/expose
+build: docker-build
+
+test:
+ docker run --rm ${DOCKER_IMAGE} --version
+
+run:
+ docker run -it --rm -p 8000:8000 ${DOCKER_IMAGE}
+
docker-build:
docker build --pull -t ${DOCKER_IMAGE} .
diff --git a/README.md b/README.md
index c6a85b1..6e57dcb 100644
--- a/README.md
+++ b/README.md
@@ -9,10 +9,10 @@
-
-
-
-
+
+
+
+
-----
@@ -98,16 +98,6 @@ docker run -it --rm --network=host -e EXPOSE_HOST=expose.local dockette/expose s
> Use http://host.docker.internal:5000 on OSX.
-## Development
+## Maintenance
-See [how to contribute](https://contributte.org/contributing.html) to this package.
-
-This package is currently maintaining by these authors.
-
-
-
-
-
------
-
-Consider to [support](https://github.com/sponsors/f3l1x) **f3l1x**. Also thank you for using this package.
+See [how to contribute](https://github.com/dockette/.github/blob/master/CONTRIBUTING.md) to this package. Consider to [support](https://github.com/sponsors/f3l1x) **f3l1x**. Thank you for using this package.
From fbb174ce505b433346efc0ee454d98d2cc25de45 Mon Sep 17 00:00:00 2001
From: Oh My Felix
Date: Wed, 3 Jun 2026 14:05:59 +0000
Subject: [PATCH 2/5] chore: align Makefile Docker variables
---
Makefile | 17 ++++++++++-------
1 file changed, 10 insertions(+), 7 deletions(-)
diff --git a/Makefile b/Makefile
index 4211cdc..38a8099 100644
--- a/Makefile
+++ b/Makefile
@@ -1,18 +1,21 @@
DOCKER_IMAGE=dockette/expose
+DOCKER_TAG?=latest
+DOCKER_PLATFORMS?=linux/amd64,linux/arm64
-build: docker-build
+build:
+ docker buildx build --platform ${DOCKER_PLATFORMS} -t ${DOCKER_IMAGE}:${DOCKER_TAG} .
test:
- docker run --rm ${DOCKER_IMAGE} --version
+ docker run --rm ${DOCKER_IMAGE}:${DOCKER_TAG} --version
run:
- docker run -it --rm -p 8000:8000 ${DOCKER_IMAGE}
+ docker run -it --rm -p 8000:8000 ${DOCKER_IMAGE}:${DOCKER_TAG}
docker-build:
- docker build --pull -t ${DOCKER_IMAGE} .
+ docker build --pull -t ${DOCKER_IMAGE}:${DOCKER_TAG} .
docker-push:
- docker push ${DOCKER_IMAGE}
+ docker push ${DOCKER_IMAGE}:${DOCKER_TAG}
example-install:
composer -d example install
@@ -24,7 +27,7 @@ example-share:
example/vendor/bin/expose share
test-expose:
- docker run -it --rm -p 8000:8000 ${DOCKER_IMAGE}
+ docker run -it --rm -p 8000:8000 ${DOCKER_IMAGE}:${DOCKER_TAG}
test-server:
- docker run -it --rm -p 8000:8000 --entrypoint /bin/bash ${DOCKER_IMAGE}
+ docker run -it --rm -p 8000:8000 --entrypoint /bin/bash ${DOCKER_IMAGE}:${DOCKER_TAG}
From 1b69845ed356bd874ea4bdc26ea921a1826d9c46 Mon Sep 17 00:00:00 2001
From: Oh My Felix
Date: Wed, 3 Jun 2026 14:19:34 +0000
Subject: [PATCH 3/5] chore: place PHONY declarations above targets
---
Makefile | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/Makefile b/Makefile
index 38a8099..cb47bfa 100644
--- a/Makefile
+++ b/Makefile
@@ -2,32 +2,42 @@ DOCKER_IMAGE=dockette/expose
DOCKER_TAG?=latest
DOCKER_PLATFORMS?=linux/amd64,linux/arm64
+.PHONY: build
build:
docker buildx build --platform ${DOCKER_PLATFORMS} -t ${DOCKER_IMAGE}:${DOCKER_TAG} .
+.PHONY: test
test:
docker run --rm ${DOCKER_IMAGE}:${DOCKER_TAG} --version
+.PHONY: run
run:
docker run -it --rm -p 8000:8000 ${DOCKER_IMAGE}:${DOCKER_TAG}
+.PHONY: docker-build
docker-build:
docker build --pull -t ${DOCKER_IMAGE}:${DOCKER_TAG} .
+.PHONY: docker-push
docker-push:
docker push ${DOCKER_IMAGE}:${DOCKER_TAG}
+.PHONY: example-install
example-install:
composer -d example install
+.PHONY: example-app
example-app:
php -S 0.0.0.0:8888 example/index.php
+.PHONY: example-share
example-share:
example/vendor/bin/expose share
+.PHONY: test-expose
test-expose:
docker run -it --rm -p 8000:8000 ${DOCKER_IMAGE}:${DOCKER_TAG}
+.PHONY: test-server
test-server:
docker run -it --rm -p 8000:8000 --entrypoint /bin/bash ${DOCKER_IMAGE}:${DOCKER_TAG}
From 634db22ee318e0d3dd67414f4e11cfd38ab3195b Mon Sep 17 00:00:00 2001
From: Oh My Felix
Date: Wed, 3 Jun 2026 14:23:12 +0000
Subject: [PATCH 4/5] chore: add AI agent instructions
---
AGENTS.md | 19 +++++++++++++++++++
CLAUDE.md | 1 +
2 files changed, 20 insertions(+)
create mode 100644 AGENTS.md
create mode 100644 CLAUDE.md
diff --git a/AGENTS.md b/AGENTS.md
new file mode 100644
index 0000000..e84c2d7
--- /dev/null
+++ b/AGENTS.md
@@ -0,0 +1,19 @@
+# AGENTS.md
+
+## Project
+
+Docker image repository in the Dockette organization.
+
+## Commands
+
+- `make build` builds the default Docker image.
+- `make test` runs the repository smoke tests.
+- `make run` starts the image for local use.
+
+## Guidelines
+
+- Keep Dockerfiles, `Makefile`, README, and GitHub Actions workflow changes aligned.
+- Prefer `DOCKER_*` names for Docker-related Makefile variables.
+- Place `.PHONY: ` directly above each Makefile target.
+- Keep README badges and maintenance sections consistent with other Dockette image repos.
+- Do not introduce unrelated formatting or structural changes.
diff --git a/CLAUDE.md b/CLAUDE.md
new file mode 100644
index 0000000..43c994c
--- /dev/null
+++ b/CLAUDE.md
@@ -0,0 +1 @@
+@AGENTS.md
From 82bd27ba1b5e167de78981018258170ae1123310 Mon Sep 17 00:00:00 2001
From: Oh My Felix
Date: Wed, 3 Jun 2026 14:29:15 +0000
Subject: [PATCH 5/5] chore: specialize AI agent instructions
---
AGENTS.md | 28 +++++++++++++++++++++++-----
1 file changed, 23 insertions(+), 5 deletions(-)
diff --git a/AGENTS.md b/AGENTS.md
index e84c2d7..1a2f173 100644
--- a/AGENTS.md
+++ b/AGENTS.md
@@ -2,18 +2,36 @@
## Project
-Docker image repository in the Dockette organization.
+Dockette Expose builds `dockette/expose`, a Dockerized Beyond Code Expose server/client for sharing local sites through secure tunnels. The image installs PHP 8.0, Composer, Expose `1.5.1`, custom PHP config, and the repository entrypoint.
+
+## Image
+
+- Default image: `dockette/expose:latest`.
+- Build context: repository root `.` with `Dockerfile`, `entrypoint.sh`, `config.php`, and `php.ini`.
+- Base image: `dockette/debian:buster`.
+- `make build` uses Docker Buildx and `${DOCKER_PLATFORMS:-linux/amd64,linux/arm64}`.
+- Runtime defaults are set by `EXPOSE_HOST`, `EXPOSE_PORT`, `EXPOSE_USERNAME`, `EXPOSE_PASSWORD`, `EXPOSE_TOKEN`, `EXPOSE_ADMIN`, and `EXPOSE_DB`.
+- GitHub Actions builds a local test image, runs `make test`, then publishes `latest` through the shared Dockette Docker workflow on `master` and the weekly schedule.
## Commands
-- `make build` builds the default Docker image.
-- `make test` runs the repository smoke tests.
-- `make run` starts the image for local use.
+- `make build` builds `${DOCKER_IMAGE}:${DOCKER_TAG}` with Buildx.
+- `make docker-build` performs a local `docker build --pull` without Buildx.
+- `make test` runs `expose --version` in the image.
+- `make run` starts the server on `8000:8000`.
+- `make example-install`, `make example-app`, and `make example-share` support the local PHP example.
+
+## Testing Notes
+
+- Use `make docker-build test` for a local single-platform validation before runtime testing.
+- Use `make -n build test run` to dry-run command wiring without requiring Docker.
+- Full server/client testing needs Docker networking, a reachable `EXPOSE_HOST`, and an available mapped port.
## Guidelines
-- Keep Dockerfiles, `Makefile`, README, and GitHub Actions workflow changes aligned.
+- Keep `Dockerfile`, `entrypoint.sh`, `config.php`, `php.ini`, README environment documentation, and `.github/workflows/docker.yml` aligned.
- Prefer `DOCKER_*` names for Docker-related Makefile variables.
- Place `.PHONY: ` directly above each Makefile target.
- Keep README badges and maintenance sections consistent with other Dockette image repos.
+- Preserve documented environment variable defaults unless the README and tests are updated in the same change.
- Do not introduce unrelated formatting or structural changes.