diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..e7880fc --- /dev/null +++ b/.env.example @@ -0,0 +1,25 @@ +# MoreMiniMore Website - Environment Variables + +# Umami Analytics (optional - for conditional loading) +UMAMI_WEBSITE_ID=b2e87a6c-0b64-43c8-bb09-e406ffca0af1 +UMAMI_DOMAIN=umami.moreminimore.com + +# Admin Dashboard Password (CHANGE THIS IN PRODUCTION!) +ADMIN_PASSWORD=changeme + +# Database (optional - defaults to SQLite file) +# For production with Turso or remote SQLite: +# ASTRO_DB_REMOTE_URL=libsql://your-db.turso.io +# ASTRO_DB_APP_TOKEN=your-turso-token + +# For local development (file-based SQLite): +ASTRO_DB_REMOTE_URL=file:./data/consent.db + +# Server Configuration +NODE_ENV=production +PORT=80 +HOST=0.0.0.0 + +# Site Configuration +SITE_URL=https://www.moreminimore.com +SITE_NAME="MoreminiMore" diff --git a/PDPA-COMPLIANCE.md b/PDPA-COMPLIANCE.md new file mode 100644 index 0000000..07804e9 --- /dev/null +++ b/PDPA-COMPLIANCE.md @@ -0,0 +1,174 @@ +# PDPA Compliance Guide - MoreMiniMore Website + +## ✅ Features Implemented + +This website is now **PDPA-compliant** with the following features: + +### 1. Cookie Consent System +- **Component:** `src/components/consent/CookieBanner.astro` +- **Features:** + - Accept All / Reject All buttons (equal prominence) + - Stores consent in localStorage + - Slides up from bottom on first visit + - Thai language with link to Privacy Policy + - Dispatches 'consentGiven' event for other components + +### 2. Conditional Analytics Loading +- **Integration:** Umami Analytics +- **Behavior:** Only loads when user accepts analytics cookies +- **Implementation:** In `src/layouts/Layout.astro` + +### 3. Consent API Endpoints +- **POST /api/consent** - Log new consent +- **GET /api/consent** - Retrieve consent logs (admin) +- **DELETE /api/consent/:sessionId** - Right to be forgotten + +### 4. Admin Dashboard +- **URL:** `/admin/consent-logs` +- **Features:** + - Password-protected access + - View last 100 consent records + - Statistics (total, acceptance rate, etc.) + - Delete individual records + - Export CSV (coming soon) +- **Default Password:** `changeme` (MUST change in production!) + +### 5. Updated Legal Pages +- **Privacy Policy:** All 14 PDPA Section 36 requirements +- **Terms & Conditions:** 17 comprehensive sections +- Both in Thai language with professional legal terminology + +## 🔧 Configuration + +### Environment Variables + +Create a `.env` file in the root directory: + +```bash +# Copy from example +cp .env.example .env + +# Edit with your values +nano .env +``` + +**Required Variables:** +```bash +# Admin password (CHANGE THIS!) +ADMIN_PASSWORD=your-secure-password-here + +# Database (for production) +ASTRO_DB_REMOTE_URL=file:./data/consent.db +``` + +**Optional Variables:** +```bash +# Umami Analytics +UMAMI_WEBSITE_ID=xxx-xxx-xxx +UMAMI_DOMAIN=analytics.example.com +``` + +## 🚀 Deployment + +### Docker (Recommended) + +```bash +# Build image +docker build -t moreminimore:latest . + +# Run container +docker run -d \ + -p 80:80 \ + -e NODE_ENV=production \ + -e ASTRO_DB_REMOTE_URL=file:/app/data/consent.db \ + -e HOST=0.0.0.0 \ + -e PORT=80 \ + -e ADMIN_PASSWORD=your-secure-password \ + --name moreminimore \ + moreminimore:latest +``` + +### Easypanel Auto-Deploy + +The website is configured for automatic deployment via Easypanel: + +1. Push changes to Gitea main branch +2. Easypanel auto-builds (~3 minutes) +3. New version deployed automatically + +**Environment Variables in Easypanel:** +- Set all variables from `.env.example` +- Use strong `ADMIN_PASSWORD` +- Configure database if using remote SQLite/Turso + +## 📊 Managing Consent Logs + +### Access Admin Dashboard + +1. Navigate to: `https://your-domain.com/admin/consent-logs` +2. Enter admin password +3. View consent records + +### Export Data + +Click "Export CSV" button to download consent logs (feature in development) + +### Right to be Forgotten + +Users can request deletion by: +1. Contacting: contact@moreminimore.com +2. Admin deletes record via dashboard +3. Or via API: `DELETE /api/consent/:sessionId` + +## 📝 PDPA Compliance Checklist + +### Before Going Live: + +- [ ] Change `ADMIN_PASSWORD` from default +- [ ] Test cookie consent banner appears +- [ ] Verify Umami loads only with consent +- [ ] Review Privacy Policy for accuracy +- [ ] Review Terms & Conditions for accuracy +- [ ] Test admin dashboard access +- [ ] Enable HTTPS (required for PDPA) +- [ ] Set up regular backups + +### Ongoing Maintenance: + +- [ ] Review consent logs monthly +- [ ] Update legal pages when laws change +- [ ] Keep admin password secure +- [ ] Monitor for consent withdrawals +- [ ] Document data processing activities + +## 🔒 Security Notes + +### Current Implementation: +- Client-side password check (development) +- **Production should use server-side authentication** + +### Recommended Improvements: +1. Add server-side session management +2. Implement rate limiting on admin page +3. Add IP whitelist for admin access +4. Use HTTPS only +5. Regular security audits + +## 📞 Support + +For questions about PDPA compliance or this implementation: +- **Email:** contact@moreminimore.com +- **Phone:** 080-995-5945 +- **Line:** @moreminimore + +## 📚 Resources + +- **PDPC Thailand:** https://www.pdpc.or.th +- **PDPA Full Text:** https://www.pdpc.or.th/กฎหมายและกฎระเบียบ/พ.ร.บ.-คุ้มครองข้อมูลส่วนบุคคล/ +- **Umami Analytics:** https://umami.is/docs +- **Astro DB:** https://docs.astro.build/en/guides/astro-db/ + +--- + +**Last Updated:** March 10, 2026 +**Version:** 1.0.0 diff --git a/src/pages/privacy-policy.astro b/src/pages/privacy-policy.astro index 31ebe1b..29c9d7b 100644 --- a/src/pages/privacy-policy.astro +++ b/src/pages/privacy-policy.astro @@ -11,39 +11,146 @@ import Layout from '../layouts/Layout.astro'
-

