{"id":17004236,"url":"https://github.com/ppfeufer/aa-sov-timer","last_synced_at":"2026-02-27T13:23:58.554Z","repository":{"id":39797237,"uuid":"311501577","full_name":"ppfeufer/aa-sov-timer","owner":"ppfeufer","description":null,"archived":false,"fork":false,"pushed_at":"2025-04-07T20:39:32.000Z","size":3977,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-07T21:34:57.548Z","etag":null,"topics":["allianceauth","django","python","sovereignty-timer"],"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-10T00:36:03.000Z","updated_at":"2025-04-07T20:39:34.000Z","dependencies_parsed_at":"2024-01-02T00:32:07.197Z","dependency_job_id":"2f4c7374-e18e-45ae-a05e-3f7986746ec4","html_url":"https://github.com/ppfeufer/aa-sov-timer","commit_stats":{"total_commits":433,"total_committers":6,"mean_commits":72.16666666666667,"dds":0.3048498845265589,"last_synced_commit":"617f94bf7e3f929e0a3af4c9eb99eb0d0a1d462d"},"previous_names":[],"tags_count":50,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ppfeufer%2Faa-sov-timer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ppfeufer%2Faa-sov-timer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ppfeufer%2Faa-sov-timer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ppfeufer%2Faa-sov-timer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ppfeufer","download_url":"https://codeload.github.com/ppfeufer/aa-sov-timer/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248529427,"owners_count":21119507,"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","python","sovereignty-timer"],"created_at":"2024-10-14T04:43:08.011Z","updated_at":"2026-02-27T13:23:58.542Z","avatar_url":"https://github.com/ppfeufer.png","language":"Python","readme":"# AA Sovereignty Timer\u003ca name=\"aa-sovereignty-timer\"\u003e\u003c/a\u003e\n\n[![Version](https://img.shields.io/pypi/v/aa-sov-timer?label=release \"Version\")](https://pypi.org/project/aa-sov-timer/)\n[![License](https://img.shields.io/badge/license-GPLv3-green \"License\")](https://pypi.org/project/aa-sov-timer/)\n[![Python](https://img.shields.io/pypi/pyversions/aa-sov-timer \"Python\")](https://pypi.org/project/aa-sov-timer/)\n[![Django](https://img.shields.io/pypi/djversions/aa-sov-timer?label=django \"Django\")](https://pypi.org/project/aa-sov-timer/)\n![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit\u0026logoColor=white)\n[![pre-commit.ci status](https://results.pre-commit.ci/badge/github/ppfeufer/aa-sov-timer/master.svg)](https://results.pre-commit.ci/latest/github/ppfeufer/aa-sov-timer/master)\n[![Code Style: black](https://img.shields.io/badge/code%20style-black-000000.svg \"Code Style: black\")](http://black.readthedocs.io/en/latest/)\n[![Automated Checks](https://github.com/ppfeufer/aa-sov-timer/actions/workflows/automated-checks.yml/badge.svg \"Automated Checks\")](https://github.com/ppfeufer/aa-sov-timer/actions/workflows/automated-checks.yml)\n[![codecov](https://codecov.io/gh/ppfeufer/aa-sov-timer/branch/master/graph/badge.svg?token=J9PBF0HM8C \"codecov\")](https://codecov.io/gh/ppfeufer/aa-sov-timer)\n[![Translation status](https://weblate.ppfeufer.de/widget/alliance-auth-apps/aa-sov-timer/svg-badge.svg)](https://weblate.ppfeufer.de/engage/alliance-auth-apps/)\n[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.1-4baaaa.svg \"Contributor Covenant\")](https://github.com/ppfeufer/aa-sov-timer/blob/master/CODE_OF_CONDUCT.md)\n[![Discord](https://img.shields.io/discord/399006117012832262?label=discord)](https://discord.gg/fjnHAmk)\n\n[![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/N4N8CL1BY)\n\nSovereignty campaign overview for Alliance Auth.\n\n______________________________________________________________________\n\n\u003c!-- mdformat-toc start --slug=github --maxlevel=6 --minlevel=2 --\u003e\n\n- [Screenshots](#screenshots)\n  - [All Timers](#all-timers)\n  - [Upcoming Timers (Filtered)](#upcoming-timers-filtered)\n  - [Active Timers (Filtered)](#active-timers-filtered)\n- [Installation](#installation)\n  - [Bare Metal Installation](#bare-metal-installation)\n    - [Step 1: Installing the App](#step-1-installing-the-app)\n    - [Step 2: Update Your AA Settings](#step-2-update-your-aa-settings)\n    - [Step 3: Finalizing the Installation](#step-3-finalizing-the-installation)\n    - [Step 4: Preload EVE SDE Data](#step-4-preload-eve-sde-data)\n    - [Step 5: Restart Supervisor](#step-5-restart-supervisor)\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-1)\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 Steps / Configuration](#common-steps--configuration)\n    - [(Optional) Allow Public Views](#optional-allow-public-views)\n- [Updating](#updating)\n  - [Bare Metal Installation](#bare-metal-installation-1)\n  - [Docker Installation](#docker-installation-1)\n  - [Common Steps](#common-steps)\n- [Changelog](#changelog)\n- [Translation Status](#translation-status)\n- [Contributing](#contributing)\n\n\u003c!-- mdformat-toc end --\u003e\n\n______________________________________________________________________\n\n## Screenshots\u003ca name=\"screenshots\"\u003e\u003c/a\u003e\n\n### All Timers\u003ca name=\"all-timers\"\u003e\u003c/a\u003e\n\n![AA Sov Timer DashboardAA Sov Timer (All Timers)](https://raw.githubusercontent.com/ppfeufer/aa-sov-timer/master/docs/images/presentation/aa-sov-timer.jpg \"AA Sov Timer (All Timers)\")\n\n### Upcoming Timers (Filtered)\u003ca name=\"upcoming-timers-filtered\"\u003e\u003c/a\u003e\n\n![AA Sov Timer (Upcoming Timers)](https://raw.githubusercontent.com/ppfeufer/aa-sov-timer/master/docs/images/presentation/aa-sov-timer-upcoming-filtered.jpg \"AA Sov Timer (Upcoming Timers)\")\n\n### Active Timers (Filtered)\u003ca name=\"active-timers-filtered\"\u003e\u003c/a\u003e\n\n![AA Sov Timer (Active Timers)](https://raw.githubusercontent.com/ppfeufer/aa-sov-timer/master/docs/images/presentation/aa-sov-timer-active-filtered.jpg \"AA Sov Timer (Active Timers)\")\n\n## Installation\u003ca name=\"installation\"\u003e\u003c/a\u003e\n\n\u003e [!IMPORTANT]\n\u003e\n\u003e Please make sure you meet all preconditions before you proceed.\n\n\u003e [!IMPORTANT]\n\u003e\n\u003e This app is utilising features that are only available in Alliance Auth \u003e= 4.12.0.\n\u003e Please make sure to update your Alliance Auth instance before installing this app,\n\u003e otherwise, an update to Alliance Auth will be pulled in unsupervised.\n\n- AA Sovereignty Timer is a plugin for Alliance Auth. If you don't have Alliance\n  Auth running already, please install it first before proceeding. (see the official\n  [AA installation guide](https://allianceauth.readthedocs.io/en/latest/installation/allianceauth.html) for details)\n\n### Bare Metal Installation\u003ca name=\"bare-metal-installation\"\u003e\u003c/a\u003e\n\n#### Step 1: Installing the App\u003ca name=\"step-1-installing-the-app\"\u003e\u003c/a\u003e\n\nMake sure you're in the virtual environment (venv) of your Alliance Auth installation.\nThen install the latest version:\n\n```shell\npip install aa-sov-timer==4.0.1\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 (`local.py`) as follows:\n\n- Modify `INSTALLED_APPS` to include the following entries:\n\n  ```python\n  INSTALLED_APPS = [\n      # ...\n      \"eve_sde\",  # Only if not already added for another app\n      \"sovtimer\",\n      # ...\n  ]\n\n  # This line right below the `INSTALLED_APPS` list, and only if not already added for another app\n  INSTALLED_APPS = [\"modeltranslation\"] + INSTALLED_APPS\n  ```\n\n- Add the Scheduled Tasks\n\n  ```python\n  if \"sovtimer\" in INSTALLED_APPS:\n      # AA Sovereignty Timer - Run sovereignty related updates every 30 seconds\n      CELERYBEAT_SCHEDULE[\"sovtimer.tasks.run_sov_campaign_updates\"] = {\n          \"task\": \"sovtimer.tasks.run_sov_campaign_updates\",\n          \"schedule\": 30,\n      }\n\n  if \"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\nCopy static files and run migrations\n\n```shell\npython manage.py collectstatic\npython manage.py migrate\n```\n\n#### Step 4: Preload EVE SDE Data\u003ca name=\"step-4-preload-eve-sde-data\"\u003e\u003c/a\u003e\n\nAA Sovereignty Timer uses EVE SDE data to map IDs to names for solar systems,\nregions and constellations. So you need to preload some data from SDE once.\nIf you already have run this command, you can skip this step.\n\n```shell\npython manage.py esde_load_sde\npython manage.py sovtimer_load_initial_data\n```\n\nBoth commands might take a moment or two, so be patient ...\n\n#### Step 5: Restart Supervisor\u003ca name=\"step-5-restart-supervisor\"\u003e\u003c/a\u003e\n\nOnce you have completed all previous steps, restart your AA supervisor service to apply the changes.\n\n**Continue with the [Common Steps / Configuration](#common-steps--configuration) below to finish the installation.**\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```text\naa-sov-timer==4.0.1\n```\n\n#### Step 2: Update Your AA Settings\u003ca name=\"step-2-update-your-aa-settings-1\"\u003e\u003c/a\u003e\n\nConfigure your AA settings (`conf/local.py`) as follows:\n\n- Modify `INSTALLED_APPS` to include the following entries:\n\n  ```python\n  INSTALLED_APPS = [\n      # ...\n      \"eve_sde\",  # Only if not already added for another app\n      \"sovtimer\",\n      # ...\n  ]\n\n  # This line right below the `INSTALLED_APPS` list, and only if not already added for another app\n  INSTALLED_APPS = [\"modeltranslation\"] + INSTALLED_APPS\n  ```\n\n- Add the Scheduled Tasks\n\n  ```python\n  if \"sovtimer\" in INSTALLED_APPS:\n      # AA Sovereignty Timer - Run sovereignty related updates every 30 seconds\n      CELERYBEAT_SCHEDULE[\"sovtimer.tasks.run_sov_campaign_updates\"] = {\n          \"task\": \"sovtimer.tasks.run_sov_campaign_updates\",\n          \"schedule\": 30,\n      }\n\n  if \"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, copy static files and load EVE SDE data:\n\n```shell\ndocker compose exec allianceauth_gunicorn bash\n\nauth collectstatic\nauth migrate\n\nauth esde_load_sde\nauth sovtimer_load_initial_data\n```\n\n**Continue with the [Common Steps / Configuration](#common-steps--configuration) below to finish the installation.**\n\n### Common Steps / Configuration\u003ca name=\"common-steps--configuration\"\u003e\u003c/a\u003e\n\n#### (Optional) Allow Public Views\u003ca name=\"optional-allow-public-views\"\u003e\u003c/a\u003e\n\nThis app supports AA's feature of public views. \\\nTo allow this feature, please add `\"sovtimer\",`, to the list of `APPS_WITH_PUBLIC_VIEWS` in your `local.py` or `conf/local.py` for Docker:\n\n```python\nAPPS_WITH_PUBLIC_VIEWS = [\n    \"sovtimer\",\n]\n```\n\n\u003e [!NOTE]\n\u003e\n\u003e If you don't have a list for `APPS_WITH_PUBLIC_VIEWS` yet, then add the whole\n\u003e block from here.\n\nRestart your supervisor service or your Docker containers to apply the changes.\n\n## Updating\u003ca name=\"updating\"\u003e\u003c/a\u003e\n\n### Bare Metal Installation\u003ca name=\"bare-metal-installation-1\"\u003e\u003c/a\u003e\n\nTo update your existing installation of AA Sovereignty Timer, first enable your\nvirtual environment.\n\nThen run the following commands from your AA project directory (the one that\ncontains `manage.py`).\n\n```shell\npip install aa-sov-timer==4.0.1\n\npython manage.py collectstatic\npython manage.py migrate\n```\n\nFinally, restart your AA supervisor service.\n\n### Docker Installation\u003ca name=\"docker-installation-1\"\u003e\u003c/a\u003e\n\nTo update your existing installation of AA Sovereignty Timer, all you need to do is to update the respective line in your `conf/requirements.txt` file to the latest version.\n\n```text\naa-sov-timer==4.0.1\n```\n\nNow rebuild your containers and restart them:\n\n```shell\ndocker compose build --no-cache\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### Common Steps\u003ca name=\"common-steps\"\u003e\u003c/a\u003e\n\nIt is possible that some versions need some more changes. Always read the [changelog] and/or [release notes](https://github.com/ppfeufer/aa-sov-timer/releases) to find out more.\n\n## Changelog\u003ca name=\"changelog\"\u003e\u003c/a\u003e\n\nSee [CHANGELOG.md][changelog] for a detailed list of changes and improvements.\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-sov-timer/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\nDo you 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[changelog]: https://github.com/ppfeufer/aa-sov-timer/blob/master/CHANGELOG.md\n[contribution guidelines]: https://github.com/ppfeufer/aa-sov-timer/blob/master/CONTRIBUTING.md \"Contribution Guidelines\"\n[weblate engage]: https://weblate.ppfeufer.de/engage/alliance-auth-apps/ \"Weblate Translations\"\n","funding_links":["https://ko-fi.com/ppfeufer","https://ko-fi.com/N4N8CL1BY"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fppfeufer%2Faa-sov-timer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fppfeufer%2Faa-sov-timer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fppfeufer%2Faa-sov-timer/lists"}