diff --git a/README.md b/README.md index ad4a808..3effca4 100644 --- a/README.md +++ b/README.md @@ -1,46 +1,48 @@ -# 🍪 Kuki SaaS - Cookie Consent Solution -A lightweight, GDPR/CCPA compliant Cookie Consent banner widget, management dashboard, and backend API. +# 🏗 AlpineSAAS — Infrastructure & Orchestration + +Core infrastructure layer for the AlpineConsent ecosystem. Manages container orchestration, reverse proxy, relational databases, in-memory caching, and self-hosted CI/CD runners. --- -## 🚀 Features +## 💤 Stack Overview -- **⚡ Ultra-lightweight Client (`kuki.js`):** Vanilla JS under 10KB with Shadow DOM isolation. -- **🛡️ Privacy & Compliance:** GDPR, CCPA, and ePrivacy directive ready. -- **🐳 Dockerized Infrastructure:** One-command startup using PostgreSQL and Redis. -- **⚡ Fast API:** High-performance backend for consent logging and license verification. +| Service | Technology | Internal Port | Host Binding | Purpose | +| :--- | :--- | :--- | :--- | :--- | +| **Edge Gateway** | Caddy 2 | 80, 443 | 0.0.0.0:80, 443 | Auto TLS termination & Reverse Proxy | +| **Git Server** | Gitea | 3000, 22 | 0.0.0.0:2222->22 | Git server & VCS API | +| **CI/CD Runner** | Act Runner | - | Worker | Executes Actions workflows in Docker | +| **Primary DB** | PostgreSQL 15 | 5432 | Internal only | Multi-tenant persistent relational store | +| **Cache & Queue** | Redis 7 | 6379 | Internal only | Rate limiting & session store | --- -## 🛠️ Project Structure +## 🚨 Deployment & Operations -```text -kuki-saas/ -├── client/ # Lightweight embeddable JavaScript widget (kuki.js) -├── backend/ # Node.js / Go API for consent & user settings -├── docker-compose.yml # Infrastructure setup (PostgreSQL, Redis) -└── README.md # Documentation +### Prerequisites +* Docker Engine 24+ & Docker Compose v2+ +* Open inbound TCP ports on host/firewall: 80, 443, 2222 + +### 1. Setup Environment +```bash +cp .env.example .env +nano .env ``` - -## ⚙️ Quick Start (Development) - -1. Clone the repository -```Bash -git clone [https://github.com/YOUR_USERNAME/kuki-saas.git](https://github.com/YOUR_USERNAME/kuki-saas.git) -cd kuki-saas -``` - -2. Start Services with Docker -```Bash +### 2. Launch Infrastructure +```bash docker compose up -d ``` -3. Verify Containers -```Bash -docker ps +### 3. Verify Health & Logs +```bash +docker compose ps +logs: docker compose logs -f caddy ``` -## 📝 License +--- -Proprietary - All rights reserved. +## Security & Networking + +* **Internal Isolation:** PostgreSQL and Redis containers do *not* expose ports to the public host. They communicate exclusively over the isolated bridge network `alpine_net`. +* **Database Auth:** Native password authentication enabled with dedicated health checks. +* **TLS:** Handled automatically by Caddy at the edge. diff --git a/Security token b/Security token new file mode 100644 index 0000000..854a560 --- /dev/null +++ b/Security token @@ -0,0 +1 @@ +eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6IjFkNmlmTUlzRlpTcU5GTzdkWDBkeTltanBqX21qX1NnZ084bng2ektQTHcifQ.eyJpc3MiOiJodHRwczovL2V4dGVybmFsYXV0b3NzbC5zZXJ2aWNlLnNwYWNlc2hpcC5jb20iLCJuYmYiOjE3ODY5MTQ1MzQsImlhdCI6MTc4NjkxNDUzNCwiZXhwIjoxNzg3MDAwOTM0LCJhdWQiOlsiZXh0ZXJuYWxhdXRvc3NsIl0sInNjb3BlIjpbImV4dGVybmFsYXV0b3NzbC5leHRlcm5hbGF1dG9zc2wiLCJleHRlcm5hbGF1dG9zc2wudXNlci1pbnRlZ3JhdGlvbi1jcmVhdGUiXSwiY2xpZW50X2lkIjoiZXh0ZXJuYWwtc3NsLWNsaWVudCIsInN1YiI6IjU2NzY3ODNiLTljNjYtNGUwNC04MDI1LWI1OWMwNWQyZjcxYSJ9.lTqonvJFOlUMMKUC8kVjXT0PE0J4Zz9wk7EsG8v74FlQxNuCjGk0wombnenTXuU7NzZIIZsusWocvmxf1vUaBBtZMpfJ04ObbHxlGf1TUpynLww5ZN6SDsqRUyJZrZUzfpKo7tAWe9jVZocJr3i-jvmQyrtX_wg5mlPmixAA_4VUfhghO7zMN5pcg9VgfeM1FglclW4yPZs5_Gm2xjouoFYzkcrZX14U7yDabiFgwMvR0bylCFeFN-DJa-45fEgyUMiPSnridPBg9VKpYejJ3zoIBE6UgKRx-NBIJObfhfIL2NPM0cSCBOGBnJ71evQyKsvqLIUUUdKHzzvJ_CC7vg \ No newline at end of file diff --git a/dotenv.sample b/dotenv.sample new file mode 100644 index 0000000..b0edc85 --- /dev/null +++ b/dotenv.sample @@ -0,0 +1,17 @@ +# Database Credentials +DB_USER=alpine_user +DB_PASSWORD=PASSWORD +DB_NAME=alpine_db + +# Redis Credentials +REDIS_PASSWORD=YOUR_REDIS_PASSWORD_HERE + +# Domains +GIT_DOMAIN=git.alpineconsent.site +GITEA_RUNNER_TOKEN=TOKEN_HERE + +# Versions +GITEA_VERSION=1.22 +RUNNER_VERSION=0.6.1 +POSTGRES_VERSION=16-alpine +REDIS_VERSION=7-alpine \ No newline at end of file