Commit Graph

27 Commits

Author SHA1 Message Date
Peter Meier
1db203841d Add sync.sh for content sync between local and server
All checks were successful
Deploy to Server / deploy (push) Successful in 22s
- pull: server → local
- push: local → server
- watch: auto-push on file changes via fswatch
- status: dry-run diff
- dev.sh: ./dev.sh --sync pulls before starting

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-15 22:50:13 +01:00
Peter Meier
261c2fe338 Add environments (spaces) support
All checks were successful
Deploy to Server / deploy (push) Successful in 2m28s
- API client sends _environment param on all content/asset requests
- GET /api/environments endpoint to list configured environments
- EnvironmentSwitcher in Sidebar with i18n label "Space"
- clearSession() also clears environment from sessionStorage
- .env.example documents ADMIN_USERNAME/PASSWORD/SESSION_SECRET

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-15 22:46:52 +01:00
Peter Meier
6f2c4d8576 Fix Turbopack build: avoid cross-boundary import in EnvironmentContext
Some checks failed
Deploy to Server / deploy (push) Failing after 35s
Read sessionStorage directly instead of importing getCurrentEnvironment
from api.ts to avoid Turbopack module boundary resolution error.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-15 22:44:46 +01:00
Peter Meier
a1e0287e6d Instant env switch: invalidate all queries on environment change
Some checks failed
Deploy to Server / deploy (push) Failing after 37s
EnvironmentContext holds current env as React state. On change,
QueryInvalidatorOnEnvChange calls queryClient.invalidateQueries() so
all content/list pages refetch immediately without manual reload.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-15 22:39:57 +01:00
Peter Meier
09981f5110 Add RUSTYCMS_ENVIRONMENTS to deploy
All checks were successful
Deploy to Server / deploy (push) Successful in 26s
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-15 22:32:11 +01:00
Peter Meier
634ba8d494 Fix middleware matcher basePath issue, always show logout button
All checks were successful
Deploy to Server / deploy (push) Successful in 1m10s
Next.js prepends basePath to matcher patterns, so patterns must not
include /admin prefix. Logout button now always visible in sidebar.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-15 22:05:14 +01:00
Peter Meier
2f3f460e0f Fix middleware matcher for /admin root path
All checks were successful
Deploy to Server / deploy (push) Successful in 1m9s
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-15 21:56:43 +01:00
Peter Meier
b432621919 Add proper login to Admin UI, replace Caddy basic_auth
All checks were successful
Deploy to Server / deploy (push) Successful in 1m55s
- iron-session for encrypted httpOnly session cookies
- POST /api/auth/login: verifies ADMIN_USERNAME/ADMIN_PASSWORD, sets session, returns API key
- POST /api/auth/logout: destroys session
- middleware.ts: protects all routes, redirects to /login if unauthenticated
- Login page: username + password form (no more browser popup)
- Sidebar: logout calls API route and clears session
- docker-compose.prod.yml: admin-ui reads /opt/rustycms/.env.admin
- deploy.yml: generates .env.admin from Gitea secrets
- Caddy: basic_auth removed from /admin* block

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-15 21:49:32 +01:00
Peter Meier
c644c08222 Generate .env on server from Gitea secrets during deploy
All checks were successful
Deploy to Server / deploy (push) Successful in 20s
2026-03-15 14:55:45 +01:00
Peter Meier
e2de403702 Fix asset serving: preserve original case in path (don't lowercase on GET)
All checks were successful
Deploy to Server / deploy (push) Successful in 1m39s
2026-03-15 14:47:30 +01:00
Peter Meier
40c83afeb3 Fix apt-get: run update before installing rsync
All checks were successful
Deploy to Server / deploy (push) Successful in 20s
2026-03-15 14:41:18 +01:00
Peter Meier
8180ace5e1 Install rsync in deploy step
Some checks failed
Deploy to Server / deploy (push) Failing after 6s
2026-03-15 14:39:54 +01:00
Peter Meier
4de99db670 Track all types in git, sync to server on deploy
Some checks failed
Deploy to Server / deploy (push) Failing after 7s
2026-03-15 14:38:37 +01:00
Peter Meier
286fab8452 Fix deploy: use SSH to run compose on host directly
All checks were successful
Deploy to Server / deploy (push) Successful in 8s
2026-03-15 14:22:19 +01:00
Peter Meier
9e117a45cb Fix deploy: use repo-local compose file instead of host path
Some checks failed
Deploy to Server / deploy (push) Failing after 7s
2026-03-15 14:19:41 +01:00
Peter Meier
ff91a9ff86 Fix TypeScript error: cast unknown to boolean in JSX condition
Some checks failed
Deploy to Server / deploy (push) Failing after 57s
2026-03-15 14:13:11 +01:00
Peter Meier
91ebd151c6 Track Cargo.lock for reproducible Docker builds
Some checks failed
Deploy to Server / deploy (push) Failing after 9m0s
2026-03-15 13:59:07 +01:00
Peter Meier
ecd257fb8f Add Gitea Actions deploy workflow and server configuration
Some checks failed
Deploy to Server / deploy (push) Failing after 1m49s
- Add basePath /admin to Next.js config for path-based routing
- Add .gitea/workflows/deploy.yml for CI/CD via Gitea Actions

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-15 13:52:41 +01:00
Peter Meier
11d46049d1 Enhance admin UI and schema management: Introduce generic handling for image/asset URL fields, ensuring explicit widget usage for image previews. Update translations for new UI elements and implement field ordering in schema definitions. Add functionality for managing field extensions and improve asset filtering in the admin UI. 2026-03-14 00:08:52 +01:00
Peter Meier
084a1d9e2a Update admin UI translations and enhance content list: Add 'Status' and 'Published' labels in German and English, and implement status display in the content list page. Format related pages in demo welcome JSON for better readability. 2026-03-13 11:09:03 +01:00
Peter Meier
dc233a48d3 Add page content (home, about) and demo references
Made-with: Cursor
2026-03-13 11:01:29 +01:00
Peter Meier
00c38a2b39 Track types/page.json5 for demo schema references
Made-with: Cursor
2026-03-13 11:00:41 +01:00
Peter Meier
606455c59b Enhance documentation and admin UI: Add detailed implementation guidelines in CLAUDE.md, introduce a referrer index in README.md, and update admin UI translations for improved user experience. Update package dependencies for better functionality and performance. 2026-03-13 10:55:33 +01:00
Peter Meier
7754d800f5 Refactor DashboardCollectionList: Simplify search input layout and improve tag selection logic for better user experience. 2026-03-12 16:36:20 +01:00
Peter Meier
22b4367c47 Enhance RustyCMS: Update .gitignore to include demo assets, improve admin UI dependency management, and add new translations for asset management. Implement asset date filtering and enhance content forms with asset previews. Introduce caching mechanisms for improved performance and add support for draft status in content entries. 2026-03-12 16:03:26 +01:00
Peter Meier
7795a238e1 RustyCMS: file-based headless CMS — API, Admin UI (content, types, assets), Docker/Caddy, image transform; only demo type and demo content in version control
Made-with: Cursor
2026-03-12 14:21:49 +01:00
Peter Meier
aad93d145f RustyCMS: File-based headless CMS with REST API, admin UI, multilingual support
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-16 09:30:30 +01:00