112 Commits

Author SHA1 Message Date
Jose Diaz-Gonzalez
8742f688e3 docs: add settable properties tables to plugin docs
Renames the existing `## Internal properties` umbrella section to `## Properties` across all plugin docs and adds a new `### Settable properties` subsection enumerating every property accepted by each plugin's `:set` command. Each row lists scope, default, the actual `:report` flag shapes that surface the value, and a one-line description. The buildpacks plugin is included even though it uses `:set-property`, with a note in the subsection clarifying the legacy command name. Property lists, scopes, and report flags were verified against plugin source and the live dokku binary.
2026-05-23 22:45:20 -04:00
Jose Diaz-Gonzalez
cdcf1fc669 test: backfill raw/global/computed report triplet coverage across plugins
The bats coverage for plugin :report keys has been uneven since the raw/global/computed split landed in PR #8640. This commit adds a single combined triplet test per settable property across app-json, builder, builder-dockerfile, builder-herokuish, builder-lambda, builder-nixpacks, builder-pack, builder-railpack, buildpacks, cron (maintenance), git (keep-git-dir, rev-env-var, source-image), logs (vector-sink, vector-global-image, vector-global-networks), network (attach-post-create, attach-post-deploy, initial-network), proxy (per-app type), ps (stop-timeout-seconds), registry (image-repo, push-on-release, push-extra-tags), storage (build/deploy/run mounts), and adds a new tests/unit/scheduler.bats and tests/unit/nginx-vhosts_properties.bats. Brings ps `procfile-path` and `stop-timeout-seconds` global getters in line with the #8640 convention (raw global, default resolved in computed). Documents the read-only and internal properties that surface in `:report` (or are written by Dokku) but cannot be managed by `:set` in a new `## Internal properties` section appended to each affected plugin's docs page.
2026-05-23 00:05:33 -04:00
Jose Diaz-Gonzalez
76b033234f fix: split report global keys into raw and computed across plugins
The `<plugin>-global-<property>` keys in `:report` output returned the resolved value with the built-in default substituted in, so external tooling could not distinguish a property that had been set globally to the default from one that had never been set. The bare keys for caddy, haproxy, and traefik global-only properties had the same shape. The `global-<property>` keys now hold the raw stored value and are empty when nothing has been set, and a new `computed-<property>` key holds the effective value used at runtime, falling back through the per-app value (where one exists), the global value, and the built-in default. The bare global-only keys for the three proxy plugins are removed in favor of the raw/computed pair. Closes #8631.
2026-05-23 00:05:33 -04:00
Jose Diaz-Gonzalez
c45b95fc4d fix: expose raw deploy-branch and keep-git-dir in git:report
The bare `deploy-branch` and `keep-git-dir` keys in `git:report` returned the computed (effective) value rather than the raw per-app value, with no separate `computed-*` key to distinguish "set per-app" from "falling back to global or default". This left external tooling unable to detect a per-app unset without out-of-band state. The bare keys now hold the raw per-app value (empty when unset) and new `computed-deploy-branch` and `computed-keep-git-dir` keys hold the effective value, matching the convention used by `nginx-vhosts`, `network`, and `builder`. Closes #8610.
2026-05-11 22:18:17 -04:00
Jose Diaz-Gonzalez
9decf16ea1 feat: configure archive limits via git properties
Replaces the `DOKKU_ARCHIVE_MAX_SIZE` and `DOKKU_ARCHIVE_MAX_FILES` environment variables with global git properties (`archive-max-size` and `archive-max-files`), configurable via `dokku git:set --global` and surfaced through `dokku git:report --global`. Defaults remain `1073741824` bytes and `10000` entries.
2026-05-09 13:08:23 -04:00
Jose Diaz-Gonzalez
2df0791fcd fix: prevent tar symlink traversal in archive extraction
Archives passed to git:from-archive and certs:add were extracted without symlink or path validation, allowing a crafted archive to write arbitrary files anywhere writable by the dokku user via symlink traversal. Extraction now pre-scans entries for absolute paths, parent traversal, and unsafe symlinks, applies the GNU tar `--no-unsafe-links` flag when available, and validates symlinks after extraction.
2026-05-09 12:54:42 -04:00
Jose Diaz-Gonzalez
8847fcb6b0 Merge pull request #8505 from dokku/8504-git-auth-status
Add git:auth-status to check netrc match
2026-04-27 01:25:46 -04:00
Jose Diaz-Gonzalez
66c4b3b30e feat: add --format json to git:report and nginx:report
Mirrors the JSON output convention already used by scheduler:report, builder:report, network:report, and traefik:report. Both plugins now accept `--format json` to emit a single-line JSON object whose keys are the property names with the plugin prefix stripped. Combining `--format` with an info flag is rejected with an error message that matches the Go-based report helper.

