Files
Cozy-Den/README.md
T

149 lines
3.3 KiB
Markdown

# 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:
```bash
npm install
```
3. Run the development server:
```bash
npm run dev
```
4. Build for production:
```bash
npm run build
```
5. Preview production build:
```bash
npm run preview
```
## Docker Deployment
### Building the Docker Image
```bash
docker build -t cozy-den .
```
### Running the Container
```bash
docker run -d -p 3000:80 --name cozy-den cozy-den
```
Or with docker-compose:
```bash
docker-compose up -d
```
### Pushing to Gitea Registry
```bash
# 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:
```bash
export GOOGLE_API_KEY=jouw_sleutel_hier
# of: export MISTRAL_API_KEY=... / export OPENAI_API_KEY=...
```
### Audio genereren
```bash
# 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`.
```yaml
---
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](https://astro.build/) - 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