Knowage
Overview
Knowage is a full open-source business intelligence and analytics suite. It gives an organization one place to model its data and let business users explore it. Capabilities include interactive dashboards (cockpits), pixel-perfect reports, self-service data exploration, charts and data federation across many data sources, all from a single self-hosted Java web application.
People work through the Knowage web interface, where they connect data sources, build datasets, compose cockpits and publish analytical documents to share across the organization. A comprehensive REST API lets other applications drive the same platform.
This image wires the whole stack together and generates a fresh administrator password, a fresh metadata database password and fresh encryption secrets on the VM you launch.
What you get:
- Knowage Server 9.0.9 Community Edition (core, API, Vue frontend, cockpit, QBE and metadata engines)
- Apache Tomcat 9.0.x with the OpenJDK 17 runtime
- PostgreSQL 17 as the metadata database
- nginx on port 443 with a per-VM self-signed TLS certificate as the only public surface (port 80 redirects to 443)
- An Ubuntu 24.04 LTS base, fully patched at build time
- 24/7 SecureAnyCloud support, 24h response SLA
Scope. This is the Community Edition, with no vendor support SLA from the upstream project and no Enterprise-only modules. Knowage is a build-your-own analytics workbench, so a freshly launched image is intentionally empty, waiting for the data sources, datasets and cockpits you create. The metadata database schema, the seeded administrator and the engines are all in place from first boot.
Prerequisites
- An active Azure subscription
- An SSH key pair
- A VNet and subnet to deploy into
- A network security group you can edit, to restrict who reaches ports 22 and 443
Recommended VM size: Standard_D2s_v3 (2 vCPU / 8 GB). Knowage is a JVM business intelligence server (Tomcat with a 2.5 GB heap) plus PostgreSQL, so 8 GB gives the stack real headroom. The 4 GB sizes are too small for the Tomcat warmup. Treat D2s_v3 as the minimum, and choose a larger size for bigger teams and data volumes.
Deploy from the Azure Portal
Search the Azure Marketplace for Knowage, choose the plan and deploy it into your VNet.
In the network security group, allow TCP 22 (SSH) and TCP 443 (the Knowage web interface) from your own networks only.
Deploy from the Azure CLI
RG="knowage-prod"; LOCATION="eastus"; VM_NAME="knowage-01" IMAGE_URN="sac1647283583153:knowage-ubuntu-24-04:default:latest" SSH_KEY="$(cat ~/.ssh/id_rsa.pub)" az group create --name "$RG" --location "$LOCATION" az network vnet create -g "$RG" --name kn-vnet --address-prefix 10.106.0.0/16 --subnet-name kn-subnet --subnet-prefix 10.106.1.0/24 az network nsg create -g "$RG" --name kn-nsg az network nsg rule create -g "$RG" --nsg-name kn-nsg --name allow-ssh --priority 100 \
--source-address-prefixes "<your-mgmt-cidr>" --destination-port-ranges 22 --access Allow --protocol Tcp az network nsg rule create -g "$RG" --nsg-name kn-nsg --name allow-https --priority 110 \
--source-address-prefixes "<your-mgmt-cidr>" --destination-port-ranges 443 --access Allow --protocol Tcp
# Accept the Marketplace terms once per subscription (required before the first CLI deploy)
az vm image terms accept --urn sac1647283583153:knowage-ubuntu-24-04:default:latest
az vm create -g "$RG" --name "$VM_NAME" --image "$IMAGE_URN" \
--size Standard_D2s_v3 --storage-sku StandardSSD_LRS \
--admin-username azureuser --ssh-key-values "$SSH_KEY" \
--vnet-name kn-vnet --subnet kn-subnet --nsg kn-nsg --public-ip-sku StandardConnect via SSH
Connect to the VM as azureuser.
ssh azureuser@<vm-ip>First boot rotates every secret this image uses, releases the systemd bootstrap gate, then starts Tomcat and nginx. On a Standard_D2s_v3, the web interface is ready a minute or two after the VM reports running.
Verify the Services
Run the commands below to confirm that each service is active and to check which ports are listening.
systemctl is-active postgresql knowage-tomcat nginx knowage-firstboot
sudo ss -tlnp | grep -E ':443 |:80 |:8080 |:5432 'Only nginx is bound to a public address. Tomcat (8080) and PostgreSQL (5432) both listen on loopback. nginx terminates TLS on port 443, and port 80 redirects to it.
Retrieve the Administrator Password
List the credentials file and print its contents with the passwords masked.
sudo ls -l /root/knowage-credentials.txt
sudo sed -E 's/^(knowage\.admin\.pass=|knowage\.db\.pass=).*/\1********/' /root/knowage-credentials.txt | grep -vE '^#' | grep -v '^$'The file is mode 0600 and readable only by root. It contains the site URL, the administrator login (biadmin) and a password unique to this VM. It also holds the metadata database name, user and its own per-VM password. The command above masks the password values, so read the file without the mask to sign in.
No Default Login Ships
Knowage seeds a set of well-known default accounts: biadmin, biuser, bidemo, bitest, bidev and public_user. On this image, first boot rotates the biadmin password to a per-VM value and deletes every other seeded default account before the web interface is reachable, so none of the shipped defaults work.
Run the commands below to verify this.
sudo -u postgres psql -d knowage -tAc "SELECT string_agg(user_id,', ' ORDER BY user_id) FROM sbi_user"
sudo -u postgres psql -d knowage -tAc "SELECT count(*) FROM sbi_user WHERE user_id IN ('biuser','bidemo','bitest','bidev','public_user')"
sudo /usr/local/sbin/knowage-roundtrip.shThe output shows that only biadmin remains and that the count of shipped default accounts is 0. The round trip confirms that the per-VM biadmin password authenticates, while the upstream biadmin/biadmin default and a wrong password are both rejected.
Sign In to Knowage
Browse to https://<vm-ip>/ and accept the per-VM self-signed certificate. Sign in as biadmin with the password from /root/knowage-credentials.txt.
The home screen welcomes you to Knowage 9. The left toolbar gives access to administration, the document browser, your workspace and the downloads area.
My Workspace
My Workspace is your personal space for the building blocks of analysis. From here you reach your recent items, your repository of analytical documents, My Data (your datasets), My Models and My Analysis (the cockpits and self-service analyses you build).
To build your first analysis, create a data source and a dataset under My Data. Then compose a cockpit under My Analysis and add chart, table and cross-tab widgets bound to that dataset. Published documents are organized in the document browser.
The Document Browser
The Document Browser organizes every analytical document (cockpits, reports and dashboards) into folders and functionalities. It also controls who can see and run each one.
Server Components
Check the component versions with the commands below. The lists after them show where each component lives and which ports it uses.
java -version grep -m1 'Apache Tomcat Version' /opt/knowage-tomcat/RELEASE-NOTES
sudo -u postgres psql -tAc 'select version()' ls -1 /opt/knowage-tomcat/webappsPaths:
- Tomcat (CATALINA_HOME): /opt/knowage-tomcat
- Knowage web applications: /opt/knowage-tomcat/webapps
- Tomcat configuration: /opt/knowage-tomcat/conf/server.xml
- Password encryption secret: /opt/knowage-tomcat/conf/passwordEncryptionSecret
- PostgreSQL data directory: /var/lib/postgresql
- nginx site: /etc/nginx/sites-available/sac-knowage
- TLS certificate: /etc/nginx/tls/knowage.crt
- Credentials:
/root/knowage-credentials.txt(mode 0600) - First-boot sentinel: /var/lib/sac/data/knowage-firstboot.done
Ports:
- 443, all interfaces: nginx TLS, the only public surface
- 80, all interfaces: nginx, redirects to 443
- 8080, 127.0.0.1: Apache Tomcat, the Knowage web applications
- 5432, 127.0.0.1: PostgreSQL, the metadata database
Managing the Services
Start the services in dependency order and stop them in reverse. Tomcat does not serve the Knowage web applications until PostgreSQL is up.
sudo systemctl restart knowage-tomcat.service
sudo systemctl status knowage-tomcat.service --no-pager sudo tail -n 40 /opt/knowage-tomcat/logs/catalina.outKnowage takes roughly one to three minutes to warm up after a restart. Judge readiness by the web interface answering on port 443, not by the contents of the log right after the restart.
Security Recommendations
- Change the administrator password in Knowage after your first sign-in, and store the new value in your own secret manager.
- Restrict the network security group so that ports 22 and 443 accept traffic only from networks you control.
- Install a CA-signed certificate. The image ships a per-VM self-signed certificate, so it makes no assumptions about your certificate authority. Replace
/etc/nginx/tls/knowage.crtand/etc/nginx/tls/knowage.keywith a certificate for your own domain, or put an Application Gateway in front of nginx. - Create named user accounts in Knowage instead of sharing the administrator login, and grant roles and permissions per user.
- Back up both halves together. The PostgreSQL metadata database and the Tomcat tree at
/opt/knowage-tomcatare a matched pair. - Keep the OS patched with
sudo apt-get update && sudo apt-get upgrade, and reboot for kernel updates.
Support and Licensing
Knowage Community Edition is published under the GNU Affero General Public License v3 (AGPL-3.0). SecureAnyCloud provides commercial support for the image itself, separately from the upstream project.
- Email: sales@secureanycloud.com
- Website: secureanycloud.com
- Support hours: 24/7, 24h response SLA
Deploy on Azure
Launch Knowage on Ubuntu 24.04 with 24/7 support from SecureAnyCloud.
View on Marketplace
Need Help?
Our support team is available 24/7. sales@secureanycloud.com
Deploy on Azure
Launch Knowage 9.0.9 Community Edition on Ubuntu 24.04 LTS on Azure with 24/7 support from SecureAnyCloud.
View this image
Need Help?
Our support team is available 24/7.
sales@secureanycloud.com
Overview
Knowage is the open-source business intelligence and analytics suite from the KnowageLabs project (Engineering Group). Teams use it to build interactive dashboards (called cockpits), pixel-perfect reports, self-service data exploration, charts and KPI monitoring over their own data, and to federate multiple data sources into a single analytical model. A complete analytics platform is running within minutes of launch, with full ownership of your data.
This image ships the GNU AGPL-3.0 open-source Knowage Community distribution unmodified.
What you get:
- Knowage as a Java web application on Apache Tomcat 9 with the OpenJDK 17 runtime, bound to loopback
127.0.0.1:8080 - nginx as a TLS reverse proxy on port 443 with a per-instance self-signed certificate. Port 80 redirects to 443
- A PostgreSQL 17 metadata database, listening on loopback only and stored on a dedicated data volume. It holds the users, roles, data source definitions, datasets and analytical documents
- A second dedicated volume for the Tomcat application tier
- systemd management of Tomcat, PostgreSQL and nginx, starting them on boot and restarting them on failure
- The Vue-based web interface under
/knowage-vue/, to which the bare root redirects
Knowage ships several well-known default accounts (biadmin, biuser, bidemo, bitest, bidev). On the first boot of every deployed instance, a one-shot service generates fresh per-instance encryption secrets, a fresh PostgreSQL role password and a fresh administrator password. It rotates the biadmin account to that per-instance password and removes every other seeded default account, all before the public web interface starts.
Two instances launched from the same Amazon Machine Image therefore never share credentials, and none of the well-known default logins work on a deployed instance. The administrator password is written to /root/knowage-credentials.txt with mode 0600, so only the root user can read it.
Prerequisites
- An AWS account subscribed to the Knowage listing on AWS Marketplace
- A key pair in your target Region for SSH access
- A security group that allows inbound TCP 443 (HTTPS) from the networks that need the web interface, and TCP 22 (SSH) from your administrative network. Port 80 is used only to redirect visitors to HTTPS
- An instance type of
m5.large(2 vCPU, 8 GiB) or larger, which is the recommended size. Knowage is a JVM and Tomcat application alongside PostgreSQL and benefits from memory
Connecting to your instance
Connect over SSH with your key pair and the default login user for your operating system variant. For Ubuntu 24.04, the login user is ubuntu.
ssh -i /path/to/key.pem ubuntu@<instance-public-ip>Retrieve the administrator password
First boot writes the per-instance administrator credentials to a root-only file. Read them with sudo.
sudo cat /root/knowage-credentials.txtThe file shows the sign-in URL, the administrator login (biadmin), the generated administrator password and the metadata database credentials. These values are unique to this instance.
Confirm the services are running
Knowage runs as three systemd units: the Tomcat application server, PostgreSQL and nginx. Check that all three are active.
systemctl is-active knowage-tomcat postgresql nginxEach line reads active.
Confirm the web interface answers over TLS
nginx serves the Knowage web interface on port 443 with a per-instance self-signed certificate. From the instance, confirm that it answers. The -k flag accepts the self-signed certificate.
curl -sk -o /dev/null -w 'knowage-vue HTTP %{http_code}\n' https://127.0.0.1/knowage-vue/The command prints knowage-vue HTTP 200.
Verify the credential rotation
The image ships a helper that proves the per-instance administrator password authenticates through the real Knowage login. The same helper confirms that the shipped default biadmin/biadmin and any wrong password are rejected.
sudo /usr/local/sbin/knowage-roundtrip.shA successful run prints a line beginning OK knowage-roundtrip.
Sign in to Knowage
Open https://<instance-public-ip>/ in your browser. The TLS certificate is a per-instance self-signed certificate, so your browser shows a certificate warning the first time. Accept it to proceed, or install a certificate for your own domain as described below.
Sign in with the login biadmin and the password from /root/knowage-credentials.txt.
The workspace
The workspace is your personal area for building analytics. From here you reach your data (datasets), your models and your analyses, and you create new cockpits and reports over them. Use the left-hand categories to switch between Recent items, My Repository, My Data, My Models and My Analysis.
The document browser
The document browser organizes the analytical documents published on the server, such as cockpits, reports and dashboards, into folders. You can browse and search them, and share them with other users and roles.
Building your first analysis
- As
biadmin, open the administration area and define a data source that points at the database you want to analyze. Knowage ships the PostgreSQL, MySQL, MariaDB and Oracle JDBC drivers. - Create a dataset over that data source with a SQL query or by selecting tables.
- Create a cockpit and add widgets (tables, charts, selectors) bound to your dataset to build an interactive dashboard.
- Save the cockpit and share it with the users and roles who should see it.
The metadata database on this instance stores every data source, dataset and cockpit you create. Your analyzed data stays in whatever external database you connect to.
Architecture and security
- Loopback-only application and database. Tomcat listens on
127.0.0.1:8080and PostgreSQL on127.0.0.1:5432. Neither is reachable from outside the instance. nginx on port 443 is the only public surface. - TLS by default. nginx terminates TLS with a per-instance self-signed certificate, and port 80 redirects to 443.
- Per-instance credentials. First boot generates fresh encryption secrets, a fresh database password and a fresh administrator password. It rotates
biadminand removes every other seeded default account before nginx starts. - Dedicated data volumes. The PostgreSQL metadata database lives on its own EBS volume at
/var/lib/postgresql, and the Tomcat application tier on a second volume at/opt/knowage-tomcat. Each volume can be resized independently.
Using your own domain and a CA-signed certificate
To serve Knowage under your own hostname with a trusted certificate, point a DNS record at the instance. Then replace the self-signed certificate that nginx uses at /etc/nginx/tls/knowage.crt and /etc/nginx/tls/knowage.key with a certificate for your domain, for example one obtained with certbot. Finally, test the configuration and reload nginx.
sudo nginx -t && sudo systemctl reload nginxBackups
Back up the PostgreSQL metadata database regularly with pg_dump as the postgres user, and snapshot the /var/lib/postgresql volume. The metadata database holds all of your data source definitions, datasets, cockpits and reports.
Support
SecureAnyCloud publishes and maintains this image with 24/7 support. For deployment help, data source configuration, cockpit and report design, TLS setup or scaling, contact sales@secureanycloud.com.
All product and company names are trademarks or registered trademarks of their respective holders. Use of them does not imply any affiliation with or endorsement by them.
Deploy on AWS
Launch Knowage on AWS with 24/7 support from SecureAnyCloud.
View on Marketplace
Need Help?
Our support team is available 24/7.
sales@secureanycloud.com