{"id":13735614,"url":"https://github.com/tannerkrewson/lansite","last_synced_at":"2025-08-22T19:20:17.736Z","repository":{"id":44020999,"uuid":"48682897","full_name":"tannerkrewson/lansite","owner":"tannerkrewson","description":"A web app for LAN parties designed to be a simple, central information hub for all attendees.","archived":false,"fork":false,"pushed_at":"2023-09-13T21:48:38.000Z","size":556,"stargazers_count":15,"open_issues_count":9,"forks_count":4,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-03-28T12:38:51.361Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/tannerkrewson.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,"governance":null,"roadmap":null,"authors":null}},"created_at":"2015-12-28T08:39:13.000Z","updated_at":"2025-03-17T04:49:02.000Z","dependencies_parsed_at":"2024-01-12T04:45:45.318Z","dependency_job_id":"60c53dee-1667-4ba7-8a6d-a0e5cb6899ec","html_url":"https://github.com/tannerkrewson/lansite","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tannerkrewson%2Flansite","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tannerkrewson%2Flansite/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tannerkrewson%2Flansite/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tannerkrewson%2Flansite/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tannerkrewson","download_url":"https://codeload.github.com/tannerkrewson/lansite/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248984293,"owners_count":21193719,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":[],"created_at":"2024-08-03T03:01:08.860Z","updated_at":"2025-04-15T00:31:35.106Z","avatar_url":"https://github.com/tannerkrewson.png","language":"JavaScript","funding_links":[],"categories":["Software"],"sub_categories":["LAN Party Management"],"readme":"# Lansite\n\nLansite is a web app made for smaller LAN parties. It is designed to be a simple, central information hub for all attendees.\n\n\u003cimg src=\"https://i.imgur.com/dxLNnED.png\" width=\"366\"/\u003e\n\n## Features\n\n#### For the Attendees:\n* Uses Steam accounts to login, so no registration required\n* Attendees can read messages, vote in polls, and find people to play games with\n* Find the Steam profiles of other attendees using the sidebar\n* Request to post messages or votes using the buttons in the sidebar\n* Find an opponent to play [an in-browser Connect 4 game](https://github.com/kevin-shannon/connect4) designed by myself and [Kevin Shannon](https://github.com/kevin-shannon)\n\n#### For the Admins:\n* Easy to install, configure and launch\n* Requests from the attendees can be approved or denied from the Admin Stream to prevent spam\n* Add messages or votes easily using the buttons in the sidebar\n* If someone doesn't have a Steam account, or your LAN does not have internet, you can create one-time use login codes to give to each attendee\n\n#### For programmers:\n* Programmed with JavaScript and Bootstrap on the front end and NodeJS with Express, Socket.io, Handlebars, and Passport on the back end\n* Fully modular plugin system that allows easy creation of custom plugins, called \"Boxes\"\n\n## Disadvantages\nTo make setup easy, Lansite does not use a database. This means that when the Lansite server is stopped, all data, including boxes and users, is lost.\nAlso, Lansite is meant to be used on-site, at the LAN itself. Lansite would not be useful as an event planning/organization tool.\nIf you are interested in LAN management software that does not have the disadvantages that Lansite has, I have listed a few of my favorites below.\n\n#### Alternatives:\n* [Lanager](https://github.com/zeropingheroes/lanager)\n* [LANREG](https://www.lanreg.org/)\n* [LanHUB](https://lanhub.net/)\n\n## Install\n\n#### Prerequisites\n* [Node.js](https://nodejs.org/)\n\n#### Instructions\n1. [Clone this repo](https://help.github.com/articles/cloning-a-repository/) however you prefer.\n2. Open CMD/Terminal/Bash in the directory in which you installed Lansite.\n3. Run this command: `npm install`.\n4. Make a copy of `config.template.js` called `config.js`.\n5. Change the settings in `config.js` to your liking.\n6. Finally, to open the server, run: `npm start`.\n7. Visit `localhost:PORT` in your browser to test.\n\n## Config\n* Web Address (string): url server will append to redirects.\n* Port (int): Port in which the server will run off.\n* Developer Mode (boolean): Enables features that may be insecure to run in a production situation.\n  Features:\n  * Non-Steam accounts for testing: When dev mode is enabled, just enter a username with no code on the login page.\n  * More console messages\n* Steam API Key (string): Allow your attendees to login to Lansite with their Steam account. Grab an API key for yourself [here](http://steamcommunity.com/dev/apikey).\n* Auto OP First User (boolean): Make the first user that logs into Lansite the admin\n* Connect 4 Url (string): Should point to `https://kevinshannon.dev/connect4/`, or another instance of [this repo](https://github.com/kevin-shannon/connect4).\n\n## Server Console Commands\n* `help`: View a list of commands\n* `stop`: Exit the server. Please note that all data is deleted once the server is closed. Users will have to relogin once restarted.\n* `add connect4box`\n* `add matchbox`\n* `add textbox [title];[text/HTML to display here]`\n* `add votebox [question];[choice1];[choice2];[choice3]...`\n* `generatelogincode`: Generates a code that can be used by users to login. This maybe helpful if, for example, someone does not have a Steam account, or your LAN does not have internet.\n* `op [user id here]`: Give admin rights to this user. A user's id can be found with the `view users` command.\n* `deop [user id here]`: Remove admin privileges from this user.\n* `pm [on/off]`: Enable or disable the private messaging system on the fly.\n* `view boxes`: View all of the boxes in the stream.\n* `view codes`: View all of the active login codes generated using the `generatelogincode` command. Codes are one-time use, and will be removed from this list after usage.\n* `view requests`: View all of open requests. These are also displayed in the admin stream.\n* `view users`: View all users.\n\n## Included Boxes\n* VoteBox: Give your attendees a choice in what game to play next, what to eat, etc.\n* TextBox: Give a quick notice to everyone.\n* MatchBox: Allow your attendees to list games they want to play and find players.\n* Connect4Box: A simple match-making system for an online Connect 4 game.\n\n## Custom Box Creation Instructions\n1. Pick a name. This will be case-sensitive across all files. For this example, we'll call ours `FooBox`.\n2. Copy `Lansite/templates/_TemplateBox.handlebars` and rename it to `FooBox.handlebars`. This will the HTML for our box.\n3. Make sure to replace all instances of TemplateBox with FooBox and add your code where it says `CUSTOM HTML HERE`.\n4. Copy `Lansite/public/js/boxes/_TemplateBox.js` and rename it to `FooBox.js`. This will be our client-side script.\n5. Follow the instructions inside the template to get it setup, and add your code.\n6. Copy `Lansite/boxes/_TemplateBox.js` and rename it to `FooBox.js`. This will be our server-side script.\n7. Follow the instructions inside the template to get it setup, and add your code.\n8. You can test your code by running the console command `add FooBox [your arguments here]` in the server console to add the box to all connected clients' streams.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftannerkrewson%2Flansite","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftannerkrewson%2Flansite","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftannerkrewson%2Flansite/lists"}