chore(Dockerfile.rootless): remove legacy config file support #11098

Merged
0ko merged 7 commits from jaylinski/forgejo:rootless-image-remove-legacy-ini into forgejo 2026-03-02 06:03:41 +01:00
Contributor

Docs PR: forgejo/docs#1740


This legacy support was added in version 8. We now have version 14, so this deprecated feature can be confidently removed.

See dad16cd589 for a detailed explanation.

Checklist

The contributor guide contains information that will be helpful to first time contributors. There also are a few conditions for merging Pull Requests in Forgejo repositories. You are also welcome to join the Forgejo development chatroom.

Tests

  • I added test coverage for Go changes...
    • in their respective *_test.go for unit tests.
    • in the tests/integration directory if it involves interactions with a live Forgejo server.
  • I added test coverage for JavaScript changes...

Documentation

  • I created a pull request to the documentation to explain to Forgejo users how to use this change.
  • I did not document these changes and I do not expect someone else to do it.

Release notes

  • This change will be noticed by a Forgejo user or admin (feature, bug fix, performance, etc.). I suggest to include a release note for this change.
  • This change is not visible to a Forgejo user or admin (refactor, dependency upgrade, etc.). I think there is no need to add a release note for this change.

The decision if the pull request will be shown in the release notes is up to the mergers / release team.

The content of the release-notes/<pull request number>.md file will serve as the basis for the release notes. If the file does not exist, the title of the pull request will be used instead.

Release notes

  • Breaking changes without a feature or bug label
    • PR: In Forgejo v8.0.0, the default location for the config file was changed from /etc/gitea/app.ini to /var/lib/gitea/app.ini. Backward compatibility logic and startup warnings were added to container setup and entrypoint scripts. Now they are removed. This change only affects those using container deployments with rootless images. If you have the config file stored in a volume bound to container's /etc/gitea, move it to the new location or override the environment variable GITEA_APP_INI. An unused volume /etc/gitea can be safely removed from the container after moving the config or if the deployment never used versions prior to v8.0.0.
Docs PR: https://codeberg.org/forgejo/docs/pulls/1740 --- This legacy support was added in version 8. We now have version 14, so this deprecated feature can be confidently removed. See dad16cd5895a945c067ec6a2dacdac67afc8aa04 for a detailed explanation. ## Checklist The [contributor guide](https://forgejo.org/docs/next/contributor/) contains information that will be helpful to first time contributors. There also are a few [conditions for merging Pull Requests in Forgejo repositories](https://codeberg.org/forgejo/governance/src/branch/main/PullRequestsAgreement.md). You are also welcome to join the [Forgejo development chatroom](https://matrix.to/#/#forgejo-development:matrix.org). ### Tests - I added test coverage for Go changes... - [x] in their respective `*_test.go` for unit tests. - [x] in the `tests/integration` directory if it involves interactions with a live Forgejo server. - I added test coverage for JavaScript changes... - [x] in `web_src/js/*.test.js` if it can be unit tested. - [x] in `tests/e2e/*.test.e2e.js` if it requires interactions with a live Forgejo server (see also the [developer guide for JavaScript testing](https://codeberg.org/forgejo/forgejo/src/branch/forgejo/tests/e2e/README.md#end-to-end-tests)). ### Documentation - [x] I created a pull request [to the documentation](https://codeberg.org/forgejo/docs) to explain to Forgejo users how to use this change. - [ ] I did not document these changes and I do not expect someone else to do it. ### Release notes - [x] This change will be noticed by a Forgejo user or admin (feature, bug fix, performance, etc.). I suggest to include a release note for this change. - [ ] This change is not visible to a Forgejo user or admin (refactor, dependency upgrade, etc.). I think there is no need to add a release note for this change. *The decision if the pull request will be shown in the release notes is up to the mergers / release team.* The content of the `release-notes/<pull request number>.md` file will serve as the basis for the release notes. If the file does not exist, the title of the pull request will be used instead. <!--start release-notes-assistant--> ## Release notes <!--URL:https://codeberg.org/forgejo/forgejo--> - Breaking changes without a feature or bug label - [PR](https://codeberg.org/forgejo/forgejo/pulls/11098): <!--number 11098 --><!--line 0 --><!--description SW4gRm9yZ2VqbyB2OC4wLjAsIHRoZSBkZWZhdWx0IGxvY2F0aW9uIGZvciB0aGUgY29uZmlnIGZpbGUgd2FzIGNoYW5nZWQgZnJvbSBgL2V0Yy9naXRlYS9hcHAuaW5pYCB0byBgL3Zhci9saWIvZ2l0ZWEvYXBwLmluaWAuIEJhY2t3YXJkIGNvbXBhdGliaWxpdHkgbG9naWMgYW5kIHN0YXJ0dXAgd2FybmluZ3Mgd2VyZSBhZGRlZCB0byBjb250YWluZXIgc2V0dXAgYW5kIGVudHJ5cG9pbnQgc2NyaXB0cy4gTm93IHRoZXkgYXJlIHJlbW92ZWQuIFRoaXMgY2hhbmdlIG9ubHkgYWZmZWN0cyB0aG9zZSB1c2luZyBjb250YWluZXIgZGVwbG95bWVudHMgd2l0aCByb290bGVzcyBpbWFnZXMuIElmIHlvdSBoYXZlIHRoZSBjb25maWcgZmlsZSBzdG9yZWQgaW4gYSB2b2x1bWUgYm91bmQgdG8gY29udGFpbmVyJ3MgL2V0Yy9naXRlYSwgbW92ZSBpdCB0byB0aGUgbmV3IGxvY2F0aW9uIG9yIG92ZXJyaWRlIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZSBgR0lURUFfQVBQX0lOSWAuIEFuIHVudXNlZCB2b2x1bWUgYC9ldGMvZ2l0ZWFgIGNhbiBiZSBzYWZlbHkgcmVtb3ZlZCBmcm9tIHRoZSBjb250YWluZXIgYWZ0ZXIgbW92aW5nIHRoZSBjb25maWcgb3IgaWYgdGhlIGRlcGxveW1lbnQgbmV2ZXIgdXNlZCB2ZXJzaW9ucyBwcmlvciB0byB2OC4wLjAu-->In Forgejo v8.0.0, the default location for the config file was changed from `/etc/gitea/app.ini` to `/var/lib/gitea/app.ini`. Backward compatibility logic and startup warnings were added to container setup and entrypoint scripts. Now they are removed. This change only affects those using container deployments with rootless images. If you have the config file stored in a volume bound to container's /etc/gitea, move it to the new location or override the environment variable `GITEA_APP_INI`. An unused volume `/etc/gitea` can be safely removed from the container after moving the config or if the deployment never used versions prior to v8.0.0.<!--description--> <!--end release-notes-assistant-->
chore(Dockerfile.rootless): remove legacy config file support
Some checks failed
issue-labels / backporting (pull_request_target) Has been skipped
issue-labels / cascade (pull_request_target) Has been skipped
issue-labels / release-notes (pull_request_target) Successful in 1m4s
Integration tests for the release process / release-simulation (pull_request) Has been cancelled
requirements / merge-conditions (pull_request) Has been cancelled
testing / frontend-checks (pull_request) Failing after 25s
testing / backend-checks (pull_request) Failing after 1m5s
testing / test-mysql (pull_request) Has been skipped
testing / test-unit (pull_request) Has been skipped
testing / test-sqlite (pull_request) Has been skipped
testing / test-e2e (pull_request) Has been skipped
testing / test-pgsql (pull_request) Has been skipped
testing / test-remote-cacher (redict) (pull_request) Has been skipped
testing / test-remote-cacher (redis) (pull_request) Has been skipped
testing / test-remote-cacher (valkey) (pull_request) Has been skipped
testing / test-remote-cacher (garnet) (pull_request) Has been skipped
testing / security-check (pull_request) Has been skipped
050d9c291e
This legacy support was added in version 8. We now
have version 14, so this deprecated feature can be
confidently removed.

