Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions .huly.nginx
Original file line number Diff line number Diff line change
Expand Up @@ -118,6 +118,19 @@ server {
proxy_pass http://stats:4900/;
}

#location /_pulse {
# proxy_set_header Host $host;
# proxy_set_header X-Real-IP $remote_addr;
# proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# proxy_set_header X-Forwarded-Proto $scheme;
#
# proxy_http_version 1.1;
# proxy_set_header Upgrade $http_upgrade;
# proxy_set_header Connection "upgrade";
# rewrite ^/_pulse(.*)$ /ws$1 break;
# proxy_pass http://hulypulse:8099/;
#}

#location /_telegram {
# proxy_set_header Host $host;
# proxy_set_header X-Real-IP $remote_addr;
Expand Down
47 changes: 47 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -438,6 +438,53 @@ self-hosted Huly, perform the following steps:

Note that the `LIVEKIT_HOST` should include the protocol (`wss://` by default if using livekit cloud).

## HulyPulse (Push / real-time updates)

HulyPulse provides WebSocket push notifications and real-time updates. It requires Redis.
It will allow the following functions to work:
- The knock and invite features in video calls
- Information about who is viewing/editing objects right now
- Shows that someone is typing a message in a chat.


1. Enable Redis and HulyPulse in `compose.yml`:
- Uncomment the `redis` service.
- Uncomment the `hulypulse` service.

2. Configure the `transactor` service:

```yaml
transactor:
...
environment:
- PULSE_URL=http://hulypulse:8099
...
```

3. Configure the `front` service:

```yaml
front:
...
environment:
- PULSE_URL=http${SECURE:+s}://${HOST_ADDRESS}/_pulse
...
```

4. Uncomment the `/_pulse` location in `.huly.nginx` and reload nginx:

```bash
sudo nginx -s reload
```

5. Recreate and start the stack from the `huly-selfhost` folder:

```bash
docker compose up -d --force-recreate
```

Redis is configured with a 512 MB memory limit by default. For production you may want to set a Redis password and use `HULY_REDIS_URLS=redis://:YOUR_PASSWORD@redis:6379` in the `hulypulse` environment. The image tag uses `HULY_PULSE_VERSION` if set (default `0.1.29`).

## Print Service

1. Add `print` container to the docker-compose.yaml
Expand Down
31 changes: 31 additions & 0 deletions compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,37 @@ services:
# - huly_net
# # Required by aibot and calendar services

# redis:
# image: redis:7-alpine
# container_name: redis
# command: redis-server --maxmemory 512mb --maxmemory-policy allkeys-lru
# restart: unless-stopped
# networks:
# - huly_net
# # Required by HulyPulse (push notifications / real-time updates)

# hulypulse:
# image: hardcoreeng/service_hulypulse:${HULY_PULSE_VERSION:-0.1.29}
# container_name: hulypulse
# ports:
# - 8099:8099
# environment:
# - HULY_BIND_PORT=8099
# - HULY_LOG=info
# - HULY_TOKEN_SECRET=${SECRET}
# - HULY_HEARTBEAT_TIMEOUT=60
# - HULY_REDIS_MODE=direct
# - HULY_REDIS_URLS=redis://redis:6379
# deploy:
# resources:
# limits:
# memory: 512M
# depends_on:
# - redis
# restart: unless-stopped
# networks:
# - huly_net

rekoni:
image: hardcoreeng/rekoni-service:${HULY_VERSION}
environment:
Expand Down