1. การเก็บรวบรวมข้อมูล

-

- เราเก็บรวบรวมข้อมูลส่วนบุคคลเฉพาะเมื่อคุณติดต่อเราหรือใช้บริการของเราเท่านั้น +

+ บริษัท มอร์มินิมอร์ จำกัด ("เรา", "ของเรา") มุ่งมั่นที่จะปกป้องความเป็นส่วนตัวของคุณ เอกสารนี้อธิบายถึงวิธีการเก็บรวบรวม ใช้ และเปิดเผยข้อมูลส่วนบุคคลของคุณเมื่อคุณใช้งานเว็บไซต์ของเรา

-

2. การใช้ข้อมูล

+

1. ข้อมูลติดต่อผู้ควบคุมข้อมูล

- ข้อมูลของคุณจะถูกใช้เพื่อให้บริการและสื่อสารกับคุณ + ผู้ควบคุมข้อมูล: บริษัท มอร์มินิมอร์ จำกัด
+ ที่อยู่: ประเทศไทย
+ อีเมล: contact@moreminimore.com
+ โทรศัพท์: 080-995-5945
+ Line: @moreminimore

-

3. การปกป้องข้อมูล

+

2. วัตถุประสงค์การเก็บรวบรวม ใช้ หรือเปิดเผยข้อมูล

- เราใช้มาตรการรักษาความปลอดภัยที่เหมาะสมเพื่อปกป้องข้อมูลส่วนบุคคลของคุณ + เราเก็บรวบรวมและใช้ข้อมูลส่วนบุคคลของคุณเพื่อวัตถุประสงค์ดังต่อไปนี้: +

+ + +

3. ประเภทข้อมูลส่วนบุคคลที่เก็บรวบรวม

+

+ เราอาจเก็บรวบรวมข้อมูลส่วนบุคคลดังต่อไปนี้: +

+ + +

4. ฐานกฎหมายสำหรับการประมวลผลข้อมูล

+

