From d8ff59f98a93f521d18cb91666a7fb968c816051 Mon Sep 17 00:00:00 2001 From: Tenkuma <85490958+adrianvic@users.noreply.github.com> Date: Wed, 29 Oct 2025 20:55:30 -0300 Subject: [PATCH 1/6] Set NODE_ENV_SECRET for npm build step Added NODE_ENV_SECRET environment variable for build step. --- .github/workflows/main.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index db385e9..649a69d 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -28,6 +28,8 @@ jobs: - name: Run npm build run: npm run build:prod + env: + NODE_ENV_SECRET: ${{ secrets.GITHUB_ACCESS_TOKEN }} - name: Deploy to gh-pages uses: peaceiris/actions-gh-pages@v4 From 8b98b00558a16ed1fc98ce30c03a61ae76df0803 Mon Sep 17 00:00:00 2001 From: Tenkuma <85490958+adrianvic@users.noreply.github.com> Date: Wed, 29 Oct 2025 20:57:31 -0300 Subject: [PATCH 2/6] Update GitHub Actions to use OAUTH_ACCESS_TOKEN --- .github/workflows/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 649a69d..b93c3f5 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -29,7 +29,7 @@ jobs: - name: Run npm build run: npm run build:prod env: - NODE_ENV_SECRET: ${{ secrets.GITHUB_ACCESS_TOKEN }} + GITHUB_ACCESS_TOKEN: ${{ secrets.OAUTH_ACCESS_TOKEN }} - name: Deploy to gh-pages uses: peaceiris/actions-gh-pages@v4 From be92a1ccf780dec23fa5e7c3322aad81968dd314 Mon Sep 17 00:00:00 2001 From: Tenkuma <85490958+adrianvic@users.noreply.github.com> Date: Mon, 10 Nov 2025 16:20:10 -0300 Subject: [PATCH 3/6] Create README.md. Added detailed project documentation and structure guidelines. --- README.md | 129 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 129 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..afa0aa0 --- /dev/null +++ b/README.md @@ -0,0 +1,129 @@ +image + +# neoBeta +> [!IMPORTANT] +> I don't know what I'm doing. *I'm learning.* This project is a hobby, but I'm always trying to improve it, hope it's worthy of having your project listed here! + +This is a static CMS (content management system) made with eleventy for Minecraft mods. + +## Why? +Because I love beta Minecraft mods, plugins and texture-packs! And I'm fascinated with static websites that do not juice the user's CPU. Also, I need to spend my free time with something... + +## TODO + - [ ] Listing projects in the artist page. + - [ ] Building a single-file repo index for clients to work with ([like what F-Droid does](https://f-droid.org/docs/Setup_an_F-Droid_App_Repo/)) + +## Project structure +New projects can be added to `/src/project` and need to follow a specific structure for proper recognition: + +```graphql +/src/projects/exampleproject/* + ├─ index.md - # The text text content for the project page. + ├─ index.json - # Project metadata. + ├─ logo.png - # Project logo, can be defined to have a different name in the metadata. + └─ docs/* - # Documentation files, will automatically pick up. + ├─ install.md - # Example documentation page for installing the plugin. + ├─ uninstall.md - # And for uninstalling. + ├─ upgrade.md - # And for upgrading. + └─ manage_players.md - # And for managing players. +``` + +Files used in the project page can be added to it's directory and referenced relatively to the current working dir. + +## Project metadata +### Required metadata fields + - *name* - project name. + - *subtitle* - project's brief description. + - *author* - your author name, must be consistent across all your submissions. + - *tags* - whether your project is a plugin or mod. + +### Optional metadata fields + - *images* - lists of image files names or URLs that will appear in the project page. + - *logo* - your logo file name or URL. + - *gameVersions* - taget Minecraft versions. + - *gameLoaders* - supported modloaders. + +### Releases metadata + - *releasesType* - wheter your project uses `local` releases or `github`. + +#### For local releases: + - *releases* - a list of relases labels and links. + - *name* - name of the release. + - *version* - version of the release. + - *gameVersions* - taget Minecraft versions (overrides default value). + - *gameLoaders* - supported modloaders (overrides default value). + - *downloads* - list of download links for this release. + +#### For GitHub releases: + - *githubRepoOwner* - username of the repo owner. + - *githubReponame* - name of the repository. + +Example index.json for a project: +``` +{ + "name": "Ghosts 'n Stuff", + "subtitle": "Miscellaneous additions to your Minecraft server.", + "author": "tenkuma", + "downloadLink": "https://modrinth.com/plugin/ghosts/versions", + "images": ["anti-spam.png", "rainbow-chat.png", "skibidi-blocker.png"], + "logo": "logo.png", + "tags": ["plugin"], + "links": { + "GitHub": "https://github.com/adrianvic/ghostsandstuff", + "Disroot Git": "https://git.disroot.org/adrianvictor/ghostsandstuff" + }, + "docs": { + "Installation" : "docs/installation" + }, + "releaseType": "github or local", + "githubRepoOwner": "adrianvic", + "githubRepoName": "ghostsandstuff", + "gameLoaders": ["Craftbukkit"] + "releases": [ + { + "name": "The first release.", + "version": "1.0.0", + "gameVersions": ["b1.7.3"], + "downloads": { + "GitHub": "https://example.com", + "Modrinth": "https://modrinth.com" + } + } + ] +} +``` + +## Authors structure +The structure for adding new author pages is mostly like the one for project pages: + +```graphql +/src/authors/exampleauthor/* + ├─ index.md - # The text text content for the author page (bio). + ├─ index.json - # Author metadata. + └─ logo.png - # Author logo, can be defined to have a different name in the metadata. +``` + +The metadata is the same as the projects, however stripped down. The only values are `name`, `subtitle`, `logo` and `images`. + +## GitHub API integration +neoBeta can log into a GitHub account using oAuth, this is used to automatically fetch project releases from a GitHub repository. This is needed because GitHub's API has a limit of 60 requests for users that are not authenticated. + +Beforing using this integration you need to populate the enviroment variables `GITHUB_CLIENT_ID` and `GITHUB_CLIENT_SECRET` with your own oAuth information, and run `gen-github-token.cjs`. A web server will be started locally (default port is `9876`), redirecting you to GitHub's oAuth screen, after logging in the script will populate `GITHUB_ACCESS_TOKEN` to your `.env`. You can set `GITHUB_ACCESS_TOKEN` directly if you have one. + +## Search +Search is provided statically by [elasticlunr](http://elasticlunr.com/). The search index is compiled every time neoBeta is built. From my searches I'm confident elasticlunr will be enough for searching the project base for a sufficient period of time, if it ever get unrealistically heavy to the end-user other solutions will be explored. + +## Contributing +### Adding new projects +> [!NOTE] +> I know it's quirky to download neoBeta's whole codebase to add projects, that's why I'll be looking into splitting the projects into a separate repo. + +neoBeta is intended to be crowd-sourced, so you can clone our repo, add your plugin page with the ''correct metadata'' and make a merge request. Be sure that you have the necessary rights to upload the project or proper authorization of the creator, open-source projects are better in that matter. + +You can also open an issue or send me an [e-mail](mailto:adrianvictor+neobeta@disroot.org) with your project info, or a link for a place with relevant info so I can add your project to our database. + +### With code +Feel free to submit your contributions to this repo ^^ + +### With money +I'm not accepting money as contribution because I cannot guarantee that any money contribution will result in enhancements to this project. I am a full time student, this is a hobby. From e26f459b5cbd120eab8f34f8247cfa3713c7ca20 Mon Sep 17 00:00:00 2001 From: Tenkuma <85490958+adrianvic@users.noreply.github.com> Date: Mon, 10 Nov 2025 20:58:32 -0300 Subject: [PATCH 4/6] Set example as JSON for GitHub MD --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index afa0aa0..1a7f18c 100644 --- a/README.md +++ b/README.md @@ -59,7 +59,7 @@ Files used in the project page can be added to it's directory and referenced rel - *githubReponame* - name of the repository. Example index.json for a project: -``` +```json { "name": "Ghosts 'n Stuff", "subtitle": "Miscellaneous additions to your Minecraft server.", From e7ccac2bb2795b120bf2dd0edba3cf292758332a Mon Sep 17 00:00:00 2001 From: Tenkuma <85490958+adrianvic@users.noreply.github.com> Date: Mon, 22 Dec 2025 00:00:54 -0300 Subject: [PATCH 5/6] Update README.md --- README.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/README.md b/README.md index 1a7f18c..a14bae1 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,6 @@ image # neoBeta -> [!IMPORTANT] -> I don't know what I'm doing. *I'm learning.* This project is a hobby, but I'm always trying to improve it, hope it's worthy of having your project listed here! - This is a static CMS (content management system) made with eleventy for Minecraft mods. ## Why? From 855b859739f4e0668605441b1b0ac4355034687f Mon Sep 17 00:00:00 2001 From: Tenkuma <85490958+adrianvic@users.noreply.github.com> Date: Mon, 22 Dec 2025 00:02:39 -0300 Subject: [PATCH 6/6] Update README.md --- README.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/README.md b/README.md index a14bae1..334ef99 100644 --- a/README.md +++ b/README.md @@ -121,6 +121,3 @@ You can also open an issue or send me an [e-mail](mailto:adrianvictor+neobeta@di ### With code Feel free to submit your contributions to this repo ^^ - -### With money -I'm not accepting money as contribution because I cannot guarantee that any money contribution will result in enhancements to this project. I am a full time student, this is a hobby.