Ixion is designed to catalog public LandSandBoat servers. The API accepts POST requests with the url
parameter which are fetched with the /api/settings
subdirectory, looking for some required LSB settings as a json response. Valid LSB URLs are saved and periodically checked and updated accordingly. When a previously valid URL has been inactive for 24 hours, it is removed from the database.
The React client fetches server data from the API and displays it in a relevant way to users. Filtering is built into the client for now. When the API response fails or is empty, a default LSB demo server is displayed, pulling some info from GitHub.
This product includes GeoLite2 Data created by MaxMind.
- Automatic Verification: Verifies LSB server URL by sending a request to the public API. Requires the LSB server to enable the HTTP server.
- Automatic Deletion: Deletes LSB servers from the database if their API is found to be invalid after a configurable period of inactivity (default 24hrs).
- Periodic Checks: Runs update checks on all LSB servers in the database.
- Server Filtering: Filter LSB servers by different parameters.
- Dockerized Deployment: The application is containerized for easy deployment and development.
In the api
directory copy .env.example
to .env
and set details accordingly.
docker compose up
The API will be running on port 8000.
In the client
directory:
npm install
npm run build
npm start
Build output is in dist/
. Client will be running on port 3000.
Download the Dev Containers extension for VS Code and open the folder in the container. This also works well in codespaces.
If using Windows, highly recommend using WSL and storing the repo in the WSL filesystem.
MIT