| Goal | What to edit | |------|--------------| | – custom logo, colors, title | Edit /client/src/assets/ or CSS/SCSS files. | | Feature toggle – disable certain UI elements | Modify React/Vue components. | | Self‑hosting – change URLs, enable HTTPS | Update .env variables ( SIGNALING_URL , STUN_TURN_SERVERS ). | | Performance – switch to a compiled front‑end | Run npm run build and serve static files via Nginx. | | Add your own analytics | Insert your tracking snippet in index.html . | Best practice: Keep a separate Git branch for each major change. git checkout -b my‑branding # edit files … git add . git commit -m "Add custom logo & colour scheme" 6️⃣ Build / Compile the Project 6.1 Front‑end (SPA) Build # For React / Vue / Angular npm run build # produces a /dist or /build folder The output is a set of static files (HTML, CSS, JS) ready to be served. 6.2 Back‑end Packaging | Language | Typical “re‑pack” method | |----------|--------------------------| | Node.js | Create a Docker image or a tarball of the node_modules + source. | | Python | Use pip wheel to create a wheel, or freeze dependencies in a Docker image. | | Go | go build -o chatroulette-server ./cmd/server (single binary). | Example: Docker‑based Re‑pack # Dockerfile (root of the project)
# Fork → clone your fork (URL will be git@github.com:your‑username/Chatroulette-Clone.git) git clone git@github.com:your-username/Chatroulette-Clone.git Typical layout:
| Target | Recommended packaging | |--------|-----------------------| | | Docker image + docker‑compose.yml | | Linux server (no Docker) | Systemd service + pre‑compiled binary (Go) or virtualenv (Python) | | Windows desktop | Electron wrapper (if UI is web‑based) or packaged with pkg / nexe for Node.js | | Archive for manual install | .tar.gz containing README.md , LICENSE , compiled binaries, and a sample .env | Example: Minimal docker‑compose.yml version: "3.9" services: chatroulette: image: mychatroulette:latest restart: unless-stopped ports: - "80:3000" env_file: .env # place your custom env vars here Run: chatroulette+github+repack
# Clone the repo (replace URL with the one you chose) git clone https://github.com/deniskrumko/Chatroulette-Clone.git cd Chatroulette-Clone If you plan to contribute back, fork the repo on GitHub first and then clone your fork.
docker build -t mychatroulette:latest . Now you have a that you can push to a registry (Docker Hub, GHCR, your private registry) – provided the license permits redistribution of binaries (e.g., MIT, Apache, GPL). For GPL‑licensed code, you must also distribute the source or make it available. 7️⃣ Package for Distribution Depending on your target audience, choose one of the following: | Goal | What to edit | |------|--------------|
# ---- Runtime stage ---- FROM node:20-alpine WORKDIR /app # Copy only what we need for runtime COPY --from=build /app/build ./public COPY server/ ./server COPY package*.json ./ RUN npm ci --production # install only prod deps EXPOSE 3000 CMD ["node", "server/index.js"] Build & tag:
# Python (FastAPI) uvicorn app.main:app --reload | | Performance – switch to a compiled
Good luck, and enjoy building your own random‑video‑chat
|
|