Install with Docker
You can install Bag of words with a single docker command. By default, it will use SQLite as the database.
You can also configure it to use PostgreSQL by passing BOW_DATABASE_URL
environment variable.
docker run --pull always -d -p 3000:3000 bagofwords/bagofwords
To use PostgreSQL, you need to set the BOW_DATABASE_URL
environment variable.
For example: BOW_DATABASE_URL=postgresql://postgres:postgres@localhost:5432/bagofwords
Other configurations
You can also configure additional settings in the bow-config.yaml file.
# bow-config.yaml
# Deployment Configuration
base_url: http://0.0.0.0:3000
database:
url: ${BOW_DATABASE_URL}
# Feature Flags
features:
allow_uninvited_signups: false
allow_multiple_organizations: false
verify_emails: false
google_oauth:
enabled: false
client_id: ${BOW_GOOGLE_CLIENT_ID}
client_secret: ${BOW_GOOGLE_CLIENT_SECRET}
smtp_settings:
host: "smtp.resend.com"
port: 587
username: "resend"
password: ${BOW_SMTP_PASSWORD}
encryption_key: ${BOW_ENCRYPTION_KEY}
intercom:
enabled: true
To use the custom config file, you can run the following command:
docker run --pull always -d -p 3000:3000 -v $(pwd)/bow-config.yaml:/app/bow-config.yaml bagofwords/bagofwords
Install with Kubernetes
You can install Bag of words on a Kubernetes cluster. The following deployment will deploy the Bagofwords container alongside a postgres instance.
1. Add the Helm Repository
helm repo add bow https://bagofwords.com/helm
helm repo update
2. Install or Upgrade the Chart
Here are a few examples of how to install or upgrade the Bag of words Helm chart:
helm upgrade -i --create-namespace \
-nbowapp-1 bowapp bow/bagofwords \
--set postgresql.auth.username=<PG-USER> \
--set postgresql.auth.password=<PG-PASS> \
--set postgresql.auth.database=<PG-DB>
# deploy without TLS with custom hostname
helm upgrade -i --create-namespace \
-nbowapp-1 bowapp bow/bagofwords \
--set host=<HOST> \
--set postgresql.auth.username=<PG-USER> \
--set postgresql.auth.password=<PG-PASS> \
--set postgresql.auth.database=<PG-DB> \
--set ingress.tls=false
# deploy with TLS, certs by cert manager and Googole oauth enabled
helm upgrade -i --create-namespace \
-nbowapp-1 bowapp bow/bagofwords \
--set host=<HOST> \
--set postgresql.auth.username=<PG-USER> \
--set postgresql.auth.password=<PG-PASS> \
--set postgresql.auth.database=<PG-DB>
--set config.googleOauthEnabled=true \
--set config.googleClientId=<CLIENT_ID> \
--set config.googleClientSecret=<CLIENT_SECRET>