diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000..b1530d9
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,67 @@
+# Stage 1: Frontend Assets build
+FROM oven/bun:1-slim AS node-builder
+WORKDIR /app
+COPY . .
+RUN bun install --frozen-lockfile
+RUN bun run build
+
+# Stage 2: Final image
+FROM dunglas/frankenphp:1.4.0-php8.3-alpine AS base
+
+# Create required directories with proper permissions
+RUN mkdir -p /data/caddy /config/caddy /home/.local/share/caddy && \
+ chmod -R 755 /data /config /home/.local && \
+ # Add non-root user
+ addgroup -g 1000 appgroup && \
+ adduser -u 1000 -G appgroup -h /app -s /bin/sh -D appuser && \
+ # Give ownership of Caddy directories
+ chown -R appuser:appgroup /data /config /home/.local
+
+# Set Caddy environment variables
+ENV XDG_CONFIG_HOME=/config \
+ XDG_DATA_HOME=/data
+
+# Install composer and PHP extensions
+COPY --from=composer:2 /usr/bin/composer /usr/bin/composer
+RUN install-php-extensions \
+ pcntl \
+ intl \
+ pdo_mysql \
+ zip \
+ bcmath && \
+ # Cleanup
+ rm -rf /tmp/* /var/cache/apk/*
+
+# Environment configuration
+ENV APP_ENV=production \
+ APP_DEBUG=false \
+ OCTANE_SERVER=frankenphp
+
+# Configure PHP for production
+COPY docker/php/production.ini $PHP_INI_DIR/conf.d/
+RUN mv "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini"
+
+# Set up application
+WORKDIR /app
+COPY --chown=appuser:appgroup . .
+COPY --from=node-builder --chown=appuser:appgroup /app/public/build/ ./public/build/
+
+# Install dependencies and optimize
+RUN composer install --prefer-dist --optimize-autoloader && \
+ php artisan optimize && \
+ php artisan view:cache && \
+ php artisan config:cache && \
+ php artisan route:cache && \
+ php artisan event:cache && \
+ # Set proper permissions
+ chown -R appuser:appgroup /app && \
+ chmod -R 755 storage bootstrap/cache && \
+ rm -rf tests node_modules docker .git* && \
+ composer clear-cache
+
+USER appuser
+
+# Expose port
+EXPOSE 8000
+
+ENTRYPOINT ["php", "artisan", "octane:start", "--host=0.0.0.0"]
diff --git a/bun.lockb b/bun.lockb
index 9bb7a18..20e0a48 100755
Binary files a/bun.lockb and b/bun.lockb differ
diff --git a/docker/php/production.ini b/docker/php/production.ini
new file mode 100644
index 0000000..07c48ee
--- /dev/null
+++ b/docker/php/production.ini
@@ -0,0 +1,7 @@
+; Production PHP configuration
+memory_limit = 256M
+max_execution_time = 60
+opcache.enable=0
+opcache.enable_cli=0
+realpath_cache_size=4096K
+realpath_cache_ttl=600
diff --git a/package.json b/package.json
index d08ca6f..ceb49fd 100644
--- a/package.json
+++ b/package.json
@@ -40,6 +40,7 @@
"vite": "~6.0.3",
"vue": "^3.5.13",
"vue-sonner": "^1.3.0",
+ "ziggy-js": "^2.4.2",
"zod": "^3.23.8"
},
"devDependencies": {
diff --git a/resources/js/app.js b/resources/js/app.js
index 452ffa8..8329332 100644
--- a/resources/js/app.js
+++ b/resources/js/app.js
@@ -2,7 +2,7 @@ import { createInertiaApp } from '@inertiajs/vue3'
import { resolvePageComponent } from 'laravel-vite-plugin/inertia-helpers'
import { createApp, h } from 'vue'
-import { ZiggyVue } from '../../vendor/tightenco/ziggy'
+import { ZiggyVue } from 'ziggy-js';
import './bootstrap'
import '../css/app.css'
diff --git a/resources/views/app.blade.php b/resources/views/app.blade.php
index fb1becf..102225a 100644
--- a/resources/views/app.blade.php
+++ b/resources/views/app.blade.php
@@ -59,7 +59,7 @@
-
+
@routes