Open-source blogging platform built with Nuxt 3 and Supabase.
10K+
Open-source blogging platform built with Nuxt 3 and Supabase.
Demo: pluma.daryandev.com
en, ku, ar, es, fr, de)| Layer | Technology |
|---|---|
| App | Nuxt 3, Vue 3, Tailwind CSS |
| Auth & data | Supabase (Postgres, Auth, Storage) |
| Runtime | Nitro (Node SSR) |
git clone https://github.com/Daryan97/pluma.git
cd pluma
npm install
cp .env.example .env
Edit .env with your Supabase URL, anon key, and public site URL (see .env.example).
| Scenario | What to run |
|---|---|
| New project | Open /install in the browser, or run src/install/pluma_initial.sql in the Supabase SQL editor |
| Upgrade (series / schedule / preview) | src/install/pluma_features_v2.sql |
| Upgrade (i18n content) | src/install/pluma_i18n_v3.sql (after v2) |
| Broken storage/settings RLS after restore | src/install/pluma_rls_fix.sql |
Do not re-run v2/v3 after a fresh pluma_initial.sql install; those features are already included.
npm run dev
Open http://localhost:3000. In development, /test is available for diagnostics.
npm run build
npm start
Use only VITE_* variables (do not also set NUXT_PUBLIC_*).
| Variable | Required | Description |
|---|---|---|
VITE_SUPABASE_URL | Yes | Supabase API URL |
VITE_SUPABASE_ANON_KEY | Yes | Supabase anon key |
VITE_SITE_URL | Yes | Public origin (canonical URLs, sitemap, RSS, i18n) |
VITE_ENV | Yes | production or development |
VITE_SITE_LOCALE | No | Default locale (default en) |
VITE_TWITTER_SITE | No | Twitter/X @handle for cards |
VITE_FEEDS_CACHE_TTL_MS | No | Feed cache TTL in ms (default 300000) |
Published image: daryan997/pluma
docker compose -f docker-compose.example.yml up -d
Or set the same VITE_* variables on any container that runs daryan997/pluma:latest (port 80).
Full deployment docs: docs/DEPLOY.md.
One-click hosts:
Content type
Image
Digest
sha256:54c42d305…
Size
50.8 MB
Last updated
3 months ago
docker pull daryan997/pluma