Commit Graph

131 Commits

Author SHA1 Message Date
a79a3af3d5 fix: restrict PostHog debug logging to development only 2026-03-02 22:29:14 +01:00
c0eea843bf translation 2026-03-02 22:22:06 +01:00
a59bdc7711 typos 2026-03-02 18:16:01 +01:00
b743608742 fix: update CSP to allow PostHog analytics scripts and connections
- Add PostHog domains to script-src and connect-src CSP directives
- Updated both development (index.html) and production (nginx.conf) CSP
- Allows https://eu.i.posthog.com and https://eu-assets.i.posthog.com
2026-03-01 02:14:49 +01:00
d0428aff0c fix: use correct PostHog API host from environment variable
Changed from hardcoded '/ingest' to VITE_PUBLIC_POSTHOG_HOST env var to ensure PostHog events are sent to the correct EU endpoint.
2026-03-01 02:09:21 +01:00
dea569df99 chore: update package-lock.json after clean install 2026-03-01 01:58:46 +01:00
91b256a45a up 2026-03-01 01:49:11 +01:00
2b6eef6509 fix: update react-dom to 19.2.4 to match react version
Resolves incompatible React versions error between react and react-dom packages.
2026-03-01 01:44:25 +01:00
fbb4d29e5d fix: add PostHog env vars to Dockerfiles for production builds 2026-03-01 01:42:09 +01:00
01a3c1a776 posthog 2026-03-01 01:36:11 +01:00
e218ad57e8 debug: add PostHog config logging 2026-03-01 01:23:55 +01:00
b9a4a45781 feat: integrate PostHog analytics for frontend and PWA
- Install posthog-js and @posthog/react packages
- Add PostHogProvider wrapper in main.tsx for both apps
- Configure PostHog with EU instance and 2026-01-30 defaults
- Add environment variables for API key and host
- Update docker-compose.coolify.yml with PostHog build args
2026-03-01 01:04:17 +01:00
64588935ca fix: update PWA with Google Fonts and CSP for production API connections 2026-03-01 00:27:57 +01:00
bba5a018ab fix: implement article view count tracking
- Add view count increment in findOne() and findBySlug() methods
- Create findOneWithoutIncrement() for internal operations
- Update remove(), archive(), and publish() to use findOneWithoutIncrement()
- Prevents view count inflation from admin operations
- Matches live blog view tracking implementation
2026-03-01 00:20:46 +01:00
aa43f50a8c fix: localize UI text to Macedonian and fix view count display
- Change date format from 'short' to 'long' month names in Macedonian
- Translate 'views' to 'прегледи' across all components
- Translate 'shares' to 'споделувања'
- Translate 'updates' to 'ажурирања'
- Translate 'By' to 'Од' for author attribution
- Translate 'Back to articles' to 'Назад кон вести'
- Translate archive page headers to Macedonian
- Translate auto-scroll button text to Macedonian
- Translate connection status to Macedonian
- Add fallback to 0 for undefined view counts (|| 0)
2026-02-28 23:57:33 +01:00
46bbeed525 hero fix 2026-02-28 23:38:11 +01:00
7258f059ce fix: remove duplicate /api/v1 in article detail route loader 2026-02-28 23:37:12 +01:00
a66db56156 fix: resolve API URL duplication, CORS issues, and image localhost URLs
- Fix duplicate /api/v1 in analytics.ts API calls
- Add STRAPI_PUBLIC_URL env var for public CMS access
- Update strapi.service to use public URL for images instead of localhost
- Images now use https://cms.placebo.mk instead of http://localhost:1337
2026-02-28 23:29:54 +01:00
ebd1fc28d5 fix: remove Traefik buffering middleware causing CMS timeout 2026-02-28 23:22:07 +01:00
cba9908180 fix: move Google Fonts to HTML head to resolve CSS @import order warning 2026-02-28 23:06:15 +01:00
287dcb4070 fav 2026-02-28 22:46:42 +01:00
50ac4531d3 typo fix 2026-02-28 22:38:23 +01:00
79bd134977 fix: correct CSS @import order to resolve 504 gateway timeout 2026-02-28 22:14:53 +01:00
88dbd2719d typo 2026-02-28 22:06:15 +01:00
e71dc2b90f foot 2026-02-28 21:38:07 +01:00
caf56d9fcd fix me 2026-02-28 20:32:10 +01:00
86c1c2d366 upatstvo za upotreba 2026-02-28 20:22:35 +01:00
4f2837ad4e feat: add About/Instructions page with comprehensive usage guide 2026-02-28 20:08:25 +01:00
c6427304ac feat: show live blog updates section open by default on homepage 2026-02-28 20:02:52 +01:00
515c4cacf3 feat: update live blog UI with chat layout, fix page title and favicon 2026-02-28 19:48:56 +01:00
59891b03dc fix: resolve file permissions issue for Strapi media uploads 2026-02-28 19:22:31 +01:00
8f68dab53f fix: increase file upload limits for Strapi media library to 200MB 2026-02-28 19:07:02 +01:00
fa7dcc2b08 feat: add general category, fix header wrapping, show last 5 live blog updates 2026-02-28 18:47:11 +01:00
3e61fe5694 fix: ensure slug and excerpt are never null to pass validation
- Extract slug generation to separate variable before using in DTO
- Convert null description to empty string for excerpt field
- Prevents class-validator from rejecting null values
- Fixes 'slug must be a string type' validation errors
2026-02-28 18:22:48 +01:00
a5008a3646 fix: add slug auto-generation fallback for articles without slugs
- Add generateSlug() helper to create URL-friendly slugs from titles
- Apply slug fallback in syncArticles() and syncSingleArticle()
- Handles articles created before slug field was added to schema
- Prevents 'slug cannot be null' database constraint errors
2026-02-28 18:02:33 +01:00
cbdb801655 fix: disable Authorization header for Strapi public API access
- Modify getHeaders() to always return empty object
- Prevents sending invalid Bearer token that causes 401 errors
- Strapi Public role permissions configured for unauthenticated access
- Will allow proper article sync from Strapi to backend
2026-02-28 17:46:59 +01:00
a5c57b33f7 fix: remove STRAPI_API_TOKEN to allow public API access
- Remove STRAPI_API_TOKEN environment variable from backend service
- Backend will now make requests to Strapi without Authorization header
- Allows Strapi Public role permissions to work correctly
- Fixes 401 Unauthorized error when syncing articles
2026-02-28 17:03:06 +01:00
b39972102a fix: use APP_GUARD provider for global authentication guard
- Replace manual guard instantiation with DI-managed APP_GUARD provider
- Fixes request timeout issue caused by improper Passport JWT strategy initialization
- Add @Public() decorator to remaining sync endpoints for public access
- Remove unused Reflector import from main.ts
2026-02-28 16:49:24 +01:00
8fbde18d02 feat: add GET endpoint for sync/all for easier testing 2026-02-28 16:33:27 +01:00
94b0239a0a fix: re-enable DATABASE_SYNCHRONIZE to create missing tables 2026-02-28 16:25:16 +01:00
ac610e6f6a fix: add missing slug and description fields to Article schema and fix auth header 2026-02-28 16:10:48 +01:00
8eaaf4afad fix: convert Article API files from TypeScript to JavaScript for Strapi compatibility 2026-02-28 15:48:47 +01:00
33008b64ce fix: enhance CORS configuration with explicit methods and headers 2026-02-28 15:33:45 +01:00
005d368dc7 debug: add logging to check if article content type loads 2026-02-28 15:29:41 +01:00
a8c0ab8884 feat: add Article content type schema and API endpoints 2026-02-27 20:42:53 +01:00
e443ece848 fix: remove article API files to allow Strapi UI to recreate them 2026-02-27 20:32:22 +01:00
76963f6eea aa 2026-02-27 20:10:49 +01:00
bfc7e76f17 fix: disable database sync and simplify backend startup 2026-02-27 20:10:03 +01:00
06a0c9fe05 fix: temporarily disable lifecycle hooks and CMS dependency to fix startup
- Disable lifecycle hooks (rename to .disabled) to prevent CMS crash
- Remove backend dependency on CMS to allow independent startup
- This should fix the Gateway Timeout on both services
2026-02-27 18:25:22 +01:00
c1b49a4cb6 fix: use internal Docker network for backend-to-CMS communication
- Changed STRAPI_URL from https://cms.placebo.mk to http://cms:1337
- Added cms dependency to backend service
- This fixes Gateway Timeout errors when backend tries to fetch from Strapi
- Enables proper container-to-container communication
2026-02-27 17:47:42 +01:00