fix: Gitea Traefik routing and connection pool optimization
Some checks failed
🚀 Build & Deploy Image / Determine Build Necessity (push) Failing after 10m14s
🚀 Build & Deploy Image / Build Runtime Base Image (push) Has been skipped
🚀 Build & Deploy Image / Build Docker Image (push) Has been skipped
🚀 Build & Deploy Image / Run Tests & Quality Checks (push) Has been skipped
🚀 Build & Deploy Image / Auto-deploy to Staging (push) Has been skipped
🚀 Build & Deploy Image / Auto-deploy to Production (push) Has been skipped
Security Vulnerability Scan / Check for Dependency Changes (push) Failing after 11m25s
Security Vulnerability Scan / Composer Security Audit (push) Has been cancelled

- Remove middleware reference from Gitea Traefik labels (caused routing issues)
- Optimize Gitea connection pool settings (MAX_IDLE_CONNS=30, authentication_timeout=180s)
- Add explicit service reference in Traefik labels
- Fix intermittent 504 timeouts by improving PostgreSQL connection handling

Fixes Gitea unreachability via git.michaelschiemer.de
This commit is contained in:
2025-11-09 14:46:15 +01:00
parent 85c369e846
commit 36ef2a1e2c
1366 changed files with 104925 additions and 28719 deletions

View File

@@ -14,73 +14,61 @@
<a href="/admin/presave/campaigns/create" class="btn btn-primary">New Campaign</a>
</div>
<if condition="{stats}">
<div class="stats-grid">
<div class="stat-card">
<h3>Total Campaigns</h3>
<p class="stat-value">{stats.total}</p>
</div>
<div class="stat-card">
<h3>Active</h3>
<p class="stat-value">{stats.active}</p>
</div>
<div class="stat-card">
<h3>Total Registrations</h3>
<p class="stat-value">{stats.total_registrations}</p>
</div>
<div class="stat-card">
<h3>Completed</h3>
<p class="stat-value">{stats.completed}</p>
</div>
<div class="stats-grid" if="{{$stats}}">
<div class="stat-card">
<h3>Total Campaigns</h3>
<p class="stat-value">{{$stats['total']}}</p>
</div>
</if>
<div class="stat-card">
<h3>Active</h3>
<p class="stat-value">{{$stats['active']}}</p>
</div>
<div class="stat-card">
<h3>Total Registrations</h3>
<p class="stat-value">{{$stats['total_registrations']}}</p>
</div>
<div class="stat-card">
<h3>Completed</h3>
<p class="stat-value">{{$stats['completed']}}</p>
</div>
</div>
<if condition="{campaigns}">
<div class="campaigns-list">
<for items="{campaigns}" as="campaign">
<div class="campaign-card">
<div class="campaign-header">
<img src="{campaign.coverImageUrl}" alt="{campaign.title}" class="campaign-cover">
<div class="campaign-info">
<h3>{campaign.title}</h3>
<p class="artist">{campaign.artistName}</p>
<p class="release-date">Release: {campaign.releaseDate|date}</p>
</div>
<div class="campaign-status">
<span class="badge badge-{campaign.status.value}">{campaign.status.value}</span>
</div>
</div>
<div class="campaign-actions">
<a href="/admin/presave/campaigns/{campaign.id}" class="btn btn-sm">View</a>
<a href="/admin/presave/campaigns/{campaign.id}/edit" class="btn btn-sm">Edit</a>
<if condition="{campaign.status.value === 'draft'}">
<form action="/admin/presave/campaigns/{campaign.id}/activate" method="POST" style="display: inline;">
<csrf-token />
<button type="submit" class="btn btn-sm btn-success">Activate</button>
</form>
</if>
<if condition="{campaign.status.value === 'active'}">
<form action="/admin/presave/campaigns/{campaign.id}/pause" method="POST" style="display: inline;">
<csrf-token />
<button type="submit" class="btn btn-sm btn-warning">Pause</button>
</form>
</if>
<button class="btn btn-sm btn-danger" onclick="deleteCampaign({campaign.id})">Delete</button>
</div>
<div class="campaigns-list" if="{{$campaigns}}">
<div class="campaign-card" foreach="$campaigns as $campaign">
<div class="campaign-header">
<img src="{{$campaign->coverImageUrl}}" alt="{{$campaign->title}}" class="campaign-cover">
<div class="campaign-info">
<h3>{{$campaign->title}}</h3>
<p class="artist">{{$campaign->artistName}}</p>
<p class="release-date">Release: {{$campaign->releaseDate}}</p>
</div>
</for>
</div>
</if>
<div class="campaign-status">
<span class="badge badge-{{$campaign->status->value}}">{{$campaign->status->value}}</span>
</div>
</div>
<div class="campaign-actions">
<a href="/admin/presave/campaigns/{{$campaign->id}}" class="btn btn-sm">View</a>
<a href="/admin/presave/campaigns/{{$campaign->id}}/edit" class="btn btn-sm">Edit</a>
<if condition="{!campaigns || campaigns.length === 0}">
<div class="empty-state">
<p>No campaigns yet.</p>
<a href="/admin/presave/campaigns/create" class="btn btn-primary">Create your first campaign</a>
<form action="/admin/presave/campaigns/{{$campaign->id}}/activate" method="POST" style="display: inline;" if="{{$campaign->status->value === 'draft'}}">
<csrf-token />
<button type="submit" class="btn btn-sm btn-success">Activate</button>
</form>
<form action="/admin/presave/campaigns/{{$campaign->id}}/pause" method="POST" style="display: inline;" if="{{$campaign->status->value === 'active'}}">
<csrf-token />
<button type="submit" class="btn btn-sm btn-warning">Pause</button>
</form>
<button class="btn btn-sm btn-danger" onclick="deleteCampaign({{$campaign->id}})">Delete</button>
</div>
</div>
</if>
</div>
<div class="empty-state" if="{{!$campaigns || count($campaigns) === 0}}">
<p>No campaigns yet.</p>
<a href="/admin/presave/campaigns/create" class="btn btn-primary">Create your first campaign</a>
</div>
</div>
</layout>