Commit Graph

427 Commits

Author SHA1 Message Date
73b4fec389 chore: cleanup asciinema SMTP environment variables 2025-11-09 08:21:56 +01:00
5f126d9d8b feat: add custom.exs to skip SMTP TLS certificate verification 2025-11-09 08:18:13 +01:00
5a6ca58e5d test: change SMTP_NO_MX_LOOKUPS to true 2025-11-09 08:13:25 +01:00
f04e182804 fix: change SMTP_AUTH from login to always 2025-11-09 08:06:12 +01:00
8e6cb9018d fix: use SMTP port 465 with SSL instead of STARTTLS 2025-11-09 08:02:06 +01:00
bfe4b467f0 fix: disable SMTP TLS encryption to bypass certificate validation 2025-11-09 08:00:13 +01:00
39426baf9b fix: set SMTP_NO_MX_LOOKUPS to false 2025-11-09 07:56:53 +01:00
6124229f85 fix: specify TLS versions for SMTP connection 2025-11-09 07:49:10 +01:00
ce3a3514a7 fix: remove hardcoded SMTP IP and use port 587 with TLS 2025-11-09 07:45:35 +01:00
aad4c89ab9 fix: use minimal SMTP configuration without explicit port and TLS settings 2025-11-09 07:41:51 +01:00
51fd63cf24 test: disable SMTP TLS encryption to bypass certificate validation 2025-11-09 07:38:01 +01:00
4a3b29a6ea fix: use SMTP_TLS=if_available to allow fallback from TLS 2025-11-09 07:36:29 +01:00
f797945b52 fix: disable TLS certificate verification for IONOS SMTP 2025-11-09 07:32:52 +01:00
d529a4c268 fix: use STARTTLS on port 587 for SMTP instead of SSL 465 2025-11-09 07:29:08 +01:00
0efae463c9 chore: remove custom CSS theme files from repository 2025-11-09 06:07:43 +01:00
e4c0a74437 revert: remove custom CSS theming from asciinema 2025-11-09 06:06:22 +01:00
bf8faccaf8 fix: increase specificity for navbar background override 2025-11-09 05:50:04 +01:00
29c52e3c43 fix: override black navbar background with higher specificity selector 2025-11-09 05:44:55 +01:00
8d66212d9a fix: override default light backgrounds for body, main, pre
Added explicit overrides for body, main, and pre elements to prevent
default light gray (#f7f7f7) backgrounds from showing through.

- Body and main: metal-bg-base (dark)
- Pre/code blocks: metal-bg-elevated (slightly lighter)
- Main container: metal-bg-surface with proper spacing

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-09 05:40:19 +01:00
f26f0976b5 fix: improve theme consistency and layout
- Added 8px gap to button groups for better spacing
- Fixed header/nav background overlay issue (consolidated styling)
- Added gray background to main container (metal-bg-surface)
- Fixed heading section (removed margin, border-radius, transparent bg)

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-09 05:33:59 +01:00
d6db298409 refactor: polish asciinema theme with cohesive metal grays
Refined the metal gray palette for better consistency and polish:

- Renamed variables to semantic names (base, elevated, surface, interactive, input)
- Reduced color range from 10%-30% to 16%-28% for smoother transitions
- Adjusted saturation to 10-12% for more cohesive palette
- Softened shadows and reduced motion for subtle elegance
- Added distinct heading area background for better hierarchy
- Improved button states with smoother hover transitions
- Refined border weights (1px default, 2px for accents)
- Updated all components to use new semantic variable names

Color hierarchy:
- metal-bg-base (16%): Body, terminal, code blocks
- metal-bg-elevated (19%): Header, footer, control bars, headings
- metal-bg-surface (22%): Cards, tables
- metal-bg-interactive (25%): Buttons, pagination
- metal-bg-input (28%): Form inputs
- metal-border (32%): Subtle borders
- metal-border-strong (40%): Accent borders

Rose accents preserved for all interactive elements.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-09 05:27:42 +01:00
112dc7076d feat: apply varied metal gray backgrounds with rose accents
- Updated color palette to use multiple metal gray shades for visual hierarchy
- Kept original Pivoine rose accent colors for borders, links, and highlights
- Background variations:
  - Darkest (10%): Body, terminal player, code blocks
  - Darker (15%): Header/navbar, table headers
  - Dark (18%): Footer, control bars
  - Base (22%): Filter buttons, pagination
  - Light (26%): Cards, tables, recording items
  - Lighter (30%): Form inputs
  - Border (35%): Borders and separators
- All rose accents preserved for visual pop on dark metal backgrounds

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-09 05:13:36 +01:00
fd8a2ca23c fix: smooth color transitions across header, content, and footer
Unified background colors for smoother visual flow:

Changes:
- Header background: bg-darker → bg-dark (matches body)
- Footer background: bg-darker → bg-dark (matches body)
- Body background: bg-darker → bg-dark (consistent base color)
- Removed redundant main content background override

This creates a cohesive color scheme where:
- Body, header, and footer all use bg-dark (HSL 0, 0%, 17.5%)
- Cards and panels use bg-lighter (HSL 0, 0%, 22%) for subtle contrast
- Rose borders on header/footer provide visual separation
- No more jarring black-to-gray transitions

The result is a smooth, unified dark theme with the Pivoine rose
accent colors providing visual interest and hierarchy.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-09 05:05:34 +01:00
583a77493e feat: improve theme contrast and button styling
Enhanced the Pivoine theme with better visual hierarchy and usability:

Logo improvements:
- Fixed logo selector to target .navbar-brand img (not just .logo)
- Logo now properly colorized with primary rose/magenta color

Contrast improvements:
- Changed body background to darker shade (bg-darker)
- Added main content area with lighter background (bg-dark) for better separation
- Added heading styles with rose accent color
- H1/H2 headings now have rose bottom border for visual hierarchy

Button refinements:
- Split button styling into primary buttons and filter buttons
- Filter buttons (.btn-light in .btn-group) now have subtle, elegant styling:
  * Lighter background with border
  * Smaller size and lighter font weight
  * Hover shows rose border and text color
  * Active state has solid rose background
- Primary buttons maintain bold rose background styling

The result is clearer visual separation between navigation, content, and
interactive elements with better contrast throughout.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-09 05:01:45 +01:00
09a60e1bd6 fix: remove Bootstrap .container from card styling
Fixed awkward appearance where Bootstrap .container elements were being
styled as cards with backgrounds, borders, and padding.

Changes:
- Removed .container from card/panel styling rule
- Added explicit .container reset to transparent background
- Removed .container from responsive design rule
- .container now maintains proper Bootstrap layout behavior

This fixes the "inner looks like a card" issue where main content areas
had unwanted card styling applied.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-09 04:54:17 +01:00
b88a6439f5 fix: target Bootstrap-specific classes in custom theme
Updated custom.css to target the actual Bootstrap classes used by
asciinema server instead of generic selectors:

- Added .navbar-dark and .bg-dark overrides for navigation
- Added .btn-light targeting for button styles
- Added .btn.active and .btn-light.active for active button states

This ensures the Pivoine theme properly overrides Bootstrap's default
dark theme classes.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-09 04:50:25 +01:00
5add5f4482 fix: remove pre-compressed CSS files to serve updated custom theme
Updated entrypoint-wrapper.sh to delete .css.gz files after injecting
custom CSS. The web server was serving old pre-compressed files instead
of our updated CSS with the Pivoine theme.

Changes:
- Remove app.css.gz and app-*.css.gz after CSS injection
- Forces web server to serve uncompressed updated CSS files
- Ensures custom Pivoine theme is visible on production

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-09 04:45:48 +01:00
c35f941882 fix: correct asciinema entrypoint command for server startup
Fixed server endpoints not starting by correcting the entrypoint wrapper
script to use the proper command: /sbin/tini -- /opt/app/bin/server

Changes:
- Updated entrypoint-wrapper.sh to exec /sbin/tini instead of /opt/app/bin/asciinema
- Removed incorrect command: ["start"] from compose.yaml
- Custom CSS injection now working with proper server startup
- Both main (port 4000) and admin (port 4002) endpoints now running

The custom Pivoine theme CSS is successfully injected at container startup
and served via both app.css and hashed app-*.css files.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-09 04:29:13 +01:00
fcf3aa2ff5 feat: inject custom CSS theme into asciinema
Added entrypoint wrapper script that injects custom.css into the
main app.css file at container startup. This allows the custom
Pivoine theme to be applied without building a custom image.

Changes:
- Mount custom.css to static assets directory
- Add entrypoint-wrapper.sh to inject CSS on startup
- Append custom CSS to both app.css and hashed app-*.css

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-09 04:24:17 +01:00
a1a3d06e26 fix: explicitly link Traefik routers to services
Fixed 404 error by explicitly specifying which service each router
should use. Traefik was unable to automatically link routers when
multiple services were defined.

Added service specification to all routers:
- asciinema-web → asciinema service
- asciinema-web-secure → asciinema service
- asciinema-admin-web → asciinema-admin service
- asciinema-admin-web-secure → asciinema-admin service

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-09 04:17:05 +01:00
9ce78d4df6 feat: disable sign up for asciinema
Set ASCIINEMA_SIGN_UP_DISABLED to true to prevent new user registrations.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-09 04:13:37 +01:00
f647e1327b feat: expose asciinema admin interface via Traefik
Added admin interface routing at admin.asciinema.pivoine.art:
- Port 4002 exposed via Traefik
- HTTP Basic Auth protection using AUTH_USERS
- HTTPS with Let's Encrypt certificate
- Security headers and compression middleware

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-09 04:07:44 +01:00
be146b2bb5 fix: add extra_hosts for smtp.ionos.de to asciinema
Force IONOS SMTP server IP (213.165.67.97) in /etc/hosts
to bypass potential DNS resolution issues.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-09 04:05:00 +01:00
143e102154 fix: simplify asciinema SMTP configuration
Removed unnecessary SMTP settings that were causing issues:
- URL_PORT (not needed)
- SMTP_AUTH (default behavior)
- SMTP_RETRIES (default behavior)
- SMTP_NO_MX_LOOKUPS (causing connection issues)
- MAIL_REPLY_TO_ADDRESS (not essential)
- UNCLAIMED_RECORDING_TTL (not essential)

Using minimal working SMTP configuration.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-09 04:00:10 +01:00
c3a8b55a58 fix: set SMTP_NO_MX_LOOKUPS to false
Email delivery still failing with true, trying false.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-09 03:33:20 +01:00
be6ab97e56 test: change SMTP_NO_MX_LOOKUPS to true
Testing with MX lookups disabled (true).

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-09 03:31:14 +01:00
1bbe3085a7 test: add SMTP_NO_MX_LOOKUPS=false to asciinema config
Testing with MX lookups disabled (false).

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-09 03:30:05 +01:00
a9327650b3 fix: remove extra SMTP settings from asciinema config
Removed SMTP_NO_MX_LOOKUPS and SMTP_ALLOWED_TLS_VERSIONS settings
that were added during troubleshooting. Using only basic SMTP
configuration that works for other services (mattermost, tandoor).

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-09 03:23:11 +01:00
98db62b07b fix: change SMTP_AUTH from login to always
SMTP_AUTH must be 'always', 'never', or 'if_available', not 'login'.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-09 03:12:50 +01:00
8ece868a45 fix: add SMTP_AUTH and SMTP_ALLOWED_TLS_VERSIONS
Added SMTP_AUTH: login and SMTP_ALLOWED_TLS_VERSIONS to help
with SSL handshake on port 465.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-09 03:10:43 +01:00
7799bb2a82 fix: use SMTP_SSL without SMTP_TLS for port 465
For implicit SSL on port 465, we need SMTP_SSL: true and should
NOT set SMTP_TLS (which is for STARTTLS on port 587).
Added SMTP_NO_MX_LOOKUPS to skip MX record lookups.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-09 03:06:26 +01:00
958891d4be fix: revert to use EMAIL_SMTP_PORT from .env
Reverted to use ${EMAIL_SMTP_PORT} from .env (port 465) since
this configuration works for other services.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-09 03:04:09 +01:00
042fd5ccd8 fix: switch to port 587 with STARTTLS for IONOS SMTP
Port 465 with implicit SSL is not working. Switching to port 587
with STARTTLS (SMTP_TLS: always) which is more compatible with
Swoosh SMTP adapter.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-09 03:01:35 +01:00
64f22a2822 fix: add SMTP SSL verification and MX lookup settings
Added SMTP_NO_MX_LOOKUPS, SMTP_TLS_VERIFY_HOST, and
SMTP_TLS_VERIFY_CERT settings to fix SSL connection issues
with IONOS SMTP on port 465.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-09 02:59:45 +01:00
bb3bab937b fix: remove colon from SMTP_TLS value
Environment variables are strings. Use 'never' not ':never' so
the Elixir code can convert it to an atom properly.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-09 02:57:29 +01:00
c4a1a44bae fix: set SMTP_TLS to :never for Elixir atom
SMTP_TLS must be an Elixir atom (:never, :always, or :if_available).
Using :never for implicit SSL on port 465.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-09 02:55:54 +01:00
20458cda6a fix: set SMTP_TLS false and SMTP_SSL true for port 465
IONOS SMTP on port 465 uses implicit SSL, not STARTTLS.
Set SMTP_TLS: false and SMTP_SSL: true.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-09 02:54:17 +01:00
339073ab5a fix: use SMTP_TLS instead of SMTP_SSL for asciinema
Port 465 requires implicit TLS, not SSL. Changed SMTP_SSL to SMTP_TLS
with value 'always' and added SMTP_AUTH: always.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-09 02:53:41 +01:00
74e5d071a3 fix: configure asciinema SMTP with EMAIL_FROM and disable signup
- Add EMAIL_FROM to arty.yml environment defaults
- Configure asciinema to use EMAIL_FROM for MAIL_FROM_ADDRESS
- Set SMTP_SSL to true for IONOS SMTP on port 465
- Set SIGN_UP_DISABLED default to false (will enable after admin creation)
- Follow netdata compose.yaml pattern for Traefik labels
- Add proper HTTP to HTTPS redirect middlewares
- Configure compression and security headers

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-09 02:50:40 +01:00
e74a45b2a2 feat: add asciinema backup plan to Restic
Added asciinema-backup plan to backup terminal recording data.

Backup Configuration:
- ID: asciinema-backup
- Schedule: 11 AM daily (0 11 * * *)
- Path: /volumes/asciinema_data
- Retention: 7 daily, 4 weekly, 6 monthly, 2 yearly

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-09 02:12:25 +01:00