This release makes self-hosting a two-file affair and ships the nginx config
as a published image, plus a round of fullscreen polish on the watch page.
Host setup is now just two files
Setting up a host no longer requires cloning the repo or building anything.
The nginx routing config is baked into a new published image
(ghcr.io/bukowskaii/discordwatchparty-nginx), so a host only needs:
curl -O https://raw.githubusercontent.com/Bukowskaii/DiscordWatchParty/main/docker-compose.yml
curl -o .env https://raw.githubusercontent.com/Bukowskaii/DiscordWatchParty/main/.env.example
docker compose up -d
- No source checkout, no local build. Both the bot and nginx run from
published GHCR images. - Encryption key generation moved from
npm run generate-key(which
required Node) toopenssl rand -hex 32— no extra toolchain on the host. - HTTPS exposure is now provider-neutral. The docs no longer prescribe
Cloudflare Tunnel; exposing nginx over HTTPS (reverse proxy, tunnel, etc.)
is left to the host.PUBLIC_URLjust needs to be the public https:// URL
that reaches nginx.
Watch page: fullscreen polish
- The fullscreen control bar and cursor auto-hide after the mouse goes
idle, and reappear on any movement (or when a public action fires). - A fullscreen volume slider kept in lockstep with the page slider.
- Action-attribution toasts now show in fullscreen (routed into the
fullscreen layer, which the page-level toast container couldn't reach).
Under the hood
- CI builds and pushes both images (bot + nginx), multi-arch
(amd64/arm64), on each tagged release.
Upgrading an existing host
Re-fetch docker-compose.yml (the nginx service now points at the published
image and the bind-mount is gone), then:
docker compose pull
docker compose up -d
If you previously hand-edited nginx/default.conf on the host, note that the
config now lives in the image — local edits no longer apply.
Full Changelog: v1.1.0...v1.2.0
This release makes self-hosting a two-file affair and ships the nginx config
as a published image, plus a round of fullscreen polish on the watch page.
Setting up a host no longer requires cloning the repo or building anything.
The nginx routing config is baked into a new published image
(ghcr.io/bukowskaii/discordwatchparty-nginx), so a host only needs:
curl -O https://raw.githubusercontent.com/Bukowskaii/DiscordWatchParty/main/docker-compose.yml
curl -o .env https://raw.githubusercontent.com/Bukowskaii/DiscordWatchParty/main/.env.example
docker compose up -d
-
No source checkout, no local build. Both the bot and nginx run from
published GHCR images. -
Encryption key generation moved from
npm run generate-key(which
required Node) toopenssl rand -hex 32— no extra toolchain on the host. -
HTTPS exposure is now provider-neutral. The docs no longer prescribe
Cloudflare Tunnel; exposing nginx over HTTPS (reverse proxy, tunnel, etc.)
is left to the host.PUBLIC_URLjust needs to be the public https:// URL
that reaches nginx. -
The fullscreen control bar and cursor auto-hide after the mouse goes
idle, and reappear on any movement (or when a public action fires). -
A fullscreen volume slider kept in lockstep with the page slider.
-
Action-attribution toasts now show in fullscreen (routed into the
fullscreen layer, which the page-level toast container couldn't reach). -
CI builds and pushes both images (bot + nginx), multi-arch
(amd64/arm64), on each tagged release.
Re-fetch docker-compose.yml (the nginx service now points at the published
image and the bind-mount is gone), then:
docker compose pull
docker compose up -d
If you previously hand-edited nginx/default.conf on the host, note that the
config now lives in the image — local edits no longer apply.
Full Changelog: v1.1.0...v1.2.0