{"id":24880795,"url":"https://github.com/maxonary/convitelist","last_synced_at":"2025-09-15T14:20:54.706Z","repository":{"id":184556702,"uuid":"610927070","full_name":"maxonary/convitelist","owner":"maxonary","description":"A convenient whitelist manager for Minecraft servers","archived":false,"fork":false,"pushed_at":"2024-05-02T12:22:19.000Z","size":8660,"stargazers_count":4,"open_issues_count":24,"forks_count":3,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-07-21T06:49:05.567Z","etag":null,"topics":["crud","minecraft-server","prisma","react","sqlite","typescript","whitelist"],"latest_commit_sha":null,"homepage":"https://convitelist.vercel.app","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/maxonary.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2023-03-07T19:03:29.000Z","updated_at":"2024-03-19T15:32:45.000Z","dependencies_parsed_at":null,"dependency_job_id":"a18478eb-9eca-469e-9e83-1a09f47616c0","html_url":"https://github.com/maxonary/convitelist","commit_stats":null,"previous_names":["maxonary/convitelist"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/maxonary/convitelist","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maxonary%2Fconvitelist","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maxonary%2Fconvitelist/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maxonary%2Fconvitelist/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maxonary%2Fconvitelist/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/maxonary","download_url":"https://codeload.github.com/maxonary/convitelist/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maxonary%2Fconvitelist/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":275268168,"owners_count":25434792,"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","status":"online","status_checked_at":"2025-09-15T02:00:09.272Z","response_time":75,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["crud","minecraft-server","prisma","react","sqlite","typescript","whitelist"],"created_at":"2025-02-01T11:19:52.543Z","updated_at":"2025-09-15T14:20:54.676Z","avatar_url":"https://github.com/maxonary.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ![minecraft_title](https://github.com/maxonary/convitelist/assets/62939182/6ba92ce8-031b-4cba-954c-16ce3adbab59)\n\n# A Convenient Whitelist Manager for Minecraft Servers\n\nThis application allows admins and moderators to manage a whitelist for their Minecraft server efficiently.\nUsers can be added and removed from the whitelist by simply clicking a checkbox.\n\nUsers register by themselves on the website. The Minecraft options menu inspires the style and guides the user through registration.\nThey can enter their Minecraft username, select their game type (Java and Bedrock Edition), and submit for approval.\nThen, a registered admin can log in to the admin panel to review all submissions. \n\nThis application consists of two parts: A Backend built on Prisma, SQLite, and Express, and a Frontend built on React. \n\nTo use all the features, you must have a Paper Minecraft Server running and use [MC-Sleeping-Server-Starter](https://github.com/vincss/mcsleepingserverstarter), as well as the EmptyServerStopper and EasyWhitelist Plugins. \n\nPlease check the dedicated Backend and Frontend README docs for more details.\n\n## Features\n\n- Minecraft-style interface\n- User registration with Minecraft username and error-checking\n- Admin authentication and registration with tokens\n- Admin panel for approving or rejecting users and registering new admins\n- Automatic Minecraft server whitelist management through RCON\n- Server Status when using [MC-Sleeping-Server-Starter](https://github.com/vincss/mcsleepingserverstarter) (recommended)\n\n## Future Features\n\n* Bedrock support with Floodgate integration\n* Microsoft Xbox authentication\n* Automatically insert users on the first join\n* Server statistics, including graphs\n* User group management\n\n## Website Architecture\n```\nbash\n                    +----------------------+\n                    |   User's Web Browser |\n                    +----------------------+\n                                |\n                        (1) HTTP Request (GET)\n                                |\n                                v\n                    +-----------------------+\n                    |      Frontend App     |\n                    |  (React, React Router)|\n                    +-----------------------+\n                                |\n             (2) Client-Side Routing (React Router)\n                                |\n                                v\n                    +-----------------------+\n                    |      Frontend API     |\n                    | (Axios, Fetch, etc.)  |\n                    +-----------------------+\n                                |\n                     (3) HTTP Request (GET/POST)\n                                |\n                                v\n              +----------------------------------+\n              |        Backend Server            |\n              | (Node.js, Express, SQLite, etc.) |\n              +----------------------------------+\n                                |\n            (4) Authentication (Passport, JWT, etc.)\n                                |\n                                v\n              +----------------------------------+\n              |       Session Management         |\n              | (Cookies, Express-Session, etc.) |\n              +----------------------------------+\n                                |\n                   (5) HTTP Request (GET/POST)\n                                |\n                                v\n                      +------------------+\n                      |     Database     |\n                      |     (SQLite)     |\n                      +------------------+\n                                |\n                       (6) Query Response\n                                |\n                                v\n                      +------------------+\n                      |      Backend     |\n                      |  Data Processing |\n                      +------------------+\n                                |\n                    (7) HTTP Response (JSON)\n                                |\n                                v\n                        +--------------+\n                        |    Backend   |\n                        |   Rendering  |\n                        +--------------+\n                                |\n                  (8) HTTP Response (HTML/JS/CSS)\n                                |\n                                v\n                       +----------------+\n                       | User's Browser |\n                       |    Rendering   |\n                       +----------------+\n```\n\n1. The user's web browser sends an HTTP request (GET) to the website to load the page.\n\n2. The frontend app (React) handles the routing and sends additional HTTP requests (GET/POST) to interact with the backend server.\n\n3. The backend server (Node.js, Express) processes the requests, interacts with the database (SQLite), and sends an HTTP response (JSON) back to the frontend app.\n\n4. The frontend app updates parts of the UI based on the response received from the server.\n\n5. The user's web browser renders the updated UI and makes the website interactive.\n\n## Prerequisites\n\nBefore you begin, ensure you have met the following requirements:\n\n- You have installed [Node.js](https://nodejs.org/) (14.x or later is recommended)\n- You have access to a Minecraft server with RCON enabled\n- (You have installed [MC-Sleeping-Server-Starter](https://github.com/vincss/mcsleepingserverstarter) on top of your Minecraft server)\n\n## Installation\n\nGenerally, you can follow this guideline. More detailed descriptions are in the dedicated Backend and Frontend README docs. \n\n1. Clone this repository:\n```bash\ngit clone https://github.com/maxonary/convitelist\ncd convitelist\n```\n\n2. Install the dependencies:\n```bash\ncd backend\nnpm install \ncd ../frontend \nnpm install\n```\n\n3. Copy the `.env.example` files for Back- and Frontend to `.env`:\n```bash\n# cd into the folders first\ncp .env.example .env\n```\n\n4. Update the `.env` file with your SQLite database URL, RCON credentials, and other configuration options.\n\n5. Run the database migrations in the backend folder:\n```bash\ncd backend \nnpx prisma migrate deploy\n```\nor\n```bash\ncd backend \nnpx prisma migrate dev --name init    # for development to create a database\n```\n\n6. Generate the Prisma ORM\n```bash \nnpx prisma generate    # for development to create a database\n```\n\n7. Build the code for production (individually):\n```bash\nnpm run build\n```\n\n8. Start the production server (individually):\n```bash\nnpm run start\n```\n\nThe backend application will be available at `http://localhost:3001` \nand the frontend application will be available on a free port (normally `http://localhost:3000`).\n\n## Deployment\n\nThe deployment process will depend on your chosen hosting provider. Please consult the provider's documentation for deploying Node.js and React applications and configuring environment variables.\n\n## Contributing to Convitelist\n\nWe are following the practice of Trunk Based Development.\nThis means that all changes are made in the `master` branch and deployed to production as soon as they are ready.\nOn each push to `master`, the application is automatically built and deployed to production using a CI/CD pipeline.\n\nIf you want to contribute to this project, please fork the repository and create a pull request. This may not be the best pracitice for Trunk Bases Development, but it is the easiest for us to manage.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaxonary%2Fconvitelist","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmaxonary%2Fconvitelist","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaxonary%2Fconvitelist/lists"}