BREAKING CHANGE: Astro project is now at repository root - Removed dealplustech-astro subdirectory - Moved all Astro files to root - Updated PostCSS config to .cjs - Removed old Next.js files ✅ 11 pages built successfully ✅ Cookie consent banner included ✅ Privacy/Terms links in footer ✅ Ready for Easypanel deployment (no root dir needed) Migration path: - Old structure: /dealplustech-astro/ - New structure: / (root)
232 lines
5.5 KiB
Markdown
232 lines
5.5 KiB
Markdown
# 🚀 Gitea Repository Deployment - BEST METHOD!
|
|
|
|
## ✅ Why This is Better
|
|
|
|
| Method | Docker Registry | Gitea Repo |
|
|
|--------|----------------|------------|
|
|
| Build locally | ✅ Required | ❌ Not needed |
|
|
| Push to registry | ✅ Required | ❌ Not needed |
|
|
| Easypanel builds | ❌ No | ✅ Yes! |
|
|
| Auto-deploy on push | ❌ No | ✅ Yes! |
|
|
| Version control | ❌ No | ✅ Yes! |
|
|
| Rollbacks | ❌ Hard | ✅ Easy |
|
|
|
|
---
|
|
|
|
## 🎯 How It Works
|
|
|
|
```
|
|
┌─────────────┐ ┌──────────────┐ ┌─────────────┐
|
|
│ You Git │ │ Easypanel │ │ Deployed │
|
|
│ Push │────▶│ Clones & │────▶│ Service │
|
|
│ to Gitea │ │ Builds │ │ Running │
|
|
└─────────────┘ └──────────────┘ └─────────────┘
|
|
```
|
|
|
|
**Easypanel will:**
|
|
1. Clone your Gitea repository
|
|
2. Run `npm install`
|
|
3. Run `npm run build`
|
|
4. Deploy the `dist/` folder
|
|
5. Serve on port 4321
|
|
|
|
---
|
|
|
|
## 📋 Setup Steps
|
|
|
|
### Step 1: Run Deploy Script
|
|
|
|
```bash
|
|
cd dealplustech-astro
|
|
./skills/easypanel-deploy/deploy.sh deploy
|
|
```
|
|
|
|
**It will show:**
|
|
```
|
|
Gitea URL: http://110.164.146.46:3001
|
|
Repository: dealplustech/dealplustech-astro
|
|
Branch: main
|
|
Build Command: npm run build
|
|
Publish Directory: dist
|
|
Port: 4321
|
|
```
|
|
|
|
### Step 2: Create Service in Easypanel
|
|
|
|
```
|
|
1. Open: http://110.164.146.46:3000
|
|
|
|
2. Select Project: customerwebsite
|
|
|
|
3. Click: New Service → Git Repository
|
|
|
|
4. Configure:
|
|
┌─────────────────────────────────────┐
|
|
│ Repository URL: │
|
|
│ http://110.164.146.46:3001/ │
|
|
│ dealplustech/dealplustech-astro │
|
|
└─────────────────────────────────────┘
|
|
|
|
┌─────────────────────────────────────┐
|
|
│ Branch: main │
|
|
└─────────────────────────────────────┘
|
|
|
|
┌─────────────────────────────────────┐
|
|
│ Build Command: npm run build │
|
|
└─────────────────────────────────────┘
|
|
|
|
┌─────────────────────────────────────┐
|
|
│ Publish Directory: dist │
|
|
└─────────────────────────────────────┘
|
|
|
|
┌─────────────────────────────────────┐
|
|
│ Port: 4321 │
|
|
└─────────────────────────────────────┘
|
|
|
|
5. Click: Deploy
|
|
```
|
|
|
|
### Step 3: Wait for Build
|
|
|
|
Easypanel will:
|
|
- ✅ Clone from Gitea (~10 seconds)
|
|
- ✅ Run `npm install` (~30 seconds)
|
|
- ✅ Run `npm run build` (~20 seconds)
|
|
- ✅ Deploy `dist/` (~5 seconds)
|
|
|
|
**Total: ~1 minute**
|
|
|
|
### Step 4: Register Service ID
|
|
|
|
After deployment completes:
|
|
|
|
```bash
|
|
# Copy Service ID from Easypanel dashboard
|
|
./skills/easypanel-deploy/deploy.sh register svc_xxx...
|
|
```
|
|
|
|
---
|
|
|
|
## 🔄 Automatic Updates
|
|
|
|
### Enable Auto-Deploy
|
|
|
|
**In Easypanel:**
|
|
1. Go to service settings
|
|
2. Click: Git → Auto Deploy
|
|
3. Enable: Auto Deploy on Push
|
|
|
|
**Then:**
|
|
```bash
|
|
# Make changes
|
|
git add .
|
|
git commit -m "Update something"
|
|
git push
|
|
|
|
# Easypanel automatically rebuilds! 🎉
|
|
```
|
|
|
|
### Manual Redeploy
|
|
|
|
```bash
|
|
./skills/easypanel-deploy/deploy.sh redeploy
|
|
```
|
|
|
|
---
|
|
|
|
## ✅ Benefits
|
|
|
|
### 1. No Docker Registry
|
|
- ❌ No `docker build`
|
|
- ❌ No `docker push`
|
|
- ❌ No registry credentials
|
|
|
|
### 2. Automatic Deployments
|
|
- ✅ Push to Gitea
|
|
- ✅ Easypanel rebuilds
|
|
- ✅ Zero manual steps
|
|
|
|
### 3. Version Control
|
|
- ✅ Every commit = potential deployment
|
|
- ✅ Easy rollbacks
|
|
- ✅ Change history
|
|
|
|
### 4. Build Caching
|
|
- ✅ `node_modules` cached
|
|
- ✅ Faster builds
|
|
- ✅ Efficient
|
|
|
|
---
|
|
|
|
## 🔧 Configuration
|
|
|
|
### Gitea Repository
|
|
|
|
```bash
|
|
URL: http://110.164.146.46:3001
|
|
Owner: dealplustech
|
|
Repo: dealplustech-astro
|
|
Branch: main
|
|
```
|
|
|
|
### Build Settings
|
|
|
|
```bash
|
|
Build Command: npm run build
|
|
Publish Directory: dist/
|
|
Node Version: 20 (from .nvmrc or package.json)
|
|
```
|
|
|
|
### Environment Variables
|
|
|
|
Add in Easypanel service settings:
|
|
|
|
```bash
|
|
NODE_ENV=production
|
|
NEXT_PUBLIC_SITE_URL=https://your-domain.com
|
|
```
|
|
|
|
---
|
|
|
|
## 📁 Required Files
|
|
|
|
Your repository should have:
|
|
|
|
```
|
|
dealplustech-astro/
|
|
├── package.json ✅ Required (defines build)
|
|
├── Dockerfile ⚠️ Optional (for Docker mode)
|
|
├── astro.config.mjs ✅ Required
|
|
├── src/ ✅ Required
|
|
└── .gitignore ✅ Required
|
|
```
|
|
|
|
---
|
|
|
|
## 🎯 Next Action
|
|
|
|
**Deploy now:**
|
|
|
|
```bash
|
|
# 1. Run deployment script
|
|
./skills/easypanel-deploy/deploy.sh deploy
|
|
|
|
# 2. Follow instructions to create service in Easypanel
|
|
|
|
# 3. After deployment:
|
|
./skills/easypanel-deploy/deploy.sh register SERVICE_ID
|
|
|
|
# 4. Enable auto-deploy in Easypanel
|
|
|
|
# 5. Future updates: just git push!
|
|
```
|
|
|
|
---
|
|
|
|
**This is THE BEST way to deploy!** 🎉
|
|
|
|
- No Docker needed
|
|
- No registry needed
|
|
- Automatic deployments
|
|
- Full version control
|