{"id":15313874,"url":"https://github.com/itsdouges/armory-services","last_synced_at":"2025-10-08T23:31:52.809Z","repository":{"id":36085707,"uuid":"40386425","full_name":"itsdouges/armory-services","owner":"itsdouges","description":"🛡 Guild Wars 2 Armory Services | api.gw2armory.com","archived":true,"fork":false,"pushed_at":"2018-11-10T04:30:45.000Z","size":1192,"stargazers_count":9,"open_issues_count":21,"forks_count":5,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-10-02T08:43:31.007Z","etag":null,"topics":["armory","docker","guild","guildwars2","javascript","nodejs"],"latest_commit_sha":null,"homepage":"https://api.gw2armory.com","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause-clear","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/itsdouges.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-08-08T00:40:41.000Z","updated_at":"2023-01-28T15:59:48.000Z","dependencies_parsed_at":"2022-09-01T00:20:54.893Z","dependency_job_id":null,"html_url":"https://github.com/itsdouges/armory-services","commit_stats":null,"previous_names":[],"tags_count":38,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/itsdouges%2Farmory-services","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/itsdouges%2Farmory-services/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/itsdouges%2Farmory-services/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/itsdouges%2Farmory-services/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/itsdouges","download_url":"https://codeload.github.com/itsdouges/armory-services/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":235300326,"owners_count":18967734,"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","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":["armory","docker","guild","guildwars2","javascript","nodejs"],"created_at":"2024-10-01T08:43:29.747Z","updated_at":"2025-10-08T23:31:47.439Z","avatar_url":"https://github.com/itsdouges.png","language":"JavaScript","funding_links":["https://www.patreon.com/bePatron?u=5546924"],"categories":[],"sub_categories":[],"readme":"# api.gw2armory.com\n\n[![Build Status](https://travis-ci.org/madou/armory-services.svg?branch=master)](https://travis-ci.org/madou/armory-services) [![Dependencies](https://david-dm.org/madou/armory-react.svg)](https://david-dm.org/madou/armory-services)\n[![Dev Dependencies](https://david-dm.org/madou/armory-react/dev-status.svg)](https://david-dm.org/madou/armory-services?type=dev) \n[![codecov](https://codecov.io/gh/madou/armory-services/branch/master/graph/badge.svg)](https://codecov.io/gh/madou/armory-services)\n[![Discord](https://img.shields.io/badge/discord-GW2Armory-blue.svg)](https://discord.gg/3BRbV7b)\n[![Patreon](https://img.shields.io/badge/patreon-Become%20a%20Patreon-green.svg)](https://www.patreon.com/bePatron?u=5546924)\n\n## Usage\n\n### Quick start\n\ntl;dr -\u003e develop with `npm run tdd` and `npm run tdd:int`, use `npm run dev` to run local environment.\n\n### User image uploads\n\nTo have image uploads working locally you'll need a valid aws key/secret pair. Run it like so:\n\n```bash\nIMAGE_UPLOAD_ACCESS_KEY_ID=ACCESSKEYHERE IMAGE_UPLOAD_SECRET_ACCESS_KEY=SECRETKEYHERE npm run dev\n```\n\n### Email notifications\n\nTo have email notification working locally you'll need a valid aws key/secret pair. Run it like so:\n\n```bash\nSES_ACCESS_KEY_ID=ACCESSKEYHERE SES_SECRET_ACCESS_KEY=SECRETKEYHERE npm run dev\n```\n\n### Database migrations\n\nEnsure any database migration is backwards compatible with a previous version of the api. This will keep deployments simple and clean.\n\n```bash\nENV={ENV} npm run migrate\n```\n\n#### Migration test runs\n\n##### Prepare step\n\nStarts a database container and exposes it to 127.0.0.1:3306\n\n```bash\nnpm run mtr-prepare\n```\n\n##### Run step\n\nRuns the migration against the test database. Make sure to have your migrations written in `src/migration/scripts`, with the db models in their origin (pre-migrated) state in `src/lib/models`.\n\n```bash\nnpm run mtr\n```\n\n##### Revert step\n\nRun after running test migration to roll back changes.\n\n```bash\nnpm run mtr-revert\n```\n\n## Deployments\n\nDeployments to production are triggered by tagged commits, tag with `npm version major|minor|patch`. Deployments to test are done adhoc and are _almost_ manual.\n\n## Pull Requests\n\nLike to contribute? Look at the [issues](https://github.com/madou/armory-services/issues) tab or contact me on [reddit](https://www.reddit.com/r/gw2armory) or [twitter](https://twitter.com/itsmadou) to find something you'd like to work on, then make a pull request against the `master` branch.\n\n© 2015-present gw2armory.com\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fitsdouges%2Farmory-services","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fitsdouges%2Farmory-services","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fitsdouges%2Farmory-services/lists"}