TL;DR (AWS)
AWS Quick Deployment Guide
Deploy Hivel on your own AWS account using EC2 for compute and Amazon RDS for the database. This condensed guide covers the same steps in the same order without omitting any part of the deployment process. Refer to the full AWS Setup Guide for additional context, detailed explanations, or troubleshooting guidance.
Prerequisites
Before you start, confirm you have:
An AWS account with permissions to create EC2 and RDS resources
Hivel-issued AWS Access Key ID and Secret Access Key, scoped to Hivel's ECR
An S3 bucket path or pre-signed URL for the
hivel-onpreminstaller packageHivel license files:
license_signed.jsonandhivel_onprem_public.pem
If you lack any of these, contact support@hivel.ai before starting. Deployment cannot complete without them.
Step 1: Provision an EC2 Instance
In AWS Console:
Launch a new EC2 instance with Ubuntu 22.04 LTS or later
Instance type: t3.xlarge (4 vCPU, 16GB RAM) minimum. For high integration or commit volume, consult Hivel before finalizing sizing
Storage: 50GB volume
Security group: allow inbound on ports 22, 80, 443, 3000, 4317 (if Claude is being integrated), and 5432
Note the instance's public and private IP address
SSH into the instance to confirm access
Step 2: Install Required Software
On EC2 VM:
Required versions: Docker >= 26.0, Docker Compose >= 2.25.0, any current AWS CLI v2.x. Log out and back in for the Docker group change to take effect.
If
dockercommands still ask forsudo, runnewgrp dockeror reboot the instance.
Step 3: Configure the AWS CLI
On EC2 VM:
Expect a JSON object with your AWS account details. If it fails with "Unable to locate credentials," re-run aws configure and check cat ~/.aws/credentials.
Step 4: Provision RDS PostgreSQL
In AWS Console:
Go to RDS Console and create a PostgreSQL database with:
Engine: PostgreSQL 12 to 15
Instance class: db.t3.medium or larger
Storage: 20GB+ gp3
Master username:
postgres(fixed, do not change)Master password: choose a strong password and save it securely
Create a custom parameter group for your PostgreSQL version:
Set
rds.force_sslto0(this deployment uses network-level isolation as the security boundary)Attach the parameter group to the RDS instance; reboot if AWS requires it
Note: RDS endpoint, port (usually 5432), master username, and master password
Configure the RDS security group for access only from your VM:
RDS Console → your database → Connectivity & security → click the security group
Add an inbound rule: Type PostgreSQL, Port 5432, Source your VM's security group ID
Expected result: RDS console shows status Available, and a connection test from the VM succeeds on port 5432.
Step 5: Create the insightly Database
On EC2 VM:
insightly is Hivel's fixed database name, not a placeholder to rename.
If you only have console access instead of network access to RDS, use RDS Console → your database → Query Editor → connect → run CREATE DATABASE insightly;.
Step 6: Download the Installer and License Files
On EC2 VM:
Confirm deploy.sh, config/, license/, services/, and scripts/ are present. If S3 access fails with "Access Denied," confirm with Hivel support that your IAM credentials cover the installer bucket, not just ECR.
Step 7: Configure the Environment File: Phase 1 (Migration Credentials)
On EC2 VM:
Set these database variables to your RDS master credentials:
DB_HOST, DB_PORT, DB_NAME, DB_USER, and DB_PASSWORD are mandatory; all services fail without them. Leave other template variables at their defaults unless Hivel support directs otherwise.
Passwords containing
()[]$&|;#<>*or spaces must be wrapped in single quotes. A literal$must be written as$$even inside single quotes because Docker Compose interpolates$VAR. A literal single quote in the password is not allowed; choose a different password if needed.
Step 8: Verify RDS Connectivity
On EC2 VM:
Expected: an insightly=# prompt with no errors. Do not continue until this works.
Step 9: Test ECR Access
On EC2 VM:
Hivel's Docker images are stored in Amazon ECR at 730335373269.dkr.ecr.ap-south-1.amazonaws.com. Your AWS CLI credentials are scoped specifically to this registry.
Expected: Login Succeeded. deploy.sh handles ECR authentication automatically from here on.
Using your own ECR instead is an advanced path requiring you to push Hivel's images to your own repositories and update image URLs in services/vm/docker-compose.yml plus ECR_REGISTRY/AWS_REGION variables in deploy.sh. Only do this if your organization requires images in your own infrastructure.
Step 10: Run the Database Migration
On EC2 VM:
This runs once only, before any other services start. It initializes the entire database.
Wait 1 to 2 minutes for completion, then verify:
Success: exit code 0, logs containing "Successfully applied X migration(s)" and "user <user> created", container status "Exited (0)". Do not proceed if migration failed or rerun migration on an already-initialized database.
Step 11: Switch the Environment File to Application Credentials: Phase 2
On EC2 VM:
Update these values:
The default application username and password are provided separately by Hivel. If you customized the password before running the migration, use that same password here. All services from this point on connect using this application user, not the RDS master account.
Step 12: Deploy All Services
On EC2 VM:
All available deploy.sh commands:
For specific service guidance, contact support@hivel.ai. Deploying with Docker Compose directly is available as an advanced alternative if you need custom orchestration or staged rollouts.
Step 13: Set Up Log Rotation
On EC2 VM:
This creates /var/log/hivel/, adds a daily cron job at midnight, and configures rotation for all Docker containers with 7-day retention. Logs live at /var/log/hivel/<service-name>/<service-name>-YYYY-MM-DD.log.
Step 14: Verify the Deployment
On EC2 VM, then a browser:
All containers should show Up/healthy, and each endpoint should return a healthy response.
Then access the app via one of these options:
Direct EC2 IP (testing only, no HTTPS, IP changes on restart):
http://<vm-public-ip>:3000Application Load Balancer (stable, HTTPS not yet configured): create an ALB in AWS Console, configure a target group pointing to the VM on ports 80 and 3000, configure listener rules
Route53 + ALB (production recommended): create the ALB as above, create a Route53 hosted zone for your domain, create an A record (alias) pointing to the ALB, configure an SSL/TLS certificate on the ALB, access via
https://your-domain.com
Deployment is complete when: all containers are healthy, every endpoint returns healthy, the UI loads with no console errors, and at least one integration (Jira/GitHub/GitLab) is connected and shows data after Step 16.
Step 15 (Optional but Recommended): Enable HTTPS with Caddy
In AWS Console, then on EC2 VM:
Modern browsers restrict crypto.randomUUID, used on the sign-up page, to secure contexts (HTTPS or localhost). Accessing the UI over plain HTTP will fail sign-up.
In Route53: create an A record pointing your subdomain (e.g., hivel.yourcompany.com) at the VM's public IP. Use an Elastic IP so the address doesn't change on restart.
In EC2 security group: add inbound rules for port 80 (source 0.0.0.0/0, required for Let's Encrypt's HTTP-01 validation) and port 443 (source 0.0.0.0/0 or your office/VPN CIDR).
On EC2 VM:
Wait for a log line confirming the certificate was obtained, then open https://hivel.yourcompany.com in a browser. Expect a trusted certificate with no warnings.
No domain yet? Use a temporary self-signed certificate for testing only; see the full DNS Setup guide's Option B, then upgrade once you have a domain.
Step 16: Sign Up and Connect Integrations
In a browser, at the Hivel UI:
Go to
http://<vm-public-ip>:3000/signup(or your HTTPS domain), enter your email, create a password, and complete email verificationLog in. You'll be redirected to the Company Profile Creation page
Fill in your organization's details, select an approval method for new users, and continue to the Integration page
Connect the tools you need:
GitLab: your GitLab domain URL, the access-token user's name and email, your GitLab access token, API version
/api/v4. Verify under Settings > Repository; you should see repositories being analyzedJira: your Jira URL (Cloud:
https://yourcompany.atlassian.net), the access-token user's name and email, your Jira access token, API version/rest/api/3/SonarQube: your SonarQube instance URL and access token
See Integrations for the full list of supported integrations.
🔗IntegrationsInitial data sync time depends on the volume of historical data. For issues during setup, see Troubleshooting or contact support@hivel.ai.
TroubleshootingDeployment complete. See the full AWS Setup Guide for detailed instructions.
Last updated