This commit is contained in:
Eduardo Pozo 2026-03-12 21:43:01 +01:00 committed by GitHub
commit e8fd54bc5c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 15 additions and 2 deletions

View file

@ -13,6 +13,7 @@ services:
# environment: # environment:
# SKIP_SUPERUSER: "false" # SKIP_SUPERUSER: "false"
# SUPERUSER_API_TOKEN: "" # SUPERUSER_API_TOKEN: ""
# SUPERUSER_API_KEY: ""
# SUPERUSER_EMAIL: "" # SUPERUSER_EMAIL: ""
# SUPERUSER_NAME: "" # SUPERUSER_NAME: ""
# SUPERUSER_PASSWORD: "" # SUPERUSER_PASSWORD: ""

View file

@ -19,18 +19,30 @@ def _read_secret(secret_name: str, default: str | None = None) -> str | None:
su_name = environ.get("SUPERUSER_NAME", "admin") su_name = environ.get("SUPERUSER_NAME", "admin")
su_email = environ.get("SUPERUSER_EMAIL", "admin@example.com") su_email = environ.get("SUPERUSER_EMAIL", "admin@example.com")
su_password = _read_secret("superuser_password", environ.get("SUPERUSER_PASSWORD", "admin")) su_password = _read_secret("superuser_password", environ.get("SUPERUSER_PASSWORD", "admin"))
# Sets the superuser API Token, defaults to widely known default
if not environ.get("SUPERUSER_API_TOKEN"):
print("⚠️ Warning: Defaulting to the old default admin token in your database. This token is widely known; please remove it.")
su_api_token = _read_secret( su_api_token = _read_secret(
"superuser_api_token", "superuser_api_token",
environ.get("SUPERUSER_API_TOKEN", "0123456789abcdef0123456789abcdef01234567"), environ.get("SUPERUSER_API_TOKEN", "0123456789abcdef0123456789abcdef01234567"),
) )
# Sets the superuser API key, defaults to a randomly generated key.
su_api_key = _read_secret(
"superuser_api_key",
environ.get("SUPERUSER_API_KEY"),
)
if not User.objects.filter(username=su_name): if not User.objects.filter(username=su_name):
u = User.objects.create_superuser(su_name, su_email, su_password) u = User.objects.create_superuser(su_name, su_email, su_password)
msg = "" msg = ""
if not settings.API_TOKEN_PEPPERS: if not settings.API_TOKEN_PEPPERS:
print("⚠️ No API token will be created as API_TOKEN_PEPPERS is not set") print("⚠️ No API token will be created as API_TOKEN_PEPPERS is not set")
msg = f"💡 Superuser Username: {su_name}, E-Mail: {su_email}" msg = f"💡 Superuser Username: {su_name}, E-Mail: {su_email}"
else:
if su_api_key:
t = Token.objects.create(user=u, token=su_api_token, version=TokenVersionChoices.V2, key=su_api_key)
else: else:
t = Token.objects.create(user=u, token=su_api_token, version=TokenVersionChoices.V2) t = Token.objects.create(user=u, token=su_api_token, version=TokenVersionChoices.V2)
msg = f"💡 Superuser Username: {su_name}, E-Mail: {su_email}, API Token: {t} (use with '{t.get_auth_header_prefix()}<Your token>')" msg = f"💡 Superuser Username: {su_name}, E-Mail: {su_email}, API Token: {su_api_token} (use with '{t.get_auth_header_prefix()}<Your token>')"
print(msg) print(msg)