Commit Graph
6 Commits
Author SHA1 Message Date
woggioni 4fa6c0cf2e Add self-contained GraalPy native executable
Build the app to a single native binary with graalpy's 'standalone
native' command (Dockerfile.native). granian/rloop cannot be bundled
into a standalone binary, so the executable serves the app over ASGI
with Hypercorn via native/entrypoint.py, which also works around
GraalPy standalone quirks (socket.listen, str response bodies, signal
handling).

Adds docker-compose.native.yml, a -native CI job, and README docs.
2026-09-24 11:11:00 +00:00
woggioni 609d9e22a8 Add GraalPy 25 image replacing CPython
Multi-stage Dockerfile.graalpy on ghcr.io/graalvm/graalpy-community:25
that builds the granian and rloop PyO3 extensions from source against
GraalPy (no GraalPy wheels exist), installs the pure-Python deps, and
serves the unchanged RSGI app on the rloop event loop.

Adds docker-compose.graalpy.yml and a CI job publishing the image as
the *-graalpy tags on release/*.
2026-09-24 01:54:02 +00:00
woggioni-opencode-agent bba22b357e Upgrade to kaya 0.0.3 with trusted-proxy forwarded header support
- bump kaya-core/kaya-rsgi to >= 0.0.3 and add kaya-forwarded: forwarded
  header handling is no longer built into core, it is opt-in via
  ForwardedHeadersMixin and gated on trusted proxy CIDRs
- add TRUSTED_PROXY_CIDRS setting (comma-separated CIDRs, validated at
  startup; empty means no proxy is trusted) and wire the mixin in app.py
- cover trusted/untrusted peers, all-trusted chains and the RFC 7239
  Forwarded header with port in the test suite
- document the new variable in README, .env.example and docker-compose.yml
2026-09-05 08:17:10 +00:00
woggioni-opencode-agent c5b653efba Upgrade to kaya 0.0.2 and run on the rloop event loop
CI / Build and push docker image (push) Successful in 1m39s
- pin kaya-core/kaya-rsgi >= 0.0.2 (ctx.client now honors Forwarded and
  X-Forwarded-* headers); adapt route tests and add explicit coverage
- add rloop dependency and set GRANIAN_LOOP=rloop in the Docker image so
  granian serves the app on the Rust event loop instead of asyncio
- regenerate requirements.txt (kaya 0.0.2, rloop 0.5.0)
- document the new loop and forwarded-header behavior in the README
2026-09-04 19:57:32 +08:00
woggioni-opencode-agent 628903afe0 Remove unused APP_HOST/APP_PORT settings 2026-09-04 19:57:31 +08:00
woggioni-opencode-agent b8f4e3026b Initial commit: ifconfig.me clone on the kaya framework 2026-09-04 19:57:31 +08:00