{"id":16132259,"url":"https://github.com/shivajiva101/authx","last_synced_at":"2026-04-29T00:34:56.672Z","repository":{"id":45200636,"uuid":"229150033","full_name":"shivajiva101/authx","owner":"shivajiva101","description":"Minetest authentication handler and ban manager","archived":false,"fork":false,"pushed_at":"2022-11-11T01:40:50.000Z","size":201,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-06T14:43:35.863Z","etag":null,"topics":["authentification","ban","minetest-mod","sqlite3"],"latest_commit_sha":null,"homepage":"","language":"Lua","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/shivajiva101.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-12-19T22:40:56.000Z","updated_at":"2024-05-13T18:36:46.000Z","dependencies_parsed_at":"2022-08-30T08:30:27.979Z","dependency_job_id":null,"html_url":"https://github.com/shivajiva101/authx","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/shivajiva101/authx","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shivajiva101%2Fauthx","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shivajiva101%2Fauthx/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shivajiva101%2Fauthx/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shivajiva101%2Fauthx/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/shivajiva101","download_url":"https://codeload.github.com/shivajiva101/authx/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shivajiva101%2Fauthx/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32405902,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-28T19:38:08.556Z","status":"ssl_error","status_checked_at":"2026-04-28T19:37:55.688Z","response_time":56,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["authentification","ban","minetest-mod","sqlite3"],"created_at":"2024-10-09T22:29:34.033Z","updated_at":"2026-04-29T00:34:56.656Z","avatar_url":"https://github.com/shivajiva101.png","language":"Lua","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Build status](https://github.com/shivajiva101/authx/workflows/Check%20\u0026%20Release/badge.svg)](https://github.com/shivajiva101/authx/actions)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\n\n# authx\n\nIf you use sauth and sban and don't mind me breaking the holy grail of combining mods, then this mod is for you, it combines the functionality of both in\na single database, adding account restrictions based on number of accounts per id,\nip addresses per id, and naming restrictions like similarity and length. In theory it should be faster than having 2 separate mods as the db calls are from a single sqlite instance, with the ban check occuring at the point minetest authenticates the player join event by calling the registered handler. This means less work for your server. Caching is an integral part of how the mod is attempting to speed up access and mitigate minetest's constant core requests for player information.\n\nIt's a one stop solution for authenticating players with optional control.\n\n#### INSTALLATION\n\nauthx requires lsqlite3 (https://github.com/LuaDist/lsqlite3).\n\nIf you have luarocks (https://luarocks.org/) installed on the target server,\nyou can easily install lsqlite3 in a terminal:\n\n    luarocks install lsqlite3\n\nIf the target server runs mods in secure mode[recommended], you must add authx\nto the list of trusted mods in minetest.conf:\n\n\tsecure.trusted_mods = authx\n\n#### COMMANDS\n\nThe mod provides the following chat console commands. These commands require\nthe ban privilege. The ban_admin and server privileges extend the functionality\nof some commands.\n\n#### bang\n\nLaunches the GUI. Comprehensive management of bans via a user interface for convenience.\nOn launch the interface shows a list containing the last 10 players to join. Use search\nto find a player if they are not in the list. Multiple records are shown if available, by\nusing the arrows that appear.\n\n``` Usage: /bang ```\n\n\u003cb\u003ePlease note\u003c/b\u003e accessing the gui formspec using a modified client without serverside\nprivs has been coded to ban the player\n\n#### ban\n\nBans a player permanently.\n\n``` Usage: /ban \u003cname_or_ip\u003e \u003creason\u003e ```\n\nExample: /ban Steve Some reason.\n\nThe server privilege enables the pre-emptive banning of player names or\nIP addresses for which the server has no current record. This is achieved by adding\nthem to a separate table so the entries don't contaminate the actual records.\n\n#### tempban\n\nBans a player temporarily.\n\n```Usage: /tempban \u003cname_or_ip\u003e \u003ctime\u003e \u003creason\u003e```\n\nExample: /tempban Steve 2D Some reason.\n\nThe time parameter is a string in the format \\\u003ccount\u003e \\\u003cunit\u003e,\nwhere \\\u003cunit\u003e  is either s for seconds, m for minutes, h for hours, D for days,\nW for weeks, M for months, or Y for years. If the unit is omitted, it is\nassumed to mean seconds. For example, 42 means 42 seconds, 1337m means 1337 minutes,\nand so on. You can chain more than one such group and they will add up.\nFor example, 1Y3M3D7h will ban for 1 year, 3 months, 3 days and 7 hours.\n\n#### unban\n\nUnbans a player.\n\n```Usage: /unban \u003cname_or_ip\u003e \u003creason\u003e```\n\nExample: /unban Steve Some reason.\n\nNote that this command requires a reason and works for pre-emptive bans\n\n#### ban_record\n\nDisplays player record and ban record.\n\n```Usage: /ban_record \u003cname_or_ip\u003e```\n\nExample: /ban_record Steve\n\nThis prints the player record and ban record for a player. The records are\nprinted to the chat console with one entry per line.\n\nThe player record includes names and, if the user has the ban_admin privilege,\nIP addresses used by the player. The number of records displayed is limited\nto 10 by default to prevent chat console spam, and can be adjusted through\nthe authx.display_max setting in minetest.conf.\n\nThe ban record includes a list of all ban related actions performed on the player\nunder any known name or IP address. This includes the time a ban came into effect,\nthe expiration time (if applicable), the reason, and the source of the ban.\n\nNote that the records of players with the server privilege can only be viewed\nby other players with the server privilege.\n\n#### ban_wl\n\nManages the whitelist.\n\n```Usage: /ban_wl (add|del|list) \u003cname_or_ip\u003e```\n\nExample: /ban_wl add Steve\n\nWhitelisted players are allowed on the server even if they are marked\nas banned. This is useful to ensure moderators cannot ban each other.\n\nThe add subcommand adds a player to the whitelist.\nThe del subcommand removes a player from the whitelist.\nThe list subcommand lists the players on the whitelist.\n\n#### ADMINISTRATION COMMANDS\n\nThese commands are for administering the server and require the server privilege.\nYou can import a server's previous ban history from xban2's xban.db file or from\nMinetest's ipban.txt file.\n\nThis is an intensive process that will cause server lag, so it's recommended\nyou perform this on a local instance and copy the database to the server\nbefore starting with the authx mod installed.\n\n#### ban_dbi\n\nImports bans from xban.db or ipban.txt files into an existing\nauth.sqlite file.\n\n```Usage: /ban_dbi \u003cfilename\u003e```\n\nExample: /ban_dbi xban.db or /ban_dbi ipban.txt\n\nIt's possible to place multiple files in the world folder and execute the\ncommand on each file. For example:\n\n    /ban_dbi xban_1.db\n    /ban_dbi xban_2.db\n\nEach record is checked against the database by player name to prevent duplicate\nentries.\n\n#### ban_dbe\n\nExtracts all valid player records from an xban.db file and saves them in xban.sql.\n\n```Usage: /ban_dbe \u003cinput_filename\u003e```\n\nExample: /ban_dbe xban.db\n\nThis creates a file called xban.sql in the world folder. Import the file\nfrom the sqlite prompt using:\n\n    .open authx.sqlite\n    .read xban.sql\n    .exit\n\nThe time of the import operation is dependant on the size of the .sql file.\n\n#### ban_dbx\n\nDumps the database back to xban2 file format. Use it before you uninstall this mod\nif you intend using xban2 and wish to retain the data.\n\n```Usage: /ban_dbx```\n\nDo this before enabling xban2 mod otherwise it will be overwritten by the currently loaded data.\n\n#### whois\n\n```Usage: //whois \u003cname\u003e [v]```\n\nExample: //whois sadie\n\nReturns all known accounts and the last ip address associated with a player name.\nUse the v option to get the list of ip addresses (display_max still limits amount displayed)\n#### CONFIG\n\nYou can add these optional settings to minetest.conf to adjust the authx mod's\nbehaviour.\n\n#### auth.api\n\nControls loading of the API functions. Default is false.\n\n\tauthx.api = true\n\nThis would load the API functions and allow other mods access via the global authx table.\n\n#### authx.display_max\n\nChanges the maximum number of player records displayed when using the /ban_record\ncommand.\n\n\tauthx.display_max = 12\n\nThis would increase the number of records shown from the default 10 records to 12.\n\n#### authx.ban_max\n\nAllows server owners to set an expiry date for bans. It uses the same format for\ndurations as the /tempban command.\n\n\tauthx.ban_max = 90D\n\nIn this example all permanent player bans created after the setting has been added\nto minetest.conf, and after a server restart, will expire 90 days after the ban was\nset. If required, longer ban durations can still be set with the tempban command.\n\nPlease note that if you delete or adjust the setting, after restarting the server, bans\ncreated while the setting was active will not change and will retain their original\nexpiry date.\n\n#### authx.accounts_per_id\n\nRestricts accounts a player can make with an id.\n\n\tauthx.accounts_per_ip = 5\n\nPlease note this is optional and without the setting the player accounts are unrestricted.\n\n#### authx.addresses_per_id\n\nRestricts number of addresses a player can use with an id.\n\n\tauthx.addresses_per_id = 10\n\nPlease note this is optional and without the setting the player accounts are unrestricted.\n\n#### authx.import_enabled\n\nDisables the import/export sections of code.\n\n\tauthx.import_enabled = false\n\nThe default is true, this setting allows you to save memory by disabling the code and commands associated with\nimporting \u0026 exporting data and should only be set to false once you have imported any ban sources.\n\n#### authx.cache.max\n\nMaximum cached name records.\n\n\tauthx.cache.max = 1000\n\nIf you don't add this setting authx will use the value above as the default.\n\n#### authx.cache.ttl\n\nTime in seconds to deduct from the last player to login as the cutoff point for pre caching names.\n\n\tauthx.cache.max = 86400\n\nIf you don't add this setting authx will use the value above as the default. Disable name caching by setting to -2\n\n\n#### CREDITS\n\nThanks to:\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshivajiva101%2Fauthx","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fshivajiva101%2Fauthx","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshivajiva101%2Fauthx/lists"}