+ เราประมวลผลข้อมูลส่วนบุคคลของคุณตามฐานกฎหมายดังต่อไปนี้: +

+ + +

5. ระยะเวลาการเก็บรักษาข้อมูล

+

+ เราจะเก็บรักษาข้อมูลส่วนบุคคลของคุณเฉพาะในช่วงเวลาที่จำเป็นเพื่อวัตถุประสงค์ที่ระบุไว้ในนโยบายนี้ หรือตามที่กฎหมายกำหนด โดยทั่วไป: +

+ + +

6. การเปิดเผยหรือโอนข้อมูลส่วนบุคคล

+

+ เราจะไม่ขายหรือให้เช่าข้อมูลส่วนบุคคลของคุณ เราอาจเปิดเผยข้อมูลของคุณในกรณีดังต่อไปนี้: +

+ + +

7. การโอนข้อมูลไปต่างประเทศ

+

+ ข้อมูลของคุณอาจถูกโอนไปยังและประมวลผลในประเทศนอกเหนือจากประเทศไทย ผู้ให้บริการของเราถูกกำหนดให้ปกป้องข้อมูลของคุณตามมาตรฐานที่คล้ายคลึงกับ PDPA

-

4. การเปิดเผยข้อมูล

+

8. การตัดสินใจโดยอัตโนมัติ

- เราจะไม่ขายหรือให้เช่าข้อมูลส่วนบุคคลของคุณให้ฝ่ายที่สาม + เราไม่ใช้การตัดสินใจโดยอัตโนมัติหรือการสร้างโปรไฟล์ที่มีนัยสำคัญทางกฎหมายต่อคุณ

-

5. คุกกี้

+

9. คุกกี้และเทคโนโลยีติดตาม

- เว็บไซต์ของเราอาจใช้คุกกี้เพื่อปรับปรุงประสบการณ์การใช้งาน + เราใช้คุกกี้เพื่อปรับปรุงประสบการณ์การใช้งานของคุณ: +

+ +

+ คุณสามารถจัดการการตั้งค่าคุกกี้ได้ตลอดเวลาผ่านแบนเนอร์คุกกี้บนเว็บไซต์ของเรา

-

6. สิทธิ์ของคุณ

+

10. สิทธิของเจ้าของข้อมูล

- คุณมีสิทธิ์ในการขอเข้าถึง แก้ไข หรือลบข้อมูลส่วนบุคคลของคุณ + ภายใต้ PDPA คุณมีสิทธิดังต่อไปนี้: +

+ +

+ ในการใช้สิทธิเหล่านี้ กรุณาติดต่อเราที่ contact@moreminimore.com

-

- อัปเดตล่าสุด: {new Date().toLocaleDateString('th-TH')} +

11. มาตรการรักษาความปลอดภัย

+

+ เราใช้มาตรการรักษาความปลอดภัยที่เหมาะสมเพื่อปกป้องข้อมูลส่วนบุคคลของคุณ:

+ + +

12. ข้อมูลติดต่อ DPO

+

+ หากคุณมีคำถามเกี่ยวกับความเป็นส่วนตัวหรือการปกป้องข้อมูล กรุณาติดต่อเจ้าหน้าที่คุ้มครองข้อมูล: +
อีเมล: contact@moreminimore.com +

+ +

13. สิทธิในการร้องเรียน

+

+ คุณมีสิทธิในการร้องเรียนต่อคณะกรรมการคุ้มครองข้อมูลส่วนบุคคล (PDPC) หากคุณเชื่อว่าการประมวลผลข้อมูลของคุณละเมิด PDPA +
ติดต่อ PDPC: สำนักงานคณะกรรมการคุ้มครองข้อมูลส่วนบุคคล +

+ +

14. เวอร์ชันนโยบายและวันที่มีผลบังคับใช้

+

+ เวอร์ชัน: 1.0.0
+ วันที่มีผลบังคับใช้: {new Date().toLocaleDateString('th-TH', { year: 'numeric', month: 'long', day: 'numeric' })}
+ วันที่อัปเดตล่าสุด: {new Date().toLocaleDateString('th-TH', { year: 'numeric', month: 'long', day: 'numeric' })} +

+ +
+

+ หมายเหตุ: เราอาจอัปเดตนโยบายความเป็นส่วนตัวนี้เป็นครั้งคราว การเปลี่ยนแปลงใดๆ จะถูกโพสต์บนหน้านี้พร้อมวันที่อัปเดตใหม่ เราขอแนะนำให้คุณตรวจสอบหน้านี้เป็นระยะ +

