diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index e244c816..8045e05d 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 5bb86362..9055675c 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 69ae3078..33cc5d0e 100644 --- a/README.md +++ b/README.md @@ -6,73 +6,32 @@ # 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 is an open-source game distribution platform, similar to GameVault or Steam. It's designed to distribute and share DRM-free games 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. -2. Drop is secure. The nature of Drop means an instance can never be accessible without authentication. In line with #1, Drop also supports a huge variety of authentication mechanisms, from a username/password to SSO. -3. Drop is user-friendly. The interface is designed to be clean and simple to use, with complexity available to the users who want it. +1. Drop is flexible. While abstractions and interfaces can complicate the codebase, the flexibility is worth it. +2. Drop is secure. The nature of Drop means an instance can never be accessible without authentication. In line with #1, Drop also supports a huge variety of authentication mechanisms, from username/password to SSO. +3. Drop is user-friendly. The interface is designed to be clean and simple to use, with advanced features available to users who want them. ## 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 verions 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/app.vue b/app.vue index c70e8047..26c93ff8 100644 --- a/app.vue +++ b/app.vue @@ -4,10 +4,52 @@ +
+
+ {{ + $t("errors.externalUrl.title") + }} + {{ + $t("errors.externalUrl.subtitle") + }} +
+ +