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 and Odoo developer guide cover two complete ERP suites you can host on AWS the same way, and our ERPNext vs Odoo comparison 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 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/ 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' 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
  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

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

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

If your domain is hosted with another DNS provider, create the same A record there. The Route 53 documentation 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

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

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

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.
ssh -i <your key name> ubuntu@<Public IP address>
Terminal connecting to the Invantra server over SSH and confirming the host fingerprint

Step 3: Generate SSL

Run the following command and follow the prompts:

sudo /root/certificate_generate_standalone.sh

Check Server Logs

Step 1: Log in to the server

ssh -i <your key name> ubuntu@<Public IP address>
Terminal connecting to the Invantra server over SSH with a private key

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:

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 EC2 Instance state dropdown with the Stop instance option

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.

CloudFormation event showing CREATE_FAILED with a VcpuLimitExceeded error

If you face insufficient capacity errors while creating the stack, try another region or time.

CloudFormation event showing CREATE_FAILED with an InsufficientInstanceCapacity error

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

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:

df -h
df -h output showing usage of the root filesystem

If the root volume is between 90-100%, resize the EBS volume, 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 for what the Meetrix image includes. To keep an eye on what the instance itself costs to run, set up an AWS billing alarm alongside it.

Technical Support

Reach out to Meetrix Support (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 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