88e00e5d414f25659e910651aaec867fc0dc847d
Introduce server-rendered guestbook and moderation portal. Persist data in SQLite (better-sqlite3); add WebAuthn YubiKey admin auth, rate-limiting, spam heuristics, and sanitization. Switch Docker image to run Node/standalone Astro (remove nginx), update docker-compose, Dockerfile, astro.config, and package.json. Add .env.example, docs/guestbook.md, gitignore updates, layouts, API routes, and supporting lib/components/pages for the feature.
Cozy Den 🏡☕
A cozy landing page for hiddenden.cafe built with Astro.
About
Cozy Den is a warm, self-hosted corner of the internet. This landing page represents the values of privacy, open-source software, and creating comfortable digital spaces.
Features
- ☕ Cozy, warm aesthetic with hidden den theme
- 🎨 Catppuccin Mocha color palette
- 📱 Responsive design
- ⚡ Built with Astro for blazing fast performance
- 🐳 Docker support for easy deployment
- 📝 Blog powered by Astro Content Collections (hardcoded Markdown, no CMS)
Setup
Prerequisites
- Node.js 18+ and npm
- (Optional) Docker for containerized deployment
Installation
- Clone or download this project
- Install dependencies:
npm install
- Run the development server:
npm run dev
- Build for production:
npm run build
- Preview production build:
npm run preview
Docker Deployment
Building the Docker Image
docker build -t cozy-den .
Running the Container
docker run -d -p 3000:80 --name cozy-den cozy-den
Or with docker-compose:
docker-compose up -d
Pushing to Gitea Registry
# Tag the image
docker tag cozy-den git.hiddenden.cafe/mats/cozy-den:latest
# Login to your Gitea registry
docker login git.hiddenden.cafe
# Push the image
docker push git.hiddenden.cafe/mats/cozy-den:latest
Customization
The site is built to be easily customizable:
- Colors: Edit the CSS variables in
src/layouts/BaseLayout.astro - Content: Update sections in
src/pages/index.astro - Favicon: Replace
public/favicon.svg - Blog posts: Add
.mdfiles tosrc/content/blog/— they appear automatically at/blog - Blog images: Place images in
public/blog/<post-slug>/and reference with/blog/<post-slug>/image.jpg
Technology Stack
- Astro - Static site generator
- Vanilla CSS with custom properties
- TypeScript for type safety
Documentation
For developers and AI assistants working on this project:
- DEVELOPMENT.md - Detailed developer documentation, architecture, and common tasks
- PROJECT_CONTEXT.md - Project context, design principles, and owner preferences
- TODO.md - Current tasks, future features, and enhancement ideas
License
Personal project - feel free to use as inspiration for your own cozy corners of the internet!
Made with 💖 by Latte
Description
Cozy Den is a warm, self-hosted corner of the internet. This landing page represents the values of privacy, open-source software, and creating comfortable digital spaces.
Languages
Astro
82.5%
TypeScript
10.8%
Python
6.2%
Dockerfile
0.3%
JavaScript
0.2%