Skip to content

MariaDB driver causes 500 Error on fresh Docker install #2245

@redthirten

Description

@redthirten

Current Behavior

Installer fails to save configured admin user at the end of the installer if the MariaDB driver is used in a Docker environment, leading to a 500 Server Error and no eligible user to login with on a fresh install. This issue does not occur when using the SQLite driver. I tested while using the Redis driver for everything else, but I'm not sure if it has any influence.

Expected Behavior

Installer behaves and completes properly without error, no matter which drivers are utilized, and a valid admin user account is available for use at the end.

Steps to Reproduce

  1. Use this Docker Compose (Traefik reverse proxy network and labels can likely be removed without affecting the issue. I have already confirmed the Panel container can see and connect to the MariaDB container):
services:
  pelican-panel:
    image: ghcr.io/pelican-dev/panel:latest
    restart: unless-stopped
    networks:
      - proxy
    depends_on:
      - pelican-cache
      - pelican-db
    volumes:
      - pelican-data:/pelican-data
      - pelican-logs:/var/www/html/storage/logs
    env_file: stack.env # Provided by Portainer
    environment:
      APP_ENV: "production"
      APP_DEBUG: "false"
      APP_URL: "https://${PANEL_DOMAIN}"
      BEHIND_PROXY: true
      XDG_DATA_HOME: /pelican-data
      CACHE_STORE: "redis"
      SESSION_DRIVER: "redis"
      QUEUE_CONNECTION: "redis"
      REDIS_HOST: "pelican-cache"
      DB_CONNECTION: "mariadb"
      DB_HOST: "pelican-db"
      DB_PORT: "3306"
      DB_USERNAME: ${PANEL_DB_USER}
      DB_PASSWORD: ${PANEL_DB_PASSWORD}
      DB_DATABASE: ${PANEL_DB_DATABASE}
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.pelican.entrypoints=http"
      - "traefik.http.routers.pelican.rule=Host(`${PANEL_DOMAIN}`)"
      - "traefik.http.routers.pelican.middlewares=redirect-http-to-https@file"
      - "traefik.http.routers.pelican-secure.entrypoints=https"
      - "traefik.http.routers.pelican-secure.rule=Host(`${PANEL_DOMAIN}`)"
      - "traefik.http.routers.pelican-secure.tls=true"
      - "traefik.http.routers.pelican-secure.middlewares=internal-ipwhitelist@file"
      - "traefik.http.routers.pelican-secure.service=pelican"
      - "traefik.http.services.pelican.loadbalancer.server.port=80"
  
  pelican-cache:
    image: redis:alpine
    restart: unless-stopped
    networks:
      - proxy

  pelican-db:
    image: mariadb:12.1.2
    restart: unless-stopped
    networks:
      - proxy
    volumes:
      - pelican-db:/var/lib/mysql
    environment:
      MYSQL_ROOT_PASSWORD: ${PANEL_DB_ROOT_PASSWORD}
      MYSQL_USER: ${PANEL_DB_USER}
      MYSQL_PASSWORD: ${PANEL_DB_PASSWORD}
      MYSQL_DATABASE: ${PANEL_DB_DATABASE}

volumes:
  pelican-data:
  pelican-logs:
  pelican-db:

networks:
  proxy:
    external: true
  1. Navigate to https://panel-domain.tld/installer and go through the installer steps (if it's important, I used Red-Thirten as my username). It should be noted that the Database selection page is glitched out when you set DB_CONNECTION="mariadb". If you click on anything, the browser says the "Page is expired" and forces you to reload it. When you do, it will visually show MariaDB as selected, but it will act like SQLite is selected. You have to press SQLite and then press back to MariaDB for it to not be glitched anymore.
  2. Click finish on the final installer step. It will appear to be frozen for quite some time, before eventually refreshing to a 500 Server Error page.
  3. If you try navigating to https://panel-domain.tld and logging in, the admin user you configured during the installer will not be a valid user and you cannot log in.

The logs indicate an error occurs when the configured admin user is saved to the DB because the configured email is null for some reason (not sure why; I filled it out in the installer).

Lastly, please note that this issue cropped up sometime after PR #2150 was merged (not saying this PR caused it; just sometime after because the last time I tested was before this PR and it worked).

Panel Version

v1.0.0-beta32

Wings Version

N/A

Games and/or Eggs Affected

N/A

Docker Image

N/A

Error Logs

https://logs.pelican.dev/7c3806ca

Is there an existing issue for this?

  • I have searched the existing issues before opening this issue.
  • I have provided all relevant details, including the specific game and Docker images I am using if this issue is related to running a server.
  • I have checked in the Discord server and believe this is a bug with the software, and not a configuration issue with my specific system.

Metadata

Metadata

Assignees

No one assigned

    Labels

    not confirmedNot yet verified or reproduced by maintainers

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions