> Source: https://meetrix.io/blogs/invantra-developer-guide/
> Markdown copy of that page. Cite the URL above, not this file.

Development

# Invantra - Developer Guide

[By Binuka Ranatunga](https://meetrix.io/blogs/authors/binuka-ranatunga/) • October 19, 2026 • 10 min read

Learn how to deploy Invantra on AWS with our step-by-step guide. It walks you through launching the Meetrix Invantra AMI with CloudFormation, pointing your domain at it, signing in for the first time, and keeping the server healthy once it runs.

Invantra is a self-hosted invoicing application for small businesses and service teams. You keep your customers and items in one place, send estimates for approval, turn approved estimates into invoices, and record the payments you receive. Because it runs on an EC2 instance in your own account, your billing data never sits on a third-party SaaS platform. If you need full accounting, inventory and HR alongside invoicing, our [ERPNext developer guide](https://meetrix.io/blogs/erpnext-developer-guide/) and [Odoo developer guide](https://meetrix.io/blogs/odoo-developer-guide/) cover two complete ERP suites you can host on AWS the same way, and our [ERPNext vs Odoo comparison](https://meetrix.io/blogs/erpnext-vs-odoo/) helps you choose between them.

Prerequisites

Before you get started with the Invantra AMI, ensure you have the following prerequisites:

-   Basic knowledge of AWS services, including EC2 instances and CloudFormation.
-   An active AWS account with appropriate permissions.
-   An [EC2 key pair](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/create-key-pairs.html) in the region you will deploy to.
-   An S3 bucket in the same region for backups.
-   If you encounter a vCPU quota error when launching the stack, follow [https://meetrix.io/blogs/increase-aws-vcpu-quota/](https://meetrix.io/blogs/increase-aws-vcpu-quota/) to increase your vCPU limit.

## Launching the AMI

### Step 1: Find and Select Invantra AMI

1.  Log in to your AWS Management Console.
2.  Navigate to '[Invantra](https://aws.amazon.com/marketplace/pp/prodview-rtfvqjuceyqby)' in AWS Marketplace.

### Step 2: Initial Setup & Configuration

1.  Click the **"Continue to Subscribe"** button.
2.  After subscribing, accept the terms and click **"Accept Terms"**.
3.  Wait a few minutes until processing completes, then click **"Continue to Configuration"**.
4.  Select **"CloudFormation script to deploy Invantra"** as the fulfillment option and choose your region. Click **"Continue to Launch"**.
5.  From the "Choose Action" dropdown, select **"Launch CloudFormation"** and click **"Launch"**.

## Create CloudFormation Stack

### Step 1: Create a stack

1.  Ensure the **"Template is ready"** option is selected under "Prepare template".
2.  Click "Next".

### Step 2: Specify stack options

1.  Provide a unique **"Stack name"**.
2.  Enter the **"AdminEmail"**. This is the email you sign in to Invantra with, and it is also used for SSL certificate generation.
3.  Keep the default value of **"AmiId"**.
4.  Enter a value for **"DeploymentName"**.
5.  Provide a public domain for **"DomainName"**. Invantra will automatically try to set up SSL if the domain is hosted on Route 53. If unsuccessful, you must set up SSL manually.
6.  Choose an instance type **"InstanceType"** (Recommended: **t3a.small**).
7.  Select your preferred **"KeyName"**.
8.  Enter the name of your S3 bucket for **"S3Bucket"**, used for storing backups.
9.  Set **"SSHLocation"** to 0.0.0.0/0, or restrict it to your own IP range.
10.  Keep **"SubnetCidrBlock"** as 10.0.0.0/24.
11.  Keep **"VpcCidrBlock"** as 10.0.0.0/16.
12.  Click "Next".

### Step 3: Configure stack options

1.  Choose "Roll back all stack resources" and "Delete all newly created resources" under "Stack failure options".
2.  Click "Next".

### Step 4: Review

Review and verify the parameters you've entered.

![CloudFormation Parameters list for the Invantra stack showing AdminEmail, AmiId for version 1.0.0, DeploymentName, DomainName, InstanceType set to t3a.small, KeyName, S3Bucket, SSHLocation and CIDR blocks](https://meetrix.io/blog-images/paas-dev-guides/invantra/invantra-01.png)

1.  Tick **"I acknowledge that AWS CloudFormation might create IAM resources with custom names"**.
2.  Click **"Submit"**.

![CloudFormation capabilities notice for IAM Policy and Role resources with the acknowledgement checkbox ticked](https://meetrix.io/blog-images/paas-dev-guides/invantra/invantra-02.png)

Afterward, you'll be directed to the CloudFormation stacks page. Please wait 5-10 minutes until the stack status shows **CREATE\_COMPLETE**. The **"Outputs"** tab then lists everything you need for the next steps: the sign-in email, the dashboard URLs, the initial admin password and the public IP.

![Invantra CloudFormation stack Outputs tab listing AdminEmail, DashboardUrl, DashboardUrlIp, InitialAdminPassword and PublicIp](https://meetrix.io/blog-images/paas-dev-guides/invantra/invantra-03.png)

## Update DNS

### Step 1: Copy IP Address

Copy the public IP labeled **"PublicIp"** in the **"Outputs"** tab shown above. It is an Elastic IP, so it stays the same if you stop and start the instance.

### Step 2: Update DNS

1.  Go to AWS Route 53 and navigate to "Hosted Zones".
2.  Click **Create record**.
3.  Add a **record name** matching the DomainName you entered, keep the record type as **A**, and paste the copied **PublicIp** into the **value** textbox.
4.  Click **"Create records"**.

![Route 53 Quick create record form for an A record in the hosted zone](https://meetrix.io/blog-images/paas-dev-guides/invantra/invantra-04.png)

If your domain is hosted with another DNS provider, create the same A record there. The [Route 53 documentation](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resource-record-sets-creating.html) explains each field of the record form.

## Access Invantra

Access Invantra using the **"DashboardUrl"** in the Outputs tab. Until DNS and SSL are in place you can use **"DashboardUrlIp"** instead, which serves the dashboard over plain HTTP. Switch to the domain once its certificate is issued.

Note

If you receive a "502 Bad Gateway" error, wait approximately **5 minutes** and refresh the page. Invantra may still be initializing.

### Step 1: Sign in

On the sign-in page, enter the **AdminEmail** from the Outputs tab. For the password, use the value of **"InitialAdminPassword"**, which is the ID of the EC2 instance (it starts with **i-**). Click **"Sign in"**.

![Invantra sign-in page with Email and Password fields](https://meetrix.io/blog-images/paas-dev-guides/invantra/invantra-05.png)

### Step 2: Change the initial password

Invantra asks you to choose your own password before you continue. Enter the instance ID again as the **Current password**, then enter and confirm a new password of at least 10 characters, and click **"Change password"**. Store the new password securely.

![Invantra Change your password page asking for the current password and a new password of at least 10 characters](https://meetrix.io/blog-images/paas-dev-guides/invantra/invantra-06.png)

### Step 3: Set up your business details

After the password change you land on the Invantra home page, with your total receivables, estimate counts and recent activity. A banner asks you to set up your business details before approving documents. Open **Settings** and fill them in first, since they appear on every estimate and invoice you send.

![Invantra home page showing Total receivables, Estimates counts and a banner asking to set up business details in Settings](https://meetrix.io/blog-images/paas-dev-guides/invantra/invantra-07.png)

From there, a typical first run looks like this:

1.  Add your customers under **Customers**.
2.  Add the products or services you bill for under **Items**.
3.  Create an estimate under **Estimates** and send it for approval.
4.  Convert the approved estimate into an invoice under **Invoices**.
5.  Record the money you receive under **Payments received**.

Admin account

The admin account can see every customer, invoice and payment, and can manage other users. Invite the rest of your team under **Users** with their own accounts instead of sharing the admin login. Users who forget their password ask an admin for a reset link.

## Generate SSL Manually

Invantra will automatically try to set up SSL when a Route 53-hosted domain is provided. If it fails, follow these steps to generate SSL manually.

### Step 1: Copy IP Address

1.  Follow the **Update DNS** steps above, if not already done.
2.  Copy the Public IP indicated as **"PublicIp"** in the **"Outputs"** tab.

### Step 2: Log in to the server

1.  Open the terminal and go to the directory where your private key is located.
2.  Run the following command, replacing the key name and IP address.
3.  Type "yes" and press Enter to confirm.

```plaintext
ssh -i <your key name> ubuntu@<Public IP address>
```

![Terminal connecting to the Invantra server over SSH and confirming the host fingerprint](https://meetrix.io/blog-images/paas-dev-guides/invantra/invantra-08.png)

### Step 3: Generate SSL

Run the following command and follow the prompts:

```plaintext
sudo /root/certificate_generate_standalone.sh
```

## Check Server Logs

### Step 1: Log in to the server

```plaintext
ssh -i <your key name> ubuntu@<Public IP address>
```

![Terminal connecting to the Invantra server over SSH with a private key](https://meetrix.io/blog-images/paas-dev-guides/invantra/invantra-09.png)

### Step 2: Check the logs

List the running containers, then view the logs of a container using the first few characters of its container ID:

```plaintext
sudo docker ps

sudo docker logs <container-id-prefix>
```

## Shutting Down Invantra

1.  In CloudFormation, click the link labeled **"Instance"** in the **"Resources"** tab to open the EC2 instance.
2.  Stop the Invantra instance from the **Instance state** dropdown. You can restart it later as needed.

![CloudFormation Resources tab with the EC2 Instance physical ID link](https://meetrix.io/blog-images/paas-dev-guides/invantra/invantra-10.png) ![EC2 Instance state dropdown with the Stop instance option](https://meetrix.io/blog-images/paas-dev-guides/invantra/invantra-11.png)

Note

While the instance is stopped, nobody can sign in to Invantra. Your customers, estimates and invoices stay on the instance's volume and are there again when you start it.

## Remove Invantra

Delete the CloudFormation stack from the AWS Management Console under "CloudFormation Stacks" by clicking "Delete". This removes the instance and its data, so back up anything you need first.

## Upgrades

When a new version is available in AWS Marketplace, remove the previous deployment after backing up necessary server data, and relaunch with the new version.

## Troubleshoot

If you face vCPU quota limits, request an increase: [How to increase AWS quota](https://meetrix.io/blogs/increase-aws-vcpu-quota/).

![CloudFormation event showing CREATE\_FAILED with a VcpuLimitExceeded error](https://meetrix.io/blog-images/paas-dev-guides/invantra/invantra-12.png)

If you face _insufficient capacity_ errors while creating the stack, try another region or time.

![CloudFormation event showing CREATE\_FAILED with an InsufficientInstanceCapacity error](https://meetrix.io/blog-images/paas-dev-guides/invantra/invantra-13.png)

If the dashboard shows a 502 Bad Gateway error, wait 5-10 minutes and retry. Invantra can take a few minutes to start after the instance boots.

![502 Bad Gateway error page served by nginx](https://meetrix.io/blog-images/paas-dev-guides/invantra/invantra-14.png)

If you cannot approve an estimate or invoice, check that your business details are filled in under **Settings**. Invantra blocks approval until they are.

Check whether the instance storage is full. Log into the server and run:

```plaintext
df -h
```

![df -h output showing usage of the root filesystem](https://meetrix.io/blog-images/paas-dev-guides/invantra/invantra-15.png)

If the root volume is between 90-100%, [resize the EBS volume](https://docs.aws.amazon.com/ebs/latest/userguide/requesting-ebs-volume-modifications.html), then reboot and restart the service.

## Conclusion

The Meetrix Invantra Deployment Guide helps you run your own invoicing system in your AWS environment. Whether you're a business owner, a finance team, or a DevOps engineer setting it up for them, this guide provides step-by-step instructions for a secure setup. See the [Invantra store page](https://meetrix.io/store/invantra/) for what the Meetrix image includes. To keep an eye on what the instance itself costs to run, set up an [AWS billing alarm](https://meetrix.io/blogs/aws-billing-alarm/) alongside it.

## Technical Support

Reach out to Meetrix Support ([aws@meetrix.io](mailto:aws@meetrix.io)) for assistance with Invantra issues.

## Frequently Asked Questions

What is Invantra?

Invantra is a self-hosted invoicing application. You keep a list of customers and items, send estimates for approval, turn approved estimates into invoices, and record the payments you receive, all on a server in your own AWS account.

What are the login details for Invantra?

Sign in with the AdminEmail you entered in the CloudFormation stack parameters. The first password is the EC2 instance ID, shown as InitialAdminPassword in the stack's Outputs tab. Invantra asks you to change it at first sign-in, and the new password must be at least 10 characters.

Which instance type is recommended?

t3a.small is the recommended baseline. Choose a larger instance if many users will work in Invantra at the same time.

What is the S3Bucket parameter used for?

It is an S3 bucket in your account that the instance uses to store backups. Create the bucket before launching the stack, in the same region.

Why can't I approve an estimate or invoice?

Invantra needs your business details before it will approve documents, because they are printed on every estimate and invoice. Open Settings, fill in your business details, and save. Approval then works as normal.

How do I upgrade Invantra?

When a new version is available in AWS Marketplace, back up the data you need, remove the previous deployment, then launch a new stack with the new version.

How do I get technical support?

Reach out to Meetrix Support at [aws@meetrix.io](mailto:aws@meetrix.io) for assistance with Invantra issues.

## Ready to Deploy Your Own Invantra Instance?

Get started in minutes with our pre-configured AMI and keep your invoices, estimates and payments on your own server.

[Deploy Invantra from AWS Marketplace](https://aws.amazon.com/marketplace/pp/prodview-rtfvqjuceyqby)

Meetrix Store

Invantra

Self-hosted invoicing: estimates, invoices, payments

[Deploy it](https://meetrix.io/store/invantra/)

Meetrix Store New

Deploy what this guide covers, pre-configured.

-    [Invantra Self-hosted invoicing: estimates, invoices, payments](https://meetrix.io/store/invantra/)
-    [ERPNext Accounting, inventory and CRM, all modules free](https://meetrix.io/store/erpnext/)
-    [Odoo Modular ERP and CRM for sales and accounting](https://meetrix.io/store/odoo/)
-    [Jitsi Meet Self-hosted video calls for 50 to 500 users](https://meetrix.io/store/jitsi-meet/)
-    [RustDesk Remote desktop AMI, a TeamViewer alternative](https://meetrix.io/store/rustdesk/)
-    [Coturn TURN/STUN for WebRTC, no per-minute relay fees](https://meetrix.io/store/coturn/)

[Browse all products](https://meetrix.io/store/)
