HEX
Server: LiteSpeed
System: Linux houston.panomity.com 6.8.0-100-generic #100-Ubuntu SMP PREEMPT_DYNAMIC Tue Jan 13 16:40:06 UTC 2026 x86_64
User: nudepix (1011)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: //opt/librepanel_corrupt/.github/workflows/build-mariadb.yml
name: LibrePanel-CI-MariaDB
on: [ 'push', 'pull_request', 'create' ]

jobs:
  librepanel:
    name: LibrePanel (PHP ${{ matrix.php-versions }}, MariaDB ${{ matrix.mariadb-version }})
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
      matrix:
        php-versions: [ '7.4', '8.2' ]
        mariadb-version: [ 10.11, 10.5 ]
    steps:
      - name: Checkout
        uses: actions/checkout@v4

      - name: Setup PHP, with composer and extensions
        uses: shivammathur/setup-php@v2
        with:
          php-version: ${{ matrix.php-versions }}
          tools: composer:v2
          extensions: mbstring, xml, ctype, pdo_mysql, mysql, curl, json, zip, session, filter, posix, openssl, fileinfo, bcmath, gmp, gnupg

      - name: Install tools
        run: sudo apt-get install -y ant

      - name: Adjust firewall
        run: |
          sudo ufw allow out 3306/tcp
          sudo ufw allow in 3306/tcp

      - name: Setup MariaDB
        uses: getong/mariadb-action@v1.1
        with:
          mariadb version: ${{ matrix.mariadb-version }}
          mysql database: 'librepanel010'
          mysql root password: 'fr0xl0r.TravisCI'

      - name: Wait for database
        run: sleep 15

      - name: Setup databases
        run: |
          mysql -h 127.0.0.1 --protocol=TCP -u root -pfr0xl0r.TravisCI -e "CREATE USER 'librepanel010'@'%' IDENTIFIED BY 'fr0xl0r.TravisCI';"
          mysql -h 127.0.0.1 --protocol=TCP -u root -pfr0xl0r.TravisCI -e "GRANT ALL ON librepanel010.* TO 'librepanel010'@'%';"
          php -r "echo include('install/librepanel.sql.php');" > /tmp/librepanel.sql
          mysql -h 127.0.0.1 --protocol=TCP -u root -pfr0xl0r.TravisCI librepanel010 < /tmp/librepanel.sql

      - name: Run testing
        run: ant quick-build

  nightly:
    name: Create nightly/testing tarball
    runs-on: ubuntu-latest
    needs: librepanel
    if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }}

    steps:
      - name: Checkout
        uses: actions/checkout@v4

      - name: Setup PHP with PECL extension
        uses: shivammathur/setup-php@v2
        with:
          php-version: '7.4'
          tools: composer:v2
          extensions: mbstring, xml, ctype, pdo_mysql, mysql, curl, json, zip, session, filter, posix, openssl, fileinfo, bcmath, gmp, gnupg

      - name: Install composer dependencies
        run: composer install --no-dev

      - name: Install Node.js
        uses: actions/setup-node@v4
        with:
          node-version: '20.x'

      - name: Install npm dependencies
        run: npm install

      - name: Build assets
        run: npm run build
        working-directory: .

      - name: Setting file/directory permissions
        run: |
          find -exec chmod ugo+r,u+w,go-w {} \;
          find -type f -exec chmod ugo-x {} \;
          find -type d -exec chmod ugo+x {} \;
          chmod 0755 bin/librepanel-cli

      - name: Remove vcs and unneeded files
        run: |
          rm .gitignore
          rm .editorconfig
          rm -rf node_modules
          rm composer.json
          rm composer.lock
          rm package.json
          rm package-lock.json
          rm *.xml
          rm vite.config.js

      - name: Create empty index.html in built assets directory
        run: |
          touch templates/LibrePanel/build/index.html
          touch templates/LibrePanel/build/assets/index.html

      - name: Set outputs
        id: vars
        run: echo "sha_short=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT

      - name: Set nightly branding
        run: |
          sed -i "s/const BRANDING = '';/const BRANDING = '+nightly.${{steps.vars.outputs.sha_short}}';/" lib/LibrePanel/LibrePanel.php
          zip -r librepanel-nightly.${{steps.vars.outputs.sha_short}}.zip . -x "*.git*"
          sha256sum librepanel-nightly.${{steps.vars.outputs.sha_short}}.zip > librepanel-nightly.${{steps.vars.outputs.sha_short}}.zip.sha256
          mkdir dist
          mv librepanel-nightly.${{steps.vars.outputs.sha_short}}.zip dist/
          mv librepanel-nightly.${{steps.vars.outputs.sha_short}}.zip.sha256 dist/

      - name: Deploy nightly to server
        uses: easingthemes/ssh-deploy@main
        env:
          ARGS: "-rltDzvO --chown=${{ secrets.WEB_USER }}:${{ secrets.WEB_USER }}"
          SOURCE: "dist/"
          SSH_PRIVATE_KEY: ${{ secrets.SERVER_SSH_KEY }}
          REMOTE_HOST: ${{ secrets.REMOTE_HOST }}
          REMOTE_USER: ${{ secrets.REMOTE_USER }}
          TARGET: "${{ secrets.REMOTE_TARGET }}"