Closes #8499
2026-04-26 23:30:22 -04:00
Jose Diaz-Gonzalez
65bdbefbea feat: add git:auth-status to check netrc match
Adds `git:auth-status HOST [USERNAME] [PASSWORD]` which exits 0 when the
configured `.netrc` entry matches the requested state and 1 otherwise,
allowing external tooling to detect whether `git:auth` would change
anything without reading `$DOKKU_ROOT/.netrc` directly. Both `git:auth`
and `git:auth-status` now also accept the password via `STDIN`.
2026-04-26 23:10:30 -04:00
Jose Diaz-Gonzalez
91e800a97b Merge pull request #8266 from dokku/6847-allow-force-pull-image-on-git-from-image
Add a method to force build when re-using an image with git:from-image
2026-01-08 12:11:54 -05:00
Jose Diaz-Gonzalez
6c3936802e feat: add a method to force build when re-using an image with git:from-image
Closes #6847
2026-01-08 02:46:53 -05:00
Jose Diaz-Gonzalez
dd70fb823d feat: add the ability to skip setting the deploy-branch when running git:sync
Closes #8212
2026-01-08 02:19:22 -05:00
Jose Diaz-Gonzalez
4de97a1094 feat: add ability to only build synced repo if there are changes
Closes #6242
2024-03-14 04:42:28 -04:00
Jose Diaz-Gonzalez
50958fc448 refactor: remove git:unlock command
This is no longer necessary with improvements elsewhere in Dokku.
2024-03-13 06:24:30 -04:00
Jose Diaz-Gonzalez
ec65d97139 feat: allow generating an ssh deploy key via the git plugin
While this might not seem super intuitive, the key is mostly related to git management, not the ssh-keys we currently use to add/remove access to push to dokku.
2024-01-19 06:30:30 -05:00
Jose Diaz-Gonzalez
9f2132ac8f docs: cleanup doc header 2023-12-03 02:51:09 -05:00
Jose Diaz-Gonzalez
46f310ceea docs: split out archive/image deployment docs into their own file 2023-12-02 16:45:56 -05:00
Jose Diaz-Gonzalez
2c9aaadae4 Merge pull request #5958 from gamedevsam/patch-1
Fix command to get docker image digest
2023-09-09 22:53:48 -04:00
Jose Diaz-Gonzalez
5c2bb443bd docs: clarify when to use a particular method to retrieve the sha256 digest
See [this link](https://web.archive.org/web/20230315050507/https://windsock.io/explaining-docker-image-ids/) for an explanation on why the two methods coexist.
2023-09-09 22:53:09 -04:00
Jose Diaz-Gonzalez
d61d91cf87 docs: use github admonitions
These still need to be properly parsed.
2023-08-19 14:24:12 -04:00
Jose Diaz-Gonzalez
5dd78e2b86 docs: update markdownlint rules for better formatting 2023-08-19 13:46:42 -04:00
Jose Diaz-Gonzalez
b8680f7de7 fix: automatically clear the git source-image property when changing deployment methodologies
This ensures users don't have issues with cached state in regards to files pulled from the repo/image.

Also add missing docs for deploy-source-set trigger.

Closes #5963
2023-08-05 10:58:57 -04:00
Samuel Batista
848c54c910 Fix command to get docker image digest 2023-06-21 23:58:59 -04:00
josegonzalez
322e1404ef docs: note that the app.json is pulled from the specified image when deploying via git:from-image 2023-02-16 23:33:14 -05:00
Jose Diaz-Gonzalez
d333c16347 feat: add ability to deploy images generated via docker save with git:load-image
Closes #4559
2023-01-21 14:05:31 -05:00
Jose Diaz-Gonzalez
c3c6e2174a fix: keep track of the source image when building an app via git:from-image
This change fixes issues with ps:rebuild not working as expected - essentially ignoring files in the repo - as well as adds tests.

Closes #5518
2022-12-18 17:57:24 -05:00
Jose Diaz-Gonzalez
654939afa7 refactor: do not pull image if it already exists 2022-12-18 17:52:32 -05:00
Jose Diaz-Gonzalez
aca8deb2f2 feat: add git:status subcommand
Closes #5248
2022-11-09 00:04:45 -05:00
Anthony Shew
0fbb92f3ad Typo for deploying using image SHA
The command for using an image doesn't include a colon before the `@sha`. Just wanted to help out others because this was tripping me up for like an hour!
2022-01-07 12:31:44 -07:00
Jose Diaz-Gonzalez
d1a16717b3 chore: remove deprecated tar plugin
This plugin was deprecated in 0.24.0 in favor of git:from-archive. Users should migrate to the new command.
2021-10-09 18:43:53 -04:00
Jose Diaz-Gonzalez
e893ac2aaa chore: remove deprecated tags plugin
This plugin was deprecated in 0.24.0 in favor of git:from-image. Users should migrate to the new command.
2021-10-09 18:34:01 -04:00
Jose Diaz-Gonzalez
92524c2da0 docs: explain sha256 image digest alternative when reusing docker image tags for git:from-image deployments 2021-10-05 13:48:12 -04:00
Jose Diaz-Gonzalez
ce4fe7850b Merge pull request #4819 from stephenheron/patch-1
Fixed typo in tar documentation
2021-10-03 17:58:46 -04:00
Jose Diaz-Gonzalez
1c277a99cb docs: add a note about using the registry:login command for private image deployments 2021-10-01 12:39:10 -04:00
Stephen Heron
071416ef11 Fixed tar.md typo
Small typo: arhive  to archive
2021-09-30 15:57:13 +01:00
Jose Diaz-Gonzalez
c50f39b4fa docs: more cleanup 2021-07-09 22:46:52 -04:00
dy3l
30dac07817 Fix case style 2021-06-24 22:42:02 +01:00
Jose Diaz-Gonzalez
3ab23dde07 Merge pull request #4465 from Akirtovskis/4458-git-sync-clone-in-progress
Add git:unlock command
2021-03-12 06:31:59 -05:00
arturs
b061843eb1 fix formatting issue 2021-03-11 20:46:06 +02:00
arturs
5a002f9007 update docs 2021-03-11 17:45:41 +02:00
arturs
b1db1e3e6f add git:unlock functionality 2021-03-07 12:28:03 +02:00
Jose Diaz-Gonzalez
e4c7e3eb74 docs: add note about auto-accepting a git branch as the primary branch on first push
[ci skip]
2021-03-05 11:04:42 -05:00
Jose Diaz-Gonzalez
a6729a562b docs: fix doc link and add 0.24.0 appendix to migration guides
[ci skip]
2021-03-01 12:01:26 -05:00
Jose Diaz-Gonzalez
5c1a1baf08 feat: implement git:from-archive
The previous tar support lacked the ability to track changes between tarball deploys. Critically, it also failed to be handled correctly when there was _also_ a git deployment done on the app, resulting in odd deployment states depending on the angles of the moon and the sun in the sky.

Rather than try to "fix" this through some hokey mechanism, importing the tar file contents into the git repository is preferred, as then the user can refer to the repository for commit history.

Additionally, we add support for non-tar files (tar.gz and zip), enabling deployments from systems that do not create tar files, such as Github (their tarball url is a tar.gz file).

Finally, this deprecates the tar plugin, and sets it to be removed in the next minor release (in addition to the tags plugin).

Closes #3458
Closes #4207
2021-03-01 08:13:51 -05:00
Jose Diaz-Gonzalez
ade2cc8a7c Merge pull request #4450 from dokku/4296-git-from-image
Simplify docker image deploys via git:from-image
2021-03-01 02:34:09 -05:00
Jose Diaz-Gonzalez
0a31f6fe3a feat: add git:from-image support
The new command superscedes the previous tags plugin, and integrates docker image deployment with the general build process.

While `docker image load` is not supported, this otherwise completely handles all previous workflows supported by the `tags:deploy` command, while doing so in a much easier to use interface.

Closes #4296
2021-03-01 02:26:58 -05:00
Jose Diaz-Gonzalez
720d37dc5d docs: update links to builder documentation to avoid extra rewrite 2021-03-01 02:09:47 -05:00
Jose Diaz-Gonzalez
8c34cfe64e feat: implement builder plugin
This plugin will allow users to override the builder used for their application, enabling users to use custom builders if desired.
2021-02-28 17:25:03 -05:00
Jose Diaz-Gonzalez
7a710005a1 feat: implement git:auth command
Refs #4364
2021-02-28 04:47:37 -05:00
Jose Diaz-Gonzalez
75b7ae94e1 docs: use updated links for documentation
Docs are now hosted on https://dokku.com, so we can avoid the extra rewrite.
2021-02-28 01:18:33 -05:00