+
diff --git a/src/pages/terms-and-conditions.astro b/src/pages/terms-and-conditions.astro index 1928cd2..27b240a 100644 --- a/src/pages/terms-and-conditions.astro +++ b/src/pages/terms-and-conditions.astro @@ -11,37 +11,185 @@ import Layout from '../layouts/Layout.astro'
-

1. การยอมรับเงื่อนไข

-

- การใช้เว็บไซต์และบริการของ MoreminiMore Co.,Ltd. แสดงว่าคุณยอมรับและตกลงที่จะปฏิบัติตามข้อกำหนดและเงื่อนไขเหล่านี้ +

+ กรุณาอ่านข้อกำหนดและเงื่อนไขเหล่านี้อย่างละเอียดก่อนใช้งานเว็บไซต์และบริการของบริษัท มอร์มินิมอร์ จำกัด ("เรา", "ของเรา") + การใช้เว็บไซต์และบริการของเราแสดงว่าคุณยอมรับและตกลงที่จะปฏิบัติตามข้อกำหนดเหล่านี้

-

2. บริการ

+

1. การยอมรับเงื่อนไข

- เราให้บริการที่ปรึกษาองค์กรดิจิตอล ที่ปรึกษาการตลาดออนไลน์ พัฒนาเว็บไซต์ พัฒนาแอปพลิเคชัน และระบบแชทบอท - รายละเอียดบริการเป็นไปตามที่ตกลงกันในสัญญา + การเข้าถึงหรือใช้งานเว็บไซต์ www.moreminimore.com และบริการที่เกี่ยวข้องใดๆ ถือว่าคุณยอมรับข้อกำหนดและเงื่อนไขเหล่านี้ + หากคุณไม่ยอมรับ กรุณาหยุดใช้งานเว็บไซต์และบริการของเราทันที

-

3. ทรัพย์สินทางปัญญา

+

2. บริการของเรา

- เนื้อหาทั้งหมดบนเว็บไซต์นี้ รวมถึงข้อความ รูปภาพ โลโก้ และซอฟต์แวร์ เป็นทรัพย์สินของ MoreminiMore Co.,Ltd. - ห้ามคัดลอกหรือใช้โดยไม่ได้รับอนุญาต + เราให้บริการดังต่อไปนี้: +

+ +

+ รายละเอียดและขอบเขตของบริการจะเป็นไปตามที่ตกลงกันในสัญญาหรือใบเสนอราคา

-

4. ความรับผิดชอบ

+

3. ทรัพย์สินทางปัญญา

- เราให้คำปรึกษาและบริการตามความสามารถ แต่ไม่สามารถรับประกันผลลัพธ์ทางธุรกิจที่เฉพาะเจาะจงได้ + เนื้อหาทั้งหมดบนเว็บไซต์นี้ รวมถึงแต่ไม่จำกัดเพียง: +

+ +

+ เป็นทรัพย์สินของบริษัท มอร์มินิมอร์ จำกัด หรือได้รับอนุญาตให้ใช้งานอย่างถูกต้อง + ห้ามคัดลอก ดัดแปลง แจกจ่าย หรือใช้เพื่อการค้าโดยไม่ได้รับอนุญาตเป็นลายลักษณ์อักษร +

+ +

4. หน้าที่ของผู้ใช้

+

+ คุณตกลงที่จะ: +

+ + +

5. การประมวลผลข้อมูลส่วนบุคคล

+

+ เราเคารพและปกป้องความเป็นส่วนตัวของคุณ การเก็บรวบรวม ใช้ และเปิดเผยข้อมูลส่วนบุคคลจะเป็นไปตาม: +

+ +

+ โดยการใช้เว็บไซต์ของเรา คุณยอมรับให้เราประมวลผลข้อมูลของคุณตามนโยบายความเป็นส่วนตัว +

+ +

6. คุกกี้และการติดตาม

+

+ เว็บไซต์ของเราใช้คุกกี้และเทคโนโลยีที่คล้ายคลึงกันเพื่อ: +

+ +

+ คุณสามารถจัดการการตั้งค่าคุกกี้ได้ผ่านแบนเนอร์คุกกี้บนเว็บไซต์ของเรา +

