diff --git a/asciinema/Dockerfile b/asciinema/Dockerfile
deleted file mode 100644
index 6b5822e..0000000
--- a/asciinema/Dockerfile
+++ /dev/null
@@ -1,26 +0,0 @@
-FROM ghcr.io/asciinema/asciinema-server:latest AS base
-
-# Download the source to find and patch the template
-FROM elixir:1.18-alpine AS builder
-
-# Install git and build dependencies
-RUN apk add --no-cache git build-base nodejs npm
-
-# Clone the asciinema-server repository
-WORKDIR /app
-RUN git clone https://github.com/asciinema/asciinema-server.git .
-RUN git checkout v1.0.0
-
-# Patch the layout template to inject custom theme
-RUN sed -i '/<\/head>/i\ \n \n ' \
- lib/asciinema_web/templates/layout/app.html.heex
-
-# Build the release
-RUN mix local.hex --force && \
- mix local.rebar --force && \
- mix deps.get --only prod && \
- MIX_ENV=prod mix do compile, assets.deploy, release
-
-# Final image: copy the patched release over the base image
-FROM base
-COPY --from=builder /app/_build/prod/rel/asciinema /opt/app/
diff --git a/asciinema/app.html.heex b/asciinema/app.html.heex
deleted file mode 100644
index 48c49d6..0000000
--- a/asciinema/app.html.heex
+++ /dev/null
@@ -1,36 +0,0 @@
-
-
-
-
-
-
-
- {page_title(@conn)}
-
-
-
- <%= if function_exported?(view_module(@conn), :head, 2) do %>
- {view_module(@conn).head(view_template(@conn), assigns)}
- <% end %>
-
-
-
-
-
-
- body_class(@conn)}>
- {render("_header.html", conn: @conn, current_user: @current_user)}
- {render("_flash.html", flash: @flash)}
-
-
- {@inner_content}
-
-
- {render("_footer.html", conn: @conn)}
-
-
-
-
diff --git a/asciinema/compose.yaml b/asciinema/compose.yaml
index d7c08f1..a4e74c3 100644
--- a/asciinema/compose.yaml
+++ b/asciinema/compose.yaml
@@ -8,10 +8,6 @@ services:
volumes:
- asciinema_data:/var/opt/asciinema
- ./custom.exs:/opt/app/etc/custom.exs:ro
- - ./theme/custom.css:/opt/app/lib/asciinema-1.0.0/priv/static/assets/custom.css:ro
- - ./theme/favicon.svg:/opt/app/lib/asciinema-1.0.0/priv/static/images/favicon-custom.svg:ro
- - ./theme/custom.js:/opt/app/lib/asciinema-1.0.0/priv/static/js/custom.js:ro
- - ./app.html.heex:/opt/app/lib/asciinema-1.0.0/lib/asciinema_web/templates/layout/app.html.heex:ro
environment:
SECRET_KEY_BASE: ${ASCIINEMA_SECRET_KEY}
URL_HOST: ${ASCIINEMA_TRAEFIK_HOST}
diff --git a/asciinema/theme/custom.css b/asciinema/theme/custom.css
deleted file mode 100644
index 9d092f1..0000000
--- a/asciinema/theme/custom.css
+++ /dev/null
@@ -1,278 +0,0 @@
-/* Pivoine Rose Custom Theme for Asciinema Server */
-/* Primary Color: #CE275B (Pivoine Rose) */
-/* Background: Gray tones */
-
-:root {
- --pivoine-rose: #CE275B;
- --pivoine-rose-dark: #A61E47;
- --pivoine-rose-light: #E63368;
- --gray-50: #FAFAFA;
- --gray-100: #F5F5F5;
- --gray-200: #EEEEEE;
- --gray-300: #E0E0E0;
- --gray-400: #BDBDBD;
- --gray-500: #9E9E9E;
- --gray-600: #757575;
- --gray-700: #616161;
- --gray-800: #424242;
- --gray-900: #212121;
-}
-
-/* Override Bootstrap primary color */
-.btn-primary,
-.badge-primary,
-.bg-primary,
-.text-primary,
-a.text-primary:hover,
-a.text-primary:focus {
- background-color: var(--pivoine-rose) !important;
- border-color: var(--pivoine-rose) !important;
- color: white !important;
-}
-
-.btn-primary:hover,
-.btn-primary:focus,
-.btn-primary:active {
- background-color: var(--pivoine-rose-dark) !important;
- border-color: var(--pivoine-rose-dark) !important;
-}
-
-/* Links */
-a {
- color: var(--pivoine-rose);
-}
-
-a:hover,
-a:focus {
- color: var(--pivoine-rose-dark);
-}
-
-/* Body and backgrounds */
-body {
- background-color: var(--gray-100);
- color: var(--gray-900);
-}
-
-/* Header/Navbar */
-.navbar {
- background-color: var(--gray-800) !important;
- border-bottom: 3px solid var(--pivoine-rose);
-}
-
-.navbar-dark .navbar-brand {
- color: var(--pivoine-rose) !important;
- font-weight: 600;
-}
-
-.navbar-dark .navbar-brand:hover {
- color: var(--pivoine-rose-light) !important;
-}
-
-.navbar-dark .navbar-nav .nav-link {
- color: var(--gray-200) !important;
-}
-
-.navbar-dark .navbar-nav .nav-link:hover {
- color: var(--pivoine-rose) !important;
-}
-
-/* Cards and containers */
-.card,
-.list-group-item {
- background-color: white;
- border-color: var(--gray-300);
- box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
-}
-
-.card-header,
-.list-group-item.active {
- background-color: var(--gray-800);
- border-color: var(--gray-700);
- color: white;
-}
-
-/* Main content area */
-.container,
-.container-fluid {
- background-color: var(--gray-50);
- padding: 2rem 1rem;
-}
-
-main {
- background-color: white;
- border-radius: 4px;
- padding: 2rem;
- box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
-}
-
-/* Buttons */
-.btn {
- border-radius: 4px;
- font-weight: 500;
- transition: all 0.2s ease;
-}
-
-.btn-outline-primary {
- color: var(--pivoine-rose);
- border-color: var(--pivoine-rose);
-}
-
-.btn-outline-primary:hover {
- background-color: var(--pivoine-rose);
- border-color: var(--pivoine-rose);
- color: white;
-}
-
-.btn-secondary {
- background-color: var(--gray-600);
- border-color: var(--gray-600);
-}
-
-.btn-secondary:hover {
- background-color: var(--gray-700);
- border-color: var(--gray-700);
-}
-
-/* Forms */
-.form-control {
- border-color: var(--gray-300);
- border-radius: 4px;
-}
-
-.form-control:focus {
- border-color: var(--pivoine-rose);
- box-shadow: 0 0 0 0.2rem rgba(206, 39, 91, 0.25);
-}
-
-/* Alerts */
-.alert-primary {
- background-color: rgba(206, 39, 91, 0.1);
- border-color: var(--pivoine-rose);
- color: var(--pivoine-rose-dark);
-}
-
-/* Tables */
-.table {
- background-color: white;
-}
-
-.table thead th {
- background-color: var(--gray-100);
- border-bottom: 2px solid var(--pivoine-rose);
- color: var(--gray-800);
-}
-
-.table-striped tbody tr:nth-of-type(odd) {
- background-color: var(--gray-50);
-}
-
-/* Pagination */
-.pagination .page-item.active .page-link {
- background-color: var(--pivoine-rose);
- border-color: var(--pivoine-rose);
-}
-
-.pagination .page-link {
- color: var(--pivoine-rose);
-}
-
-.pagination .page-link:hover {
- color: var(--pivoine-rose-dark);
- background-color: var(--gray-100);
-}
-
-/* Player/Terminal */
-.asciinema-player-wrapper,
-.asciinema-terminal {
- border-radius: 4px;
- box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
-}
-
-/* Footer */
-footer {
- background-color: var(--gray-800);
- color: var(--gray-400);
- border-top: 3px solid var(--pivoine-rose);
-}
-
-footer a {
- color: var(--gray-300);
-}
-
-footer a:hover {
- color: var(--pivoine-rose);
-}
-
-/* Badges */
-.badge {
- border-radius: 3px;
- font-weight: 500;
-}
-
-.badge-secondary {
- background-color: var(--gray-600);
-}
-
-/* Dropdowns */
-.dropdown-menu {
- border-color: var(--gray-300);
- box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
-}
-
-.dropdown-item:hover,
-.dropdown-item:focus {
- background-color: var(--gray-100);
- color: var(--pivoine-rose);
-}
-
-/* Loading/Progress */
-.progress-bar {
- background-color: var(--pivoine-rose);
-}
-
-/* Custom recording list */
-.recording-item {
- transition: transform 0.2s ease, box-shadow 0.2s ease;
-}
-
-.recording-item:hover {
- transform: translateY(-2px);
- box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
-}
-
-/* Logo styling */
-.navbar-brand svg,
-.navbar-brand img {
- filter: brightness(0) saturate(100%) invert(28%) sepia(91%) saturate(2059%) hue-rotate(325deg) brightness(89%) contrast(92%);
- transition: filter 0.2s ease;
-}
-
-.navbar-brand:hover svg,
-.navbar-brand:hover img {
- filter: brightness(0) saturate(100%) invert(36%) sepia(96%) saturate(2373%) hue-rotate(329deg) brightness(96%) contrast(87%);
-}
-
-/* Responsive adjustments */
-@media (max-width: 768px) {
- main {
- padding: 1rem;
- }
-
- .container,
- .container-fluid {
- padding: 1rem 0.5rem;
- }
-}
-
-/* Smooth animations */
-* {
- transition-property: background-color, border-color, color;
- transition-duration: 0.15s;
- transition-timing-function: ease-in-out;
-}
-
-button,
-.btn,
-a {
- transition-property: all;
-}
diff --git a/asciinema/theme/custom.js b/asciinema/theme/custom.js
deleted file mode 100644
index 3ea1542..0000000
--- a/asciinema/theme/custom.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Pivoine Rose Custom Theme Injector
-(function() {
- // Inject custom CSS
- var customCSS = document.createElement('link');
- customCSS.rel = 'stylesheet';
- customCSS.href = '/assets/custom.css';
- document.head.appendChild(customCSS);
-
- // Inject custom favicon
- var customFavicon = document.createElement('link');
- customFavicon.rel = 'icon';
- customFavicon.type = 'image/svg+xml';
- customFavicon.href = '/images/favicon-custom.svg';
- document.head.appendChild(customFavicon);
-
- console.log('Pivoine Rose theme loaded');
-})();
diff --git a/asciinema/theme/favicon.svg b/asciinema/theme/favicon.svg
deleted file mode 100644
index 284333a..0000000
--- a/asciinema/theme/favicon.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
\ No newline at end of file