Commit graph

130 commits

Author SHA1 Message Date
Copilot
aa6ef7f362
fix: Pin PHP to php2shell-patched release
All checks were successful
Build (and tag) Images / Build data_handler Image (push) Successful in 40s
Build (and tag) Images / Build web Image (push) Successful in 55s
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-11-15 14:24:47 +01:00
13f0211624
revert: Uses previous port mapping 2026-11-15 14:24:25 +01:00
3013bf42b1
fix: Adds missing documentation hint for secret replacement 2026-11-15 14:24:25 +01:00
f5ef9adc4d
docs: Adds information about changes when running in a development environment 2026-11-15 14:24:25 +01:00
b6c05e5265
docs: Removes incorrect comment 2026-11-15 14:24:12 +01:00
ea5e305304
fix: Handles issue where error handler was skipped, if database DNS request fails 2026-11-15 14:24:12 +01:00
d9529cf6c0
fix: Enables PHP log output when running in development 2026-11-15 14:24:12 +01:00
54e78f3f4e
docs: Adds instructions about dev override
chore: Applies docker naming convention to files
2026-11-15 14:24:12 +01:00
7727c56351
feat: web healthcheck returns 503 status code if database is unavailable 2026-11-15 14:24:12 +01:00
aso
c186886df7
modified health check for web 2026-11-15 14:24:12 +01:00
aso
6f633a400c
first changes for sync of instances 2026-11-15 14:24:12 +01:00
f1dd6f9b2f
fix: Restarts any container unless stopped by user 2026-11-15 14:24:11 +01:00
c53b37e8f0
feat: Adds healthcheck that restarts data_handler, when any error is printed to log files 2026-11-15 14:23:58 +01:00
ddc73f7207
chore: Immediately starts update_camera on container startup 2026-11-15 14:23:58 +01:00
7332dd8d3c
refactor: Increases verbosity of data_handler 2026-11-15 14:23:58 +01:00
d794ee032c
feat: Adds healthcheck to web server 2026-11-15 14:23:57 +01:00
stb
60694442c2 Merge pull request 'Fix security issues' (#38) from security-fixes into main
All checks were successful
Build (and tag) Images / Build data_handler Image (push) Successful in 41s
Build (and tag) Images / Build web Image (push) Successful in 55s
Reviewed-on: #38
2026-11-15 13:42:03 +01:00
stb
2b47d340c3 Merge branch 'main' into security-fixes
All checks were successful
Build (and tag) Images / Build data_handler Image (push) Successful in 42s
Build (and tag) Images / Build web Image (push) Successful in 57s
2026-11-15 13:38:04 +01:00
stb
9623b53bd1 Merge pull request 'Removes offline and unavailable links' (#33) from link-updates into main
All checks were successful
Build (and tag) Images / Build data_handler Image (push) Successful in 50s
Build (and tag) Images / Build web Image (push) Successful in 1m9s
Reviewed-on: #33
Reviewed-by: stb <stb@noreply.git.hamburg.ccc.de>
2026-11-15 13:37:56 +01:00
stb
1f1219d772 Merge branch 'main' into link-updates
All checks were successful
Build (and tag) Images / Build data_handler Image (push) Successful in 41s
Build (and tag) Images / Build web Image (push) Successful in 59s
2026-11-15 13:29:08 +01:00
stb
bef369d002 Merge branch 'main' into security-fixes
All checks were successful
Build (and tag) Images / Build data_handler Image (push) Successful in 40s
Build (and tag) Images / Build web Image (push) Successful in 1m2s
2026-11-15 13:28:46 +01:00
stb
c90405d9ab Merge pull request 'Use kaniko to build image' (#39) from kaniko-build into main
All checks were successful
Build (and tag) Images / Build data_handler Image (push) Successful in 43s
Build (and tag) Images / Build web Image (push) Successful in 56s
Reviewed-on: #39
2026-11-15 13:28:02 +01:00
3a9dc311e4 chore: Re-adds Docker Compose test as disabled job
All checks were successful
Build (and tag) Images / Build data_handler Image (push) Successful in 39s
Build (and tag) Images / Build web Image (push) Successful in 55s
The compose smoke test needs a Docker daemon, which jobs on the current docker runner do not have. It is kept commented out so it can be re-enabled once such a runner exists.
2026-11-15 13:22:29 +01:00
7d925d79a2 fix: Uses repository registry credentials
All checks were successful
Build (and tag) Images / Build data_handler Image (push) Successful in 39s
Build (and tag) Images / Build web Image (push) Successful in 54s
This repository has REGISTRY_USERNAME/REGISTRY_TOKEN configured, not PACKAGES_TOKEN. Both are still only passed to kaniko when publishing from main.
2026-11-15 11:59:03 +01:00
d724be54bf chore: Reverts workflow changes
Some checks failed
Build (and tag) Images / build (push) Has been cancelled
The image build workflow is handled separately in the kaniko-build branch;
this pull request no longer changes it.
2026-11-15 11:57:20 +01:00
46b7509c37 chore: Reverts workflow changes
Some checks failed
Build (and tag) Images / build (push) Has been cancelled
The image build workflow is handled separately in the kaniko-build branch;
this pull request no longer changes it.
2026-11-15 11:57:18 +01:00
40a92ef6c8 fix: Builds images with kaniko on the docker runner
All checks were successful
Build (and tag) Images / Build data_handler Image (push) Successful in 38s
Build (and tag) Images / Build web Image (push) Successful in 54s
There are no Windows runners, so the workflow never ran. Builds now follow
the kaniko setup used in CCCHH/oci-images:

- kaniko in a container on the `docker` runner, one matrix job per image
- authenticates as forgejo-actions with the PACKAGES_TOKEN secret
- adds OCI annotations (ref.name, revision, url, source)

Publishing is limited to pushes to refs/heads/main, which push `latest`
and an immutable `sha-<commit>` tag. All other refs build with
KANIKO_NO_PUSH and do not receive the token. Tags are no longer derived
from ref names, so a branch named `latest` or a tag named `main` can no
longer overwrite the production image.

The docker compose smoke test is dropped, as there is no Docker daemon
inside the kaniko container.
2026-11-15 11:55:04 +01:00
6ec1b9fc5a fix: Builds images with kaniko
All checks were successful
Build (and tag) Images / build (push) Successful in 1m23s
There are no Windows runners; build the images with kaniko in a container
on the `docker` runner, as on the link-updates branch, while keeping the
publishing restrictions:

- only pushes to refs/heads/main publish, as `latest` and `sha-<commit>`
- other refs build with --no-push under a ci-<commit> tag
- registry credentials are only passed to the build when publishing

The docker compose smoke test is dropped, as there is no Docker daemon
inside the kaniko container.
2026-11-15 11:48:03 +01:00
da84719d3c fix: Removes trailing comma from links.json
All checks were successful
Build (and tag) Images / build (push) Successful in 1m34s
Removing the last German entry left a trailing comma, which makes json_decode() fail and hides the whole links section.
2026-11-15 11:47:13 +01:00
9d7b66cb3c Merge remote-tracking branch 'origin/main' into link-updates 2026-11-15 11:47:13 +01:00
3211e0f355 Merge remote-tracking branch 'origin/main' into security-fixes
Some checks failed
Build (and tag) Images / build (push) Has been cancelled
2026-11-15 11:45:52 +01:00
stb
b019a47539 Merge pull request 'Support and documentation for camera:type=panorama' (#30) from panorama-camera into main
Some checks failed
Build (and tag) Images / build (push) Has been cancelled
Reviewed-on: #30
2026-11-15 11:38:08 +01:00
stb
7f1750c240 Merge branch 'main' into panorama-camera
Some checks failed
Build (and tag) Images / build (push) Has been cancelled
2026-11-15 11:37:25 +01:00
cdf90a04d3 fix: Corrects country code check in statistics filter
Some checks failed
Build (and tag) Images / build (push) Failing after 12s
Operator precedence made the check always true; it now accepts two capital letters or '--' as intended.
2026-11-15 11:36:49 +01:00
3b28280333 fix: Escapes generated SQL and validates sequence number
create_camera_update_statements.php wrote OSM tag keys and values unescaped
into /migrations/*.sql. Values are now escaped and node ids cast to int.
The sequence number argument must be numeric and is bound as a parameter
instead of being concatenated into SQL and the output path.
2026-11-15 11:36:49 +01:00
189105075c fix: Publishes images only from main
Every pushed ref built and pushed images, with the tag derived from the ref
name. A branch named "latest" or a git tag named "main" therefore
overwrote the production image, and ref names were interpolated into shell
scripts unquoted (script injection).

- images are only pushed for pushes to refs/heads/main
- other refs are built and tested with a ci-<sha> tag, never pushed
- registry login happens only when publishing, after the compose test
- main additionally pushes an immutable sha-<sha> tag for pinning
- expression values are passed to scripts via env

The registry credentials still need to be restricted to main on the
Forgejo side, since a pushed branch can modify this workflow.
2026-11-15 11:36:49 +01:00
344232fb75 fix: Hardens web container
- document root is owned by root and not writable by www-data
  (the base image ships /var/www/html as www-data with mode 1777)
- uses php.ini-production, so errors are not shown to clients
- disables directory listings, expose_php and the detailed server signature
2026-11-15 11:36:49 +01:00
6a64083175 fix: Escapes location search results
Nominatim results were inserted via innerHTML and loaded as a JSONP script
with an unencoded query. Results are now fetched as JSON, the query is URL
encoded, text is escaped and coordinates must be numeric.
2026-11-15 11:36:49 +01:00
100762ea2e fix: Escapes OSM tag data in camera popups
camera.php built its JSON by hand with htmlentities(), which leaves
backslashes intact, and the client parsed it with eval() and inserted tag
values into the popup as HTML. A tag value such as <img ...> therefore
became live markup (stored XSS for anyone able to edit OSM data), and a lone
backslash broke parsing of the whole response.

- camera.php now builds the response with json_encode() and returns raw values
- tags named lat, lon, id, count, multi or poly no longer override the
  fields set by the server
- error responses no longer include database error messages
- the client uses JSON.parse() and escapes all keys and values; only
  http(s) URLs are rendered as links/images
2026-11-15 11:36:49 +01:00
stb
2161baa579 Merge pull request 'Update docker/login-action action to v4' (#31) from renovate/docker-login-action-4.x into main
Some checks failed
Build (and tag) Images / build (push) Failing after 12s
Reviewed-on: #31
2026-11-15 11:34:08 +01:00
stb
897a497c8e Merge pull request 'Update docker/setup-buildx-action action to v4' (#32) from renovate/docker-setup-buildx-action-4.x into main
Some checks failed
Build (and tag) Images / build (push) Has been cancelled
Reviewed-on: #32
2026-11-15 11:33:57 +01:00
stb
2bf415c94e Merge pull request 'Update quay.io/fedora/fedora-minimal Docker tag to v46' (#35) from renovate/quay.io-fedora-fedora-minimal-46.x into main
Some checks failed
Build (and tag) Images / build (push) Has been cancelled
Reviewed-on: #35
2026-11-15 11:33:44 +01:00
stb
a0cab66dbd Merge pull request 'Update actions/checkout action to v7' (#34) from renovate/actions-checkout-7.x into main
Some checks failed
Build (and tag) Images / build (push) Failing after 12s
Reviewed-on: #34
2026-11-15 11:33:30 +01:00
stb
3eeb33a91d Merge pull request 'Update mariadb Docker tag to v13' (#36) from renovate/mariadb-13.x into main
Some checks failed
Build (and tag) Images / build (push) Has been cancelled
Reviewed-on: #36
2026-11-15 11:33:17 +01:00
5ffed66449 Update mariadb Docker tag to v13
Some checks failed
Build (and tag) Images / build (push) Failing after 16s
2026-09-16 00:19:37 +00:00
90a314acf1 Update quay.io/fedora/fedora-minimal Docker tag to v46 2026-08-13 02:31:58 +00:00
2a0960c2d5 Update actions/checkout action to v7
Some checks failed
Build (and tag) Images / build (push) Failing after 20s
2026-06-18 15:02:02 +00:00
b2544cf267 refactor: Uses kaniko builder
All checks were successful
Build (and tag) Images / build (push) Successful in 1m47s
2026-06-17 17:02:05 +02:00
f407b077f2 fix: Uses docker binary
Some checks failed
Build (and tag) Images / build (push) Failing after 15s
2026-06-17 16:59:21 +02:00
c6d87997b0 fix: Removes buildx
Some checks failed
Build (and tag) Images / build (push) Failing after 19s
2026-06-17 16:56:15 +02:00