From f3ef4ab85861db765713fa71bfa660103d7f36bc Mon Sep 17 00:00:00 2001 From: MoreminiMore Date: Wed, 22 Apr 2026 06:57:23 +0700 Subject: [PATCH] Add deployment and content documentation --- CHECKLIST.md | 98 +++++++++++++++++++++++++++++ CONTENT-GUIDE.md | 157 +++++++++++++++++++++++++++++++++++++++++++++++ DEPLOYMENT.md | 84 +++++++++++++++++++++++++ 3 files changed, 339 insertions(+) create mode 100644 CHECKLIST.md create mode 100644 CONTENT-GUIDE.md create mode 100644 DEPLOYMENT.md diff --git a/CHECKLIST.md b/CHECKLIST.md new file mode 100644 index 0000000..dc88b9f --- /dev/null +++ b/CHECKLIST.md @@ -0,0 +1,98 @@ +# Website Launch Checklist - MoreminiMore + +## Pre-Launch + +### Code & Build +- [x] Astro 6 project created +- [x] All pages designed and implemented +- [x] Content migrated from old website +- [x] Images generated for all pages +- [x] Dependencies installed and verified +- [x] Build successful (`npm run build`) +- [x] Code pushed to Gitea + +### Functionality +- [ ] Test contact form submission +- [ ] Verify cookie consent works +- [ ] Check all internal links +- [ ] Verify blog post images load +- [ ] Test mobile responsive layout + +### SEO +- [ ] Sitemap generated +- [ ] robots.txt configured +- [ ] Meta descriptions on all pages +- [ ] OG images set (if using social sharing) + +## Deployment + +### Easypanel +- [x] Service created +- [x] Git repository connected +- [x] Build configuration set +- [ ] Deployment successful (blocked - Docker issue) +- [ ] Domain configured (if applicable) +- [ ] SSL certificate active (if applicable) + +### Post-Deploy Verification +- [ ] Site accessible at deployment URL +- [ ] All pages load correctly +- [ ] Images display properly +- [ ] Forms work (contact) +- [ ] Cookie consent appears +- [ ] Mobile experience tested + +## Legal Compliance (PDPA) + +- [x] Privacy Policy page created +- [x] Terms of Service page created +- [x] Cookie consent mechanism implemented +- [ ] Consent logs page accessible at `/admin/consent-logs` +- [ ] Privacy policy reviewed by legal team +- [ ] Terms of service reviewed by legal team + +## Analytics + +- [ ] Umami tracking code installed +- [ ] Analytics verified working +- [ ] Dashboard accessible + +## Post-Launch + +### Monitoring +- [ ] Set up uptime monitoring +- [ ] Configure error tracking +- [ ] Check analytics data after 24 hours + +### Backup & Maintenance +- [ ] Regular backup schedule configured +- [ ] Update schedule established +- [ ] Monitoring alerts set up + +## Team Access + +- [ ] Developer access to Easypanel +- [ ] Developer access to Gitea +- [ ] Access to analytics dashboard +- [ ] Contact information updated + +## Emergency Contacts + +| Role | Contact | Notes | +|------|---------|-------| +| Server Admin | Internal | Easypanel issues | +| Developer | Current team | Code/build issues | +| Legal | TBD | PDPA compliance | + +## Quick Links + +- **Gitea Repository**: https://git.moreminimore.com/kunthawat/moreminimore-new +- **Easypanel**: http://110.164.146.47:3000 +- **Project**: moreminimore-newastro +- **Service**: moreminimore-newastro + +## Notes + +- Deployment is currently blocked by Docker infrastructure issues on Easypanel +- Local build is verified working +- Code is pushed to Gitea and ready for deployment diff --git a/CONTENT-GUIDE.md b/CONTENT-GUIDE.md new file mode 100644 index 0000000..d0b1918 --- /dev/null +++ b/CONTENT-GUIDE.md @@ -0,0 +1,157 @@ +# Content Guide - MoreminiMore Website + +## Overview + +This website uses Astro 6 with Content Collections for managing blog posts and pages. + +## Content Structure + +``` +src/content/ +├── blog/ +│ ├── post-1.md +│ ├── post-2.md +│ └── ... +└── config.ts # Content collection definitions +``` + +## Adding New Blog Posts + +1. Create a new `.md` file in `src/content/blog/` +2. Use the frontmatter template below: + +```markdown +--- +title: "Your Post Title" +description: "SEO description for this post" +pubDate: 2026-04-22 +image: "/images/blog/your-image.jpg" +tags: ["tag1", "tag2"] +--- + +Your content here... +``` + +## Frontmatter Fields + +| Field | Type | Required | Description | +|-------|------|----------|-------------| +| `title` | string | Yes | Post title | +| `description` | string | Yes | SEO meta description | +| `pubDate` | Date | Yes | Publication date | +| `image` | string | Yes | Hero image path (16:9 recommended) | +| `tags` | string[] | No | Tags for categorization | + +## Images + +### Blog Post Images +- Location: `public/images/blog/` +- Aspect ratio: 16:9 +- Recommended size: 1200x675px or larger +- Formats: JPG, PNG, WebP + +### Service Page Images +- Location: `public/images/services/` +- Each service has dedicated images: + - `hero.jpg` - Hero section + - `about.jpg` - About section + - `feature-1.jpg`, `feature-2.jpg`, etc. + +### Homepage Images +- Location: `public/images/` +- `hero-home.jpg` - Main hero +- `about-home.jpg` - About section +- `contact-home.jpg` - Contact section + +## Page Structure + +### Static Pages +- `src/pages/index.astro` - Homepage +- `src/pages/about-us.astro` - About page +- `src/pages/contact-us.astro` - Contact page +- `src/pages/faq.astro` - FAQ page +- `src/pages/portfolio.astro` - Portfolio page + +### Service Pages +- `src/pages/web-development.astro` +- `src/pages/marketing-automation.astro` +- `src/pages/ai-automation.astro` +- `src/pages/tech-consult.astro` + +### Blog +- `src/pages/blog/index.astro` - Blog listing +- `src/pages/blog/[slug].astro` - Individual post (dynamic) + +### Legal +- `src/pages/privacy-policy.astro` +- `src/pages/terms-and-conditions.astro` + +### Admin +- `src/pages/admin/consent-logs.astro` - Cookie consent logs + +## Content Collections (Astro DB) + +### Blog Collection +```typescript +const blogCollection = defineCollection({ + type: 'content', + schema: z.object({ + title: z.string(), + description: z.string(), + pubDate: z.date(), + image: z.string(), + tags: z.array(z.string()).optional(), + }), +}); +``` + +## Adding New Pages + +1. Create `.astro` file in `src/pages/` +2. Import and use Layout: +```astro +--- +import Layout from '../layouts/Layout.astro'; +--- + +
+ +
+
+``` + +## SEO Best Practices + +1. **Title**: Keep under 60 characters +2. **Description**: Keep under 160 characters +3. **Images**: Always include alt text +4. **Headings**: Use proper heading hierarchy (h1 → h2 → h3) + +## Thai Content + +All content is in Thai language. When adding new content: +- Use Thai characters +- Follow Thai writing conventions +- Include Thai punctuation + +## Testing Content + +```bash +# Run development server +npm run dev + +# Build for production +npm run build + +# Preview production build +npm run preview +``` + +## Content Review Checklist + +Before publishing: +- [ ] Proofread Thai content +- [ ] Check all images load correctly +- [ ] Verify links work +- [ ] Test on mobile view +- [ ] Check page titles and descriptions diff --git a/DEPLOYMENT.md b/DEPLOYMENT.md new file mode 100644 index 0000000..a2abe8e --- /dev/null +++ b/DEPLOYMENT.md @@ -0,0 +1,84 @@ +# Deployment Guide - MoreminiMore New Website + +## Quick Deploy + +### Prerequisites +- Easypanel server running at `http://110.164.146.47:3000` +- Gitea repository: https://git.moreminimore.com/kunthawat/moreminimore-new + +### Deployment Steps + +1. **Open Easypanel Dashboard** + URL: http://110.164.146.47:3000 + +2. **Navigate to Project** + - Project: `moreminimore-newastro` + - Service: `moreminimore-newastro` + +3. **Trigger Deployment** + - Click "Deploy" button in the dashboard + - Or use API: + ```bash + curl -X POST "http://110.164.146.47:3000/api/trpc/services.app.deployService" \ + -H "Authorization: Bearer YOUR_TOKEN" \ + -H "Content-Type: application/json" \ + -d '{"json":{"projectName":"moreminimore-newastro","serviceName":"moreminimore-newastro","forceRebuild":true}}' + ``` + +4. **Monitor Deployment** + - Check logs in Easypanel dashboard + - Build takes ~2-3 minutes + +## Build Configuration + +- **Build Type**: Nixpacks (Astro detection) +- **Node Version**: 20-alpine (via nixpacks) +- **Port**: 4321 (Astro default) +- **Build Command**: `npm run build` +- **Output Directory**: `dist/` + +## Environment Variables + +The following are set automatically by Nixpacks: +- `PORT=4321` +- `NODE_ENV=production` + +No additional environment variables required. + +## Troubleshooting + +### Docker Build Failing +If you see `docker buildx build` errors: +1. Check Easypanel server Docker daemon is running +2. Try redeploying after a few minutes +3. Contact server administrator if issue persists + +### Build Timeout +- Nixpacks build timeout: 15 minutes +- If build takes longer, check npm dependencies + +### Port Issues +- Default Astro port: 4321 +- If 4321 is in use, set `PORT` env var + +## Manual Build (Alternative) + +If Easypanel deployment fails, build locally: + +```bash +cd /Users/kunthawatgreethong/Gitea/moreminimore-new +npm run build +``` + +Then deploy the `dist/` folder manually via SFTP or other method. + +## Service Details + +| Property | Value | +|----------|-------| +| Project | moreminimore-newastro | +| Service | moreminimore-newastro | +| Type | app | +| Build | nixpacks | +| Git | https://git.moreminimore.com/kunthawat/moreminimore-new | +| Branch | main |