From 01ce3ec99ee175c2155c7ef5d9060eaf822cda84 Mon Sep 17 00:00:00 2001 From: MacBook Date: Sat, 16 May 2026 13:08:53 +0200 Subject: [PATCH] chore: migrate domains from shik3i.net to koalastuff.net --- Caddyfile.example | 4 ++-- PRIVACY.md | 4 ++-- docs/HOW_IT_WORKS.md | 8 ++++---- extension/bridge.js | 2 +- extension/manifest.base.json | 2 +- extension/popup.js | 2 +- scripts/build-extension.js | 2 +- server/index.js | 2 +- shared/blacklist.js | 2 +- shared/constants.js | 4 ++-- website/README.md | 4 ++-- website/index.html | 2 +- website/robots.txt | 2 +- website/sitemap.xml | 6 +++--- 14 files changed, 23 insertions(+), 23 deletions(-) diff --git a/Caddyfile.example b/Caddyfile.example index 21e316f..ede78ca 100644 --- a/Caddyfile.example +++ b/Caddyfile.example @@ -2,7 +2,7 @@ # Replace domains and paths with your actual setup. # 1. Marketing Website & Invitation Bridge -koalasync.shik3i.net { +sync.koalastuff.net { root * /var/www/koalasync/website file_server encode zstd gzip @@ -20,7 +20,7 @@ koalasync.shik3i.net { } # 2. Relay Server (Socket.IO / WebSocket) -sync.shik3i.net { +syncserver.koalastuff.net { reverse_proxy localhost:3000 { # Ensure WebSocket support is explicitly handled if needed # (Caddy usually handles this automatically) diff --git a/PRIVACY.md b/PRIVACY.md index 5144308..76756d9 100644 --- a/PRIVACY.md +++ b/PRIVACY.md @@ -25,7 +25,7 @@ To prevent abuse and brute-force attacks, the following data is processed: - **Brute-Force Protection**: If multiple failed password attempts are detected, the server stores the `IP address` and `Room ID` in a temporary RAM-based lockout list for a maximum of 15 minutes. - **Connection Rate Limiting**: IP addresses are tracked for 60 seconds to prevent connection-flooding (DoS) attacks. - **Event Rate Limiting**: Per-socket event counters are tracked for 10-second windows to prevent event-spamming. These are keyed by ephemeral socket IDs and cleaned up periodically. -- **Console Logging**: The official relay server (`sync.shik3i.net`) outputs connection events (including IP addresses) to the server console for real-time monitoring. These logs are ephemeral and are not archived, sold, or linked to any persistent user identity. +- **Console Logging**: The official relay server (`syncserver.koalastuff.net`) outputs connection events (including IP addresses) to the server console for real-time monitoring. These logs are ephemeral and are not archived, sold, or linked to any persistent user identity. ## 3. Extension Permissions The browser extension requires the following permissions: @@ -43,7 +43,7 @@ KoalaSync is completely self-contained: - **No External Fonts**: We use system font stacks to prevent tracking via font services. ## 5. Self-Hosted Instances -This privacy policy applies to the **official KoalaSync relay server** at `sync.shik3i.net`. If you choose to self-host a relay server using our open-source Docker image, the data handling practices of that instance are the responsibility of the server operator. +This privacy policy applies to the **official KoalaSync relay server** at `syncserver.koalastuff.net`. If you choose to self-host a relay server using our open-source Docker image, the data handling practices of that instance are the responsibility of the server operator. --- diff --git a/docs/HOW_IT_WORKS.md b/docs/HOW_IT_WORKS.md index b8c5fbf..400e3b0 100644 --- a/docs/HOW_IT_WORKS.md +++ b/docs/HOW_IT_WORKS.md @@ -18,7 +18,7 @@ This guide walks through the complete user flow of KoalaSync, from creating a ro When you open the extension popup, the background service worker connects to the relay server: -1. **WebSocket Handshake**: `background.js` opens a WebSocket to `wss://sync.shik3i.net/socket.io/?EIO=4&transport=websocket`. +1. **WebSocket Handshake**: `background.js` opens a WebSocket to `wss://syncserver.koalastuff.net/socket.io/?EIO=4&transport=websocket`. 2. **Security Checks** (server-side): - The server checks the client's **IP rate limit** (max 10 connections per 60 seconds). - The server validates the **authentication token** (hardcoded in `shared/constants.js`) to verify this is a legitimate KoalaSync client. @@ -65,7 +65,7 @@ Click the **📋 Copy** button next to the invite link: 1. The extension constructs a URL in this format: ``` - https://koalasync.shik3i.net/join.html#join:::: + https://sync.koalastuff.net/join.html#join:::: ``` - `serverFlag`: `0` for official server, `1` for custom server. - `encodedServerUrl`: Only populated if using a custom server. @@ -80,9 +80,9 @@ Click the **📋 Copy** button next to the invite link: When your friend opens the link in their browser: -1. **`join.html` loads** on `koalasync.shik3i.net`. The page displays "INVITATION DETECTED" with the Room ID. +1. **`join.html` loads** on `sync.koalastuff.net`. The page displays "INVITATION DETECTED" with the Room ID. -2. **Extension detection**: The page checks for `document.documentElement.dataset.koalasyncInstalled`, which is set by `bridge.js` (a content script injected only on `koalasync.shik3i.net`). +2. **Extension detection**: The page checks for `document.documentElement.dataset.koalasyncInstalled`, which is set by `bridge.js` (a content script injected only on `sync.koalastuff.net`). 3. **If the extension IS installed**: - The page shows "Joining room automatically..." diff --git a/extension/bridge.js b/extension/bridge.js index 309eb6d..e0491f3 100644 --- a/extension/bridge.js +++ b/extension/bridge.js @@ -1,6 +1,6 @@ /** * KoalaSync Bridge Script - * Injected into koalasync.shik3i.net to facilitate communication between + * Injected into sync.koalastuff.net to facilitate communication between * the landing page and the extension. */ diff --git a/extension/manifest.base.json b/extension/manifest.base.json index d4494aa..e9748e1 100644 --- a/extension/manifest.base.json +++ b/extension/manifest.base.json @@ -24,7 +24,7 @@ }, "content_scripts": [ { - "matches": ["https://koalasync.shik3i.net/*"], + "matches": ["https://sync.koalastuff.net/*"], "js": ["bridge.js"], "run_at": "document_start" } diff --git a/extension/popup.js b/extension/popup.js index 8f09cbc..26a691b 100644 --- a/extension/popup.js +++ b/extension/popup.js @@ -124,7 +124,7 @@ function updateUI(roomId, password, useCustomServer = false, serverUrl = '') { if (elements.activeRoomId) elements.activeRoomId.textContent = roomId; if (elements.activeServer) { elements.activeServer.textContent = useCustomServer ? (serverUrl || 'Custom Server') : 'Official Server'; - elements.activeServer.title = useCustomServer ? (serverUrl || '') : 'sync.shik3i.net'; + elements.activeServer.title = useCustomServer ? (serverUrl || '') : 'syncserver.koalastuff.net'; } } else { updatePeerList([]); diff --git a/scripts/build-extension.js b/scripts/build-extension.js index 6b439e5..593872b 100644 --- a/scripts/build-extension.js +++ b/scripts/build-extension.js @@ -161,7 +161,7 @@ async function run() { }; manifest.browser_specific_settings = { gecko: { - id: "koalasync@shik3i.net" + id: "koalasync@koalastuff.net" } }; return manifest; diff --git a/server/index.js b/server/index.js index 555c969..1a5d957 100644 --- a/server/index.js +++ b/server/index.js @@ -23,7 +23,7 @@ const httpServer = createServer(app); // Socket.IO setup with security constraints const io = new Server(httpServer, { cors: { - origin: ["https://koalasync.shik3i.net"], + origin: ["https://sync.koalastuff.net"], methods: ["GET", "POST"] }, maxHttpBufferSize: 1024, // 1KB max per message diff --git a/shared/blacklist.js b/shared/blacklist.js index 852e90d..88fec13 100644 --- a/shared/blacklist.js +++ b/shared/blacklist.js @@ -78,7 +78,7 @@ export const BLACKLIST_DOMAINS = [ 'myanimelist.net', // Development & Utilities - 'timer.shik3i.net', + 'timer.koalastuff.net', 'localhost', 'zoom.us', 'teams.microsoft.com', diff --git a/shared/constants.js b/shared/constants.js index 565d699..3714cca 100644 --- a/shared/constants.js +++ b/shared/constants.js @@ -9,8 +9,8 @@ export const PROTOCOL_VERSION = "1.0.0"; export const APP_VERSION = "1.3.1"; -export const OFFICIAL_SERVER_URL = 'wss://sync.shik3i.net'; -export const OFFICIAL_LANDING_PAGE_URL = 'https://koalasync.shik3i.net'; +export const OFFICIAL_SERVER_URL = 'wss://syncserver.koalastuff.net'; +export const OFFICIAL_LANDING_PAGE_URL = 'https://sync.koalastuff.net'; export const OFFICIAL_SERVER_TOKEN = '62170b705234c4f4807a9b22420bb93cf1a2aacfa4c5d3b47804482babb8eb50'; export const EVENTS = { diff --git a/website/README.md b/website/README.md index 9cc5c8c..f682a9f 100644 --- a/website/README.md +++ b/website/README.md @@ -8,7 +8,7 @@ This directory contains the KoalaSync website. It serves a dual purpose: it is b Provides a premium, bilingual (EN/DE) overview of features, setup instructions, and direct links to the extension stores. ### 2. The Invitation Bridge (`join.html`) -The website handles incoming invitation links. When a user clicks a link like `koalasync.shik3i.net/join.html#join:roomID:pass`, the website: +The website handles incoming invitation links. When a user clicks a link like `sync.koalastuff.net/join.html#join:roomID:pass`, the website: - **Detects the Extension**: Verifies if KoalaSync is installed via the `bridge.js` content script. - **Privacy-First Handshake**: The room credentials (ID/Password) are stored in the **URL Hash (#)**. This ensures the sensitive credentials **never reach the web server** and are processed entirely within the user's browser. - **Auto-Join**: If the extension is detected, it automatically triggers the join flow without requiring user input. @@ -29,7 +29,7 @@ Caddy is the recommended web server. It provides automatic HTTPS and high-perfor For a more comprehensive configuration that includes the Relay Server reverse proxy, see the root [Caddyfile.example](../Caddyfile.example). ```caddy -koalasync.shik3i.net { +sync.koalastuff.net { root * /var/www/koalasync/website file_server encode zstd gzip diff --git a/website/index.html b/website/index.html index 3b10410..8777af9 100644 --- a/website/index.html +++ b/website/index.html @@ -10,7 +10,7 @@ - +