Skip to content
induwara.lk
Premium
induwara.lkSelf-hosting · Protocols

Open OSCAR Server Setup Checker & Config Generator

Pick your AIM or ICQ client and your host machine. This page tells you whether Open OSCAR Server supports it, which port that client must reach, which features work, and gives you the settings.env block, firewall rules and first-user command — plus, for Sri Lankan hosts, a CGNAT verdict and the CEB running cost.

By Induwara AshinsanaUpdated Sep 23, 2026
Check your setupclient · ports · config
Upstream 7bdd674 · 2026-09-23
Start from

Pick the version family, not the exact build. The version decides the protocol dialect and therefore the port.

Decides which quickstart applies and which firewall syntax the rules below use.

This is what OSCAR_ADVERTISED_LISTENERS_PLAIN has to publish — the single most common mistake in this config.

Used only for the reachability verdict. Nothing is sent anywhere.

Run `ip addr` on Linux or `ipconfig` on Windows. Usually starts 192.168. or 10.

Whole number, 1–500. Each one needs a Management API call unless you leave auth off.

Running cost (Sri Lanka)

Whole-system draw while idling, not the power supply's nameplate rating.

From your CEB bill. The tariff reprices every unit when you cross a slab, so your starting point changes the answer.

Supported

AIM v4.x – v5.x (Windows) speaks OSCAR over TCP

The binary TLV protocol AOL used for AIM and, from ICQ 2000b onward, for ICQ. Served by OSCAR_LISTENERS.

Point the client at
192.168.1.10:5190
Transport
TCP 5190
Upstream guide
Opens the project's own setup guide

Where that goes in AIM v4.x – v5.x (Windows)

Sign-on screen → Setup → Sign On/Off → Connection → Host and Port

Before you start

  • The widest feature coverage of any client on this list — buddy icons included.
  • On Windows 10/11 these installers usually need Windows XP compatibility mode.
  • DISABLE_AUTH is set to false in the block below, so each of your 25 users needs one Management API call before they can sign in.

Reachability — No ISP involvement

Everything stays inside your own network. No port forward, no public address, and no dependency on the internet being up.

Create the first account

curl -d '{"screen_name":"first-user", "password":"change-this-password"}' http://localhost:8080/user

Run this on the host, after the server is up. The Management API listens on 127.0.0.1:8080 and is not reachable from anywhere else.

OSCAR was designed in the 1990s and reimplementing it faithfully does not modernise it. Run this as a protocol lab or a closed-network chat system. Do not put anything private on it.

Sources cited: client support, ports and environment variables read from mk6i/open-oscar-server at commit 7bdd674 (README.md, config/settings.env, docs/CLIENT*.md, docs/TOC.md, docs/RENDEZVOUS.md). Electricity rates from PUCSL — Decision on Electricity Tariffs, May 2026. Nothing you type here leaves your browser.

How it works

