Extensibility
Lotus aims to serve as many use cases as possible! We want to make sure that you can extend the project to fit your needs. We have a special tag in our issues for features that already have a framework or template for you to use, allowing you to enhance the code to fit your needs seamlessly. For example, building a new integration with a payment processor, or hooking up a different CRM. You can find these issues tagged with the extensibility label in our Github issues.👷♂️ Local Development
To develop locally, we recommend using Docker to set up the environment, which allows for hot reloading of both frontend and backend code.- Install Docker Desktop
- Clone the repo and navigate to the project
- Run the self-hosting script:
If you need to give the script permission to run, run
chmod 755 ./scripts/dev.shfirst. - You should now be able to access the homepage at localhost:8000/, and sign in using the
ADMIN_USERNAMEandADMIN_PASSWORDyou defined, or the default, which is:
- Change the environment variables located in
env/.env.devto suit your needs. For more details, check out this guide in our docs. - If the dev distirbution of Lotus is too heavy for your machine, you can use some flags to remove some optional lotus modules from the build:
--no-eventsto remove the entire event tracking infrastructure, including Kafka/Redpanda, the event service module, and the event ingestion serviceno-webhooksto remove the webhook service module. This is useful if you don’t need to send webhooks to external services.--no-beatto remove the celery-beat service module. This is useful if you don’t need to run scheduled tasks.--force-recreateto force the docker containers to be recreated, even if they already exist. This is useful if you want to rebuild the containers with different flags.
🔍 Before Committing
- Run tests
- Check the python code style