See dad16cd589 for a
detailed explanation.
Author
Contributor

Pull request to change documentation: forgejo/docs#1740

Pull request to change documentation: https://codeberg.org/forgejo/docs/pulls/1740
Where does that come from? The following is a preview of the release notes for this pull request, as they will appear in the upcoming release. They are derived from the content of the `release-notes/11098.md` file, if it exists, or the title of the pull request. They were also added at the bottom of the description of this pull request for easier reference.

This message and the release notes originate from a call to the release-notes-assistant.

@@ -30,2 +30,10 @@
 
 The content of the `release-notes/<pull request number>.md` file will serve as the basis for the release notes. If the file does not exist, the title of the pull request will be used instead.
+
+<!--start release-notes-assistant-->
+
+## Release notes
+<!--URL:https://codeberg.org/forgejo/forgejo-->
+- Breaking changes without a feature or bug label
+  - [PR](https://codeberg.org/forgejo/forgejo/pulls/11098): <!--number 11098 --><!--line 0 --><!--description Y2hvcmUoRG9ja2VyZmlsZS5yb290bGVzcyk6IHJlbW92ZSBsZWdhY3kgY29uZmlnIGZpbGUgc3VwcG9ydA==-->chore(Dockerfile.rootless): remove legacy config file support<!--description-->
+<!--end release-notes-assistant-->

Release notes

  • Breaking changes without a feature or bug label
    • PR: chore(Dockerfile.rootless): remove legacy config file support
<details> <summary>Where does that come from?</summary> The following is a preview of the release notes for this pull request, as they will appear in the upcoming release. They are derived from the content of the `release-notes/11098.md` file, if it exists, or the title of the pull request. They were also added at the bottom of the description of this pull request for easier reference. This message and the release notes originate from a call to the [release-notes-assistant](https://code.forgejo.org/forgejo/release-notes-assistant). ```diff @@ -30,2 +30,10 @@ The content of the `release-notes/<pull request number>.md` file will serve as the basis for the release notes. If the file does not exist, the title of the pull request will be used instead. + +<!--start release-notes-assistant--> + +## Release notes +<!--URL:https://codeberg.org/forgejo/forgejo--> +- Breaking changes without a feature or bug label + - [PR](https://codeberg.org/forgejo/forgejo/pulls/11098): <!--number 11098 --><!--line 0 --><!--description Y2hvcmUoRG9ja2VyZmlsZS5yb290bGVzcyk6IHJlbW92ZSBsZWdhY3kgY29uZmlnIGZpbGUgc3VwcG9ydA==-->chore(Dockerfile.rootless): remove legacy config file support<!--description--> +<!--end release-notes-assistant--> ``` </details> <!--start release-notes-assistant--> ## Release notes <!--URL:https://codeberg.org/forgejo/forgejo--> - Breaking changes without a feature or bug label - [PR](https://codeberg.org/forgejo/forgejo/pulls/11098): <!--number 11098 --><!--line 0 --><!--description Y2hvcmUoRG9ja2VyZmlsZS5yb290bGVzcyk6IHJlbW92ZSBsZWdhY3kgY29uZmlnIGZpbGUgc3VwcG9ydA==-->chore(Dockerfile.rootless): remove legacy config file support<!--description--> <!--end release-notes-assistant-->
Owner

I don't use docker, so not sure how big of a problem this still is (as in how many users) and if the warning has been seen by many. @viceice maybe you have some insights into this?

I don't use docker, so not sure how big of a problem this still is (as in how many users) and if the warning has been seen by many. @viceice maybe you have some insights into this?
Owner

@Gusted wrote in #11098 (comment):

I don't use docker, so not sure how big of a problem this still is (as in how many users) and if the warning has been seen by many. @viceice maybe you have some insights into this?

I only use it in the helm chart which is always override the app ini path explicit. so it was ok to maintain the workaround for a while and can now be removed.

https://code.forgejo.org/forgejo-helm/forgejo-helm/search/branch/main?path=&q=GITEA_APP_INI&mode=exact

@Gusted wrote in https://codeberg.org/forgejo/forgejo/pulls/11098#issuecomment-10341430: > I don't use docker, so not sure how big of a problem this still is (as in how many users) and if the warning has been seen by many. @viceice maybe you have some insights into this? I only use it in the helm chart which is always override the app ini path explicit. so it was ok to maintain the workaround for a while and can now be removed. https://code.forgejo.org/forgejo-helm/forgejo-helm/search/branch/main?path=&q=GITEA_APP_INI&mode=exact
viceice approved these changes 2026-02-03 15:29:34 +01:00
Owner

Is this worth of a dedicated release note entry that explains what support is being removed and the migration path? It's already clearly given for the past few releases but will now be removed along with the support. @forgejo/Releases.

Is this worth of a dedicated release note entry that explains what support is being removed and the migration path? It's already clearly given for the past few releases but will now be removed along with the support. @forgejo/Releases.
0ko approved these changes 2026-02-07 15:07:04 +01:00
Owner

@Gusted wrote in #11098 (comment):

@forgejo/Releases

The addition in Forgejo 8 was long enough for people to get used to ignoring the warning, so a little explanation linking to a detailed one is good to add.

@Gusted wrote in https://codeberg.org/forgejo/forgejo/pulls/11098#issuecomment-10420714: > @forgejo/Releases The addition in Forgejo 8 was long enough for people to get used to ignoring the warning, so a little explanation linking to a detailed one is good to add.
Owner

@0ko wrote in #11098 (comment):

people to get used to ignoring the warning

I feel called out...

WARNING: detected configuration file in deprecated default path /etc/gitea/app.ini. The new default is /var/lib/gitea/custom/conf/app.ini. To remove this warning, choose one of the options:
 * Move /etc/gitea/app.ini to /var/lib/gitea/custom/conf/app.ini (or to $GITEA_APP_INI if you want to override this variable)

🥴

And I remember why I haven't changed it, because I did run into it again:
After moving the config file to the new place and deleting the file in the old place, forgejo just crash-looped. Last time I just reverted, because docker logs just showed everything is fine, but this time I took a look and found in the log file:

2026/02/07 18:41:24 modules/ssh/init.go:86:Init() [F] An unexpected ssh public key was discovered. Forgejo will shutdown to require this to be fixed. Fix by either:
Option 1: Delete the file /var/lib/gitea/git/.ssh/authorized_keys, and Forgejo will recreate it with only expected ssh public keys.
Option 2: Permit unexpected keys by setting [server].SSH_ALLOW_UNEXPECTED_AUTHORIZED_KEYS=true in Forgejo's config file.
Option 3: If unused, disable SSH support by setting [server].DISABLE_SSH=true in Forgejo's config file.
        Key on line 2 of /var/lib/gitea/git/.ssh/authorized_keys does not exist in database
        Key on line 4 of /var/lib/gitea/git/.ssh/authorized_keys does not exist in database
        Key on line 6 of /var/lib/gitea/git/.ssh/authorized_keys does not exist in database

I have no idea, how this happened due to moving the config file? 🤔

@0ko wrote in https://codeberg.org/forgejo/forgejo/pulls/11098#issuecomment-10428190: > people to get used to ignoring the warning I feel called out... ``` WARNING: detected configuration file in deprecated default path /etc/gitea/app.ini. The new default is /var/lib/gitea/custom/conf/app.ini. To remove this warning, choose one of the options: * Move /etc/gitea/app.ini to /var/lib/gitea/custom/conf/app.ini (or to $GITEA_APP_INI if you want to override this variable) ``` 🥴 And I remember why I haven't changed it, because I did run into it again: After moving the config file to the new place and deleting the file in the old place, forgejo just crash-looped. Last time I just reverted, because `docker logs` just showed everything is fine, but this time I took a look and found in the log file: ``` 2026/02/07 18:41:24 modules/ssh/init.go:86:Init() [F] An unexpected ssh public key was discovered. Forgejo will shutdown to require this to be fixed. Fix by either: Option 1: Delete the file /var/lib/gitea/git/.ssh/authorized_keys, and Forgejo will recreate it with only expected ssh public keys. Option 2: Permit unexpected keys by setting [server].SSH_ALLOW_UNEXPECTED_AUTHORIZED_KEYS=true in Forgejo's config file. Option 3: If unused, disable SSH support by setting [server].DISABLE_SSH=true in Forgejo's config file. Key on line 2 of /var/lib/gitea/git/.ssh/authorized_keys does not exist in database Key on line 4 of /var/lib/gitea/git/.ssh/authorized_keys does not exist in database Key on line 6 of /var/lib/gitea/git/.ssh/authorized_keys does not exist in database ``` I have no idea, how this happened due to moving the config file? 🤔
Member

@Beowulf wrote in #11098 (comment):

I have no idea, how this happened due to moving the config file? 🤔

The config file is referenced in the authorized_keys file. If it changes, it doesn't match Forgejo's expected file contents.

# gitea public key
command=".../bin/forgejo --config=...configpath.../app.ini serv key-9",...etc...
@Beowulf wrote in https://codeberg.org/forgejo/forgejo/pulls/11098#issuecomment-10431296: > I have no idea, how this happened due to moving the config file? :thinking: The config file is referenced in the `authorized_keys` file. If it changes, it doesn't match Forgejo's expected file contents. ``` # gitea public key command=".../bin/forgejo --config=...configpath.../app.ini serv key-9",...etc... ```
Owner

@mfenniak wrote in #11098 (comment):

The config file is referenced in the authorized_keys file. If it changes, it doesn't match Forgejo's expected file contents.

Ah, you're right, I don't even use the authorized_keys file in this instance, this was another reason, why I haven't thought about this.
But I think this is another reason to mention it clearly in the release notes.

@mfenniak wrote in https://codeberg.org/forgejo/forgejo/pulls/11098#issuecomment-10431402: > The config file is referenced in the `authorized_keys` file. If it changes, it doesn't match Forgejo's expected file contents. Ah, you're right, I don't even use the `authorized_keys` file in this instance, this was another reason, why I haven't thought about this. But I think this is another reason to mention it clearly in the release notes.
Author
Contributor

Hi! Thanks for the review. Is there anything else I should do to get this merged?

Hi! Thanks for the review. Is there anything else I should do to get this merged?
Owner

Hi! There are some weird CI failures on your branch.

Hi! There are some weird CI failures on your branch.
jaylinski force-pushed rootless-image-remove-legacy-ini from 050d9c291e
Some checks failed
issue-labels / backporting (pull_request_target) Has been skipped
issue-labels / cascade (pull_request_target) Has been skipped
issue-labels / release-notes (pull_request_target) Successful in 1m4s
Integration tests for the release process / release-simulation (pull_request) Has been cancelled
requirements / merge-conditions (pull_request) Has been cancelled
testing / frontend-checks (pull_request) Failing after 25s
testing / backend-checks (pull_request) Failing after 1m5s
testing / test-mysql (pull_request) Has been skipped
testing / test-unit (pull_request) Has been skipped
testing / test-sqlite (pull_request) Has been skipped
testing / test-e2e (pull_request) Has been skipped
testing / test-pgsql (pull_request) Has been skipped
testing / test-remote-cacher (redict) (pull_request) Has been skipped
testing / test-remote-cacher (redis) (pull_request) Has been skipped
testing / test-remote-cacher (valkey) (pull_request) Has been skipped
testing / test-remote-cacher (garnet) (pull_request) Has been skipped
testing / security-check (pull_request) Has been skipped
to 570580356b
All checks were successful
issue-labels / release-notes (pull_request_target) Successful in 25s
requirements / merge-conditions (pull_request) Successful in 3s
testing / semgrep/ci (pull_request) Successful in 11s
testing / frontend-checks (pull_request) Successful in 53s
testing / backend-checks (pull_request) Successful in 2m48s
Integration tests for the release process / release-simulation (pull_request) Successful in 5m38s
testing / test-unit (pull_request) Successful in 5m57s
testing / test-remote-cacher (redict) (pull_request) Successful in 2m0s
testing / test-remote-cacher (valkey) (pull_request) Successful in 2m1s
testing / test-remote-cacher (garnet) (pull_request) Successful in 2m1s
testing / test-remote-cacher (redis) (pull_request) Successful in 2m3s
testing / test-e2e (pull_request) Successful in 18m16s
testing / test-mysql (pull_request) Successful in 20m51s
testing / test-sqlite (pull_request) Successful in 25m55s
testing / test-pgsql (pull_request) Successful in 30m10s
testing / security-check (pull_request) Successful in 1m3s
2026-02-28 19:47:16 +01:00
Compare
Author
Contributor

@0ko wrote in #11098 (comment):

Hi! There are some weird CI failures on your branch.

I rebased the branch, please run the CI pipelines again.

@0ko wrote in https://codeberg.org/forgejo/forgejo/pulls/11098#issuecomment-11076677: > Hi! There are some weird CI failures on your branch. I rebased the branch, please run the CI pipelines again.
add release note
Some checks failed
testing / semgrep/ci (pull_request) Successful in 11s
testing / frontend-checks (pull_request) Successful in 58s
requirements / merge-conditions (pull_request) Successful in 3s
issue-labels / release-notes (pull_request_target) Has been cancelled
Integration tests for the release process / release-simulation (pull_request) Has been cancelled
testing / backend-checks (pull_request) Has been cancelled
testing / test-unit (pull_request) Has been cancelled
testing / test-e2e (pull_request) Has been cancelled
testing / test-remote-cacher (redis) (pull_request) Has been cancelled
testing / test-remote-cacher (valkey) (pull_request) Has been cancelled
testing / test-remote-cacher (garnet) (pull_request) Has been cancelled
testing / test-remote-cacher (redict) (pull_request) Has been cancelled
testing / test-mysql (pull_request) Has been cancelled
testing / test-pgsql (pull_request) Has been cancelled
testing / test-sqlite (pull_request) Has been cancelled
testing / security-check (pull_request) Has been cancelled
5c9821d4b7
rootless
Some checks failed
testing / semgrep/ci (pull_request) Successful in 11s
requirements / merge-conditions (pull_request) Successful in 2s
issue-labels / release-notes (pull_request_target) Successful in 27s
testing / frontend-checks (pull_request) Successful in 1m3s
Integration tests for the release process / release-simulation (pull_request) Has been cancelled
testing / backend-checks (pull_request) Has been cancelled
testing / test-unit (pull_request) Has been cancelled
testing / test-e2e (pull_request) Has been cancelled
testing / test-remote-cacher (redis) (pull_request) Has been cancelled
testing / test-remote-cacher (valkey) (pull_request) Has been cancelled
testing / test-remote-cacher (garnet) (pull_request) Has been cancelled
testing / test-remote-cacher (redict) (pull_request) Has been cancelled
testing / test-mysql (pull_request) Has been cancelled
testing / test-pgsql (pull_request) Has been cancelled
testing / test-sqlite (pull_request) Has been cancelled
testing / security-check (pull_request) Has been cancelled
f099ffcd21
Owner

I added a dedicated release note per #11098 (comment) / #11098 (comment).

I think this is mergeable but need someone to approve the release note.

I added a dedicated release note per https://codeberg.org/forgejo/forgejo/pulls/11098#issuecomment-10420714 / https://codeberg.org/forgejo/forgejo/pulls/11098#issuecomment-10428190. I think this is mergeable but need someone to approve the release note.
rna hates separate lines?
Some checks failed
testing / semgrep/ci (pull_request) Successful in 12s
requirements / merge-conditions (pull_request) Successful in 2s
issue-labels / release-notes (pull_request_target) Successful in 26s
testing / frontend-checks (pull_request) Successful in 1m2s
Integration tests for the release process / release-simulation (pull_request) Has been cancelled
testing / backend-checks (pull_request) Has been cancelled
testing / test-unit (pull_request) Has been cancelled
testing / test-e2e (pull_request) Has been cancelled
testing / test-remote-cacher (redis) (pull_request) Has been cancelled
testing / test-remote-cacher (valkey) (pull_request) Has been cancelled
testing / test-remote-cacher (garnet) (pull_request) Has been cancelled
testing / test-remote-cacher (redict) (pull_request) Has been cancelled
testing / test-mysql (pull_request) Has been cancelled
testing / test-pgsql (pull_request) Has been cancelled
testing / test-sqlite (pull_request) Has been cancelled
testing / security-check (pull_request) Has been cancelled
7218642145
k rna hates all formatting
Some checks failed
testing / semgrep/ci (pull_request) Successful in 12s
requirements / merge-conditions (pull_request) Successful in 3s
issue-labels / release-notes (pull_request_target) Successful in 27s
testing / frontend-checks (pull_request) Successful in 1m3s
testing / backend-checks (pull_request) Successful in 2m14s
testing / test-unit (pull_request) Has been cancelled
testing / test-e2e (pull_request) Has been cancelled
Integration tests for the release process / release-simulation (pull_request) Has been cancelled
testing / test-pgsql (pull_request) Has been cancelled
testing / test-sqlite (pull_request) Has been cancelled
testing / test-mysql (pull_request) Has been cancelled
testing / test-remote-cacher (redis) (pull_request) Has been cancelled
testing / test-remote-cacher (valkey) (pull_request) Has been cancelled
testing / test-remote-cacher (garnet) (pull_request) Has been cancelled
testing / test-remote-cacher (redict) (pull_request) Has been cancelled
testing / security-check (pull_request) Has been cancelled
e8b9d0a5e3
.
Some checks failed
testing / semgrep/ci (pull_request) Successful in 13s
requirements / merge-conditions (pull_request) Successful in 1s
issue-labels / release-notes (pull_request_target) Successful in 29s
testing / frontend-checks (pull_request) Successful in 1m4s
testing / backend-checks (pull_request) Successful in 2m21s
testing / test-unit (pull_request) Successful in 5m52s
testing / test-remote-cacher (redict) (pull_request) Successful in 2m4s
testing / test-remote-cacher (valkey) (pull_request) Successful in 2m6s
testing / test-remote-cacher (redis) (pull_request) Successful in 2m8s
testing / test-remote-cacher (garnet) (pull_request) Successful in 2m7s
testing / test-e2e (pull_request) Successful in 18m6s
testing / test-mysql (pull_request) Successful in 20m21s
testing / test-sqlite (pull_request) Successful in 25m26s
testing / test-pgsql (pull_request) Successful in 29m39s
testing / security-check (pull_request) Successful in 56s
Integration tests for the release process / release-simulation (pull_request) Has been cancelled
f0c7f00ab4
@ -0,0 +1 @@
In Forgejo v8.0.0, the default location for the config file was changed from `/etc/gitea/app.ini` to `/var/lib/gitea/app.ini`. Backward compatibility logic and startup warnings were added to container setup and entrypoint scripts. Now they are removed. This change only affects those using container deployments with rootless images. If you have the config file stored in a volume bound to container's /etc/gitea, move it to the new location or override the environment variable `GITEA_APP_INI`. An unused `/etc/gitea` can be safely from container volumes after moving the config or if the deployment never used versions prior to v8.0.0.
Owner

'An unused /etc/gitea can be safely from container'

Word missing after 'safely'?

'An unused `/etc/gitea` can be safely from container' Word missing after 'safely'?
0ko marked this conversation as resolved
Update release-notes/11098.md
All checks were successful
testing / semgrep/ci (pull_request) Successful in 16s
testing / frontend-checks (pull_request) Successful in 1m2s
requirements / merge-conditions (pull_request) Successful in 6s
issue-labels / release-notes (pull_request_target) Successful in 30s
testing / backend-checks (pull_request) Successful in 2m49s
Integration tests for the release process / release-simulation (pull_request) Successful in 5m36s
testing / test-unit (pull_request) Successful in 6m5s
testing / test-remote-cacher (garnet) (pull_request) Successful in 2m3s
testing / test-remote-cacher (valkey) (pull_request) Successful in 2m4s
testing / test-remote-cacher (redis) (pull_request) Successful in 2m6s
testing / test-remote-cacher (redict) (pull_request) Successful in 2m2s
testing / test-e2e (pull_request) Successful in 18m12s
testing / test-mysql (pull_request) Successful in 20m48s
testing / test-sqlite (pull_request) Successful in 25m50s
testing / test-pgsql (pull_request) Successful in 30m6s
testing / security-check (pull_request) Successful in 54s
issue-labels / backporting (pull_request_target) Has been skipped
milestone / set (pull_request_target) Successful in 5s
6713c23c88
Where does that come from? The following is a preview of the release notes for this pull request, as they will appear in the upcoming release. They are derived from the content of the `release-notes/11098.md` file, if it exists, or the title of the pull request. They were also added at the bottom of the description of this pull request for easier reference.

This message and the release notes originate from a call to the release-notes-assistant.

@@ -40,4 +40,4 @@
 <!--URL:https://codeberg.org/forgejo/forgejo-->
 - Breaking changes without a feature or bug label
-  - [PR](https://codeberg.org/forgejo/forgejo/pulls/11098): <!--number 11098 --><!--line 0 --><!--description SW4gRm9yZ2VqbyB2OC4wLjAsIHRoZSBkZWZhdWx0IGxvY2F0aW9uIGZvciB0aGUgY29uZmlnIGZpbGUgd2FzIGNoYW5nZWQgZnJvbSBgL2V0Yy9naXRlYS9hcHAuaW5pYCB0byBgL3Zhci9saWIvZ2l0ZWEvYXBwLmluaWAuIEJhY2t3YXJkIGNvbXBhdGliaWxpdHkgbG9naWMgYW5kIHN0YXJ0dXAgd2FybmluZ3Mgd2VyZSBhZGRlZCB0byBjb250YWluZXIgc2V0dXAgYW5kIGVudHJ5cG9pbnQgc2NyaXB0cy4gTm93IHRoZXkgYXJlIHJlbW92ZWQuIFRoaXMgY2hhbmdlIG9ubHkgYWZmZWN0cyB0aG9zZSB1c2luZyBjb250YWluZXIgZGVwbG95bWVudHMgd2l0aCByb290bGVzcyBpbWFnZXMuIElmIHlvdSBoYXZlIHRoZSBjb25maWcgZmlsZSBzdG9yZWQgaW4gYSB2b2x1bWUgYm91bmQgdG8gY29udGFpbmVyJ3MgL2V0Yy9naXRlYSwgbW92ZSBpdCB0byB0aGUgbmV3IGxvY2F0aW9uIG9yIG92ZXJyaWRlIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZSBgR0lURUFfQVBQX0lOSWAuIEFuIHVudXNlZCBgL2V0Yy9naXRlYWAgY2FuIGJlIHNhZmVseSBmcm9tIGNvbnRhaW5lciB2b2x1bWVzIGFmdGVyIG1vdmluZyB0aGUgY29uZmlnIG9yIGlmIHRoZSBkZXBsb3ltZW50IG5ldmVyIHVzZWQgdmVyc2lvbnMgcHJpb3IgdG8gdjguMC4wLg==-->In Forgejo v8.0.0, the default location for the config file was changed from `/etc/gitea/app.ini` to `/var/lib/gitea/app.ini`. Backward compatibility logic and startup warnings were added to container setup and entrypoint scripts. Now they are removed. This change only affects those using container deployments with rootless images. If you have the config file stored in a volume bound to container's /etc/gitea, move it to the new location or override the environment variable `GITEA_APP_INI`. An unused `/etc/gitea` can be safely from container volumes after moving the config or if the deployment never used versions prior to v8.0.0.<!--description-->
+  - [PR](https://codeberg.org/forgejo/forgejo/pulls/11098): <!--number 11098 --><!--line 0 --><!--description SW4gRm9yZ2VqbyB2OC4wLjAsIHRoZSBkZWZhdWx0IGxvY2F0aW9uIGZvciB0aGUgY29uZmlnIGZpbGUgd2FzIGNoYW5nZWQgZnJvbSBgL2V0Yy9naXRlYS9hcHAuaW5pYCB0byBgL3Zhci9saWIvZ2l0ZWEvYXBwLmluaWAuIEJhY2t3YXJkIGNvbXBhdGliaWxpdHkgbG9naWMgYW5kIHN0YXJ0dXAgd2FybmluZ3Mgd2VyZSBhZGRlZCB0byBjb250YWluZXIgc2V0dXAgYW5kIGVudHJ5cG9pbnQgc2NyaXB0cy4gTm93IHRoZXkgYXJlIHJlbW92ZWQuIFRoaXMgY2hhbmdlIG9ubHkgYWZmZWN0cyB0aG9zZSB1c2luZyBjb250YWluZXIgZGVwbG95bWVudHMgd2l0aCByb290bGVzcyBpbWFnZXMuIElmIHlvdSBoYXZlIHRoZSBjb25maWcgZmlsZSBzdG9yZWQgaW4gYSB2b2x1bWUgYm91bmQgdG8gY29udGFpbmVyJ3MgL2V0Yy9naXRlYSwgbW92ZSBpdCB0byB0aGUgbmV3IGxvY2F0aW9uIG9yIG92ZXJyaWRlIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZSBgR0lURUFfQVBQX0lOSWAuIEFuIHVudXNlZCB2b2x1bWUgYC9ldGMvZ2l0ZWFgIGNhbiBiZSBzYWZlbHkgcmVtb3ZlZCBmcm9tIHRoZSBjb250YWluZXIgYWZ0ZXIgbW92aW5nIHRoZSBjb25maWcgb3IgaWYgdGhlIGRlcGxveW1lbnQgbmV2ZXIgdXNlZCB2ZXJzaW9ucyBwcmlvciB0byB2OC4wLjAu-->In Forgejo v8.0.0, the default location for the config file was changed from `/etc/gitea/app.ini` to `/var/lib/gitea/app.ini`. Backward compatibility logic and startup warnings were added to container setup and entrypoint scripts. Now they are removed. This change only affects those using container deployments with rootless images. If you have the config file stored in a volume bound to container's /etc/gitea, move it to the new location or override the environment variable `GITEA_APP_INI`. An unused volume `/etc/gitea` can be safely removed from the container after moving the config or if the deployment never used versions prior to v8.0.0.<!--description-->
 <!--end release-notes-assistant-->

Release notes

  • Breaking changes without a feature or bug label
    • PR: In Forgejo v8.0.0, the default location for the config file was changed from /etc/gitea/app.ini to /var/lib/gitea/app.ini. Backward compatibility logic and startup warnings were added to container setup and entrypoint scripts. Now they are removed. This change only affects those using container deployments with rootless images. If you have the config file stored in a volume bound to container's /etc/gitea, move it to the new location or override the environment variable GITEA_APP_INI. An unused volume /etc/gitea can be safely removed from the container after moving the config or if the deployment never used versions prior to v8.0.0.
<details> <summary>Where does that come from?</summary> The following is a preview of the release notes for this pull request, as they will appear in the upcoming release. They are derived from the content of the `release-notes/11098.md` file, if it exists, or the title of the pull request. They were also added at the bottom of the description of this pull request for easier reference. This message and the release notes originate from a call to the [release-notes-assistant](https://code.forgejo.org/forgejo/release-notes-assistant). ```diff @@ -40,4 +40,4 @@ <!--URL:https://codeberg.org/forgejo/forgejo--> - Breaking changes without a feature or bug label - - [PR](https://codeberg.org/forgejo/forgejo/pulls/11098): <!--number 11098 --><!--line 0 --><!--description SW4gRm9yZ2VqbyB2OC4wLjAsIHRoZSBkZWZhdWx0IGxvY2F0aW9uIGZvciB0aGUgY29uZmlnIGZpbGUgd2FzIGNoYW5nZWQgZnJvbSBgL2V0Yy9naXRlYS9hcHAuaW5pYCB0byBgL3Zhci9saWIvZ2l0ZWEvYXBwLmluaWAuIEJhY2t3YXJkIGNvbXBhdGliaWxpdHkgbG9naWMgYW5kIHN0YXJ0dXAgd2FybmluZ3Mgd2VyZSBhZGRlZCB0byBjb250YWluZXIgc2V0dXAgYW5kIGVudHJ5cG9pbnQgc2NyaXB0cy4gTm93IHRoZXkgYXJlIHJlbW92ZWQuIFRoaXMgY2hhbmdlIG9ubHkgYWZmZWN0cyB0aG9zZSB1c2luZyBjb250YWluZXIgZGVwbG95bWVudHMgd2l0aCByb290bGVzcyBpbWFnZXMuIElmIHlvdSBoYXZlIHRoZSBjb25maWcgZmlsZSBzdG9yZWQgaW4gYSB2b2x1bWUgYm91bmQgdG8gY29udGFpbmVyJ3MgL2V0Yy9naXRlYSwgbW92ZSBpdCB0byB0aGUgbmV3IGxvY2F0aW9uIG9yIG92ZXJyaWRlIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZSBgR0lURUFfQVBQX0lOSWAuIEFuIHVudXNlZCBgL2V0Yy9naXRlYWAgY2FuIGJlIHNhZmVseSBmcm9tIGNvbnRhaW5lciB2b2x1bWVzIGFmdGVyIG1vdmluZyB0aGUgY29uZmlnIG9yIGlmIHRoZSBkZXBsb3ltZW50IG5ldmVyIHVzZWQgdmVyc2lvbnMgcHJpb3IgdG8gdjguMC4wLg==-->In Forgejo v8.0.0, the default location for the config file was changed from `/etc/gitea/app.ini` to `/var/lib/gitea/app.ini`. Backward compatibility logic and startup warnings were added to container setup and entrypoint scripts. Now they are removed. This change only affects those using container deployments with rootless images. If you have the config file stored in a volume bound to container's /etc/gitea, move it to the new location or override the environment variable `GITEA_APP_INI`. An unused `/etc/gitea` can be safely from container volumes after moving the config or if the deployment never used versions prior to v8.0.0.<!--description--> + - [PR](https://codeberg.org/forgejo/forgejo/pulls/11098): <!--number 11098 --><!--line 0 --><!--description SW4gRm9yZ2VqbyB2OC4wLjAsIHRoZSBkZWZhdWx0IGxvY2F0aW9uIGZvciB0aGUgY29uZmlnIGZpbGUgd2FzIGNoYW5nZWQgZnJvbSBgL2V0Yy9naXRlYS9hcHAuaW5pYCB0byBgL3Zhci9saWIvZ2l0ZWEvYXBwLmluaWAuIEJhY2t3YXJkIGNvbXBhdGliaWxpdHkgbG9naWMgYW5kIHN0YXJ0dXAgd2FybmluZ3Mgd2VyZSBhZGRlZCB0byBjb250YWluZXIgc2V0dXAgYW5kIGVudHJ5cG9pbnQgc2NyaXB0cy4gTm93IHRoZXkgYXJlIHJlbW92ZWQuIFRoaXMgY2hhbmdlIG9ubHkgYWZmZWN0cyB0aG9zZSB1c2luZyBjb250YWluZXIgZGVwbG95bWVudHMgd2l0aCByb290bGVzcyBpbWFnZXMuIElmIHlvdSBoYXZlIHRoZSBjb25maWcgZmlsZSBzdG9yZWQgaW4gYSB2b2x1bWUgYm91bmQgdG8gY29udGFpbmVyJ3MgL2V0Yy9naXRlYSwgbW92ZSBpdCB0byB0aGUgbmV3IGxvY2F0aW9uIG9yIG92ZXJyaWRlIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZSBgR0lURUFfQVBQX0lOSWAuIEFuIHVudXNlZCB2b2x1bWUgYC9ldGMvZ2l0ZWFgIGNhbiBiZSBzYWZlbHkgcmVtb3ZlZCBmcm9tIHRoZSBjb250YWluZXIgYWZ0ZXIgbW92aW5nIHRoZSBjb25maWcgb3IgaWYgdGhlIGRlcGxveW1lbnQgbmV2ZXIgdXNlZCB2ZXJzaW9ucyBwcmlvciB0byB2OC4wLjAu-->In Forgejo v8.0.0, the default location for the config file was changed from `/etc/gitea/app.ini` to `/var/lib/gitea/app.ini`. Backward compatibility logic and startup warnings were added to container setup and entrypoint scripts. Now they are removed. This change only affects those using container deployments with rootless images. If you have the config file stored in a volume bound to container's /etc/gitea, move it to the new location or override the environment variable `GITEA_APP_INI`. An unused volume `/etc/gitea` can be safely removed from the container after moving the config or if the deployment never used versions prior to v8.0.0.<!--description--> <!--end release-notes-assistant--> ``` </details> <!--start release-notes-assistant--> ## Release notes <!--URL:https://codeberg.org/forgejo/forgejo--> - Breaking changes without a feature or bug label - [PR](https://codeberg.org/forgejo/forgejo/pulls/11098): <!--number 11098 --><!--line 0 --><!--description SW4gRm9yZ2VqbyB2OC4wLjAsIHRoZSBkZWZhdWx0IGxvY2F0aW9uIGZvciB0aGUgY29uZmlnIGZpbGUgd2FzIGNoYW5nZWQgZnJvbSBgL2V0Yy9naXRlYS9hcHAuaW5pYCB0byBgL3Zhci9saWIvZ2l0ZWEvYXBwLmluaWAuIEJhY2t3YXJkIGNvbXBhdGliaWxpdHkgbG9naWMgYW5kIHN0YXJ0dXAgd2FybmluZ3Mgd2VyZSBhZGRlZCB0byBjb250YWluZXIgc2V0dXAgYW5kIGVudHJ5cG9pbnQgc2NyaXB0cy4gTm93IHRoZXkgYXJlIHJlbW92ZWQuIFRoaXMgY2hhbmdlIG9ubHkgYWZmZWN0cyB0aG9zZSB1c2luZyBjb250YWluZXIgZGVwbG95bWVudHMgd2l0aCByb290bGVzcyBpbWFnZXMuIElmIHlvdSBoYXZlIHRoZSBjb25maWcgZmlsZSBzdG9yZWQgaW4gYSB2b2x1bWUgYm91bmQgdG8gY29udGFpbmVyJ3MgL2V0Yy9naXRlYSwgbW92ZSBpdCB0byB0aGUgbmV3IGxvY2F0aW9uIG9yIG92ZXJyaWRlIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZSBgR0lURUFfQVBQX0lOSWAuIEFuIHVudXNlZCB2b2x1bWUgYC9ldGMvZ2l0ZWFgIGNhbiBiZSBzYWZlbHkgcmVtb3ZlZCBmcm9tIHRoZSBjb250YWluZXIgYWZ0ZXIgbW92aW5nIHRoZSBjb25maWcgb3IgaWYgdGhlIGRlcGxveW1lbnQgbmV2ZXIgdXNlZCB2ZXJzaW9ucyBwcmlvciB0byB2OC4wLjAu-->In Forgejo v8.0.0, the default location for the config file was changed from `/etc/gitea/app.ini` to `/var/lib/gitea/app.ini`. Backward compatibility logic and startup warnings were added to container setup and entrypoint scripts. Now they are removed. This change only affects those using container deployments with rootless images. If you have the config file stored in a volume bound to container's /etc/gitea, move it to the new location or override the environment variable `GITEA_APP_INI`. An unused volume `/etc/gitea` can be safely removed from the container after moving the config or if the deployment never used versions prior to v8.0.0.<!--description--> <!--end release-notes-assistant-->
Gusted approved these changes 2026-03-02 05:24:36 +01:00
0ko merged commit cce5f868ce into forgejo 2026-03-02 06:03:41 +01:00
jaylinski deleted branch rootless-image-remove-legacy-ini 2026-03-02 20:13:50 +01:00
Sign in to join this conversation.
No reviewers
No labels
arch
riscv64
backport/v1.19
backport/v1.20
backport/v1.21/forgejo
backport/v10.0/forgejo
backport/v11.0/forgejo
backport/v12.0/forgejo
backport/v13.0/forgejo
backport/v14.0/forgejo
backport/v7.0/forgejo
backport/v8.0/forgejo
backport/v9.0/forgejo
breaking
bug
bug
confirmed
bug
duplicate
bug
needs-more-info
bug
new-report
bug
reported-upstream
code/actions
code/api
code/auth
code/auth/faidp
code/auth/farp
code/email
code/federation
code/git
code/migrations
code/packages
code/wiki
database
MySQL
database
PostgreSQL
database
SQLite
dependency-upgrade
dependency
certmagic
dependency
chart.js
dependency
Chi
dependency
Chroma
dependency
citation.js
dependency
codespell
dependency
css-loader
dependency
devcontainers
dependency
dropzone
dependency
editorconfig-checker
dependency
elasticsearch
dependency
enmime
dependency
F3
dependency
ForgeFed
dependency
garage
dependency
Git
dependency
git-backporting
dependency
Gitea
dependency
gitignore
dependency
go-ap
dependency
go-enry
dependency
go-gitlab
dependency
Go-org
dependency
go-rpmutils
dependency
go-sql-driver mysql
dependency
go-swagger
dependency
go-version
dependency
go-webauthn
dependency
gocron
dependency
Golang
dependency
goldmark
dependency
goquery
dependency
Goth
dependency
grpc-go
dependency
happy-dom
dependency
Helm
dependency
image-spec
dependency
jsonschema
dependency
KaTeX
dependency
lint
dependency
MariaDB
dependency
Mermaid
dependency
minio-go
dependency
misspell
dependency
Monaco
dependency
PDFobject
dependency
playwright
dependency
postcss
dependency
postcss-plugins
dependency
pprof
dependency
prometheus client_golang
dependency
protobuf
dependency
relative-time-element
dependency
renovate
dependency
reply
dependency
ssh
dependency
swagger-ui
dependency
tailwind
dependency
temporal-polyfill
dependency
terminal-to-html
dependency
tests-only
dependency
text-expander-element
dependency
urfave
dependency
vfsgen
dependency
vite
dependency
Woodpecker CI
dependency
x tools
dependency
XORM
Discussion
duplicate
enhancement/feature
forgejo/accessibility
forgejo/branding
forgejo/ci
forgejo/commit-graph
forgejo/documentation
forgejo/furnace cleanup
forgejo/i18n
forgejo/interop
forgejo/moderation
forgejo/privacy
forgejo/release
forgejo/scaling
forgejo/security
forgejo/ui
Gain
High
Gain
Nice to have
Gain
Undefined
Gain
Very High
good first issue
i18n/backport-stable
impact
large
impact
medium
impact
small
impact
unknown
Incompatible license
issue
closed
issue
do-not-exist-yet
issue
open
manual test
Manually tested during feature freeze
OS
FreeBSD
OS
Linux
OS
macOS
OS
Windows
problem
QA
regression
release blocker
Release Cycle
Feature Freeze
release-blocker
v7.0
release-blocker
v7.0.1
release-blocker
v7.0.2
release-blocker
v7.0.3
release-blocker
v7.0.4
release-blocker
v8.0.0
release-blocker/v9.0.0
run-all-playwright-tests
run-end-to-end-tests
test
manual
test
needed
test
needs-help
test
not-needed
test
present
untested
User research - time-tracker
valuable code
worth a release-note
User research - Accessibility
User research - Blocked
User research - Community
User research - Config (instance)
User research - Errors
User research - Filters
User research - Future backlog
User research - Git workflow
User research - Labels
User research - Moderation
User research - Needs input
User research - Notifications/Dashboard
User research - Rendering
User research - Repo creation
User research - Repo units
User research - Security
User research - Settings (in-app)
No milestone
No project
No assignees
7 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
forgejo/forgejo!11098
No description provided.