Voux · Home

Build your own counter.

A simple, self-hosted view counter for blogs and websites. Easy to use, private, and fully customizable.

Label Optional
Leave empty if you only want the number.
Starting value
Counting mode
Styling your counter

🎨 · Styling script embeds

Styling your counter with Voux is super simple. All you need to do is wrap your counter script inside an element. We'll use a <span> in this example:

<span class="counter-widget">
  <!---------------------replace this with urs--------------------->
  <script async src="https://your-domain/embed/abc123.js"></script>
</span>

Once that's in place, you can style it however you like using CSS. Here's a simple example that centers the counter on the screen and makes the text black:

.counter-widget {
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  text-align: center;
  color: black;
  font-weight: 600;
  font-size: 3rem;
  font-family: system-ui, sans-serif;
}

And that's it. Your counter is now styled and ready to use. You can change the font, colors, or layout any way you like.


🧩 · Styling SVGs embeds

Voux also provides an SVG embed for cases where you cannot use JavaScript, such as READMEs, Markdown files, or restricted platforms.

<img src="https://your-domain/embed/abc123.svg" alt="Voux counter">

You can also customize the SVG by passing parameters in the URL query string:

<img src="https://your-domain/embed/abc123.svg?bg=F54927&color=ffffff"
alt="Voux counter">

See the documentation for a full list of SVG parameters.

Self-hosting Voux

📦 Manual installation

Running your own copy is easy. First, download Voux and enter the project folder:

1. Clone the project

git clone https://github.com/QuintixLabs/Voux.git
cd Voux

Make sure you are running Node.js 22. If you use fnm. :

fnm install 22
fnm use 22
node -v

2. Install Voux

Use one of these:

npm install                # normal install
npm install --production   # for production installs

3. Create your .env file

cp .env.example .env

Open .env and set your settings. This is where you configure your admin login, site URL, port, and other options. You must set ADMIN_USERNAME + ADMIN_PASSWORD before running the server.


If you run Voux on a public domain, set PUBLIC_BASE_URL to your full URL (for example, https://your-domain.com)

If Voux is behind a reverse proxy or tunnel (for example Nginx, Caddy, Cloudflare Tunnel, etc.), also set: TRUST_PROXY=1

4. Start Voux

Development (auto-reload) :

npm run dev

Production :

npm start

By default, both commands run at: http://localhost:8787 You can change this by setting the PORT value in .env.

Need more details or advanced setup options? Read the documentation.


🐋 Docker

Run Voux via Docker and pull the prebuilt image from GHCR:

docker run -d \
  --name voux \
  -p 8787:8787 \
  -e ADMIN_USERNAME=admin \
  -e ADMIN_PASSWORD=change-this-password \
  # -e PUBLIC_BASE_URL=https://your-domain.com \
  # -e TRUST_PROXY=1 \
  -v $(pwd)/data:/app/data \
  ghcr.io/quintixlabs/voux/voux:latest

Or use our docker-compose.yml, which is simpler. Just run:

docker compose up -d

You must set ADMIN_USERNAME and ADMIN_PASSWORD to your own values. Do not leave the example credentials!


If you run Voux on a public domain, set PUBLIC_BASE_URL to your full URL (for example, https://your-domain.com)

If Voux is behind a reverse proxy or tunnel (for example Nginx, Caddy, Cloudflare Tunnel, etc.), also set: TRUST_PROXY=1

Need more details or advanced setup options? Read the documentation.