Commit graph

114 commits

Author SHA1 Message Date
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
3590da7e26 fix: Removes offline and unavailable links
Some checks failed
Build (and tag) Images / build (push) Failing after 27s
2026-06-17 16:50:13 +02:00
67bfaff4d6 chore: Replaces port to allow testing on Windows agent
All checks were successful
Build (and tag) Images / build (push) Successful in 6m36s
2026-03-22 17:50:52 +01:00
209f9105bd chore: Switch to non-deskop runner
Some checks failed
Build (and tag) Images / build (push) Failing after 9m51s
2026-03-22 17:31:54 +01:00
4a304d1bc5 fix: Switches to buildx
All checks were successful
Build (and tag) Images / build (push) Successful in 1m45s
2026-03-22 16:49:54 +01:00
75840bb99f chore: Move to fedora-latest runner
Some checks failed
Build (and tag) Images / build (push) Failing after 1m5s
2026-03-22 16:18:50 +01:00
42f7456e18
fix: Panoramic camera details can be shown
Some checks failed
Build (and tag) Images / build (push) Failing after 55s
2026-03-20 19:20:14 +01:00
df45b9bbc4
fix: Adds missing localization 2026-03-20 19:17:31 +01:00
0a3b543796
fix: Handles panorama cameras inside statistics 2026-03-20 19:17:18 +01:00
6ab393b2af
feat: Adds frontend logic to render camera:type=panorama 2026-03-20 17:42:00 +01:00
4b5811d951
feat: Adds images for camera:type=panorama 2026-03-20 17:41:59 +01:00
6434bf5cf4 chore(deps): update docker/setup-buildx-action action to v4
Some checks failed
Build (and tag) Images / build (push) Failing after 21s
2026-03-10 20:01:57 +00:00
2343dd03eb
chore(deps): update docker/login-action action to v4
Some checks failed
Build (and tag) Images / build (push) Failing after 27s
2026-03-10 20:55:41 +01:00
954b534b10
fix: Handles pushed to all branches
Some checks failed
Build (and tag) Images / build (push) Failing after 1m2s
2026-03-10 20:55:27 +01:00
17c6946361
fix: Resolves syntax error
Some checks failed
images.yml / fix: Resolves syntax error (push) Failing after 0s
2026-03-10 20:54:46 +01:00
8775e3fc17
fix: Changes to docker pool
Some checks failed
images.yml / fix: Changes to `docker` pool (push) Failing after 0s
2026-03-10 20:53:02 +01:00
9138d57429 Excludes tag= from replacement
All checks were successful
Build (and tag) Images / build (pull_request) Successful in 46s
Build (and tag) Images / build (push) Successful in 48s
2025-10-25 17:53:03 +02:00