From 0b0972b48d39bd550a0663cb7e1752343b433a6c Mon Sep 17 00:00:00 2001 From: Husky <39809509+Huskydog9988@users.noreply.github.com> Date: Mon, 4 Aug 2025 02:30:22 -0400 Subject: [PATCH] Small IO tweaks, robots.txt, and README improvements (#173) * feat: add link to drop version in footer * feat: add drop logo aria label * feat: disable all crawling by bots for now i think this is a good default as all of drop is currently behind auth * feat: hide logo when inside wordmark for aria * docs: update readme and contributing * feat: default page in setup wizzard is img * ci: remove redundant perm in release ci * docs: update translation links and add progress image * fix: lang selector using wrong weblate link --- .github/workflows/release.yml | 3 -- CONTRIBUTING.md | 31 +++++++++++++++- README.md | 63 ++++++--------------------------- components/DropLogo.vue | 1 + components/DropWordmark.vue | 2 +- components/LanguageSelector.vue | 2 +- components/UserFooter.vue | 7 ++-- pages/setup.vue | 10 ++++-- public/robots.txt | 3 +- 9 files changed, 58 insertions(+), 64 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index e244c81..8045e05 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -8,9 +8,6 @@ on: schedule: - cron: "0 2 * * *" # run at 2 AM UTC -permissions: - contents: read - jobs: web: name: Push website Docker image to registry diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 5bb8636..9055675 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -16,11 +16,15 @@ you would make is not already covered. - [Reporting Issues](#reporting-issues) - [You have a problem](#you-have-a-problem) - [You have a suggestion](#you-have-a-suggestion) +- [Development](#development) + - [Note: `--optional` flag is **REQUIRED**](#note-optional-flag-is-required) + - [Tech Stack](#tech-stack) - [Submitting Pull Requests](#submitting-pull-requests) - [Getting started](#getting-started) - [You have a solution](#you-have-a-solution) - [You have an addition](#you-have-an-addition) - [Use the Search, Luke](#use-the-search-luke) +- [Translation](#translation) - [Commit Guidelines](#commit-guidelines) - [Format](#format) - [Style](#style) @@ -65,6 +69,31 @@ If you find one, comment on it, so we know more people are supporting it. If not, you can go ahead and create an issue. Please copy to anyone relevant (e.g. plugin maintainers) by mentioning their GitHub handle (starting with `@`) in your message. +## Development + +To get started with development, you need `yarn` and `docker compose` installed (or know how to set up a PostgreSQL database). + +Steps: + +1. Run `git submodule update --init --recursive` to setup submodules +1. Copy the `.env.example` to `.env` and add any api keys you need to use (e.g. for the Giant Bomb API) + - You can find other configuration options in the [documentation](https://docs.droposs.org/) +1. Create the `.data` directory with `mkdir .data` +1. Ensure that your user owns the `.data` directory with `sudo chown -R $(id -u $(whoami))` +1. Open up a terminal and navigate to `dev-tools`, and run `docker compose up` +1. Open up another terminal in the root directory of the project and run `yarn` and then `yarn prisma migrate dev` to setup the database +1. Run `yarn dev` to start the development server + +As part of the first-time bootstrap, Drop creates an invitation with the fixed id of 'admin'. So, to create an admin account, go to: + +http://localhost:3000/auth/register?id=admin + +### Tech Stack + +This repo uses the Nuxt 3 + TailwindCSS stack, with the `yarn` package manager. + +For the database, Drop uses Prisma connected to PostgreSQL. + ## Submitting Pull Requests ### Getting started @@ -132,7 +161,7 @@ and [create an issue](#reporting-issues) or [submit a PR](#submitting-pull-reque ## Translation -If you want to help translate Drop, we would love to have your help! You can do so on our weblate instance. Please make sure to read the [message format syntax](https://vue-i18n.intlify.dev/guide/essentials/syntax.html) page before starting. Failure to do so may result in your translations causing errors in Drop. +If you want to help translate Drop, we would love to have your help! You can do so on our [weblate instance](https://translate.droposs.org/engage/drop/). Please make sure to **read** the [message format syntax](https://vue-i18n.intlify.dev/guide/essentials/syntax.html) page before starting. We use this special syntax to enable high quality translations, and failure to do so may result in your translations **causing errors** in Drop. ## Commit Guidelines diff --git a/README.md b/README.md index ed9d9c6..9270659 100644 --- a/README.md +++ b/README.md @@ -6,13 +6,20 @@ # Drop [![Website](https://img.shields.io/badge/website-000000?style=for-the-badge&logo=About.me&logoColor=white)](https://droposs.org) +[![Docs](https://img.shields.io/badge/DOCS-black?style=for-the-badge&logo=docusaurus)](https://docs.droposs.org/) [![Static Badge](https://img.shields.io/badge/FORUM-blue?style=for-the-badge)](https://forum.droposs.org) [![GitHub License](https://img.shields.io/badge/AGPL--3.0-red?style=for-the-badge)](LICENSE) [![Discord](https://img.shields.io/badge/Discord-5865F2?style=for-the-badge&logo=discord&logoColor=white)](https://discord.gg/ACq4qZp4a9) [![Open Collective](https://img.shields.io/badge/OpenCollective-1F87FF?style=for-the-badge&logo=OpenCollective&logoColor=white)](https://opencollective.com/drop-oss) +[![Weblate project translated](https://img.shields.io/weblate/progress/drop?server=https%3A%2F%2Ftranslate.droposs.org&style=for-the-badge&logo=weblate) +](https://translate.droposs.org/engage/drop/) Drop is an open-source game distribution platform, like GameVault or Steam. It's designed to distribute and shared DRM-free game quickly, all while being incredibly flexible, beautiful and fast. +
+Drop Screenshot +
+ ## Philosophy 1. Drop is flexible. While abstractions and interfaces can make the codebase more complicated, the flexibility is worth it. @@ -21,58 +28,10 @@ Drop is an open-source game distribution platform, like GameVault or Steam. It's ## Deployment -To just deploy Drop, we've set up a simple docker compose file in deploy-template. - -1. Generate a [GiantBomb API Key](https://www.giantbomb.com/api/) -2. Navigate to the deploy-template directory in your terminal (`cd deploy-template`) -3. Edit the compose.yml file (`nano compose.yml`) and copy your GiamtBomb API Key into the GIANT_BOMB_API_KEY environment variable -4. Run `docker compose up -d` - -Your drop server should now be running. To register the admin user, navigate to http://your.drop.server.ip:3000/register?id=admin -and fill in the required forms - -### Adding a game - -To add a game to the drop library, do as follows: - -1. Ensure that the current user owns the library folder with `sudo chown -R $(id -u $(whoami)) library` -2. `cd library` -3. `mkdir ` with the name of the game which you would like to register -4. `cd ` -5. `mkdir ` Upload files for the specific game version to this folder -6. Navigate to http://your.drop.server.ip:3000/ -7. Import game metadata (uses GiantBomb API Key) by selecting the game and specifying which entry to import -8. Navigate to http://your.drop.server.ip:3000/admin/library -9. You should see the game which you have just imported listed in this menu. There should be a notification that "Drop has detected you have new versions of this game to import". Select import here. -10. Select the game version to import and thus fill in fields as required. - -## Tech Stack - -This repo uses the Nuxt 3 + TailwindCSS stack, with the `yarn` package manager. - -For the database, Drop uses Prisma connected to PostgreSQL. - -## Development - -To get started with development, you need `yarn --optional` and `docker compose` installed (or know how to set up a PostgreSQL database). - -### Note: `--optional` flag is **REQUIRED** - -Drop uses a utility package called droplet that's written in Rust. It has builts for Linux (GNU) and Windows, and they are set up as optional packages. `npm` installs these by default, but `yarn` needs the `--optional` flag. - -Steps: - -1. Run `git submodule update --init --recursive` to setup submodules -1. Copy the `.env.example` to `.env` and add your GiantBomb metadata key (more metadata providers coming) -1. Create the `.data` directory with `mkdir .data` -1. Ensure that your user owns the `.data` directory with `sudo chown -R $(id -u $(whoami))` -1. Open up a terminal and navigate to `dev-tools`, and run `docker compose up` -1. Open up another terminal in the root directory of the project and run `yarn` and then `yarn dev` to start the dev server - -As part of the first-time bootstrap, Drop creates an invitation with the fixed id of 'admin'. So, to create an admin account, go to: - -http://localhost:3000/auth/register?id=admin +See our documentation on how to [deploy Drop](https://docs.droposs.org/docs/guides/quickstart) for more information. ## Contributing -Please see the [in-depth contributing guide](CONTRIBUTING.md) +Please see the [in-depth contributing guide](CONTRIBUTING.md). The guide includes information on how to set up the project, how to contribute code, how to report issues, and even how to effectively translate Drop. + +[![Drop Translation Progress](https://translate.droposs.org/widget/drop/horizontal-auto.svg)](https://translate.droposs.org/engage/drop/) diff --git a/components/DropLogo.vue b/components/DropLogo.vue index 8645c5b..7dde700 100644 --- a/components/DropLogo.vue +++ b/components/DropLogo.vue @@ -1,5 +1,6 @@ -

+ diff --git a/pages/setup.vue b/pages/setup.vue index 9e0e5ed..2acdc1d 100644 --- a/pages/setup.vue +++ b/pages/setup.vue @@ -85,9 +85,15 @@ v-else-if="!useModal" class="bg-zinc-950/30 flex items-center justify-center" > -

+ +

diff --git a/public/robots.txt b/public/robots.txt index 8b13789..1f53798 100644 --- a/public/robots.txt +++ b/public/robots.txt @@ -1 +1,2 @@ - +User-agent: * +Disallow: /