Alexandre Daubois
c14d771fdf
feat(docker): add support for Debian Trixie ( #1777 )
...
* ci: add support for Debian Trixie
* nit
* add Trixie to bug_report.yaml
---------
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
2025-08-27 08:32:05 +02:00
Kévin Dunglas
1da2ba1f28
fix(ci): Docker builds
2025-07-17 10:14:18 +02:00
Luffy
ac900e0df4
docs: update repository links and sync cn readme ( #1711 )
2025-07-01 10:29:55 +02:00
Alexandre Daubois
bbc3e49d6f
ci: remove unneeded echoes ( #1683 )
2025-06-25 10:17:53 +02:00
Alexandre Daubois
2712876e95
ci(docker): authenticate GitHub API calls ( #1680 )
2025-06-24 16:51:21 +02:00
Kévin Dunglas
c6483088c5
fix(docker): command to create /etc/frankenphp
2025-05-22 00:57:01 +02:00
Kévin Dunglas
5a9785d0d9
fix(docker): prevent BC break with the new Caddyfile path
2025-05-21 01:19:58 +02:00
Marc
bbbfdb31b5
ci: build .rpm and .deb packages ( #1497 )
...
* add ./create-rpm.sh file to build a "frankenphp" rpm package
* also build a deb package
* renamed to build-packages
* linter...
* add depends
* linter again?
* linter number 3
* linter number 4
* set default locations for ini file, conf files and extensions
* set unified path for modules that should be ok on all dists
* add default content into "package" folder
* make file executable
* worker is in public folder
* what on earth did I do x)
* use same FRANKENPHP_VERSION and make sure to let pr's run the rpm generation too (version 0.0.0) to see issues
* install ruby, fpm and rpm-build
* move to after changing base urls because it would fail with packages not found
* ruby 3 build needs gcc 10
* rpm-build is necessary too...
* and I forgot to link the package folder
* create directories if they don't exist
* copy out all frankenphp* files?
* lint fix
* only copy frankenphp-* files
* only copy frankenphp-* files
* the .deb file is name frankenphp_1.5.0... - create output folder instead and upload all things inside that
will simplify things when later adding xdebug.so and ffi.so
* update the last two steps to use the gh-output directory
* add post install script to set frankenphp able to bind to port 80 for non-root users
* dnf over yum, I think the yum alias was removed in RH 9.5
* newlines
* newlines
* add text what missing libcap means
* copy php.ini-production from php-src, linter, update ruby version
* move Caddyfile to /etc/frankenphp/Caddyfile
* linter
* fix a copy and paste error
* better describe fallback to 0.0.0
* linter
* copy installation scripts from official caddy packages, change user to frankenphp too
* bombombom
* make files executable
* tabs
* linter
* linter again
* use empty directory for three different destinations instead of keeping three empty local directories
* caddy says the file is incorrectly formatted without these spaces
* remove wildcard matcher from root directive
* Apply suggestions from code review
commit suggested changes to preinstall/postinstall scripts
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* Update dev.Dockerfile
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* remove misleading comment
* update documentation for paths
* update documentation for paths some more
* fix musl opcache-jit issue
* markdown linter
* the damn tab
* Apply suggestions from code review
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* drop dev.Dockerfile php location from config.md
* add php config note to CONTRIBUTING.md
* dashes instead of asterisks in chinese docs
* fix package building
* create frankenphp user in case it doesn't exist for deb packages
* create users if they don't exist, delete them again if they didn't exist
* satisfy linter
* create the user with the same commands as the postinst/preinstall scripts
* Removes toolchain requirements.
* trigger
* Removes explicit calls to go get
* trigger
* setcap by default
* simplify example project
* bring page more in line with the caddy / apache / nginx default page
* update to html 5
* oopsies
* revert style to original
* remove https:// (caddy uses http:// on RHEL, :80 on Debian)
---------
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
Co-authored-by: Alliballibaba <alliballibaba@gmail.com >
2025-05-14 07:33:05 +02:00
Kévin Dunglas
0d12a5162d
fix: use local Go toolchain ( #1546 )
2025-05-11 22:30:19 +02:00
Alexander Stecher
a48db9422d
fix: go toolchain versioning ( #1545 )
...
* Removes toolchain requirements.
* trigger
* Removes explicit calls to go get
* trigger
* Update static-builder-musl.Dockerfile
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* Update static-builder-musl.Dockerfile
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* Update static-builder-gnu.Dockerfile
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* Update alpine.Dockerfile
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* Update Dockerfile
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* Update Dockerfile
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* Update alpine.Dockerfile
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* trigger
* trigger
---------
Co-authored-by: Alliballibaba <alliballibaba@gmail.com >
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
2025-05-11 09:18:45 +02:00
Kévin Dunglas
341b0240c9
ci: include version in BuildInfo and Prometheus metrics ( #1418 )
2025-03-19 13:27:28 +01:00
Kévin Dunglas
69c43ee43d
chore: use upstream e-dant/watcher headers and build system ( #1119 )
2024-10-31 09:39:51 +01:00
Kévin Dunglas
afedeb9d58
refactor: use build tags to disable, instead of to enable a feature ( #1113 )
2024-10-24 14:14:47 +02:00
Kévin Dunglas
2532eb5887
chore: compile without nosql's support for Postgres and MySQL ( #1112 )
2024-10-22 22:50:31 +02:00
Kévin Dunglas
5601cc9640
chore(docker): download mlocati/docker-php-extension-installer ( #1049 )
2024-10-18 11:50:59 +02:00
Will
9acfb8be20
chore: make the branch from which Watcher is built a release branch ( #1072 )
...
Co-authored-by: Will <edant.io@proton.me >
2024-10-11 17:37:53 +02:00
Kévin Dunglas
e9c075a4a5
feat: add build tag to skip Watcher support ( #1076 )
...
* feat: add build tag to skip Watcher support
* fix
* fix
* cleanup
2024-10-08 23:23:53 +02:00
Kévin Dunglas
95c381ec78
feat: add build tag to skip Brotli support ( #1070 )
...
* feat: add build tag to skip Brotli support
* update docs
2024-10-08 18:57:34 +02:00
Kévin Dunglas
56d2f99548
chore: make the watcher module internal
2024-10-07 15:37:40 +02:00
Kévin Dunglas
029ce7e0ad
chore: use cc instead of hardcoding compiler
2024-10-07 15:37:26 +02:00
Alexander Stecher
8d9b6e755b
feat: restart workers when on source changes ( #1013 )
...
* Adds filesystem watcher with tests.
* Refactoring.
* Formatting.
* Formatting.
* Switches to absolute path in tests.
* Fixes race condition from merge conflict.
* Fixes race condition.
* Fixes tests.
* Fixes markdown lint errors.
* Switches back to absolute paths.
* Reverts back to relative file paths.
* Fixes golangci-lint issues.
* Uses github.com/dunglas/go-fswatch instead.
* Stops watcher before stopping workers.
* Updates docs.
* Avoids segfault in tests.
* Fixes watcher segmentation violations on shutdown.
* Adjusts watcher latencies and tests.
* Adds fswatch to dockerfiles
* Fixes fswatch in alpine.
* Fixes segfault (this time for real).
* Allows queueing new reload if file changes while workers are reloading.
* Makes tests more consistent.
* Prevents the watcher from getting stuck if there is an error in the worker file itself.
* Reverts changing the image.
* Puts fswatch version into docker-bake.hcl.
* Asserts instead of panicking.
* Adds notice
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* Update dev.Dockerfile
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* Update Dockerfile
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* Update Dockerfile
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* Update alpine.Dockerfile
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* Update alpine.Dockerfile
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* Update dev-alpine.Dockerfile
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* Update dev-alpine.Dockerfile
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* Update dev.Dockerfile
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* Update docs/config.md
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* Runs fswatch version.
* Removes .json.
* Replaces ms with s.
* Resets the channel after closing it.
* Update watcher_options.go
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* Update watcher_test.go
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* Asserts no error instead.
* Fixes a race condition where events are fired after frankenphp has stopped.
* Updates docs.
* Update watcher_options_test.go
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* Allows queuing events while watchers are reloading.
* go fmt
* Refactors stopping and draining logic.
* Allows extended watcher configuration with dirs, recursion, symlinks, case-sensitivity, latency, monitor types and regex.
* Updates docs.
* Adds TODOS.
* go fmt.
* Fixes linting errors.
* Also allows wildcards in the longform and adjusts docs.
* Adds debug log.
* Fixes the watcher short form.
* Refactors sessions and options into a struct.
* Fixes an overflow in the 'workersReadyWG' on unexpected terminations.
* Properly logs errors coming from session.Start().
* go fmt.
* Adds --nocache.
* Fixes lint issue.
* Refactors and resolves race condition on worker reload.
* Implements debouncing with a timer as suggested by @withinboredom.
* Starts watcher even if no workers are defined.
* Updates docs with file limit warning.
* Adds watch config unit tests.
* Adjusts debounce timings.
* go fmt.
* Adds fswatch to static builder (test).
* Adds a short grace period between stopping and destroying the watcher sessions.
* Adds caddy test.
* Adjusts sleep time.
* Swap to edant/watcher.
* Fixes watch options and tests.
* go fmt.
* Adds TODO.
* Installs edant/watcher in the bookworm image.
* Fixes linting.
* Refactors the watcher into its own module.
* Adjusts naming.
* ADocker image adjustments and refactoring.
* Testing installation methods.
* Installs via gcc instead.
* Fixes pointer formats.
* Fixes lint issues.
* Fixes arm alpine and updates docs.
* Clang format.
* Fixes dirs.
* Adds watcher version arg.
* Uses static lib version.
* Adds watcher to tests and sanitizers.
* Uses sudo for copying the shared lib.
* Removes unnused func.
* Refactoring.
* Update .github/workflows/sanitizers.yaml
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* Adds fpic.
* Fixes linting.
* Skips tests in msan.
* Resets op_cache in every worker thread after termination
* Review fixes part 1.
* Test: installing libstc++ instead of gcc.
* Test: using msan ignorelist.
* Test: using msan ignorelist.
* Test: using msan ignorelist.
* Allows '/**/' for global recursion and '**/' for relative recursion.
* Reverts using the ignorelist.
* Calls opcache directly.
* Adds --watch to php-server command
* Properly free CStrings.
* Sorts alphabetically and uses curl instead of git.
* Labeling and formatting.
* Update .github/workflows/sanitizers.yaml
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* Update .github/workflows/sanitizers.yaml
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* Update .github/workflows/tests.yaml
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* Update .github/workflows/tests.yaml
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* Update caddy/caddy.go
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* Update docs/config.md
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* Update frankenphp_with_watcher_test.go
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* Update watcher/watcher.h
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* Update frankenphp.c
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* Update watcher/watcher.go
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* Update docs/config.md
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* Update frankenphp_with_watcher_test.go
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* Update testdata/files/.gitignore
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* Update watcher/watcher-c.h
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* Update watcher/watcher.c
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* Fixes test and Dockerfile.
* Fixes Dockerfiles.
* Resets go versions.
* Replaces unsafe.pointer with uintptr_t
* Prevents worker channels from being destroyed on reload.
* Minimizes the public api by only passing a []string.
* Adds support for directory patterns and multiple '**' globs.
* Adjusts label.
* go fmt.
* go mod tidy.
* Fixes merge conflict.
* Refactoring and formatting.
* Cleans up unused vars and functions.
* Allows dirs with a dot.
* Makes test nicer.
* Add dir tests.
* Moves the watch directive inside the worker directive.
* Adds debug log on special events.
* Removes line about symlinks.
* Hints at multiple possible --watch flags.
* Adds ./**/*.php as default watch configuration.
* Changes error to a warning.
* Changes the default to './**/*.{php,yaml,yml,twig,env}' and supports the {bracket} pattern.
* Fixes linting.
* Fixes merge conflict and adjust values.
* Adjusts values.
---------
Co-authored-by: a.stecher <a.stecher@sportradar.com >
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
2024-10-07 13:17:24 +02:00
Kévin Dunglas
968176a948
ci: run tests with ASAN and MSAN ( #955 )
2024-08-09 18:18:15 +02:00
Kévin Dunglas
6c708be99d
ci: upgrade to super-linter 6 ( #952 )
2024-08-04 14:05:54 +02:00
Kévin Dunglas
0500ebc191
perf: improve PHP thread management ( #898 )
2024-07-09 09:39:03 +02:00
Kévin Dunglas
ebdb2656b6
fix: deprecated Dockerfile ENV syntax
2024-07-05 11:34:47 +02:00
Kévin Dunglas
175b9a0296
feat: add Brotli compression support ( #524 )
2024-01-30 18:33:59 +01:00
Kévin Dunglas
36a6daa8ba
docs: use tabs instead of spaces in Dockerfiles
2024-01-29 17:17:34 +01:00
Kévin Dunglas
fd6e28df2a
ci: improve linker flags ( #383 )
2023-12-14 21:50:09 +01:00
Kévin Dunglas
537f899939
feat: use tar to embed apps ( #333 )
2023-12-03 19:17:36 +01:00
Kévin Dunglas
6509cddd2a
feat: embed PHP apps into the FrankenPHP binary
2023-12-02 15:40:51 +01:00
Kévin Dunglas
c9bf9940d1
ci: add Super-Linter ( #323 )
2023-12-01 17:26:21 +01:00
Kévin Dunglas
90caf2701a
fix: healthcheck URL
2023-10-27 07:27:48 +02:00
Kévin Dunglas
c820b9750f
chore: minor Dockerfile improvements
2023-09-17 21:07:30 +02:00
Kévin Dunglas
09b2282441
feat: set SAPI version
2023-09-16 13:55:41 +02:00
Kévin Dunglas
22d4214529
feat: improve Docker images ( #208 )
2023-09-14 19:07:01 +02:00
Kévin Dunglas
b7098f7408
feat: Apple Silicon static build and better version name ( #205 )
...
* feat: Apple Silicon static build and better version name
Build a static binary for macOS and Apple Silicon.
Also add the PHP version to the version command.
* fix CircleCI Composer cache key
* fix export
* fix and optims
* cleanup
2023-09-14 01:10:20 +02:00
Kévin Dunglas
d024c3aaf2
chore: upgrade to Go 1.21 ( #195 )
2023-08-23 11:33:45 +02:00
Kévin Dunglas
0d2104afdf
feat: disable cgochecks in Docker images
2023-08-16 13:45:05 +02:00
Kévin Dunglas
7620c8658a
feat: add FrankenPHP version to the version command
2023-07-17 18:46:48 +02:00
Kévin Dunglas
70110dcc77
ci: Docker images for various PHP versions
...
Also adds semver support.
2023-07-17 10:18:33 +02:00
Marko Korhonen
e66ac34ac7
ci: use Docker Bake to build images
2023-07-17 10:18:33 +02:00
Kévin Dunglas
ec09b8ab8a
chore(docker): upgrade to Debian Bookworm
2023-06-29 01:21:05 +02:00
Kévin Dunglas
198ab9403a
chore: compile using Go 1.20 ( #154 )
2023-06-26 19:58:09 +02:00
Kévin Dunglas
930c627a44
chore(docker): switch back to the official PHP builds ( #153 )
...
* chore(docker): switch back to the official PHP builds
* alpine
2023-06-26 14:34:03 +02:00
Kévin Dunglas
75cd310292
feat: add support for PHP timeouts on Linux ( #128 )
2023-03-05 15:47:20 +01:00
Kévin Dunglas
c7f76ebd16
ci: fix build and bump deps
2023-02-03 19:08:25 +01:00
Kévin Dunglas
315e90b4b1
feat(docker): use the stable version of PHP 8.2 ( #123 )
2022-12-09 19:06:55 +01:00
Rob Landers
50a830927c
Update base image to RC7 ( #118 )
2022-11-29 14:04:32 +01:00
Kévin Dunglas
a97e1131a5
feat: upgrade to PHP 8.2RC6 and use the official PHP builds ( #106 )
2022-11-17 15:57:57 +01:00
Rob Landers
2b7e64946d
Use RC5 image ( #74 )
...
This migrates to the new RC5 image instead of cloning master of php-src.
New image sizes:
alpine: 60.14 MiB
debian: 190.31 MiB
2022-10-31 11:13:17 +01:00