This article explains the needed steps to migrate from 4.x and 5.x to 6.x.
Note |
---|
Please create a backup of your existing portrait installation before you start migration to the latest version. |
Info |
---|
Please consider installing a new Portrait 6.x and only transfer your needed configuration, instead of going through the manual steps provided below. |
application-prod.yml settings
Note |
---|
In 6.X x the application.yml was renamed to application-prod.yml. Be sure to rename your own file as well! The name of the file has to correlate with the docker-compose startup command, see “Depends_on and Startup commands” below. |
ELO Source Config
The configuration for ELO Sources has changed:
Old
Code Block |
---|
- id: yourEloId type: ELO name: ix-TKL username: user password: secret url: 'http://127.0.0.1:9090' path: '/ix-ABC/ix' |
New
Code Block |
---|
- id: yourEloId
type: ELO
username: user
password: secret
url: 'http://127.0.0.1:9090/ix-ABC/ix' |
Theming
The theming was adopted, and new properties were introduced.
Old
Code Block |
---|
application: theme: logoUrl: /icons/logo-full.svg heroUrl: /icons/logo-hero.svg highlightColor: "#0097A9" globalBackgroundColor: "#F8F8F8" globalFontColor: "#333F48" menuBackgroundColor: "#FFFFFF" menuFontColor: "#333F48" |
New
Code Block |
---|
application:
theme:
logoUrl: /icons/logo-full.svg
heroUrl: /icons/logo-hero.svg
rasterLogoUrl: /icons/logo-raster.png
highlightColor: "#0097A9"
backgroundColor: "#F8F8F8"
textColor: "#333F48"
alternateBackgroundColor: "#FFFFFF"
labelColor: "#333F48"
dividerColor: "#EAEAEA" |
Since the attributes have changed, we recommend resetting the theming settings and start from scratch.
See more details here: Theming .
API Sections
Since 6.x each section requires its own source. Therefore, all sections that previously didn't had any source configured, usually these were the API sources, need to be configured.
Example:
Code Block | ||
---|---|---|
| ||
sections: section: - name: apa-ots caption: APA OTS type: list sortField: date sortOrder: desc description: | APA-OTS ist Österreichs stärkster Verbreiter von multimedialen Presseinformationen in Text, Bild, Video und Audio im In- und Ausland. APA-Comm bietet hocheffiziente Lösungen für die PR- und Kommunikationsbranche: Produktion (Foto, Video, Grafik), Verbreitung von Presseinformationen, Mediendatenbank, Medienbeobachtung, Social Media Monitoring und Erfolgsmessung. columns: - label: 'Titel' key: 'name' type: 'string' showInTableHeader: true showInDetailList: false .... sources: source: - id: apa-ots sourceType: 'api' excludeKeysFromSuggestions: [ ] |
ENV Variable
The optional application property ENV was added.
Can be skipped for production environments, default value is ‘prod’.
For development and demo instances, it can be set to dev
Details:
https://portrait.atlassian.net/wiki/spaces/PA/pages/93028539/General+settings#Settings
Example:
Code Block | ||
---|---|---|
| ||
application: name: Portrait App owner: Treskon GmbH env: dev |
nginx.config
The path for Swagger-UI changed:
Remove old /swagger location
Code Block location /swagger { proxy_pass http://swagger:8080/swagger; }
Add new locations
Code Block location /v3/api-docs { proxy_pass http://backend:8080; proxy_pass_request_headers on; proxy_pass_request_body on; proxy_buffering off; proxy_set_header X-real-IP $remote_addr; } location /api-docs/ { proxy_pass http://backend:8080/api-docs/; proxy_buffering off; proxy_set_header X-real-IP $remote_addr; add_header 'Access-Control-Allow-Origin' '*'; add_header 'Access-Control-Allow-Credentials' 'true'; add_header 'Access-Control-Allow-Headers' 'Authorization,Accept,Origin,DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Content-Range,Range'; add_header 'Access-Control-Allow-Methods' 'GET,POST,OPTIONS,PUT,DELETE,PATCH'; } location /swagger-ui/ { proxy_pass http://backend:8080/swagger-ui/; proxy_buffering off; proxy_set_header X-real-IP $remote_addr; add_header 'Access-Control-Allow-Origin' '*'; add_header 'Access-Control-Allow-Credentials' 'true'; add_header 'Access-Control-Allow-Headers' 'Authorization,Accept,Origin,DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Content-Range,Range'; add_header 'Access-Control-Allow-Methods' 'GET,POST,OPTIONS,PUT,DELETE,PATCH'; }
docker-compose.yml
Switch to default docker-compose (recommended)
Info |
---|
Since 6.X we recommend to switch to a managed docker-compose.yml and only make changes in the .env file |
Download the newest Installer from https://install.portrait.app/
Back up your old docker-compose.yml!
Copy the Contents of docker-compose.yml to your config
Note |
---|
Make sure use the old volume name for the index! Otherwise you will lose your data! |
compare the old and new docker-compose for possible mismatches
copy the .env file from the Zip into the same directory as the docker-compose.yml
Configure the .env file for your specific installation
Example:Code Block BACKEND_TAG=stable-6.0.0 FRONTEND_TAG=stable-6.0.0 PROXY_PORT=80 CODE_SERVER_PW=secretPassword
Run the following command
Code Block docker-compose down --remove-orphans && docker-compose up -d --remove-orphans
Note |
---|
Manuel Manual changes should only be used if there is a custom managed environment in use that applies additional configuration. For example, with additional containers. |
Swagger
Swagger-UI is now directly served from the backend. Therefore, the service can be removed entirely.
Remove these lines:
Code Block |
---|
swagger: image: swaggerapi/swagger-ui ports: - "30010:8080" environment: SWAGGER_JSON: /swagger.json BASE_URL: /swagger volumes: - ./app/config/swagger/swagger.json:/swagger.json |
Depends_on and Startup commands:
The depends_on
for the different services have changed.
New configuration is:
Code Block | ||
---|---|---|
| ||
frontend: command: sh -c "chmod 777 /app/wait-for.sh && /app/wait-for.sh -t 40 backend:8080/v3/api-docs -- npm run start" depends_on: - backend backend: command: sh -c "chmod 777 config/wait-for.sh && ./config/wait-for.sh -t 25 index:9200 -- java -jar portrait-app.jar --spring.profiles.active=prod && tail -F anything" depends_on: - index proxy: command: sh -c "chmod 777 /app/wait-for.sh && /app/wait-for.sh -t 40 frontend:8081 -- nginx -g 'daemon off;'" depends_on: - backend - frontend |
Email Templates
Add a new file requestPasswordResetAdmin.html
in the config/email-templates Folder. Forgot.html can be used as a base template, afterwards, update the text in the email template.
Info |
---|
A default |
template can be found in the config.zip in https://install.portrait.app/ |
Update old templates
We updated the names of the theming properties. This would need to be updated in the email templates as well.
The path for the logo might have changed
Old:<img src="{{serverUrl}}/static/icons/logo-email.png" width="120"/>
New:<img src="{{serverUrl}}/icons/logo-email.png" width="120"/>