# Auto upgrade on docker forces "re-install"

**URL:** <https://forum.gitea.com/t/auto-upgrade-on-docker-forces-re-install/11791>\
**Category:** Install/Maintain/Configure\
**Created:** [November 10, 2025, 4:30am UTC](https://forum.gitea.com/t/auto-upgrade-on-docker-forces-re-install/11791 "2025-11-10T04:30:06Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![baradhili](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.gitea.com/baradhili/32/7174_2.png) [@baradhili](https://forum.gitea.com/u/baradhili)\
**Post date:** [November 10, 2025, 4:30am UTC](https://forum.gitea.com/t/auto-upgrade-on-docker-forces-re-install/11791/1 "2025-11-10T04:30:07Z")

</div>

I have a gitea running as a stack in docker. I also have watchtower running on teh same docker instance. I find that as releases get pushed out - my gitea goes through the install page - which is annoying because I have to fill in everything again only to be told “are you sure”?

For now I am going to tell watchtower to ignore the gitea container - but this is just putting my problems off.

Any suggestions as to how to setup Gitea’s docker compose so it doesn’t need to “re-install” each time I upgrade?

here is my current compose(with default passwords)

```auto
version: "3"

networks:
  gitea:
    external: false

services:
  server:
    image: gitea/gitea:latest-rootless
    container_name: gitea
    environment:
      - USER_UID=1000
      - USER_GID=1000
      - GITEA __database__ DB_TYPE=postgres
      - GITEA __database__ HOST=db:5432
      - GITEA __database__ NAME=gitea
      - GITEA __database__ USER=gitea
      - GITEA __database__ PASSWD=gitea
      - GITEA __webhook__ SKIP_TLS_VERIFY=true
    restart: always
    networks:
      - gitea
    volumes:
      - /data/gitea:/data
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro
    ports:
      - "3000:3000"
      - "222:22"
    depends_on:
      - db
    labels:
      - "com.centurylinklabs.watchtower.enable=false"

  db:
    image: postgres:14
    restart: always
    environment:
      - POSTGRES_USER=gitea
      - POSTGRES_PASSWORD=gitea
      - POSTGRES_DB=gitea
    networks:
      - gitea
    volumes:
      - /data/gitea/db:/var/lib/postgresql/data

```

---

<div class="post-metadata">

**Author:** ![techknowlogick](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.gitea.com/techknowlogick/32/4706_2.png) [@techknowlogick](https://forum.gitea.com/u/techknowlogick)\
**Post date:** [November 15, 2025, 8:15pm UTC](https://forum.gitea.com/t/auto-upgrade-on-docker-forces-re-install/11791/2 "2025-11-15T20:15:50Z")

</div>

As you are using “rootless” the volumes/paths are different in rootless as it uses proper FHS paths (/var/lib/gitea….) rather than the legacy /data paths. So when the container is recreated, the data/config for that instance was contained in the ephemeral paths of the previous container.

---

<div class="post-metadata">

**Author:** ![baradhili](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.gitea.com/baradhili/32/7174_2.png) [@baradhili](https://forum.gitea.com/u/baradhili)\
**Post date:** [November 16, 2025, 2:45am UTC](https://forum.gitea.com/t/auto-upgrade-on-docker-forces-re-install/11791/3 "2025-11-16T02:45:13Z")

</div>

yup - I had used the “docker compose” instructions :(.. fixed now thanks!
