Sen descrición

Mike 155b2b59bb ensure full FLAP payload is read %!s(int64=2) %!d(string=hai) anos
.github 84c6909f36 fix data race in bos_service and chat_service tests %!s(int64=2) %!d(string=hai) anos
cmd 81200e70f4 break out handlers into separate package %!s(int64=2) %!d(string=hai) anos
config a1012eefad generate env files from Config struct tags %!s(int64=2) %!d(string=hai) anos
foodgroup 81200e70f4 break out handlers into separate package %!s(int64=2) %!d(string=hai) anos
scripts a1012eefad generate env files from Config struct tags %!s(int64=2) %!d(string=hai) anos
server 155b2b59bb ensure full FLAP payload is read %!s(int64=2) %!d(string=hai) anos
state 81200e70f4 break out handlers into separate package %!s(int64=2) %!d(string=hai) anos
wire 155b2b59bb ensure full FLAP payload is read %!s(int64=2) %!d(string=hai) anos
.gitignore a1012eefad generate env files from Config struct tags %!s(int64=2) %!d(string=hai) anos
.goreleaser.yaml a1012eefad generate env files from Config struct tags %!s(int64=2) %!d(string=hai) anos
.mockery.yaml 81200e70f4 break out handlers into separate package %!s(int64=2) %!d(string=hai) anos
LICENSE 84c6909f36 fix data race in bos_service and chat_service tests %!s(int64=2) %!d(string=hai) anos
Makefile 92f04a591c set up goreleaser %!s(int64=2) %!d(string=hai) anos
README.md 94c0e5533f Update README.md %!s(int64=2) %!d(string=hai) anos
api.yml 3ad366ec91 implement user management API %!s(int64=2) %!d(string=hai) anos
codecov.yml 84c6909f36 fix data race in bos_service and chat_service tests %!s(int64=2) %!d(string=hai) anos
go.mod a1012eefad generate env files from Config struct tags %!s(int64=2) %!d(string=hai) anos
go.sum a1012eefad generate env files from Config struct tags %!s(int64=2) %!d(string=hai) anos

README.md

codecov

Retro AIM Server is a server implementation of the OSCAR protocol that supports AIM versions 5.0-5.9.

This project is currently under heavy development. Retro AIM Server supports/will support the following features:

  • Instant Messaging
  • Buddy List
  • Warning
  • Away Messages
  • User Profiles
  • Chat Rooms
  • Visibility Toggle
  • User Blocking
  • Buddy Icons
  • User Directory

How to run

Retro AIM Server requires go 1.21.

Configuration

Server configuration is set through environment variables. The following are the most useful configs:

Env Variable Description
OSCAR_HOST The hostname that the server should bind to. If exposing to the internet, use the public IP.
DISABLE_AUTH If true, auto-create screen names at login and skip the password check. Useful for development purposes.
DB_PATH The path to the SQLite database.
LOG_LEVEL Set logging granularity. Possible values: trace, debug, info, warn, error

Starting Up

DISABLE_AUTH=true \
OSCAR_HOST=192.168.64.1 \
DB_PATH=./aim.db \
go run ./cmd/server/main.go

User Management

User management is done through a REST API.

List Users

curl http://localhost:8080/user

Create Users

curl -d'{"screen_name":"myScreenName", "password":"thepassword"}' http://localhost:8080/user