Comet (joincomet.app)
All-in-one chat and forums for communities.
Known active forks: https://github.com/gudfhr95/stelllar
- Node.js
- TypeScript
- Apollo Server Express
- graphql-ws
- GraphQL Live Query
- TypeGraphQL
- MikroORM
- PostgreSQL
- Redis
Join our Discord server (mostly inactive)
Start dev server:
yarn run dev:web
The frontend is a React app, and can be deployed in many ways. joincomet.app is using GitHub Pages in this repo, but another good option is Cloudflare Pages
Build frontend:
yarn run build:web
Environment variables:
VITE_API_DOMAIN
(domain server is running on i.e.api.joincomet.app
)
Start dev server with below environment variables:
yarn run dev:server
Environment variables:
DATABASE_URL
(defaults topostgresql://postgres:password@localhost:5432
if left blank)ACCESS_TOKEN_SECRET
(required, secret used for encrypting passwords)REDIS_URL
(optional, in-memory will be used if not provided)
The following environment variables are related to S3 file uploads and are required for file uploads to work. Comet has only been tested with DigitalOcean Spaces, but may also work with AWS S3.
MEDIA_DOMAIN
(domain media is hosted on i.e.media.joincomet.app
)BUCKET
(name of bucket, DO Spaces requires this to be same asMEDIA_DOMAIN
i.e.media.joincomet.app
)AWS_ENDPOINT
(endpoint bucket is hosted on i.e.nyc3.digitaloceanspaces.com
)AWS_ACCESS_KEY_ID
(access key ID provided by DO Spaces/AWS)AWS_SECRET_ACCESS_KEY
(secret access key provided by DO Spaces/AWS)
A Docker image is available at Docker Hub. joincomet. app uses DigitalOcean App Platform to deploy the Docker image. Run the Docker image with the above environment variables.