diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml
new file mode 100644
index 0000000..6170c41
--- /dev/null
+++ b/.gitea/workflows/deploy.yml
@@ -0,0 +1,23 @@
+name: 'Deploy To Dokku'
+on:
+ push:
+ branches:
+ - master
+ - main
+
+jobs:
+ deploy:
+ runs-on: self-hosted
+ container: node:24
+ steps:
+ - name: Cloning repo
+ uses: actions/checkout@v4
+ with:
+ fetch-depth: 0
+
+ - name: Push to dokku
+ uses: dokku/github-action@master
+ with:
+ # TODO: set the dokku app name
+ git_remote_url: 'ssh://dokku@192.168.1.2:22/website-template'
+ ssh_private_key: ${{ secrets.DOKKU_DEPLOY_KEY }}
\ No newline at end of file
diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 0000000..dfdf7aa
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,11 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Editor-based HTTP Client requests
+/httpRequests/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
+/dataSources.xml
+/deployment.xml
+/GitLink.xml
diff --git a/.idea/Website-template.iml b/.idea/Website-template.iml
new file mode 100644
index 0000000..24643cc
--- /dev/null
+++ b/.idea/Website-template.iml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/compiler.xml b/.idea/compiler.xml
new file mode 100644
index 0000000..8ca546d
--- /dev/null
+++ b/.idea/compiler.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml
new file mode 100644
index 0000000..0b9cdc6
--- /dev/null
+++ b/.idea/inspectionProfiles/Project_Default.xml
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/jsLibraryMappings.xml b/.idea/jsLibraryMappings.xml
new file mode 100644
index 0000000..d23208f
--- /dev/null
+++ b/.idea/jsLibraryMappings.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 0000000..602423a
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/sqldialects.xml b/.idea/sqldialects.xml
new file mode 100644
index 0000000..6df4889
--- /dev/null
+++ b/.idea/sqldialects.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..35eb1dd
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/watcherTasks.xml b/.idea/watcherTasks.xml
new file mode 100644
index 0000000..a3471d6
--- /dev/null
+++ b/.idea/watcherTasks.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000..6edb91a
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,50 @@
+# Use official Node.js image
+FROM node:24
+
+### Client Stage
+
+# Set working directory
+WORKDIR /app
+
+# create client directory
+RUN mkdir client
+# Set the working directory for the client
+WORKDIR /app/client
+
+# Copy package files and install dependencies
+COPY /client/package*.json ./
+RUN npm install
+
+# Copy server source code
+COPY /client .
+
+# Build the server (if using TypeScript or build step)
+RUN npm run build
+
+### Server Stage
+
+# Set working directory
+WORKDIR /app
+
+# create server directory
+RUN mkdir server
+
+# Set the working directory for the server
+WORKDIR /app/server
+
+# Copy package files and install dependencies
+COPY /server/package*.json ./
+RUN npm install
+
+# Copy server source code
+COPY /server .
+
+# no build step for server, its already JavaScript
+
+# Production stage
+FROM node:24-slim
+# Expose the port your server runs on (change if needed)
+EXPOSE 8000
+
+# Start the server
+CMD ["npm", "start"]
\ No newline at end of file
diff --git a/README.md b/README.md
index c6fb8e6..dab1d42 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,51 @@
# Website-template
-vue ts + vite frontend, express backend, with a dockerfile and a deploy script to my dokku
\ No newline at end of file
+vue ts + vite frontend, express backend, with a dockerfile and a deploy script to my dokku
+
+### steps to get started on the dokku side
+1. create a dokku app
+ ```bash
+ dokku apps:create
+ ```
+2. create postgres database
+ ```bash
+ dokku postgres:create
+ ```
+3. link the database to the app
+ ```bash
+ dokku postgres:link
+ ```
+4. setup db if applicable
+ - dump local db
+ ```bash
+ pg_dump -Fc --no-acl --no-owner -h localhost -U > db.dump
+ ```
+ - restore to dokku db
+ ```bash
+ dokku postgres:import < db.dump
+ ```
+5. set app to use nginx
+ - set proxy to nginx
+ ```bash
+ dokku proxy:set nginx
+ ```
+
+ - map nginx port to internal docker port
+ ```bash
+ dokku ports:add ::
+ ```
+6. set repo dokku deploy key
+ - copy the private key from dokku into the repo secrets under the name `DOKKU_DEPLOY_KEY`
+7. add the public key to known hosts on dokku
+ ```bash
+ dokku ssh-keys:add
+ ```
+8. set environment variables
+ - create a `.env` file on the dokku server
+ - add the variables to the `.env` file
+ - add the variables to the app
+ ```bash
+ cat .env | xargs dokku config:set --no-restart
+ ```
+it should be ready to go now, you can deploy with the deployment script
+
\ No newline at end of file
diff --git a/client/.gitignore b/client/.gitignore
new file mode 100644
index 0000000..a547bf3
--- /dev/null
+++ b/client/.gitignore
@@ -0,0 +1,24 @@
+# Logs
+logs
+*.log
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+pnpm-debug.log*
+lerna-debug.log*
+
+node_modules
+dist
+dist-ssr
+*.local
+
+# Editor directories and files
+.vscode/*
+!.vscode/extensions.json
+.idea
+.DS_Store
+*.suo
+*.ntvs*
+*.njsproj
+*.sln
+*.sw?
diff --git a/client/README.md b/client/README.md
new file mode 100644
index 0000000..33895ab
--- /dev/null
+++ b/client/README.md
@@ -0,0 +1,5 @@
+# Vue 3 + TypeScript + Vite
+
+This template should help get you started developing with Vue 3 and TypeScript in Vite. The template uses Vue 3 `
+