+ +

7. การจำกัดความรับผิด

+

+ เว็บไซต์และบริการของเราให้ "ตามที่เป็น" โดยไม่มีการรับประกันใดๆ ทั้งโดยชัดแจ้งหรือโดยนัย + เราจะไม่รับผิดชอบต่อ: +

+ +

+ หมายเหตุ: สำหรับบริการที่ปรึกษา เราไม่สามารถรับประกันผลลัพธ์ทางธุรกิจที่เฉพาะเจาะจงได้ ผลลัพธ์ขึ้นอยู่กับหลายปัจจัยนอกเหนือจากการควบคุมของเรา

-

5. การแก้ไขเงื่อนไข

+

8. การชดเชยและความเสียหาย

- เราขอสงวนสิทธิ์ในการแก้ไขข้อกำหนดและเงื่อนไขนี้ได้ทุกเวลา โดยไม่ต้องแจ้งให้ทราบล่วงหน้า + คุณตกลงที่จะชดเชยและปกป้องบริษัท มอร์มินิมอร์ จำกัด จากความเรียกร้อง ความเสียหาย + หรือค่าใช้จ่ายใดๆ ที่เกิดจากการละเมิดข้อกำหนดเหล่านี้หรือการใช้งานของคุณในทางที่ผิด

-

- อัปเดตล่าสุด: {new Date().toLocaleDateString('th-TH')} +

9. การยุติการให้บริการ

+

+ เราขอสงวนสิทธิ์ในการ:

+ +

+ โดยไม่ต้องแจ้งให้ทราบล่วงหน้า หากเราพิจารณาว่าคุณกำลังใช้เว็บไซต์หรือบริการในทางที่ผิด +

+ +

10. การแก้ไขเปลี่ยนแปลงเงื่อนไข

+

+ เราขอสงวนสิทธิ์ในการแก้ไขข้อกำหนดและเงื่อนไขนี้ได้ทุกเวลา โดย: +

+ + +

11. กฎหมายที่ใช้บังคับ

+

+ ข้อกำหนดและเงื่อนไขเหล่านี้จะอยู่ภายใต้และตีความตามกฎหมายแห่งราชอาณาจักรประเทศไทย +

+ +

12. การระงับข้อพิพาท

+

+ ข้อพิพาทใดๆ ที่เกิดจากหรือเกี่ยวข้องกับข้อกำหนดเหล่านี้: +

+ + +

13. ข้อมูลการติดต่อ

+

+ หากคุณมีคำถามเกี่ยวกับข้อกำหนดและเงื่อนไขเหล่านี้ กรุณาติดต่อเรา: +

+ + +

14. ผลบังคับของเงื่อนไข

+

+ หากข้อกำหนดใดข้อกำหนดหนึ่งไม่สามารถบังคับได้หรือขัดต่อกฎหมาย + ข้อกำหนดที่เหลือจะยังคงมีผลบังคับใช้โดยสมบูรณ์ +

+ +

15. การสละสิทธิ์

+

+ การที่เราไม่บังคับใช้สิทธิ์หรือข้อกำหนดใดข้อกำหนดหนึ่ง + ไม่ถือเป็นการสละสิทธิ์ในการบังคับใช้ข้อกำหนดนั้นในภายหลัง +

+ +

16. การโอนสิทธิ

+

+ คุณไม่สามารถโอนสิทธิหรือหน้าที่ของคุณภายใต้ข้อกำหนดเหล่านี้ได้ + โดยไม่ได้รับความยินยอมเป็นลายลักษณ์อักษรจากเรา +

+ +

17. เวอร์ชันและวันที่มีผลบังคับใช้

+

+ เวอร์ชัน: 1.0.0
+ วันที่มีผลบังคับใช้: {new Date().toLocaleDateString('th-TH', { year: 'numeric', month: 'long', day: 'numeric' })}
+ วันที่อัปเดตล่าสุด: {new Date().toLocaleDateString('th-TH', { year: 'numeric', month: 'long', day: 'numeric' })} +

+ +
+

+ หมายเหตุ: ข้อกำหนดและเงื่อนไขนี้เป็นข้อตกลงทางกฎหมายระหว่างคุณกับบริษัท มอร์มินิมอร์ จำกัด + กรุณาอ่านอย่างละเอียดและเก็บไว้เป็นหลักฐาน +

+