Open OSCAR Server does not speak one protocol. It speaks four, and a client that arrives on the wrong one gets a connection refused rather than a useful error. The checker resolves that in five steps, all read from the project's own files at commit 7bdd674.

  1. Client to dialect.The README's supported-client list maps each family to a dialect. AIM v1.x–v7.x, Pidgin and ICQ 2000b onward speak OSCAR; TiK, gaim and Quick Buddy speak TOC 1.0; vAIM, Miranda ~0.4.0.3 and iEM 1.0.1 speak TOC 2.0. ICQ 98a, 99a and 99b predate OSCAR and use the Mirabilis UDP protocol. AIM 6.2–7.5 are a fifth case: OSCAR wrapped in TLS, with Kerberos authentication.
  2. Dialect to port. From config/settings.env: OSCAR listens on TCP 5190 via OSCAR_LISTENERS, TOC on TCP 9898 via TOC_LISTENERS, legacy ICQ on UDP 4000 via ICQ_LEGACY_UDP_LISTENER — and only when ICQ_LEGACY_ENABLED=trueand the client's protocol version appears in ICQ_LEGACY_VERSIONS (valid values 1 to 5, with 1 experimental). AIM 6.2–7.5 use 443 instead — a separate TLS setup this generator deliberately does not fake.
  3. Feature matrix.Two README rules are not uniform and have to be encoded rather than assumed. Buddy icons carry the qualifier “(v4.x, v5.x)”, so they are a no for v1.x–v3.x and are not claimed for v6.x/v7.x. File sharing splits three ways: Direct Connect and Get File are LAN only, while Send File works over the internet once the sending client forwards its own transfer port. Where the project does not claim a feature for a family, the table says “not listed” rather than guessing.
  4. Listener strings. OSCAR_LISTENERS is a bind address; OSCAR_ADVERTISED_LISTENERS_PLAIN is what the server publishes to clients. Behind NAT they differ, and that is where most first attempts fail. The generator emits 127.0.0.1 for a same-machine setup, the LAN address for a LAN setup, and for a port-forwarded setup the documented dual form — WAN://host:5190,LAN://ip:5191 — since names and ports must both be unique and every advertised listener needs a matching bind listener. It also flips DISABLE_AUTH to false once anything but the host can reach the port: left on, it creates an account for any name that signs in.
  5. Reachability and running cost. A port forward only works if the address on your router is the address the internet sees, so rather than assert what any named operator does, the tool gives a common default plus the self-check that settles it. The cost panel computes energy as watts × 24 × 30.44 ÷ 1000 kWh per month, then prices it marginally: the difference between your household's bill with and without the server. Sri Lanka's domestic tariff is retroactive, so crossing a slab boundary reprices every unit already consumed and multiplying kWh by the sticker rate understates the real cost, sometimes threefold. Rates come from the site's verified tariff module (PUCSL — Decision on Electricity Tariffs, May 2026), and the figure is cross-checked against a second, independently written formula.

Everything runs in your browser: nothing you type is sent anywhere, and the compatibility matrix is a dated snapshot rather than a live query, so the recorded commit tells you exactly what it was read from.

Worked examples

Hostel lab — AIM 5.1 on a Raspberry Pi, LAN only

Client AIM v4.x–v5.x · Linux ARM64 · LAN · 192.168.1.10 · 25 users · 7 W · household at 90 kWh

  1. Dialect: AIM v4.x–v5.x → OSCAR → TCP 5190.
  2. Client field: Setup → Sign On/Off → Connection → Host 192.168.1.10, Port 5190.
  3. Features: buddy icons YES (v4.x/v5.x is the only family claimed for them).
  4. File sharing: Direct Connect and Get File are LAN only — which is exactly this deployment.
  5. Config: OSCAR_LISTENERS=LAN://0.0.0.0:5190
  6. OSCAR_ADVERTISED_LISTENERS_PLAIN=LAN://192.168.1.10:5190
  7. DISABLE_AUTH=false (25 people can reach the port)
  8. Firewall: sudo ufw allow 5190/tcp — port 8080 stays on loopback.
  9. Reachability: no ISP involvement. Nothing to forward.
  10. Energy: 7 × 24 × 30.44 ÷ 1000 = 5.11 kWh/month.
  11. Bill at 90 units: 60×12 + 30×28 + 600 = Rs 2,160 (slab C)
  12. Bill at 95 units: 60×12 + 30×28 + 5×36 + 1,000 = Rs 2,740 (slab D)
  13. Marginal cost: Rs 2,740 − Rs 2,160 = Rs 580/month
  14. Sticker-rate guess: 5.11 × Rs 36 = Rs 184. The slab cliff adds Rs 396.

ICQ 2003b over the internet — Dialog 4G router, old laptop

