Athina Self Hosting Guide
The example below is for AWS, but similar steps can be followed for other cloud providers.Prerequisites
- Create an EC2 Instance with at least 64GB of free disk space, 16GB of RAM, and 4 CPUs. Assign a public DNS to the instance as well.
- SSH into the instance and set up the following:
- Install git
- Install Docker
- Install Docker Compose
- Install nvm and Node.js
- Install Python 3.9 and pip
- Install AWS CLI
- Obtain Athina GitHub access credentials.
- Obtain Athina ECR access credentials (AWS CLI is required).
Core Services Setup
- Clone the
athina-deploy
repository (ensure all Athina project folders are at the same directory level): - Copy
.example.env
to.env
. - Populate the respective values. Some default values and keys are provided. You can change them if needed. The DB Name can remain as it is.
- Create a Google OAuth client for Google login (Google Sign-In Documentation). Ensure you set the correct redirect URI and authorized domain (
:9000/auth/google/redirect
). - Create a bucket for data import:
- Use the bucket name specified in
.env
. Edit CORS setting of this bucket to allow the frontend to upload files:
- Use the bucket name specified in
Transactional Emails (Optional)
- We use Loops for transactional emails like user invitations, OTP sending, and downloading exported data.
- Create a free account and obtain the API key from the Loops dashboard.
- Create three transactional email templates:
- User invitation email:
- Data variables:
inviterName
andinvitedEmail
- Data variables:
- OTP email:
- Data variable:
otp
- Data variable:
- Data export email:
- Data variable:
s3_link
- Data variable:
- User invitation email:
Services Creation
- Log in to ECR using credentials:
- Pull the required images:
- Ensure that the
.env
file inathina-deploy
is updated with the right values. - For worker services, ensure the following environment variables are set correctly:
- Run the following command to start services:
- Wait for all services to start.
Dashboard
- Install Node.js 20+
- Clone the
athina-dashboard
repository and switch to the main branch:
- Ensure you are on the main branch of the
athina-dashboard
repository. - Copy the following to
.env
:
- Set them to the correct values.
- You can build either by installing yarn or by using a pre-built nodejs docker image (Recommended):
Using node and npm directly
Using pre-built nodejs docker image
- Navigate to
http://<IP/DOMAIN>:3000/login
.