Files
chorus-ping-blog/docker-compose.yml
anthonyrawlins 5e0be60c30 Release v1.2.0: Newspaper-style layout with major UI refinements
This release transforms PING into a sophisticated newspaper-style digital
publication with enhanced readability and professional presentation.

Major Features:
- New FeaturedPostHero component with full-width newspaper design
- Completely redesigned homepage with responsive newspaper grid layout
- Enhanced PostCard component with refined typography and spacing
- Improved mobile-first responsive design (mobile → tablet → desktop → 2XL)
- Archive section with multi-column layout for deeper content discovery

Technical Improvements:
- Enhanced blog post validation and error handling in lib/blog.ts
- Better date handling and normalization for scheduled posts
- Improved Dockerfile with correct content volume mount paths
- Fixed port configuration (3025 throughout stack)
- Updated Tailwind config with refined typography and newspaper aesthetics
- Added getFeaturedPost() function for hero selection

UI/UX Enhancements:
- Professional newspaper-style borders and dividers
- Improved dark mode styling throughout
- Better content hierarchy and visual flow
- Enhanced author bylines and metadata presentation
- Refined color palette with newspaper sophistication

Documentation:
- Added DESIGN_BRIEF_NEWSPAPER_LAYOUT.md detailing design principles
- Added TESTING_RESULTS_25_POSTS.md with test scenarios

This release establishes PING as a premium publication platform for
AI orchestration and contextual intelligence thought leadership.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-19 00:23:51 +11:00

40 lines
1.1 KiB
YAML

version: '3.8'
services:
chorus-blog:
image: registry.home.deepblack.cloud/tony/chorus-blog:v1.2.1
ports:
- "3025:3025"
environment:
- NODE_ENV=production
- NEXT_TELEMETRY_DISABLED=1
volumes:
- /rust/containers/PING/content/posts:/app/content/posts:ro
- /rust/containers/PING/content/scheduled:/app/content/scheduled:ro
- blog_logs:/app/.next/cache
deploy:
labels:
- "traefik.enable=true"
- "traefik.docker.network=tengig"
- "traefik.http.routers.chorus-blog.rule=Host(`blog.chorus.services`)"
- "traefik.http.routers.chorus-blog.entrypoints=web-secured"
- "traefik.http.routers.chorus-blog.tls.certresolver=letsencryptresolver"
- "traefik.http.services.chorus-blog.loadbalancer.server.port=3025"
- "traefik.http.services.chorus-blog.loadbalancer.passhostheader=true"
placement:
constraints:
- node.hostname == walnut
networks:
- tengig
- blog
volumes:
blog_logs:
networks:
tengig:
external: true
blog:
driver: overlay