Arkeins
7b8cf6b127
docs: wrong config path for autoloaded .caddyfile ( #2059 )
...
Hi !
I am playing with FrankenPHP, and frankly new to the thing so I may be
wrong.
The [current documentation](https://frankenphp.dev/docs/config/#docker )
mention that :
> /etc/frankenphp/caddy.d/*.caddy: additional configuration files that
are loaded automatically
But in the main Caddyfile ([here on
GitHub](https://github.com/php/frankenphp/blob/main/caddy/frankenphp/Caddyfile#L59 ))
imports differently:
```ini
import Caddyfile.d/*.caddyfile
```
This PR aims to correct this :)
Thank you for your time !
Signed-off-by: Arkeins <7311955+Arkeins@users.noreply.github.com >
2025-12-03 18:20:09 +01:00
Kévin Dunglas
d52ce94341
docs: improve Mercure documentation and various other parts
2025-10-14 14:32:38 +02:00
Adiel Cristo
c564c3ffb9
fix: minor docs fixes
2025-08-29 12:46:40 +02:00
Marc
1ba19ae09e
docs: bring back note for php_server -> root ( #1726 )
2025-07-05 21:44:02 +02:00
Alexander Stecher
fb10b1e8f0
feat: worker matching ( #1646 )
...
* Adds 'match' configuration
* test
* Adds Caddy's matcher.
* Adds no-fileserver test.
* Prevents duplicate path calculations and optimizes worker access.
* trigger
* Changes worker->match to match->worker
* Adjusts tests.
* formatting
* Resets implementation to worker->match
* Provisions match path rules.
* Allows matching multiple paths
* Fixes var
* Formatting.
* refactoring.
* Adds 'match' configuration
* test
* Adds Caddy's matcher.
* Adds no-fileserver test.
* Prevents duplicate path calculations and optimizes worker access.
* trigger
* Changes worker->match to match->worker
* Adjusts tests.
* formatting
* Resets implementation to worker->match
* Provisions match path rules.
* Allows matching multiple paths
* Fixes var
* Formatting.
* refactoring.
* Update frankenphp.go
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* Update caddy/workerconfig.go
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* Update caddy/workerconfig.go
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* Update caddy/module.go
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* Update caddy/module.go
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* Fixes suggestion
* Refactoring.
* Adds 'match' configuration
* test
* Adds Caddy's matcher.
* Adds no-fileserver test.
* Prevents duplicate path calculations and optimizes worker access.
* trigger
* Changes worker->match to match->worker
* Adjusts tests.
* formatting
* Resets implementation to worker->match
* Provisions match path rules.
* Allows matching multiple paths
* Fixes var
* Formatting.
* refactoring.
* Adds docs.
* Fixes merge removal.
* Update config.md
* go fmt.
* Adds line ending to static.txt and fixes tests.
* Trigger CI
* fix Markdown CS
---------
Co-authored-by: Alliballibaba <alliballibaba@gmail.com >
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
2025-07-01 10:27:11 +02:00
Alexandre Daubois
96400a85d0
feat(worker): make maximum consecutive failures configurable ( #1692 )
2025-06-30 09:38:18 +02:00
Alexandre Daubois
b2435183f4
feat: add support for SERVER_ROOT to provide a different app root ( #1678 )
2025-06-23 20:47:58 +02:00
Rob Landers
3afb709f02
link directly to try_files in performance docs ( #1633 )
2025-06-09 16:57:48 +02:00
Marc
5a43e9f4de
feat: make frankenphp directive optional in Caddyfile ( #1601 )
...
* make frankenphp directive optional, thanks @francislavoie
* get rid of global variable
* update workers when adding to app
* suggestions
* goto instead of continue outer?
* remove empty frankenphp directives
* update config to reflect the optional frankenphp directive
* AI translations
* restore eol newlines
* don't double check for duplicate worker name
* add short form for php_server worker too
* translations
* AI hates EOL newlines now?
* suggestion to check for nil
* suggestion to use else if block
2025-06-02 15:55:55 +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
ffa52f7c8d
chore: run prettier
2025-04-23 01:02:44 +02:00
Indra Gunawan
c276a3f434
docs: remove wildcard matcher from root directive ( #1513 )
2025-04-22 11:27:29 +02:00
David Legrand
b250bd9a07
docs: add instructions to run Caddyfile from static binary ( #1501 )
2025-04-17 15:31:29 +02:00
Marc
58a728b790
docs: add configuration note about the ominous php directive ( #1495 )
...
* add note about the `php` directive in the configuration page
* Update config.md
* Update config.md
---------
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
2025-04-17 14:54:58 +02:00
Alexander Stecher
c5752f9e3b
docs: max_wait_time ( #1465 )
2025-04-01 20:53:04 +02:00
Indra Gunawan
87315a19ae
feat: introduces worker name option, use label on worker metrics instead ( #1376 )
...
* add worker name option and use it in logs and metrics, update tests
* fix missing reference for collector
* update tests
* update docs
* fix conflict
* add missing allowedDirectives
* update tests
2025-03-22 12:32:59 +01:00
Alliballibaba2
072151dfee
feat: Adds automatic thread scaling at runtime and php_ini configuration in Caddyfile ( #1266 )
...
Adds option to scale threads at runtime
Adds php_ini configuration in Caddyfile
2025-02-19 20:39:33 +01:00
Viktor Szépe
ece420c569
chore: fix typos ( #1328 )
...
* Fix typos
* Fix indentation
2025-01-21 00:32:52 +01:00
Leo Lutz
43c1de2372
Update config.md ( #1290 )
...
Fix example that doesn't work with the currently used Caddy version
2024-12-28 21:28:48 +01:00
Kévin Dunglas
51e4445c00
docs: update php.ini path ( #1110 )
...
Co-authored-by: Rob Landers <landers.robert@gmail.com >
2024-11-11 23:25:01 +01: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
f62244fb69
docs: fix markdown notices
2024-09-24 10:07:42 +02:00
Kévin Dunglas
47257ec919
docs: add performance docs ( #1004 )
...
* docs: add performance docs
* docs: add PHP performance section
* Update docs/performance.md
Co-authored-by: Jacob Dreesen <jacob@hdreesen.de >
* Update docs/performance.md
Co-authored-by: Jacob Dreesen <jacob@hdreesen.de >
* Update docs/performance.md
Co-authored-by: Jacob Dreesen <jacob@hdreesen.de >
* Update docs/performance.md
Co-authored-by: Jacob Dreesen <jacob@hdreesen.de >
* Update docs/performance.md
Co-authored-by: Jacob Dreesen <jacob@hdreesen.de >
* Update docs/performance.md
Co-authored-by: Jacob Dreesen <jacob@hdreesen.de >
* Update docs/performance.md
Co-authored-by: Jacob Dreesen <jacob@hdreesen.de >
* typo
* musl
* musl fixes
* add log section
* french translation
* typo
---------
Co-authored-by: Jacob Dreesen <jacob@hdreesen.de >
2024-08-27 11:45:56 +02:00
Kévin Dunglas
4fab5a3169
docs: fix php.ini path for static binaries
2024-07-10 14:08:11 +02:00
Kévin Dunglas
e743f6ab87
docs: customizing the configuration ( #911 )
...
* docs: customizing the configuration
* Update docs/config.md
Co-authored-by: Jacob Dreesen <jacob@hdreesen.de >
* Update docs/fr/config.md
Co-authored-by: Jacob Dreesen <jacob@hdreesen.de >
* Update embed.md
---------
Co-authored-by: Jacob Dreesen <jacob@hdreesen.de >
2024-07-09 16:13:55 +02:00
Kévin Dunglas
0b4a427cac
feat: use the new RegisterDirectiveOrder to simplify config
2024-05-31 17:47:24 +02:00
Rob Landers
b96db939b7
feat: option to enable full duplex for HTTP/1 connections ( #692 )
...
* found another spot that was preventing http1 writes
* remove full-duplex from caddyfile
* update documentation
* fix: update http name
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* fix: update http name
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* fix: names
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* fix: update caddyfile name
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* Add caution to docs
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* Update config.md
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* fix lint
---------
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
2024-05-31 14:38:31 +02:00
Laury S
963b3e0f59
docs: add FR translations and various EN improvements ( #589 )
...
* feat: add fr doc (#1 )
* fix: fr translations
* fix: linter
* docs: various improvements
* fix: md links on readme fr
* fix: remove duplicate images
---------
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
2024-02-27 17:21:48 +01:00
Kévin Dunglas
241ca55d7a
feat: automatically import environment variables in $_SERVER
2024-02-03 12:25:18 +01:00
Kévin Dunglas
ae958516ea
feat: enable resolve_root_symlink by default ( #546 )
...
* feat: enable resolve_root_symlink by default
* Update docs/config.md
Co-authored-by: Francis Lavoie <lavofr@gmail.com >
* fix init
---------
Co-authored-by: Francis Lavoie <lavofr@gmail.com >
2024-02-02 15:58:33 +01:00
Kévin Dunglas
175b9a0296
feat: add Brotli compression support ( #524 )
2024-01-30 18:33:59 +01:00
Jochen
2ef7762068
docs: PHP configuration guide ( #486 )
...
* docs: php configuration guide
* Update config.md
---------
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
2024-01-20 13:19:45 +01:00
Kévin Dunglas
b624a13430
docs: improve HTTPS documentation ( #480 )
2024-01-20 11:49:16 +01:00
Francis Lavoie
b9eae571e5
docs: Caddyfile config adjustments ( #345 )
2023-12-08 19:09:20 +01:00
Jacob Dreesen
8475ad9bc8
docs: fix some more typos ( #285 )
...
* Fix some typos in the docs
* Fix some more typos
2023-10-31 03:42:39 +01:00
Kévin Dunglas
e13e394700
feat: minor improvements to the default Caddyfile
2023-10-26 08:45:52 +02:00
Ruud Kamphuis
669a0175f3
Fix highlighting in config docs
2023-10-09 10:37:40 +02:00
DubbleClick
b4780b6495
docs: config for multiple workers ( #240 )
2023-10-05 11:45:38 +02:00
Kévin Dunglas
b04326ee83
chore: better env vars in default Caddyfile ( #237 )
2023-10-03 18:02:03 +02:00
Kévin Dunglas
2d91a606fd
feat(caddy): php_server simplified directive ( #235 )
...
* feat(caddy): php_server simplified directive
* fix typo
Co-authored-by: Matt Holt <mholt@users.noreply.github.com >
* fix
* cleanup
* Update config.md
Co-authored-by: Francis Lavoie <lavofr@gmail.com >
* feat: automatically serve static files
* file_server off
* fix tests
* fix config
* fix tests in Docker
* debug
* fix
---------
Co-authored-by: Matt Holt <mholt@users.noreply.github.com >
Co-authored-by: Francis Lavoie <lavofr@gmail.com >
2023-10-03 15:44:55 +02:00
Sergey Kamenskiy
f8e7b161b5
docs: explain php.ini configuration in docker
2023-09-25 21:32:44 +02:00
Oyebanji Jacob Mayowa
3f9cda365f
fix typo in config.md ( #221 )
2023-09-23 20:09:12 +02:00
Kévin Dunglas
123d167729
ci: release infrastructure ( #213 )
...
* ci: release infrastructure
* ci: release CircleCI binary
* fix circle
* fix Circle pipeline
* improve tags and docs
* improvements
2023-09-20 14:15:41 +02:00
Kévin Dunglas
b07808412c
docs: explain how to populate super globals with env vars
2023-09-16 13:29:53 +02:00
Kévin Dunglas
fb63099a88
feat: allow passing env vars to workers ( #210 )
2023-09-15 12:59:43 +02:00
Kévin Dunglas
a6603b58cc
feat: improve default config
2023-09-12 16:13:52 +02:00
Robin Chalas
bfb0b17811
feat: rename DEBUG env var to CADDY_DEBUG ( #79 )
2022-11-03 08:33:34 +01:00
Rokas Lakstauskas
814d6c5e92
Missing backslash for line continuation ( #28 )
2022-10-16 11:33:07 +02:00
Kévin Dunglas
d4fce0d678
docs: document debug mode
2022-10-15 18:40:13 +02:00
Kévin Dunglas
b8177a007e
docs: add more docs ( #16 )
2022-10-14 12:20:57 +02:00