Migrating 6.0.9 from Baremetal to Docker (Podman)


I have a small Taiga 6.0.9 installed on baremetal, originally Bullseye, and now, this doesn’t run on Bookworm anymore. I can only get it far enough to see the projects, but no “deeper” content, eg. what’s in a ticket. So I am considering to move to Docker, or rather, Podman, since I also wanted to upgrade to Taiga 7, and Taiga 7 on baremetal appears to be unsupported. Since there are also other dependency problems, like Pg version, I thought I’d migrate the existing setup to Docker first, then try to upgrade that in a piecemeal fashion. I would also like to run only some services inside Docker, while running the other services outside of Docker on baremetal (eg. Pg and RabbitMQ).

To get started, I checked out the 6.0.4 tag of the taiga-docker repo and modified the scripts to run with podman, but I’m getting nowhere. Running from the HEAD of that repo didn’t work, either. I get two instances of RabbitMQ, conflicting on a port, and a connection refused from the (external) database. However, creating an isolated test container accessing the same database, with the same settings, works without any problems.

Aside: The old Taiga on baremetal, but with Python 3.11 instead of 3.9, yields a long traceback with this at the end, which I’ve been unable to fix:

re.error: global flags not at the start of the expression at position 6

The error is somehow raised from the ‘Pattern’ class.

What are your suggestions to troubleshoot, or which path to migration should I take, please?

Hello, @Toni ,

First of all, Taiga 7 is not compatible with taiga 6.x. Taiga 7 is in an early alpha version, it is not documented, it does not have the same functionalities and there is no system to migrate from one to the other at the moment. The latest stable version of Taiga is 6.7.

The best way to upgrade is to move the data to an instance with the same (or very similar) version, from baremetal to docker. Try setting up a docker compose for version 6.1 and then move up one version at a time. Note that you will have to change latest to 6.1.0 in all taiga service images (taigaio/taiga*:latest to taigaio/taiga*:6.1.0). You can change the settings and comment db and rabbitmq services to use your own external services if you want. Or you can create a dump of the db and copy the /media/ directory and move to a new clean instance.

The other option is to use the export/import option to move projects between instances. From your old instance to a new one in the last version.

Support for python 3.11 was officially added in Taiga 6.6.

I hope this can help

Best regards

Hi David! After looking into this, I figured that I might shelve this idea for a moment, as the machine is very resource-starved. Instead, I am now trying to upgrade on baremetal.
However, I noticed that there are a lot of really old packages required. In particular, there seems to be no support for recent versions of Python or PostgreSQL. I’m fiddling with the requirements to see whether I can make things work. Or can I just upgrade to the latest 6.7.3 in one go?

I think there are no big significant changes and you will be able to pass the migrations with no problem. But make sure you make a backup just in case.

Thank you! I’m test-driving this with a backup on a throw-away VM, anyway. My biggest concern atm is that the docs specify Pg <= 14, while I have 15 (ie, Bookworm).

Since December, we are using pg 15.3. It works without problems.

1 Like

Hi David,

thank you! I’m one step further now. For some odd reason, with the 6.7.7 version of the taiga-front-dist, there’s one public project which I can see, but I can’t log in because the /login URL doesn’t seem to cause a call to the backend at all (using the . I have this in my conf.json:

“eventsUrl”: null,

because I use none of the advanced services, yet. I’ve also adjusted the nginx config, but something is wrong. The URL does elicit a ~140k heavy HTML response, amongst a ton of other stuff, but the rendering is just one single Taiga logo, centered on an otherwise white page. The backend is at 6.7.3.

Where do I go from here, please?

I need to see screenshots of the frontend, info from the network tab in the browser development tool and taiga-back logs. I can’t imagine how is your infraestructure right now.

You can live without eventURL, taiga-events is to have realtime inside the kanban and taksboard screens.

Hi David,

thank you!

My infrastructure currently looks like this (all in one server):

  • nginx, proxying to the backend on localhost
  • Pg
  • Taiga backend running on localhost as well

This is what I see when I click on the “Login” link in the top right:

There are no requests logged in the backend, I ran it from the command line like this:

(taiga) $ python manage.py runserver -v2 --nothreading --settings settings.local

For a request to the homepage, ie, “/discover”, the requests look like this:

I have highlighted the requests to the backend.

It doesn’t make much sense that the login form does not appear. It is something that does not depend on anything, only on the front.

Check the config.json file, something may have changed from 6.0 to 6.7

By the way, 6.8.0 has already been published. Try to update to the lastest version.

Try to access page and check if there is some error in the consoletab at the browser development tools

Thank you, David!

I have updated and checked again, and there is now only this difference, after removing old keys like GDPRUrl:

mine vs. example:

  • “defaultLoginEnabled”: false,
  • “publicRegisterEnabled”: false,
  • “defaultLoginEnabled”: true,
  • “publicRegisterEnabled”: true,

I also have debugging enabled, which is off by default.

But the result remains the same, no login form. In the console, there are some errors logged, though. Please see the following three screenshots.

This is Firefox 115.7.0esr on Bookworm (am64).

Btw, I just reproduced the problem with Chromium.

WOW, browser cache is sometimes a bad friend.

I’m glad it works now.

Hi David!

This is a misunderstanding: It does not work with any of Firefox, where I used a private window, and Chromium, which I usually don’t use. Both exhibit the same problem that there is no login form.

Sorry to pour more water into your wine.

Kind regards,

Check what the frontend returns when you visit https://<taiga-host>/conf.json to validate that the configuration is loaded correctly.

Done - conf.json gets loaded correctly.

You still have defaultLoginEnabled set to false

You mean, I need to set this to true? I have my own login, I don’t want the default account to be accessible. Oh, and it worked this way all the years before. The recent changes are rather things like turning on debugging, or the supportUrl, which used to be null.

If you have your own login, I don’t know how I can help you. You will have to reapply the changes you have made to the frontend code or configure the plugins you have developed. I am very lost with your situation.