Bouquet is a easy deployment solution for Heliotrope and Hibiscus.
This project consists of the following services:
- Heliotrope: Main API application
- Hibiscus: Frontend built on top of Heliotrope
- Traefik: Reverse proxy and load balancer
- PostgreSQL: Relational database for galleryinfo storage
- MongoDB: NoSQL database for info storage
- Docker and Docker Compose installed
- Cloudflare account and API token
-
Clone the repository
git clone https://github.com/Saebasol/Bouquet cd Bouquet
-
Configure environment variables
Replace the following values in the docker-compose.yaml
file with your actual values:
# Cloudflare configuration
CLOUDFLARE_EMAIL: <your-cloudflare-email>
CLOUDFLARE_DNS_API_TOKEN: <your-cloudflare-api-token>
# Domain configuration
Host(`example.com`) β Host(`your-domain.com`)
Host(`www.example.com`) β Host(`www.your-domain.com`)
# Database credentials (recommended to change for security)
POSTGRES_USER: your-postgres-user
POSTGRES_PASSWORD: your-secure-password
MONGO_INITDB_ROOT_USERNAME: your-mongo-user
MONGO_INITDB_ROOT_PASSWORD: your-secure-password
# Heliotrope configuration
SANIC_GALLEYINFO_DB_URL: postgres://your-postgres-user:your-secure-password@postgres:5432/heliotrope
SANIC_INFO_DB_URL: mongodb://your-mongo-user:your-secure-password@mongodb:2701
- Start services
docker-compose up -d
To use Traefik's dynamic configuration:
- Create a
dynamic.yaml
file - Uncomment the corresponding line in
docker-compose.yaml
:
volumes:
- ./dynamic.yaml:/etc/traefik/dynamic/dynamic.yml:ro
command:
- --providers.file.directory=/etc/traefik/dynamic
- --providers.file.watch=true
To enable MongoDB Atlas Search, you need to ensure that your MongoDB instance is configured to support it. This typically involves using a MongoDB Atlas cluster with the search feature enabled.
Then add the following environment variable to the heliotrope
service in docker-compose.yaml
:
environment:
# https://github.com/Saebasol/Heliotrope/blob/main/heliotrope/infrastructure/sanic/config.py
SANIC_USE_ATLAS_SEARCH: "true"