diff --git a/.github/workflows/build-preview.yml b/.github/workflows/build-preview.yml
new file mode 100644
index 00000000..537c9587
--- /dev/null
+++ b/.github/workflows/build-preview.yml
@@ -0,0 +1,65 @@
+name: "Build and Deploy Preview"
+
+on:
+ pull_request:
+ types: [opened, synchronize]
+
+jobs:
+ build-and-deploy:
+ runs-on: ubuntu-latest
+ name: Build and Deploy Preview
+ permissions:
+ contents: read
+ actions: write
+ pull-requests: write
+ deployments: write
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+
+ - name: Setup Node.js
+ uses: actions/setup-node@v4
+ with:
+ node-version: '20'
+
+ - name: Setup pnpm
+ uses: pnpm/action-setup@v2
+ with:
+ version: 8
+
+ - name: Install dependencies
+ working-directory: app
+ run: pnpm install
+
+ - name: Build
+ working-directory: app
+ run: pnpm build
+
+ - name: List build output
+ run: ls -la app/dist
+
+ - name: Deploy to Cloudflare Pages
+ uses: AdrianGonz97/refined-cf-pages-action@v1
+ with:
+ apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
+ accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
+ githubToken: ${{ secrets.GITHUB_TOKEN }}
+ projectName: ${{ secrets.CLOUDFLARE_PROJECT_NAME }}
+ deploymentName: Preview
+ directory: app/dist
+
+ - name: Upload build artifact
+ id: upload-artifact
+ uses: actions/upload-artifact@v4
+ with:
+ name: preview-build
+ path: app/dist
+ retention-days: 1
+
+ - name: Verify artifact upload
+ run: |
+ echo "Artifact upload completed"
+ echo "Workflow ID: ${{ github.run_id }}"
+ echo "Repository: ${{ github.repository }}"
+ echo "Event name: ${{ github.event_name }}"
+ echo "Event type: ${{ github.event.action }}"
\ No newline at end of file
diff --git a/.github/workflows/cloudflare-pages-production.yml b/.github/workflows/cloudflare-pages-production.yml
new file mode 100644
index 00000000..d755e229
--- /dev/null
+++ b/.github/workflows/cloudflare-pages-production.yml
@@ -0,0 +1,47 @@
+name: Deploy to Cloudflare Pages (Production)
+
+on:
+ push:
+ branches:
+ - main
+
+jobs:
+ publish:
+ runs-on: ubuntu-latest
+ permissions:
+ contents: read
+ deployments: write
+ name: Publish to Cloudflare Pages
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+
+ - name: Setup Node.js
+ uses: actions/setup-node@v4
+ with:
+ node-version: '20'
+
+ - name: Setup pnpm
+ uses: pnpm/action-setup@v2
+ with:
+ version: 8
+
+ - name: Install dependencies
+ working-directory: app
+ run: pnpm install
+
+ - name: Build
+ working-directory: app
+ run: pnpm build
+
+ - name: Publish to Cloudflare Pages
+ uses: AdrianGonz97/refined-cf-pages-action@v1
+ with:
+ apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
+ accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
+ githubToken: ${{ secrets.GITHUB_TOKEN }}
+ projectName: ${{ secrets.CLOUDFLARE_PROJECT_NAME }}
+ directory: app/dist
+ deploymentName: Production
+ branch: main
+ wranglerVersion: '3'
\ No newline at end of file
diff --git a/README.md b/README.md
index b048cbff..242461cd 100644
--- a/README.md
+++ b/README.md
@@ -4,6 +4,7 @@ This is the official repository for the Dokploy Open Source Templates.
### How to add a new template
+
1. Fork the repository
2. Create a new branch
3. Add the template to the `blueprints` folder (docker-compose.yml, template.yml)
diff --git a/app/src/components/Navigation.tsx b/app/src/components/Navigation.tsx
index c1f041c8..72223742 100644
--- a/app/src/components/Navigation.tsx
+++ b/app/src/components/Navigation.tsx
@@ -23,10 +23,10 @@ const Navigation = () => {
}, [setGithubStars]);
return (
-
+
-
-
Dokploy Templates
+
+ Dokploy Templates