Skip to content

Updating

2.1.x -> 2.2.x

  1. pull the update: git pull

  2. make the following changes in your config.json file:

        ...
        "crosspost": {
            "fediverse": {
            ...
    +       },
    +       "bluesky": {
    +           "enabled": false,
    +           "handle": "",
    +           "appPassword": ""
    +       }
        },
        ...
    +   "noDeleteConfirm": false,
    +   "fediVerificationUrl": ""
    

2.1.0 -> 2.1.1

pull the update: git pull

Docker-specific steps

if you're running CatAsk in Docker, follow these steps as well:

  1. rebuild the containers:

    docker compose build
    

  2. restart the containers:

    docker compose restart
    

2.0.x -> 2.1.0

  1. pull the update: git pull

  2. run pip install -r requirements.txt again

  3. make the following changes in your config.json file:

    ...
    "ntfy": {
        "enabled": false,
        "host": "https://ntfy.sh",
        "user": "",
        "pass": "",
        "topic": ""
    },
+   "crosspost": {
+       "fediverse": {
+           "enabled": false,
+           "instance": "",
+           "client": {
+               "id": "",
+               "secret": ""
+           },
+           "token": "",
+           "visibility": "public",
+           "cw": ""
+       }
+   },
    ...

1.7.x -> 2.0.0

prerequisites

  1. create an export of your data in Admin -> Import/Export -> New Export and download it in case something breaks
  2. install postgresql (if you don't have it): postgresql.org
  3. install pgloader: pgloader.readthedocs.io
  4. start postgresql

performing the upgrade

  1. create a new postgresql user:
    CREATE USER "<username>" WITH PASSWORD "<password>";
    
  2. create a new postgresql database:
    CREATE DATABASE "<db name>" OWNER "<db user>";
    
  3. run pgloader:

    pgloader mysql://old_user:old_password@127.0.0.1/old_catask pgsql://new_user:new_password@127.0.0.1/new_catask
    

  4. pull the update: git pull

  5. make the following changes in your config.json file:

        ...
        "accessibility": {
            "font": "default",
            "userway": {
                "enabled": false,
                "account": "p3mmiCKHVO"
            }
        },
    +   "languages": {
    +       "default": "en_US",
    +       "allowChanging": true
    +   },
        "style": {
            "accentLight": "#b86565",
            "accentDark": "#b86565",
            "bgLight": "#ffffff",
            "bgDark": "#202020",
            "navStyle": "pills",
            "tintColors": true,
            "infoBoxLayout": "row",
            "homepageLayout": "catask",
            "navIcons": true,
            "navIconsOnly": false,
    +       "customCss": "",
    +       "useCustomCss": false,
    +       "overrideBaseStyles": false,
    +       "overrideCatAskStyles": false,
    +       "cardStyle": "compact"
        },
        ...
        "ntfy": {
            "enabled": false,
            "host": "https://ntfy.sh",
            "user": "",
            "pass": "",
            "topic": ""
        },
    +   "themeStoreUrl": "https://themes.catask.mystie.dev",
    +   "username": ""
        ...
    

  6. modify your .env file to have new database credentials and change database port to 5432 (default for postgres)

1.7.0 -> 1.7.x

pull the update: git pull
make the following changes in your config.json file:

...
    "antispam": {
        ...
    },
+   "ntfy": {
+       "enabled": false,
+       "host": "https://ntfy.sh",
+       "user": "",
+       "pass": "",
+       "topic": ""
+   },
...

1.6.x -> 1.7.0

pull the update: git pull
run pip install -r requirements.txt again to install newly required packages
make the following changes in your config.json file:

...
    "instance": {
        ...
    },
+   "accessibility": {
+       "font": "default",
+       "userway": {
+           "enabled": false,
+           "account": ""
+       }
+   },
    "style": {
        ...
        "homepageLayout": "...",
+       "navIcons": true,
+       "navIconsOnly": false
    },
+   "antispam": {
+       "type": "basic",
+       "enabled": true,
+       "recaptcha": {
+           "sitekey": "",
+           "secretkey": ""
+       },
+       "turnstile": {
+           "sitekey": "",
+           "secretkey": ""
+       },
+       "frc": {
+           "sitekey": "",
+           "apikey": ""
+       }
+   },
...

after that, log into your mariadb/mysql console and execute these commands:

USE <catask database name>;
ALTER TABLE questions ADD COLUMN unread BOOLEAN NOT NULL DEFAULT TRUE;

1.5.x -> 1.6.x

pull the update: git pull
make these changes in your config.json file:

...
    "style": {
        ...
+       "homepageLayout": "catask"
    },
...

after that, log into your mariadb/mysql console and execute these commands:

USE <catask database name>;
ALTER TABLE questions ADD COLUMN cw VARCHAR(255) NOT NULL DEFAULT '';
ALTER TABLE answers ADD COLUMN cw VARCHAR(255) NOT NULL DEFAULT '';

1.4.x -> 1.5.x

pull the update as usual: git pull
run pip install -r requirements.txt again to install newly required packages
make the following changes in your config.json file:

...
    "instance": {
        ...
-        "image": "/static/img/ca_screenshot.png",
+        "image": "/static/icons/favicon/android-chrome-512x512.png",
        ...
    },
+    "style": {
+        "accentLight": "#6345d9",
+        "accentDark": "#7259d9",
+        "bgLight": "#ffffff",
+        "bgDark": "#202020",
+        "navStyle": "underline",
+        "tintColors": false,
+        "infoBoxLayout": "column"
+    },
+    "trimContentAfter": "50",
...

1.3.0 -> 1.4.x

first, pull the update from the repository: git pull
second, you'll need to update the database schema as it was changed slightly in this update, run these queries in mysql/mariadb console:

USE <catask database name>;
ALTER TABLE answers CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
ALTER TABLE questions CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
after that, open your config file and add "rules": "" to "instance", like this:
...
    "instance": {
        ...
        "fullBaseUrl": "https://catask.localhost",
+       "rules": ""
    },
...