From 691099499b4d07a9adfdab647617024b58d60764 Mon Sep 17 00:00:00 2001 From: Xiretza Date: Fri, 9 Feb 2024 20:05:31 +0000 Subject: [PATCH] Add README.md --- README.md | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..3bd6c41 --- /dev/null +++ b/README.md @@ -0,0 +1,57 @@ +# factoriauth - an unofficial [Factorio](https://factorio.com) authentication server + +Let's say you and your friends are +- on an oil rig, +- in space, or +- in the far future, + +and you want to host a Factorio server. Because you don't have an internet connection (or the +official authentication servers don't exist anymore), your only option is to disable +`require_user_verification` in the server config - but this allows anyone to connect as any user, +which is no good, especially for PvP scenarios! Wouldn't it be great if you could set up your own +authentication server? + +factoriauth is exactly that. It allows clients to log in as custom users provided by one of several +authentication backends (e.g. LDAP or a passwd-style file), and allows servers to validate that +these custom users are properly authenticated. + +## Roadmap + +### Complete + +Nothing yet! + +### Planned + +- [user token generation](https://wiki.factorio.com/Web_authentication_API) (`POST /api-login`) + - auth backends: LDAP, user file, PAM(?) +- server padlock generation (`POST /generate-server-padlock-2`) +- `user_server_key` generation (`POST /generate-user-server-key-2`) +- server padlock proxying (to allow e.g. factorio.com users to join servers using a custom auth + server) + +### Unplanned + +- [updater server functionality](https://wiki.factorio.com/Download_API) +- [mods server functionality](https://wiki.factorio.com/Mod_portal_API) +- [multiplayer lobby server functionality](https://wiki.factorio.com/Matchmaking_API) + +## Setup + +### Configuring factoriauth + +TBD + +### Configuring clients/servers + +To use the auth server, the following snippet needs to be added to the clients' and servers' +`config.ini`, replacing the URL of the server as appropriate: + +```ini +[servers] +auth-server=https://my-auth-server.example/ +``` + +### Running factoriauth + +TBD