Hyena is a Telegram bot that helps to digest visual and vocal input into Notion's GTD inbox.
Hyena will run either in push mode (webhook) or in pull mode (polling) based on the RUN_ENV
env var (production=push).
When set to push mode, the env var TELEGRAM_WEBHOOK_URL
must be supplied and will be used to register the webhook with the bot.
Hyena uses dotenv to load env vars from a .env
file (see .env.example for reference).
pipenv install
python hyena/main.py
pipenv run start-ngrok
Some env vars should be set in order for the bot to function:
RUN_ENV
: the environment the app runs in [development|production]PORT
: The port to listen on when using webhook (production)TELEGRAM_BOT_TOKEN
: The Hyena bot tokenTELEGRAM_WEBHOOK_URL
: The URL to register the bot toNOTION_API_TOKEN
: The Notion token of the Hyena integrationNOTION_DATABASE_ID
: The ID of the inbox database in notionAWS_ACCESS_KEY_ID
: required in order to access AWS Transcribe (and S3)AWS_SECRET_ACCESS_KEY
: required in order to access AWS Transcribe (and S3)AWS_DEFAULT_REGION
: The default AWS regionAWS_BUCKET_NAME
: The bucket to save the voice files to before transcribing
Hyena uses Terraform to provision its AWS infrastructure (S3, ).
Create a file terraform.tfvars
(see variables reference in ./infrastructure/terraform.tfvars.example)
tf plan -out=plan.tfplan
# Review plan.tfplan
tf apply "plan.tfplan"