Hi. I self-host gitea in docker and have a few repos, users, keys, etc. I installed forgejo in docker and it runs, so I stopped the container and copied /var/lib/docker/volumes/gitea_data/_data/* to /var/lib/docker/volumes/forgejo_data/_data/, but when I restart the forgejo container, forgejo doesn’t show any of my repos, users, keys, etc.

My understanding was the the current version of forgejo is a drop-in replacement for gitea, so I was hoping all gitea resources were saved to its docker volume and would thus be instantly usable by forgejo. Guess not. :(

Does anyone have any experience migrating their gitea instance to forgejo?

  • @lal309
    link
    English
    -1
    edit-2
    8 months ago

    Okay so your post inspired me to make the switch. All I had to do was switch out the image to the forgejo one. Everything worked right away. To try to make things as clean as possible, I went ahead and renamed my bind volume paths and app.ini stuff from gitea to forgejo but no matter what I tried, once I started the container, the container would create a gitea directory with a new app.ini. I even tried to run the forgejo compose on another host and the app still creates a gitea directory within the bind mount. Am I doing something wrong. I understand it’s a drop in replacement but I’m sure there’s a way to get a cleaner cut over.

    compose.yml

    volumes:

    • ./data:/data

    Host directories

    ~/forgejo

    • data - forgejo - renamed for the migration - git - ssh - gitea - gets created by the app no matter what I do or what paths are set in app.ini
    • compose.yml

    How do I keep forgejo from creating this gitea directory? Why doesn’t it create a forgejo directory???

    Edit: gitea version was - 1.21.7 and forgejo replacement image is 1.21.7-0

    • Mike WooskeyOP
      link
      fedilink
      English
      18 months ago

      I don’t know if your problem is the same as mine was, but the symptom sounds the same.

      The docker-compose.yaml file shown in the Forgejo documentation for docker installation shows this mount:

          volumes:
            - ./forgejo:/data
      

      For me, Forgejo installed and created new resource files in /data and ignored the resource files gitea alread made.

      I changed the volume to:

          volumes:
            - data:/var/lib/gitea
      

      Forgejo then recognized the gitea resources.

      • @lal309
        link
        English
        18 months ago

        Not quiet. I was running gitea before so my mount was ./gitea:/data but since switching over to forgejo, I renamed my ./gitea directory to ./forgejo. Adjusted my compose file to have a mount of ./forgejo:/data.

        Now inside of that renamed forgejo directory, there are a bunch of gitea references and even one more directory called gitea. When I migrated everything worked right away but since I wanted a cleaner transition, I renamed and switched all gitea references to forgejo but went I brought the stack back online, it went belly up.

        As a troubleshooting step, I recreated my compose file and created a new empty ./forgejo on a different machine just to see what a new and fresh install would look like and the forgejo stack itself created all kinds of gitea references and gitea directory once I brought it up. So to fix my original deployment, I reverted all the references back from forgejo to gitea and everything worked again.

        For fun, I went out to codeberg to look at the Dockerfile and saw that they had a bunch of gitea things within their own Dockerfile so nothing I can do for now