Host a server.
Make it your own.

Your maps, your rules, your regulars. Run a Counter-Strike server on your own machine and let players join straight from their browser.

No sign-in needed to explore. Start setup when you’re ready.

The setup, in 48 seconds. Play to watch.Silent walkthrough · Demo account

Before you start

You provide the host. CSJS provides the setup and management tools.

A Docker host
A machine that can run linux/amd64 containers, with Docker installed and terminal access. Keep it running while people play.
Your game files
Your own Half-Life and Counter-Strike installation, including the complete valve/ and cstrike/ folders on that machine.
A public connection
A reachable IP or domain and access to your firewall. The standard setup uses TCP 3333 for play and TCP 80 for automatic HTTPS certificates.

Create your server

Choose Start setup, then sign in or create an account. Give your server a name and select Create server. The dashboard generates a private server token and a Docker command for this server.

Your server stays out of the public server browser until its connection checks pass and you save the connection. You can leave setup and continue later from My servers.

Add a server form with the example name Friday night Counter-Strike and a Create server button.
Actual setup form with an illustrative server name. Select the image to enlarge.

Run it with Docker

On your Docker host, find the folder containing both valve/ and cstrike/. In the setup form, enter its absolute path under Path to game on Docker host. Copy the complete generated command and run it in that machine’s terminal.

Example directory on your Docker host

/srv/half-life/
  valve/
    gfx.wad
  cstrike/
    maps/de_dust2.bsp

Copy the complete game folders, not just the two files shown. Docker downloads csjs/server:latest when needed and mounts your game files read-only. A dedicated Docker volume keeps the server installation and certificate state.

Keep Automatically set up TLS enabled for the standard public setup. Allow these inbound ports in your host firewall and, when needed, forward them through your router:

Ports for the standard public Docker setup
Public portUsed for
3333 / TCPBrowser play and dashboard access to your server. Use your chosen host port if you changed it.
80 / TCPAutomatic certificate issuance and renewal. The generated command maps it to container port 8081.

Keep the command private: it includes your server token. Use the command generated for your server, rather than the shortened example in the video.

Check the connection

Once the container is running, return to Connect your server. Enter your public IP or hostname without a protocol or port, then enter the exposed port separately. The default is 3333.

  1. HTTPS certificate

    The connection is encrypted and the certificate matches your address.

  2. Game server

    Counter-Strike responds over its WebSocket connection.

  3. Server agent

    The CSJS management agent is reachable and compatible.

Select Check connection. Resolve any reported failures, then select Save connection when the checks pass. Production hosting requires HTTPS/WSS so browser players can connect securely.

Make it yours. Bring your players.

Open the server from My servers to see its current map and players, change maps, edit configuration, restart the game, and apply available updates. Start with your preferred map and rules.

Example server dashboard showing online status, the Dust 2 map, player counts, and tabs for maps, rules, configuration, updates, and setup.
A local example server in the management dashboard. Your server uses its own name and public address.

Select Open game to join, then share that page’s link. Players can also find your connected server in the public server browser. They don’t need an account to play.

Something not connecting?

The HTTPS certificate check fails

Use a public IP or hostname that reaches your Docker host. With automatic TLS, public TCP port 80 must reach the container’s challenge listener, and your selected game port must also be open. Check your cloud firewall and router forwarding. A private IP or localhost cannot receive a public IP certificate. The first certificate request can take time; inspect the container logs before retrying.

The game server or agent cannot be reached

Check that the container is running and that the port you entered matches the host port in your Docker command. Supply the complete valve and cstrike game folders, including valve/gfx.wad and cstrike/maps/de_dust2.bsp. The container needs its server token and access to the CSJS master to download releases and load saved configuration before starting the game.

I already have a domain and reverse proxy

You can terminate HTTPS at your existing proxy. Turn off automatic TLS in the setup form, point the proxy to the container’s HTTP port 3333, and enable WebSocket forwarding. Enter the public domain and its HTTPS port in the dashboard. Browser players still need a trusted HTTPS/WSS endpoint.

Can I host from home?

Yes, if your machine can run the Docker image and has a publicly reachable address. Forward the required TCP ports through your router and allow them in your firewall. If your ISP uses carrier-grade NAT, inbound connections may not reach you; use a host with a public address or arrange public connectivity with your provider.

Do players need accounts or game downloads?

Players can join from the CSJS server browser or your game link without signing in. Hosting requires an account so the dashboard can manage your server. You provide your own Half-Life and Counter-Strike game files on the Docker host; they are not included in the server image.

Need the deeper setup details? Read the server documentation

Ready for your first match?

Create your server, get its Docker command, and follow the checks. Your dashboard keeps the setup ready if you need to come back.

Start setup