feat: add Asciinema terminal recording server stack
Added new asciinema stack for self-hosted terminal recording and sharing platform with custom "Pivoine" theme inspired by pivoine.art aesthetic. New Services: - **asciinema**: Terminal recording server at asciinema.pivoine.art - PostgreSQL backend for recording persistence - Email authentication via IONOS SMTP magic links - Public/private recording visibility controls - Embed recordings on any website - Custom rose/magenta themed UI Custom Theme (asciinema/theme/custom.css): - Primary color: RGB(206, 39, 91) - Deep rose/magenta - Dark charcoal backgrounds: HSL(0, 0%, 17.5%) - High contrast design with bold color accents - Styled components: navigation, cards, forms, buttons, terminal player - Smooth animations and hover effects - Responsive design with mobile breakpoints - Custom scrollbars, selection colors, loading states Infrastructure Updates: - PostgreSQL: Added `asciinema` database to init script - arty.yml: Added ASCIINEMA_* environment variables - compose.yaml: Included asciinema stack in root composition - CLAUDE.md: Comprehensive documentation with CLI setup guide - Backup: Added asciinema-backup plan (11 AM daily, 7d/4w/6m/2y retention) Configuration: - URL: https://asciinema.pivoine.art - Database: PostgreSQL `asciinema` database - SMTP: Email auth via IONOS SMTP - Unclaimed TTL: 30 days (auto-cleanup) - Secret: Generated 64-char hex key in .env Features: - Record terminal sessions with asciinema CLI - Web player with play/pause controls and speed adjustment - User profiles with personal recording collections - Embed recordings via iframe or direct links - Privacy controls (public/private recordings) - Automatic cleanup of unclaimed recordings Integration Points: - Documentation: Embed terminal demos - Blog posts: Share command-line tutorials - GitHub: Link recordings in README files - Tutorials: Interactive terminal walkthroughs 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
9
arty.yml
9
arty.yml
@@ -180,6 +180,15 @@ envs:
|
||||
AI_VECTOR_DB: pgvector
|
||||
AI_CRAWL4AI_PORT: 11235
|
||||
AI_OPENAI_API_BASE_URLS: https://api.anthropic.com/v1
|
||||
# Asciinema
|
||||
ASCIINEMA_TRAEFIK_ENABLED: true
|
||||
ASCIINEMA_COMPOSE_PROJECT_NAME: asciinema
|
||||
ASCIINEMA_IMAGE: ghcr.io/asciinema/asciinema-server:latest
|
||||
ASCIINEMA_TRAEFIK_HOST: asciinema.pivoine.art
|
||||
ASCIINEMA_DB_NAME: asciinema
|
||||
ASCIINEMA_UNCLAIMED_TTL: 30
|
||||
ASCIINEMA_MAIL_FROM: noreply@pivoine.art
|
||||
ASCIINEMA_MAIL_REPLY_TO: valknar@pivoine.art
|
||||
# Watchtower
|
||||
WATCHTOWER_POLL_INTERVAL: 300
|
||||
WATCHTOWER_LABEL_ENABLE: true
|
||||
|
||||
Reference in New Issue
Block a user