- Complete Astro + Alpine.js implementation - Docker Compose setup with Caddy reverse proxy - Dual platform: Anonymous & Named Storytellers - Interactive features: voting, comments, filtering - Categories page with search functionality - Content collections for markdown stories - Responsive design with accessibility features - Environment variable configuration 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
32 lines
875 B
YAML
32 lines
875 B
YAML
version: '3.8'
|
|
|
|
services:
|
|
story-teller:
|
|
build: .
|
|
container_name: story-teller-app
|
|
environment:
|
|
- NODE_ENV=development
|
|
- DOMAIN=${DOMAIN}
|
|
- PUBLIC_SITE_URL=${PUBLIC_SITE_URL}
|
|
- PUBLIC_API_BASE_URL=${PUBLIC_API_BASE_URL}
|
|
- PUBLIC_ANONYMOUS_PLATFORM_NAME=${PUBLIC_ANONYMOUS_PLATFORM_NAME}
|
|
- PUBLIC_NAMED_PLATFORM_NAME=${PUBLIC_NAMED_PLATFORM_NAME}
|
|
- PUBLIC_CONTACT_EMAIL=${PUBLIC_CONTACT_EMAIL}
|
|
- PUBLIC_ENABLE_COMMENTS=${PUBLIC_ENABLE_COMMENTS}
|
|
- PUBLIC_ENABLE_VOTING=${PUBLIC_ENABLE_VOTING}
|
|
- PUBLIC_ENABLE_PROMOTION=${PUBLIC_ENABLE_PROMOTION}
|
|
labels:
|
|
caddy: ${DOMAIN}
|
|
caddy.reverse_proxy: "{{upstreams 4321}}"
|
|
networks:
|
|
- caddy
|
|
volumes:
|
|
- .:/app
|
|
- /app/node_modules
|
|
expose:
|
|
- "4321"
|
|
restart: unless-stopped
|
|
|
|
networks:
|
|
caddy:
|
|
external: true |