ci/woodpecker/push/woodpecker Pipeline was successful
Die Bild-URLs in der DB sind /images/events/... bzw. /images/gallery/... - das ist der Pfad auf der publizierten Astro-Seite. Das Backend lieferte die Dateien aber nur unter /static/ mit Root auf dem Workspace aus, die Datei lag also unter /static/public/images/... Ein Aufruf von /images/... traf auf gar keine Route, kam als JSON-404 zurueck und wurde vom Browser als OpaqueResponseBlocking verworfen. Dadurch waren im Adminbereich saemtliche Event- und Gallery-Bilder kaputt. Zusaetzlicher statischer Mount /images/ -> <workspace>/public/images. Die DB bleibt unveraendert und die URLs stimmen weiterhin fuer die publizierte Seite. /static/ bleibt zusaetzlich bestehen. Beide Verzeichnisse werden vorab angelegt - @fastify/static verweigert sonst die Registrierung, wenn der Workspace noch nicht geklont ist. Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>
Gallus Pub CMS Backend
Headless CMS backend for managing Gallus Pub website content with Gitea OAuth authentication.
Setup
- Install dependencies:
npm install
- Create
.envfile from.env.example:
cp .env.example .env
-
Update environment variables in
.env:- Set Gitea OAuth credentials
- Set Git repository URL and token
- JWT secrets are already generated
-
Create data directory and run migrations:
mkdir -p data
- Generate and run migrations:
npm run db:generate
npm run db:migrate
- Start development server:
npm run dev
Server will run at http://localhost:3000
Available Scripts
npm run dev- Start development server with watch modenpm run build- Build for productionnpm run start- Start production servernpm run db:generate- Generate database migrationsnpm run db:migrate- Run database migrationsnpm run db:studio- Open Drizzle Studio
Documentation
See parent directory for complete documentation:
CMS_CONCEPT.md- System architectureCMS_GITEA_AUTH.md- Authentication detailsCMS_IMPLEMENTATION_EXAMPLE.md- Code examplesCMS_SETUP_GUIDE.md- Deployment guide