main
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
Blog Text-to-Speech
Blog posts kunnen automatisch omgezet worden naar audio met scripts/tts_generate.py.
Setup
- Kopieer
.env.examplenaar.enven vul je API key in - 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
.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
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%