Client ICQ 2003/4/5 · Windows 10/11 · Internet, port-forwarded · aim.example.lk · 5 users · 25 W · household at 180 kWh

  1. Dialect: ICQ 2003x → OSCAR (not the legacy UDP path) → TCP 5190.
  2. Client field: login screen → Setup → host aim.example.lk, port 5190.
  3. Features: ICQ adds presence statuses and offline messaging.
  4. Config: OSCAR_LISTENERS=WAN://0.0.0.0:5190,LAN://192.168.8.100:5191
  5. OSCAR_ADVERTISED_LISTENERS_PLAIN=WAN://aim.example.lk:5190,LAN://192.168.8.100:5191
  6. ICQ_LEGACY_ENABLED=false — 2003x does not use the legacy path.
  7. Firewall: New-NetFirewallRule ... -Protocol TCP -LocalPort 5190 -Action Allow
  8. Reachability: BLOCKED, most likely. A mobile-broadband router shares one public
  9. address across subscribers, so there is no public port to forward.
  10. Self-check first; then static-IP add-on, outbound tunnel, or VPS relay.
  11. Energy: 25 × 24 × 30.44 ÷ 1000 = 18.26 kWh/month.
  12. Bill at 180 units: 60×32 + 60×40 + 60×50 + 1,500 = Rs 8,820 (slab E)
  13. Bill at 198 units: 60×42 + 60×50 + 60×60 + 18×75 + 2,000 = Rs 12,470 (slab F)
  14. Marginal cost: Rs 3,650/month — against a sticker-rate guess of Rs 1,370.

Edge case — TiK on the wrong port, and a household that just misses the cliff

Client TOC 1.0 (TiK) · Linux x86_64 · LAN · 4 users · 15 W · household at 40 kWh

  1. Dialect: TiK → TOC 1.0 → TCP 9898, NOT 5190.
  2. Pointing a TOC client at the OSCAR port is the most common failed
  3. first attempt, and it fails silently rather than saying why.
  4. Client field: login window → Configure → hostname and port.
  5. Config: TOC_LISTENERS=0.0.0.0:9898 (the TiK guide still names the older
  6. TOC_HOST / TOC_PORT variables; TOC_LISTENERS is the current one).
  7. Features: no buddy icons in TOC; a TOC client can accept an incoming file
  8. transfer (toc_rvous_accept) but has no command to start one.
  9. Energy: 15 × 24 × 30.44 ÷ 1000 = 10.96 kWh/month.
  10. Bill at 40 units: 30×6 + 10×8 + 400 = Rs 660 (slab B)
  11. Bill at 50 units: 30×6 + 20×8 + 400 = Rs 740 (still slab B)
  12. Marginal cost: Rs 80/month — no slab crossed, so no cliff premium at all.
  13. Boundary check: the same 5.11 kWh Pi on a household at 85 units lands on
  14. exactly 90, which is still slab C (Rs 140). One unit higher — 86 —
  15. lands on 91, slab D, and the cliff fires. Off by one, times four.

Port quick reference

Every listener Open OSCAR Server opens, and who has to reach it. Defaults from config/settings.env.

PortProtocolVariableUsed by
5190TCPOSCAR_LISTENERSAIM v1.x–v7.x, Pidgin, ICQ 2000b and later
9898TCPTOC_LISTENERSTiK, gaim, Quick Buddy, vAIM, Miranda, iEM
4000UDPICQ_LEGACY_UDP_LISTENERICQ 98a, 99a, 99b and other pre-OSCAR clients
8080TCPAPI_LISTENERYou, on the host only — creates and deletes accounts
8081TCPWEBAPI_LISTENERSBrowser-based clients calling the web API
443TCP(separate TLS setup)AIM 6.2–7.5, Kerberos over TLS

Source: config/settings.env and docs/TOC.md at commit 7bdd674. Verified 2026-09-23.

Frequently asked questions

Sources & references

The compatibility matrix, ports and environment variables on this page were read from the project's own files at commit 7bdd674 on 2026-09-23. The project is under active development, so re-check against the repository if that commit is no longer on the default branch. Electricity rates are imported from this site's verified tariff module rather than re-entered, so a tariff revision updates every page at once.

Related tools

Comments & feedback

Spotted a bug or want an improvement? Tell us — our team reviews every comment, and good ideas get built. Comments are public and anonymous.

Found a client that behaves differently, or an upstream change this page has missed?

Email me at [email protected] — most fixes ship within 24 hours.