freeso/docker
SegerEnd 35d0dd89a7
Add server connection, Archive maker and Keyboard navigation (#292)
* Server connection back

Get the server connection working again that was lost by the Archive
mode changes.

Key changes:
- Fix server connection bugs caused by the new Archive mode
- Update Microsoft.Data.Sqlite.Core to 10.0.2
- Add allOpenable config flag for free roam lot transitions for normal
servers.
- Add city and lot server configuration options
- Make UCP.InitArchive public for CoreGameScreenController
- Archive UI improvements (join dialog with direct server IP join)

* Keyboard navigation

Add full keyboard and Tab navigation support to the UI framework.

Key changes:
- Tab/Shift+Tab navigation between focusable UI elements
- Keyboard support for UIButton, UISlider, UIListBox, UICombobox
- UIRadioButton arrow key navigation within groups
- Mouse wheel scrolling for UIListBox
- UIContextMenu keyboard navigation (arrow keys, Enter, Escape)
- UIGridViewer keyboard support
- Focus management via InputManager with IFocusableUI interface

* FSO.Unix cross-platform support

Add FSO.Unix project for native Linux and macOS support.

Key changes:
- New FSO.Unix project with cross-platform entry point
- macOS .app bundle creation and deploy script for macOS/Linux
- Native dialogs via osascript (macOS) and zenity (Linux)
- ImageSharp-based bitmap/PNG handling instead of Windows drawing library
for non-Windows platforms
- GameLocator path fixes for TSO on macOS and Linux

* Docker containers

Add Docker configuration files for running a FreeSO server.

Key changes:
- Dockerfile and docker-compose.yml for server deployment
- Entrypoint script with secret generation
- OCI image labels for container metadata
- Default server configuration template (config.json)

* Spectator mode

Allow non-roommate visitors to open and explore lots in a read-only
spectator mode. Spectators can walk around and observe but cannot
modify the lot (build, buy, delete objects, or use most interactions).

Key features:
- Basic spectator mode for non-roommate lot opening
- Block VM commands, cross-room routing, and portal interactions for spectators
- Block pie menu on lot objects with error feedback
- Spectator-to-writable transition when a roommate/owner joins
- Reload lot save and transition back when lot owner joins
- Walls up with roof on spectator lot entry
- Spectator label shown in UI
- Admins excluded from spectator mode restrictions
- Chat event when lot transitions from spectator mode
- Allow spectators to use direct control
- No spectator lots in Archive mode

Also includes: cursor fixes for macOS/Linux, PriorityQueue pathfinder
optimization, UIListBox focus fix, CurLoader BMP header fix, API
config cleanup, and various other minor fixes.

* Spector mode improvements
2026-05-04 22:15:57 +01:00
..
config.json Add server connection, Archive maker and Keyboard navigation (#292) 2026-05-04 22:15:57 +01:00
docker-compose.yml Add server connection, Archive maker and Keyboard navigation (#292) 2026-05-04 22:15:57 +01:00
Dockerfile Add server connection, Archive maker and Keyboard navigation (#292) 2026-05-04 22:15:57 +01:00
entrypoint.sh Add server connection, Archive maker and Keyboard navigation (#292) 2026-05-04 22:15:57 +01:00
README.md Add server connection, Archive maker and Keyboard navigation (#292) 2026-05-04 22:15:57 +01:00

FreeSO Server Docker Setup

Runs the FreeSO server and MariaDB database via Docker Compose.

Usage

Run from the repository root FreeSO/:

docker compose -f docker/docker-compose.yml up --build -d

Stop the server:

docker compose -f docker/docker-compose.yml down

Configuration

Edit docker/config.json before starting:

  • secret - Leave as GENERATE for auto-generation by the container, or set your own hex string
  • public_host - Change if hosting remotely (defaults to localhost)
  • database.connectionString - Update if you changed MariaDB credentials in docker-compose.yml

Update docker-compose.yml to point to your local TSO client installation:

Windows:

- C:/Path/To/Your/TSOClient:/game:ro

MacOS:

- ~/Documents/The Sims Online/TSOClient:/game:ro

What's Running

  • FreeSO server - Game server on ports 9000 (API), 33100-33101 (city), 34100-34101 (lots), 35100-35101 (tasks)
  • MariaDB 11 - Database with persistent storage in a Docker volume

The database is automatically initialized on first run.

Connect to the server in game via default ip: http://localhost:9000 (or your public IP if hosting remotely).

Requirements

  • The Sims Online client files
  • Ports 9000, 33100-33101, 34100-34101, 35100-35101 available