A collaborative web application (virtual office) presented as a 16-bit RPG video game https://workadventu.re
  • TypeScript 80.7%
  • Svelte 17.1%
  • JavaScript 0.7%
  • HTML 0.6%
  • CSS 0.4%
  • Other 0.3%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
David Négrier 96d43a8417 fix(map-editor): create the area when the drag ends over the toolbar
The map editor toolbar and zoom buttons lie over the canvas. Releasing
the button on them makes Phaser emit POINTER_UP_OUTSIDE, which the area
tool ignored: no area was created and the drawing stayed pending. Finish
the area being drawn on POINTER_UP_OUTSIDE too.

The megaphone E2E tests draw areas up to the right edge of the map, next
to the toolbar; when the camera preview pushes the map down, the release
lands on the zoom buttons and the test fails on the missing property
list. The new spec releases on the toolbar on purpose.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 18:08:55 +02:00
.claude Adding a "translate" skill 2026-01-27 18:09:05 +01:00
.codex/skills/translate Adding the ability to configure the megaphone notification sound 2026-02-13 12:25:03 +01:00
.github fix(e2e): skip Klaxoon tests when the secret is missing, not only on forks 2026-09-30 23:34:44 +02:00
.husky feat(analytics): publish the analytics event catalog as JSON Schema 2026-09-24 15:59:48 +02:00
.vscode Merging develop in refonte-main 2024-11-20 10:44:08 +01:00
back refactor(recording): find every LiveKit webhook's recording by session (#6745) 2026-10-09 18:08:55 +02:00
benchmark Migrate to svelte 5 and bump all libs (#6157) 2026-06-08 15:50:08 +02:00
cd Setting up a map-storage deployed in multi-domain mode in CD 2023-01-26 15:07:22 +01:00
contrib chore: remove DISABLE_NOTIFICATIONS 2026-10-09 15:39:07 +02:00
desktop chore(deps): bump source-map-js in /desktop/local-app 2026-10-08 21:22:41 +02:00
docs fix(chat): label the share button of the user list "Share" 2026-10-09 15:42:27 +02:00
libs fix(background): stop the blur from switching itself off, and say which video stream is missing (#6712) 2026-10-09 12:51:46 +02:00
map-storage chore(deps): bump shell-quote and concurrently 2026-10-08 19:11:18 +02:00
maps Migrate to svelte 5 and bump all libs (#6157) 2026-06-08 15:50:08 +02:00
messages chore(deps): bump shell-quote from 1.10.0 to 1.12.0 in /messages 2026-10-08 21:22:22 +02:00
patches fix: stop GPU tilemap layers bleeding neighbouring tiles along tile edges 2026-08-31 13:13:06 +02:00
play fix(map-editor): create the area when the drag ends over the toolbar 2026-10-09 18:08:55 +02:00
synapse feat(chat): add pending file attachments with preview before send (#5819) 2026-03-06 15:10:37 +01:00
tests fix(map-editor): create the area when the drag ends over the toolbar 2026-10-09 18:08:55 +02:00
uploader ci(uploader): run the S3 tests against RustFS instead of MinIO 2026-09-12 23:44:35 +02:00
.dockerignore Migrating to PNPM (#2900) 2022-12-21 12:58:25 +01:00
.env.template chore: remove DISABLE_NOTIFICATIONS 2026-10-09 15:39:07 +02:00
.gitignore Add Korean (ko-KR) translation (#5367) 2025-11-20 15:01:48 +01:00
AGENTS.md Updating AGENTS.md with Codex advices and Yannis Cursor file 2026-06-25 10:36:59 +02:00
CHANGELOG.md Revert change to CHANGELOG.md 2022-10-17 21:15:12 +02:00
CLAUDE.md Adding CLAUDE.md files 2026-06-26 12:02:22 +02:00
CONTRIBUTING.md Standardize npm lint commands: rename 'fix' to 'lint-fix' and separate lint/lint-fix commands 2025-08-18 17:58:31 +02:00
docker-compose-no-oidc.yaml chore(compose): remove obsolete version declarations 2026-08-20 16:58:58 +02:00
docker-compose.e2e.yml feat(play): optionally serve the front assets from a separate "front" container 2026-10-06 12:49:44 +02:00
docker-compose.livekit.yaml Move a bubble to LiveKit when a member's encoders cannot keep up with several P2P peers (#6535) 2026-09-16 11:36:44 +02:00
docker-compose.no-synapse.yaml chore(compose): remove obsolete version declarations 2026-08-20 16:58:58 +02:00
docker-compose.rustfs.yaml Migrating from Minio to Rustfs (#5702) 2026-02-18 17:04:32 +01:00
docker-compose.single-domain.yaml chore(dev): remove VITE_URL and PiP layout test dev harness 2026-07-10 14:38:39 +02:00
docker-compose.yaml chore: remove DISABLE_NOTIFICATIONS 2026-10-09 15:39:07 +02:00
egress-config.yaml [Recording] wip : livekit recording with egress 2025-04-28 17:01:10 +02:00
livekit-config.yaml Fixing the flicker when coming back to a tab 2025-10-03 16:47:19 +02:00
npm-install.sh Revert "Prefer offline install" (#5854) 2026-03-13 15:43:49 +01:00
package-lock.json chore(deps): bump shell-quote and concurrently 2026-10-08 19:11:18 +02:00
package.json fix(ci): make patch-package resilient in scoped workspace installs 2026-07-14 14:20:28 +02:00
README-MAP.png WOrking on UI play 2023-10-08 09:59:06 +02:00
README.md docs: update contributors 2026-09-29 17:39:11 +02:00
SECURITY.md Create SECURITY.md 2021-06-23 15:26:17 +02:00
UPGRADE.md Make MediaPipe Tasks Vision the only virtual background engine, drop video backgrounds 2026-09-17 13:21:59 +02:00
Vagrantfile.template Update vagrant template 2020-12-16 16:39:34 +01:00
wait-proto.sh Implement Healthchecks on Docker Compose Files (#3206) 2023-04-27 21:53:52 +02:00

Discord Awesome

WorkAdventure office image

WorkAdventure

WorkAdventure is a platform that allows you to design fully customizable collaborative virtual worlds (metaverse).

With your own avatar, you can interact spontaneously with your colleagues, clients, partners (using a video-chat system, triggered when you approach someone). Imagine all types of immersive experiences (recruitments, onboarding, trainings, digital workplace, internal/external events) on desktop, mobile or tablet.

The little plus? The platform is GDPR and open source!

See more features for your virtual office!

Pricing for our SaaS version!

Workadventure live demo example Workadventure Website

Support our team!

Discord Logo X Social Logo LinkedIn Logo

Stats repo

Contributors

Thanks to everyone who contributes to WorkAdventure!

moufmouf gparant Waclaw-I Kharhamel nolway matthintosh Maison-hub alexarts74 angerenage cesar-cardinale HugoAverty lukashass jadekeina Lurkars dependabot[bot] HimeShaman npeguin Powopaf pizkaz jonnytest1 tabascoeye anbraten ValdoTR Copilot taksan EvaVillarroya Arata1202 albanbruder klauserber Informatic Lithimlin mktn87 MaximilianoVeiga nguyenk bestian RaimeXLP fcecagno ercanucan psy mvanhorn ZacharyJia fvztdk 0xr2po ThomasPerez91 Pix3lqu4ntum MisterErwin klinshy joberthel fetsorn LindezaGrey Eyramds wpramio Palid beingeek mo8it Harikesh04 cbluoss Moini restray oliverlorenz ozraru x0rp01s0n lbehm malteriechmann Wikinaut kaeff piitaya lryjnks niklasarnitz DexAsHisH guysoft matzegebbe tbnobody felixilgatto izeau spiccinini bufferoverflow campey dsavina emmanuel-ferdman Floupp github-actions[bot] gscariott JH220 kidager lotfiidir mpauly-exnaton rlespinasse s00500 sharkwouter swiesend ttefke Amirault BAWES davidprzzz dmaechler kaelsky Mewp shug0 souzaramon Zilliq11 heyjuvi

Community resources

  1. Want to build your own map, check out our map building documentation
  2. Check out resources developed by the WorkAdventure community at awesome-workadventure

Setting up a production environment

We support 2 ways to set up a production environment:

  • using Docker Compose
  • or using a Helm chart for Kubernetes

Please check the Setting up a production environment guide for more information.

Note

WorkAdventure also provides a hosted version of the application. Using the hosted version is the easiest way to get started and helps us to keep the project alive.

Setting up a development environment

Note

These installation instructions are for local development only. They will not work on remote servers as local environments do not have HTTPS certificates.

Install Docker and clone this repository.

Warning

If you are using Windows, make sure the End-Of-Line character is not modified by the cloning process by setting the core.autocrlf setting to false: git config --global core.autocrlf false

Run:

cp .env.template .env
docker-compose up

The environment will start with the OIDC mock server enabled by default.

You should now be able to browse to http://play.workadventure.localhost/ and see the application. You can view the Traefik dashboard at http://traefik.workadventure.localhost

(Test user is "User1" and password is "pwd")

If you want to disable the OIDC mock server (for anonymous access), you can run:

$ docker-compose -f docker-compose.yaml -f docker-compose-no-oidc.yaml up

Note: on some OSes, you will need to add this line to your /etc/hosts file:

/etc/hosts

127.0.0.1 oidc.workadventure.localhost redis.workadventure.localhost play.workadventure.localhost traefik.workadventure.localhost matrix.workadventure.localhost extra.workadventure.localhost icon.workadventure.localhost map-storage.workadventure.localhost uploader.workadventure.localhost maps.workadventure.localhost api.workadventure.localhost front.workadventure.localhost

Troubleshooting

See our troubleshooting guide.