From 94bf371d83f0f58e66032f534d2d2bf58a0c7f54 Mon Sep 17 00:00:00 2001 From: odkhang Date: Tue, 9 Jul 2024 13:19:13 +0700 Subject: [PATCH 1/2] Update docker-compose file for run services (#145) * update docker-compose file for run services * add docker-compose for deployment --- docker-compose.yml | 1 - prod/docker-compose.yml | 65 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 65 insertions(+), 1 deletion(-) create mode 100644 prod/docker-compose.yml diff --git a/docker-compose.yml b/docker-compose.yml index 66e278ad..937a2f6b 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -77,4 +77,3 @@ networks: ipam: config: - subnet: 172.177.0.0/16 - diff --git a/prod/docker-compose.yml b/prod/docker-compose.yml new file mode 100644 index 00000000..fcc57a41 --- /dev/null +++ b/prod/docker-compose.yml @@ -0,0 +1,65 @@ +version: '3.4' + +services: + venueless: + image: eventyay/eventyay-video:development + container_name: venueless + ports: + - "8375:80" + environment: + - DJANGO_SETTINGS_MODULE=venueless.settings + - LC_ALL=C.UTF-8 + - IPYTHONDIR=/data/.ipython + - VENUELESS_COMMIT_SHA=${COMMIT} + - VENUELESS_DB_TYPE=postgresql + - VENUELESS_DB_NAME=eventyay_db + - VENUELESS_DB_USER=postgres_db_user_changeme + - VENUELESS_DB_PASS=postgres_db_pwd_changeme + - VENUELESS_DB_HOST=venueless-db + - VENUELESS_REDIS_URLS=redis://venueless-redis:6379/0,redis://venueless-redis1:6379/0 + - VENUELESS_DATA_DIR=/data + - VENUELESS_MEDIA_URL=http://localhost:8375/media/ + - VENUELESS_REDIS_USE_PUBSUB=true + depends_on: + - venueless-db + - venueless-redis + - venueless-redis1 + volumes: + - /etc/venueless:/etc/venueless + - /data:/data + entrypoint: ["/usr/local/bin/venueless"] + command: ["all"] + + venueless-webapp: + image: eventyay/eventyay-video:development + container_name: venueless-webapp + ports: + - "8002:8880" + environment: + - NODE_OPTIONS=--openssl-legacy-provider + entrypoint: [""] + command: ["npm", "start", "--", "--host", "0.0.0.0"] + working_dir: /venueless/webapp + + venueless-redis: + image: redis:latest + container_name: venueless-redis + + venueless-redis1: + image: redis:latest + container_name: venueless-redis1 + + venueless-db: + image: postgres:15 + container_name: venueless-db + volumes: + - postgres_data:/var/lib/postgresql/data/ + environment: + - POSTGRES_INITDB_ARGS=--auth-host=md5 + - POSTGRES_HOST_AUTH_METHOD=md5 + - POSTGRES_DB=eventyay_db + - POSTGRES_USER=postgres_db_user_changeme + - POSTGRES_PASSWORD=postgres_db_pwd_changeme + +volumes: + postgres_data: From 2eebf4dc4b9c3409980afed43069c1804086d876 Mon Sep 17 00:00:00 2001 From: "Duong (Danny) Luu" <51145179+lcduong@users.noreply.github.com> Date: Wed, 10 Jul 2024 23:22:04 +0700 Subject: [PATCH 2/2] Add visual of how many people are watching in each room (#134) * Add visual numbers of viewer for each room --- server/venueless/core/services/world.py | 6 +++--- server/venueless/live/modules/room.py | 11 ++++------- webapp/src/components/RoomsSidebar.vue | 10 ++++++++-- 3 files changed, 15 insertions(+), 12 deletions(-) diff --git a/server/venueless/core/services/world.py b/server/venueless/core/services/world.py index 974e508b..51b063f9 100644 --- a/server/venueless/core/services/world.py +++ b/server/venueless/core/services/world.py @@ -17,8 +17,7 @@ from venueless.core.models.auth import ShortToken from venueless.core.models.room import ( RoomConfigSerializer, - RoomView, - approximate_view_number, + RoomView ) from venueless.core.permissions import Permission @@ -168,7 +167,8 @@ def get_room_config(room, permissions): } if hasattr(room, "current_roomviews"): - room_config["users"] = approximate_view_number(room.current_roomviews) + # set actual viewer count instead of approximate text + room_config["users"] = room.current_roomviews for module in room.module_config: module_config = copy.deepcopy(module) diff --git a/server/venueless/live/modules/room.py b/server/venueless/live/modules/room.py index 1457e9b0..768ab87c 100644 --- a/server/venueless/live/modules/room.py +++ b/server/venueless/live/modules/room.py @@ -14,7 +14,6 @@ from venueless.core.models.room import ( AnonymousInvite, RoomConfigSerializer, - approximate_view_number, ) from venueless.core.permissions import Permission from venueless.core.services.poll import get_polls, get_voted_polls @@ -184,20 +183,18 @@ async def _leave_room(self, room): async def _update_view_count(self, room, actual_view_count): async with aredis(f"room:approxcount:known:{room.pk}") as redis: - next_value = approximate_view_number(actual_view_count) prev_value = await redis.getset( - f"room:approxcount:known:{room.pk}", next_value + f"room:approxcount:known:{room.pk}", actual_view_count ) - if prev_value: - prev_value = prev_value.decode() - if prev_value != next_value: + if prev_value != actual_view_count: await redis.expire(f"room:approxcount:known:{room.pk}", 900) + # broadcast actual viewer count instead of approximate text await self.consumer.channel_layer.group_send( GROUP_WORLD.format(id=self.consumer.world.pk), { "type": "world.user_count_change", "room": str(room.pk), - "users": next_value, + "users": actual_view_count, }, ) diff --git a/webapp/src/components/RoomsSidebar.vue b/webapp/src/components/RoomsSidebar.vue index 41818a1d..a9ca939c 100644 --- a/webapp/src/components/RoomsSidebar.vue +++ b/webapp/src/components/RoomsSidebar.vue @@ -24,6 +24,10 @@ transition(name="sidebar") template(v-else) .room-icon(aria-hidden="true") .name(v-html="$emojify(stage.room.name)") + .buffer + template(v-if="stage.room.users") + i.mdi.mdi-account-group.icon-viewer + .name(v-html="stage.room.users") .group-title#chats-title(v-if="roomsByType.videoChat.length || roomsByType.textChat.length || hasPermission('world:rooms.create.chat') || hasPermission('world:rooms.create.bbb')") span {{ $t('RoomsSidebar:channels-headline:text') }} .buffer @@ -293,7 +297,7 @@ export default { &.router-link-exact-active, &.active .room-icon::before color: var(--clr-sidebar-text-secondary) - .room-icon + .room-icon, .icon-viewer width: 22px &::before font-family: "Material Design Icons" @@ -303,7 +307,9 @@ export default { margin: 0 auto display: block width: 20px - + .icon-viewer + &::before + line-height: 32px &.starts-with-emoji padding: 0 18px // .room-icon