2026-05-06 21:15:14 +02:00
2026-03-08 16:17:43 +01:00
2026-05-06 21:15:14 +02:00
2026-04-05 15:21:26 +02:00

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

  1. Clone or download this project
  2. Install dependencies:
npm install
  1. Run the development server:
npm run dev
  1. Build for production:
npm run build
  1. 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

Blog Text-to-Speech

Blog posts kunnen automatisch omgezet worden naar audio met scripts/tts_generate.py.

Setup

  1. Kopieer .env.example naar .env en vul je API key in
  2. Exporteer de variabelen:
export GOOGLE_API_KEY=jouw_sleutel_hier
# of: export MISTRAL_API_KEY=... / export OPENAI_API_KEY=...

Audio genereren

# Eén post — output: <slug>.mp3 in de huidige map
python scripts/tts_generate.py src/content/blog/hello-world.md

# Andere output directory
python scripts/tts_generate.py src/content/blog/hello-world.md --output-dir public/audio

# Andere provider
TTS_PROVIDER=openai python scripts/tts_generate.py src/content/blog/hello-world.md

Beschikbare providers (via TTS_PROVIDER):

Provider Env var Prijs
google (standaard) GOOGLE_API_KEY 1M chars/maand gratis
mistral MISTRAL_API_KEY ~$16/M chars
openai OPENAI_API_KEY ~$15/M chars

Audio tonen op een blogpost

Voeg audio: true toe aan het frontmatter van de post. De <audio> player verschijnt automatisch en laadt van https://audio.hiddenden.cafe/<slug>.mp3.

---
title: "Mijn post"
audio: true
---

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 .md files to src/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

License

Personal project - feel free to use as inspiration for your own cozy corners of the internet!


Made with 💖 by Latte

S
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.
Readme 72 MiB
Languages
Astro 82.5%
TypeScript 10.8%
Python 6.2%
Dockerfile 0.3%
JavaScript 0.2%