DEPLOYMENT GUIDE • APRIL 10, 2024

Self-Hosting Attendee for Control & Cost Savings

Take full control of your data and reduce costs. Learn how to deploy Attendee on your own infrastructure with Docker, Postgres, and Redis.

While our hosted version of Attendee offers a quick and easy way to get started, self-hosting unlocks the ultimate level of control, security, and cost-efficiency. By running Attendee within your own cloud environment, you ensure that sensitive meeting data never leaves your infrastructure, and you can reduce operational costs by up to 10x compared to closed-source vendors.

This guide provides a complete, step-by-step walkthrough for deploying Attendee using Docker. We've designed it to be as simple as possible, requiring only Postgres and Redis as external services.

Why Self-Host Attendee?

Full Control Over Your Data

For companies with strict data privacy and compliance requirements (like GDPR or HIPAA), self-hosting is non-negotiable. When you self-host Attendee, all meeting recordings, transcripts, and metadata are stored in your own S3 buckets and Postgres database. Your data remains yours, always.

Drastic Cost Reduction

Managed services are convenient, but that convenience comes at a premium. By self-hosting, you bypass service fees and pay only for the raw compute and storage resources you consume on your cloud provider (like AWS, GCP, or Azure). This direct-cost model is how self-hosting can be up to 10x cheaper.

Customization and Scalability

Running your own instance gives you the freedom to configure and scale the system to your exact needs. You can integrate it with your existing infrastructure monitoring tools, tweak performance settings, and scale your bot fleet up or down based on demand.

Step-by-Step Deployment Guide

This guide will walk you through setting up Attendee in development mode on your local machine. The process is a great way to get familiar with the components before deploying to a production server.

Step 1: Clone the Repository

First, get the source code from our GitHub repository.

Terminal
git clone https://github.com/attendee-labs/attendee.git
cd attendee

Step 2: Build the Docker Image

This command packages the Attendee Django application and all its dependencies into a single Docker image. It can take about 5 minutes on the first run.

Terminal
docker compose -f dev.docker-compose.yaml build

Step 3: Create and Configure the Environment File

Attendee uses a .env file to manage secrets and configuration. We provide a script to generate a template for you. Run the following command to create the file:

Terminal
docker compose -f dev.docker-compose.yaml run --rm attendee-app-local python init_env.py > .env

Now, open the newly created .env file in your favorite editor. You'll need to fill in your AWS credentials for S3 storage. The app will not work without them.

.env
# ... other settings ...

# AWS Credentials for S3 file storage
# The app will emit errors without these
AWS_ACCESS_KEY_ID="YOUR_AWS_ACCESS_KEY"
AWS_SECRET_ACCESS_KEY="YOUR_AWS_SECRET_KEY"
AWS_STORAGE_BUCKET_NAME="your-unique-s3-bucket-name"
AWS_S3_REGION_NAME="us-east-1" # Or your preferred region

# ... other settings ...

Step 4: Start All Services

With the configuration in place, you can now start the Attendee app along with its Postgres and Redis dependencies.

Terminal
docker compose -f dev.docker-compose.yaml up

Step 5: Run Database Migrations

While the services are running, open a new terminal tab and run the database migrations. This command sets up the necessary tables in your Postgres database.

New Terminal Tab
docker compose -f dev.docker-compose.yaml exec attendee-app-local python manage.py migrate

Step 6: Create Your Account & Get an API Key

Your self-hosted instance is now running! Navigate to http://localhost:8000 in your browser to create your first account.

  1. Fill out the sign-up form.
  2. Check the terminal window where you ran docker compose ... up. The account confirmation link will be printed in the server logs. It will look something like http://localhost:8000/accounts/confirm-email//.
  3. Copy and paste this link into your browser to confirm your account.
  4. Log in, navigate to the 'API Keys' section in the sidebar, and create your first API key.

That's it! You now have a fully functional Attendee instance. You can start making API calls to http://localhost:8000 instead of the hosted https://app.attendee.dev.

You're Self-Hosted! What's Next?

You've taken the first step toward a more controlled and cost-effective meeting bot integration. If you have questions, run into issues, or want to suggest a feature, the best place to connect with us is our community.

Join our Slack Community