
* Integrate chat from upstream Substantially borrowed from upstream ref: 13a208ee88e55 (before they started editing generated artefacts instead of source). Integrated, including: - Remove previously removed features: emoji, hats, and name colors - Compensate for lack of unified root template - Add React build process to Dockerfile and `bootstrap/init.sh` - Preliminary integration of chat websocket workers For testing, modify `supervisord.conf.dev` to put chat on port 80 and the site service on some other port. Then visit: http://localhost/chat Still to do: - Access control for specific small-groups (and admins probably): Set the values somewhere (site_settings.json? Redis?) and use for authorization in `chat_is_allowed`. - Proxying only /chat to the websocket workers - Chat persistance across restarts: either Redis devops or to DB * Add nginx server to do appropriate redirection. * Add necessary columns to User. * Wire up chat permissions. * Reload chat on source change. * Add a better structure for slash commands and add/remove functionality. * Stop putting up previews of slash commands. * We require more whitespace. * Strip DMs out entirely, I currently do not want to deal with them. * Change "Users Online" to just "Users". * Clean up a little more DM detritus. * Save chat history in database. * Remove unnecessary hefty query to the DB. * Clean up optimistic messages. * Initial implementation of notification icon. * Update readme a little bit. * Fix notification highlight (mostly). * Remove chat version number that will never be updated. * Fix: Errors on logged-out users. * Add function to nuke the chat state. * Update DB. * Add a dedicated deployable docker image. * Fix: init_build.sh execute bit not set. * Whoops, screwed up the abort() call. * Relax chat rate limiter. * Remove a somewhat silly comment. * Remove an unnecessary g.db.add(). --------- Co-authored-by: TLSM <duolsm@outlook.com>
49 lines
No EOL
1.1 KiB
YAML
49 lines
No EOL
1.1 KiB
YAML
version: '2.3'
|
|
|
|
services:
|
|
site:
|
|
build:
|
|
context: .
|
|
target: dev
|
|
volumes:
|
|
- "./:/service"
|
|
env_file: bootstrap/site_env
|
|
environment:
|
|
- DATABASE_URL=postgresql://postgres@postgres:5432
|
|
- REDIS_URL=redis://redis
|
|
- ENFORCE_PRODUCTION=False
|
|
links:
|
|
- "redis"
|
|
- "postgres"
|
|
depends_on:
|
|
- redis
|
|
- postgres
|
|
|
|
redis:
|
|
image: redis
|
|
ports:
|
|
- "6379:6379"
|
|
|
|
postgres:
|
|
image: postgres:12.14
|
|
# command: ["postgres", "-c", "log_statement=all"]
|
|
# uncomment this if u wanna output all SQL queries to the console
|
|
volumes:
|
|
- "./bootstrap/original-schema.sql:/docker-entrypoint-initdb.d/00-schema.sql"
|
|
- "./bootstrap/original-seed-db.sql:/docker-entrypoint-initdb.d/10-seed-db.sql"
|
|
# uncomment this if you want to explicitly set a DB
|
|
#- "./postgres_db:/var/lib/postgresql/data"
|
|
environment:
|
|
- POSTGRES_HOST_AUTH_METHOD=trust
|
|
ports:
|
|
- "5432:5432"
|
|
|
|
nginx:
|
|
image: nginx:latest
|
|
ports:
|
|
- "80:80"
|
|
volumes:
|
|
- ./bootstrap/nginx_dev.conf:/etc/nginx/conf.d/default.conf
|
|
depends_on:
|
|
- site
|
|
|