Server providing AIM services to old clients. Make your own chat network. Fuck Docker.
Find a file
2022-02-03 14:06:33 -05:00
aimerror change to User.ScreenName, check user verification 2022-01-16 14:43:48 -05:00
cmd remove fixtures 2022-01-22 20:31:47 -05:00
models remove fixtures 2022-01-22 20:31:47 -05:00
oscar remove error-handling-via-panic 2022-02-03 14:06:33 -05:00
scripts scripts to build and deploy to dockerhub 2021-12-24 14:51:54 -05:00
services remove error-handling-via-panic 2022-02-03 14:06:33 -05:00
util remove error-handling-via-panic 2022-02-03 14:06:33 -05:00
.dockerignore verify mod 2021-12-24 15:27:19 -05:00
.gitignore dump flap on errors 2022-01-22 20:57:27 -05:00
Dockerfile stop using sqlite db file 2022-01-16 16:39:44 -05:00
go.mod sqlite -> postgres 2021-12-26 14:01:55 -05:00
go.sum sqlite -> postgres 2021-12-26 14:01:55 -05:00
main.go remove error-handling-via-panic 2022-02-03 14:06:33 -05:00
message_delivery_routine.go remove error-handling-via-panic 2022-02-03 14:06:33 -05:00
online_routine.go change to User.ScreenName, check user verification 2022-01-16 14:43:48 -05:00
package-lock.json move service to services package 2021-12-24 12:43:40 -05:00
package.json change to User.ScreenName, check user verification 2022-01-16 14:43:48 -05:00
Readme.md update readme 2022-01-22 13:28:14 -05:00
service_manager.go move fix service manager 2021-12-24 12:44:40 -05:00
session_manager.go change to User.ScreenName, check user verification 2022-01-16 14:43:48 -05:00

AIM Oscar Server

Run your own AIM chat server, managing users and groups. Hook up a vintage client and get chatty.

Goals

  • Have a vintage client authenticate with the server
  • Add buddies
  • See buddy online/away status
  • Chat with buddy
  • Set away status
  • See away status
  • Look up buddy
  • Buddy icons
  • Rate limiting + warn system
  • Web Signup (https://runningman.network/register)
  • Federation with other servers

Getting Started

Clone this repository, make sure you have Go installed in your terminal's path, then run:

$ go build && ./aim-oscar

Configuration

Environment flags:

  • OSCAR_HOST: host interface to bind to (default: 0.0.0.0)
  • OSCAR_PORT: port to bind to (default: 5190)
  • OSCAR_BOS_HOST: hostname of Basic OSCAR Service that provides core client features (default: 0.0.0.0)
  • OSCAR_BOS_PORT: port of Basic OSCAR Service (default: 5190)
  • DB_URL: URL of Postgres database to use
  • DB_USER: Username of the db user
  • DB_PASSWORD: Password of the db user

Flags:

  • -host: hostname of server
  • -port: port to bind to
  • -boshost: hostname of Basic OSCAR Service
  • -bosport: port of Basic OSCAR Service
  • -h: see help information about flags

Terms

mirrored from iserverd

  • BOS: Basic OSCAR Service. This term refers to the services that form the core of the Instant Messenger service. These services include Login/Logoff, Locate, Instant Message, Roster management, Info management and Buddy List
  • FLAP is a low-level communications protocol that facilitates the development of higher-level, record-oriented, communications layers. It is used on the TCP connection between all clients and servers.
  • SNAC: A SNAC is the basic communication unit that is exchanged between clients and servers. The SNAC communication layers sits on top of the FLAP layer.
  • TLV: Type Length Value. A tuple allowing typed opaque information to be passed through the protocol. Typically TLV's are intended for interpretation at the core layer. Being typed, new elements can be added w/o modifying the lower layers.
  • ICBM: Inter Client Basic Message. ICBM is a channelized client-to-client mechanism. Currently the most user visible channel is used for Instant Messages.