{"id":17004238,"url":"https://github.com/ppfeufer/aa-srp","last_synced_at":"2026-03-11T14:21:40.518Z","repository":{"id":37038456,"uuid":"310274773","full_name":"ppfeufer/aa-srp","owner":"ppfeufer","description":"SRP Module for Alliance Auth","archived":false,"fork":false,"pushed_at":"2025-03-16T10:05:45.000Z","size":8308,"stargazers_count":2,"open_issues_count":3,"forks_count":6,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-18T13:32:17.954Z","etag":null,"topics":["allianceauth","django","ship-replacement"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ppfeufer.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"ko_fi":"ppfeufer"}},"created_at":"2020-11-05T11:13:47.000Z","updated_at":"2025-03-08T16:03:46.000Z","dependencies_parsed_at":"2023-12-20T15:05:21.678Z","dependency_job_id":"ed92bde5-6339-4ba2-be96-ee498b4fc2e9","html_url":"https://github.com/ppfeufer/aa-srp","commit_stats":{"total_commits":503,"total_committers":2,"mean_commits":251.5,"dds":0.003976143141153132,"last_synced_commit":"28199ce0000f98f0f98e117b8e578f75da290b9d"},"previous_names":[],"tags_count":93,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ppfeufer%2Faa-srp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ppfeufer%2Faa-srp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ppfeufer%2Faa-srp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ppfeufer%2Faa-srp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ppfeufer","download_url":"https://codeload.github.com/ppfeufer/aa-srp/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244986317,"owners_count":20542993,"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":["allianceauth","django","ship-replacement"],"created_at":"2024-10-14T04:43:08.339Z","updated_at":"2026-03-11T14:21:40.510Z","avatar_url":"https://github.com/ppfeufer.png","language":"Python","funding_links":["https://ko-fi.com/ppfeufer","https://ko-fi.com/N4N8CL1BY"],"categories":[],"sub_categories":[],"readme":"# AA SRP\u003ca name=\"aa-srp\"\u003e\u003c/a\u003e\n\n[![Badge: Version]][aa srp on pypi]\n[![Badge: License]][aa srp license]\n[![Badge: Supported Python Versions]][aa srp on pypi]\n[![Badge: Supported Django Versions]][aa srp on pypi]\n![Badge: pre-commit]\n[![Badge: pre-commit.ci status]][pre-commit.ci status]\n[![Badge: Code Style: black]][black code formatter documentation]\n[![Badge: Support Discord]][support discord]\n[![Badge: Automated Tests]][automated tests on github]\n[![Badge: Code Coverage]][aa srp on codecov]\n[![Badge: Translation Status]][weblate engage]\n[![Badge: Contributor Covenant]][code of conduct]\n\n[![Badge: Buy me a coffee]][ppfeufer on ko-fi]\n\nSRP Module for [Alliance Auth]\n\n______________________________________________________________________\n\n\u003c!-- mdformat-toc start --slug=github --maxlevel=6 --minlevel=2 --\u003e\n\n- [Overview](#overview)\n  - [Features](#features)\n  - [Screenshots](#screenshots)\n    - [Dashboard](#dashboard)\n    - [Dashboard (View All)](#dashboard-view-all)\n    - [Your SRP Requests](#your-srp-requests)\n    - [SRP Requests Overview](#srp-requests-overview)\n    - [SRP Request Details](#srp-request-details)\n- [Installation](#installation)\n  - [Prerequisites](#prerequisites)\n  - [Bare Metal Installation](#bare-metal-installation)\n    - [Step 1: Install the Package](#step-1-install-the-package)\n    - [Step 2: Configure Alliance Auth](#step-2-configure-alliance-auth)\n    - [Step 3: Finalizing the Installation](#step-3-finalizing-the-installation)\n  - [Docker Installation](#docker-installation)\n    - [Step 1: Add the App](#step-1-add-the-app)\n    - [Step 2: Update Your AA Settings](#step-2-update-your-aa-settings)\n    - [Step 3: Build Auth and Restart Your Containers](#step-3-build-auth-and-restart-your-containers)\n    - [Step 4: Finalizing the Installation](#step-4-finalizing-the-installation)\n  - [Common Installation Steps](#common-installation-steps)\n    - [Setting up Permissions](#setting-up-permissions)\n    - [(Optional) Import From Built-in SRP Module](#optional-import-from-built-in-srp-module)\n      - [Bare Metal Installation](#bare-metal-installation-1)\n      - [Docker Installation](#docker-installation-1)\n    - [(Optional) Settings for Discord Proxy (If Used)](#optional-settings-for-discord-proxy-if-used)\n      - [Docker Installation](#docker-installation-2)\n- [Updating](#updating)\n  - [Bare Metal Installation](#bare-metal-installation-2)\n  - [Docker Installation](#docker-installation-3)\n- [Permissions](#permissions)\n- [Changelog](#changelog)\n- [Translation Status](#translation-status)\n- [Contributing](#contributing)\n\n\u003c!-- mdformat-toc end --\u003e\n\n______________________________________________________________________\n\n## Overview\u003ca name=\"overview\"\u003e\u003c/a\u003e\n\n### Features\u003ca name=\"features\"\u003e\u003c/a\u003e\n\n- Overview of SRP links\n- Overview of your own SRP requests and their status\n- Accepting kill mails from [zKillboard], [EveTools Killboard] and [EVE-Kill]\n- SRP Request administration is mostly done via ajax and without page reloads\n- Use modern DataTables with filters where ever they're useful\n- Tables fully searchable and sortable\n- Mandatory reason on SRP reject\n- Notifications in AA with detailed information on SRP rejection\n- Discord notification via PM to the user on SRP request approval or rejection, if\n  either [AA-Discordbot], [Discord Notify] or [Discord Proxy] is installed\n- Notify your SRP team (optional) in their Discord channel about new SRP requests, if\n  [AA-Discordbot] or [Discord Proxy] is installed\n\n### Screenshots\u003ca name=\"screenshots\"\u003e\u003c/a\u003e\n\n#### Dashboard\u003ca name=\"dashboard\"\u003e\u003c/a\u003e\n\n![Image: AA SRP Dashboard]\n\n#### Dashboard (View All)\u003ca name=\"dashboard-view-all\"\u003e\u003c/a\u003e\n\n![Image: AA SRP Dashboard (View All)]\n\n#### Your SRP Requests\u003ca name=\"your-srp-requests\"\u003e\u003c/a\u003e\n\n![Image: Your SRP Requests View]\n\n#### SRP Requests Overview\u003ca name=\"srp-requests-overview\"\u003e\u003c/a\u003e\n\n![Image: SRP Requests Overview]\n\n#### SRP Request Details\u003ca name=\"srp-request-details\"\u003e\u003c/a\u003e\n\n![Image: SRP Request Details]\n\n## Installation\u003ca name=\"installation\"\u003e\u003c/a\u003e\n\n### Prerequisites\u003ca name=\"prerequisites\"\u003e\u003c/a\u003e\n\n\u003e [!IMPORTANT]\n\u003e\n\u003e Please make sure you meet all prerequisites before you proceed!\n\n- AA SRP is a plugin for Alliance Auth. If you don't have Alliance Auth running\n  already, please install it first before proceeding. (see the official\n  [Alliance Auth installation guide] for details)\n- AA SRP needs at least Alliance Auth v4.12.0\n\n### Bare Metal Installation\u003ca name=\"bare-metal-installation\"\u003e\u003c/a\u003e\n\n#### Step 1: Install the Package\u003ca name=\"step-1-install-the-package\"\u003e\u003c/a\u003e\n\nMake sure you're in the virtual environment (venv) of your Alliance Auth\ninstallation Then install the latest release directly from PyPi.\n\n```shell\npip install aa-srp==4.2.2\n```\n\n#### Step 2: Configure Alliance Auth\u003ca name=\"step-2-configure-alliance-auth\"\u003e\u003c/a\u003e\n\nThis is fairly simple, just add the following to the `INSTALLED_APPS` of your `local.py`\n\nConfigure your AA settings (`local.py`) as follows:\n\n```python\nINSTALLED_APPS += [\n    # …\n    \"eve_sde\",  # Only if not already added for another app\n    \"aasrp\",\n    # …\n]\n\n# This line is right below the `INSTALLED_APPS` list, and only if not already added for another app\nINSTALLED_APPS = [\"modeltranslation\"] + INSTALLED_APPS\n```\n\nAdd the following new task to ensure the SDE data is kept up to date:\n\n```python\nif \"eve_sde\" in INSTALLED_APPS:\n    # Run at 12:00 UTC each day\n    CELERYBEAT_SCHEDULE[\"EVE SDE :: Check for SDE Updates\"] = {\n        \"task\": \"eve_sde.tasks.check_for_sde_updates\",\n        \"schedule\": crontab(minute=\"0\", hour=\"12\"),\n    }\n```\n\n#### Step 3: Finalizing the Installation\u003ca name=\"step-3-finalizing-the-installation\"\u003e\u003c/a\u003e\n\nRun static files collection and migrations\n\nMigrate and populate SDE:\n\n```shell\npython manage.py migrate eve_sde\npython manage.py esde_load_sde\n```\n\nMigare the app and run static collection:\n\n```shell\npython manage.py migrate aasrp\npython manage.py collectstatic --noinput\n```\n\nRestart your supervisor services for Auth\n\n### Docker Installation\u003ca name=\"docker-installation\"\u003e\u003c/a\u003e\n\n#### Step 1: Add the App\u003ca name=\"step-1-add-the-app\"\u003e\u003c/a\u003e\n\nAdd the app to your `conf/requirements.txt`\n\n```requirements\naa-srp==4.2.2\n```\n\n#### Step 2: Update Your AA Settings\u003ca name=\"step-2-update-your-aa-settings\"\u003e\u003c/a\u003e\n\nConfigure your AA settings as (`conf/local.py`) follows:\n\n```python\nINSTALLED_APPS += [\n    # …\n    \"eve_sde\",  # Only if not already added for another app\n    \"aasrp\",\n    # …\n]\n\n# This line is right below the `INSTALLED_APPS` list, and only if not already added for another app\nINSTALLED_APPS = [\"modeltranslation\"] + INSTALLED_APPS\n```\n\nAdd the following new task to ensure the SDE data is kept up to date:\n\n```python\nif \"eve_sde\" in INSTALLED_APPS:\n    # Run at 12:00 UTC each day\n    CELERYBEAT_SCHEDULE[\"EVE SDE :: Check for SDE Updates\"] = {\n        \"task\": \"eve_sde.tasks.check_for_sde_updates\",\n        \"schedule\": crontab(minute=\"0\", hour=\"12\"),\n    }\n```\n\n#### Step 3: Build Auth and Restart Your Containers\u003ca name=\"step-3-build-auth-and-restart-your-containers\"\u003e\u003c/a\u003e\n\n```shell\ndocker compose build --no-cache\ndocker compose --env-file=.env up -d\n```\n\n#### Step 4: Finalizing the Installation\u003ca name=\"step-4-finalizing-the-installation\"\u003e\u003c/a\u003e\n\nRun migrations and copy static files:\n\n```shell\ndocker compose exec allianceauth_gunicorn bash\n\nauth migrate eve_sde\nauth esde_load_sde\n\nauth migrate aasrp\nauth collectstatic\n```\n\n### Common Installation Steps\u003ca name=\"common-installation-steps\"\u003e\u003c/a\u003e\n\n#### Setting up Permissions\u003ca name=\"setting-up-permissions\"\u003e\u003c/a\u003e\n\nNow it's time to set up access permissions for your new SRP module. You can do so in\nyour admin backend in the AA SRP section. Read the [Permissions](#permissions)\nsection for more information about the available permissions.\n\n#### (Optional) Import From Built-in SRP Module\u003ca name=\"optional-import-from-built-in-srp-module\"\u003e\u003c/a\u003e\n\n\u003e [!NOTE]\n\u003e\n\u003e This step is only needed when you have been using the built-in SRP module until now.\n\u003e\n\u003e The import process can be done at any given time and doesn't necessarily have to be during the installation.\n\n\u003e [!IMPORTANT]\n\u003e\n\u003e Make sure you don't have any open SRP requests before. All SRP links in the built-in\n\u003e module will be closed during the import process, to make sure to not import any\n\u003e duplicates.\n\nTo import your SRP information from the built-in SRP module, run the following:\n\n##### Bare Metal Installation\u003ca name=\"bare-metal-installation-1\"\u003e\u003c/a\u003e\n\n```shell\npython manage.py aasrp_migrate_srp_data\n```\n\n##### Docker Installation\u003ca name=\"docker-installation-1\"\u003e\u003c/a\u003e\n\n```shell\ndocker compose exec allianceauth_gunicorn bash\n\nauth aasrp_migrate_srp_data\n```\n\n#### (Optional) Settings for Discord Proxy (If Used)\u003ca name=\"optional-settings-for-discord-proxy-if-used\"\u003e\u003c/a\u003e\n\n\u003e [!NOTE]\n\u003e\n\u003e This step is only needed if you want to use Discord notifications and have\n\u003e [Discord Proxy] installed.\n\nIf you are using [Discord Proxy] to send Discord messages, you can configure the host and port in your `local.py` settings.\n\n| Name                | Description                                      | Default     |\n| ------------------- | ------------------------------------------------ | ----------- |\n| `DISCORDPROXY_HOST` | Hostname used to communicate with Discord Proxy. | `localhost` |\n| `DISCORDPROXY_PORT` | Port used to communicate with Discord Proxy.     | `50051`     |\n\n##### Docker Installation\u003ca name=\"docker-installation-2\"\u003e\u003c/a\u003e\n\nIf you have [Discord Proxy] installed via Docker ([see here](https://discordproxy.readthedocs.io/en/latest/operations.html#docker-aa4)), you should set the\nfollowing:\n\n```python\nDISCORDPROXY_HOST = \"allianceauth_discordproxy\"\n```\n\n## Updating\u003ca name=\"updating\"\u003e\u003c/a\u003e\n\n### Bare Metal Installation\u003ca name=\"bare-metal-installation-2\"\u003e\u003c/a\u003e\n\nTo update your existing installation of AA SRP, first enable your virtual environment\n(venv) of your Alliance Auth installation.\n\nThen run the following command to update AA SRP to the latest version.\n\n```shell\npip install aa-srp==4.2.2\n\npython manage.py collectstatic\npython manage.py migrate\n\nredis-cli flushall\n```\n\nRestart your supervisor services for Auth.\n\n### Docker Installation\u003ca name=\"docker-installation-3\"\u003e\u003c/a\u003e\n\nTo update your existing installation of AA SRP, first update the version in your\n`conf/requirements.txt` to the latest version.\n\n```requirements\naa-srp==4.2.2\n```\n\nThen build your Auth container and restart your containers.\n\n```shell\ndocker compose build\ndocker compose --env-file=.env up -d\n```\n\nAfter that, run the following commands to update your database and static files:\n\n```shell\ndocker compose exec allianceauth_gunicorn bash\n\nauth collectstatic\nauth migrate\n```\n\n## Permissions\u003ca name=\"permissions\"\u003e\u003c/a\u003e\n\n| ID                    | Description                  | Notes                                                                                                       |\n| --------------------- | ---------------------------- | ----------------------------------------------------------------------------------------------------------- |\n| `basic_access`        | Can access the AA SRP module | Your line members should have this permission.                                                              |\n| `create_srp`          | Can create new SRP links     | Your FCs should have this permission.                                                                       |\n| `manage_srp`          | Can manage SRP               | Users with this permission can manage the AA SRP Module. Like changing and removing SRP links and requests. |\n| `manage_srp_requests` | Can manage SRP requests      | Users with this permission can manage the SRP requests. Like changing and removing SRP requests.            |\n\n## Changelog\u003ca name=\"changelog\"\u003e\u003c/a\u003e\n\nSee [CHANGELOG.md]\n\n## Translation Status\u003ca name=\"translation-status\"\u003e\u003c/a\u003e\n\n[![Translation status](https://weblate.ppfeufer.de/widget/alliance-auth-apps/aa-srp/multi-auto.svg)](https://weblate.ppfeufer.de/engage/alliance-auth-apps/)\n\nDo you want to help translate this app into your language or improve the existing\ntranslation? - [Join our team of translators][weblate engage]!\n\n## Contributing\u003ca name=\"contributing\"\u003e\u003c/a\u003e\n\nYou want to contribute to this project? That's cool!\n\nPlease make sure to read the [Contribution Guidelines].\\\n(I promise, it's not much, just some basics)\n\n\u003c!-- Links --\u003e\n\n[aa srp license]: https://github.com/ppfeufer/aa-srp/blob/master/LICENSE\n[aa srp on codecov]: https://codecov.io/gh/ppfeufer/aa-srp\n[aa srp on pypi]: https://pypi.org/project/aa-srp/\n[aa-discordbot]: https://github.com/pvyParts/allianceauth-discordbot \"AA-Discordbot\"\n[alliance auth]: https://gitlab.com/allianceauth/allianceauth \"Alliance Auth\"\n[alliance auth installation guide]: https://allianceauth.readthedocs.io/en/latest/installation/allianceauth.html \"Alliance Auth installation guide\"\n[automated tests on github]: https://github.com/ppfeufer/aa-srp/actions/workflows/automated-checks.yml\n[badge: automated tests]: https://github.com/ppfeufer/aa-srp/actions/workflows/automated-checks.yml/badge.svg \"Automated Tests\"\n[badge: buy me a coffee]: https://ko-fi.com/img/githubbutton_sm.svg \"Buy me a coffee\"\n[badge: code coverage]: https://codecov.io/gh/ppfeufer/aa-srp/branch/master/graph/badge.svg \"Code Coverage\"\n[badge: code style: black]: https://img.shields.io/badge/code%20style-black-000000.svg \"Code Style: black\"\n[badge: contributor covenant]: https://img.shields.io/badge/Contributor%20Covenant-2.1-4baaaa.svg \"Contributor Covenant\"\n[badge: license]: https://img.shields.io/github/license/ppfeufer/aa-srp \"License\"\n[badge: pre-commit]: https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit\u0026logoColor=white \"pre-commit\"\n[badge: pre-commit.ci status]: https://results.pre-commit.ci/badge/github/ppfeufer/aa-srp/master.svg \"pre-commit.ci status\"\n[badge: support discord]: https://img.shields.io/discord/399006117012832262?label=discord \"Support Discord\"\n[badge: supported django versions]: https://img.shields.io/pypi/djversions/aa-srp?label=django \"Supported Django Versions\"\n[badge: supported python versions]: https://img.shields.io/pypi/pyversions/aa-srp \"Supported Python Versions\"\n[badge: translation status]: https://weblate.ppfeufer.de/widget/alliance-auth-apps/aa-srp/svg-badge.svg \"Translation Status\"\n[badge: version]: https://img.shields.io/pypi/v/aa-srp?label=release \"Version\"\n[black code formatter documentation]: http://black.readthedocs.io/en/latest/\n[changelog.md]: https://github.com/ppfeufer/aa-srp/blob/master/CHANGELOG.md \"CHANGELOG.md\"\n[code of conduct]: https://github.com/ppfeufer/aa-srp/blob/master/CODE_OF_CONDUCT.md\n[contribution guidelines]: https://github.com/ppfeufer/aa-srp/blob/master/CONTRIBUTING.md \"Contribution Guidelines\"\n[discord notify]: https://gitlab.com/ErikKalkoken/aa-discordnotify \"Discord Notify\"\n[discord proxy]: https://gitlab.com/ErikKalkoken/discordproxy \"Discord Proxy\"\n[eve-kill]: https://eve-kill.com/ \"EVE-Kill\"\n[evetools killboard]: https://kb.evetools.org/ \"EveTools Killboard\"\n[image: aa srp dashboard]: https://raw.githubusercontent.com/ppfeufer/aa-srp/master/docs/images/aa-srp-dashboard.jpg \"AA SRP Dashboard\"\n[image: aa srp dashboard (view all)]: https://raw.githubusercontent.com/ppfeufer/aa-srp/master/docs/images/aa-srp-dashboard-view-all.jpg \"AA SRP Dashboard (View All)\"\n[image: srp request details]: https://raw.githubusercontent.com/ppfeufer/aa-srp/master/docs/images/aa-srp-request-details.jpg \"SRP Request Details\"\n[image: srp requests overview]: https://raw.githubusercontent.com/ppfeufer/aa-srp/master/docs/images/aa-srp-requests-overview.jpg \"SRP Requests Overview\"\n[image: your srp requests view]: https://raw.githubusercontent.com/ppfeufer/aa-srp/master/docs/images/aa-srp-your-requests.jpg \"Your SRP Requests View\"\n[ppfeufer on ko-fi]: https://ko-fi.com/N4N8CL1BY\n[pre-commit.ci status]: https://results.pre-commit.ci/latest/github/ppfeufer/aa-srp/master \"pre-commit.ci\"\n[support discord]: https://discord.gg/fjnHAmk \"Alliance Auth Support Discord\"\n[weblate engage]: https://weblate.ppfeufer.de/engage/alliance-auth-apps/\n[zkillboard]: https://zkillboard.com/ \"zKillboard\"\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fppfeufer%2Faa-srp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fppfeufer%2Faa-srp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fppfeufer%2Faa-srp/lists"}