Ce petit site Internet permet de télécharger des addons depuis le GmodStore sans passer par l’interface en ligne, mais en s'appuyant sur son API. Cette solution est particulièrement utile lorsqu'un propriétaire de compte souhaite offrir à des tiers la possibilité de télécharger ses addons créés ou achetés, sans leur communiquer ses identifiants de connexion. C'est une alternative sécurisée aux « accès secondaires ». Le propriétaire doit simplement générer un jeton d'accès avec des permissions limitées, qu'il pourra ensuite partager avec les personnes autorisées.
Les jetons peuvent être générés à cette adresse : https://www.gmodstore.com/settings/personal-access-tokens. Ils doivent comporter les autorisations suivantes : products:read
, product-versions:read
, product-versions:download
, users:read
et user-purchases:read
. Une fois créés, le site Internet vous indique la démarche à suivre.
Auparavant, ce projet était développé en PHP 🐘 (disponible via la branche no-svelte
), car l'API GmodStore avait restreint les en-têtes CORS, empêchant toute communication directe depuis un navigateur. Depuis, cette restriction a été levée, ce qui permet désormais d'utiliser le framework Svelte 🔥 pour interagir directement avec leur API. Cette migration a supprimé la nécessité d'un serveur intermédiaire, améliorant ainsi la confidentialité des données en exécutant l'intégralité du site Internet côté client, tout en optimisant ses performances.
[!IMPORTANT] L'entièreté du code de ce projet est commenté dans ma langue natale (en français) et n'est pas voué à être traduit en anglais par soucis de simplicité de développement.
[!WARNING] Le déploiement en environnement de production nécessite un serveur Web déjà configuré comme Nginx, Apache ou Caddy pour servir les fichiers statiques générés par Vite.
npm install
;npm run dev
.npm install
;npm run build
;[!TIP] Pour tester le projet, vous pouvez également utiliser Docker. Une fois installé, il suffit de lancer l'image Docker de développement à l'aide de la commande
docker compose up --detach --build
. Le site devrait être accessible à l'adresse suivante : http://localhost:5173/. Si vous souhaitez travailler sur le projet avec Docker, vous devez utiliser la commandedocker compose watch --no-up
pour que vos changements locaux soient automatiquement synchronisés avec le conteneur. 🐳
[!CAUTION] L'image Docker ne peut pas et n'a pas été conçue pour fonctionner dans un environnement de production. Ce projet génère des fichiers statiques que vous devez servir avec un serveur Web déjà configuré et respectant aux bonnes pratiques de sécurité et d'optimisation. ⚠️
Ce site Internet n'est en aucun cas affilié à GmodStore, à l'exception du fait que j'utilise leur formidable API pour vous fournir ce service.
This small website lets you download addons from the GmodStore without using the online interface, but by relying on its API. This is particularly useful when an account owner wants to offer third parties a way to download created or purchased addons, without providing personal credentials. It's a secure alternative to "secondary access". The owner simply needs to generate an access token with limited permissions, which can then be shared with authorized persons.
Tokens can be generated at this address: https://www.gmodstore.com/settings/personal-access-tokens. They must have the following permissions: products:read
, product-versions:read
, product-versions:download
, users:read
and user-purchases:read
. Once created, the website tells you what to do.
Previously, this project was developed in PHP 🐘 (available through the no-svelte
branch), because the GmodStore API restricted CORS headers, preventing direct communication from a browser. This restriction has since been removed, allowing usage of Svelte 🔥 framework to communicate directly with their API. This migration has eliminated need for an intermediary server, improving data privacy by running the entire website client-side, while optimizing its performance.
[!IMPORTANT] The whole code of this project is commented in my native language (in French) and will not be translated in English for easier programming.
[!WARNING] Deployment in a production environment requires a pre-configured web server such as Nginx, Apache, or Caddy to serve the static files generated by Vite.
npm install
;npm run dev
.npm install
;npm run build
;npm prune --production
;[!TIP] To try the project, you can also use Docker installed. Once installed, simply start the development Docker image with
docker compose up --detach --build
command. The website should be available at http://localhost:5173/. If you want to work on the project with Docker, you need to usedocker compose watch --no-up
to automatically synchronize your local changes with the container. 🐳
[!CAUTION] The Docker image cannot and was not designed to run in a production environment. This project generates static files that must be served with a pre-configured web server adhering to security and optimization best practices. ⚠️
This website is in no way affiliated with GmodStore, except that I use their amazing API to provide you this service.