Files
paste.es/README.md
Malin 3ae27ea413 docs: add Spanish README, local docker-compose build and .env.example
- Rewrite README entirely in Spanish referencing paste.es / cloudhost.es
- Update docker-compose to build from local Dockerfile, use .env file,
  mount data/ volumes and respect PORT env var
- Add .env.example with full commented reference for all supported
  HEMMELIG_* variables (analytics disabled by default for privacy)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-24 09:36:36 +01:00

170 lines
5.4 KiB
Markdown

# paste.es — Compartición de secretos cifrados
Servicio de compartición de secretos efímeros y cifrados para el público hispanohablante, alojado y patrocinado por [cloudhost.es](https://cloudhost.es).
> Basado en [Hemmelig](https://github.com/HemmeligOrg/Hemmelig.app) v7 — arquitectura de cifrado de conocimiento cero.
---
## Cómo funciona
1. Escribe tu secreto en [paste.es](https://paste.es)
2. Configura la expiración, límite de vistas y contraseña opcional
3. Comparte el enlace generado con el destinatario
4. El secreto se elimina automáticamente tras ser leído o al expirar
**Arquitectura de conocimiento cero:** Todo el cifrado ocurre en tu navegador. El servidor solo almacena datos cifrados y nunca ve tus secretos ni las claves de descifrado. Los datos son completamente efímeros.
---
## Características
- **Cifrado AES-256-GCM del lado del cliente** — tus datos se cifran antes de salir del navegador
- **Secretos autodestructivos** — expiración configurable y límite de vistas
- **Sin recopilación de datos** — sin analíticas, sin registros de IP, sin rastreo
- **Protección por contraseña** — capa de seguridad adicional opcional
- **Restricción por IP** — limita el acceso a rangos de IP específicos
- **Subida de archivos** — comparte archivos cifrados (usuarios autenticados)
- **Editor de texto enriquecido** — da formato a tus secretos
- **Códigos QR** — compartición fácil desde móvil
- **Soporte multiidioma** — interfaz disponible en 10 idiomas (español por defecto)
- **Notificaciones webhook** — recibe notificaciones cuando se ven o eliminan secretos
---
## Inicio rápido
### Docker Compose (recomendado)
```bash
git clone https://devops.cloudhost.es/Malin/paste.es.git
cd paste.es
# Copia y edita el fichero de entorno
cp .env.example .env
# Edita .env con tus valores (ver sección Configuración)
# Construye y arranca
docker compose up -d --build
```
El servicio quedará disponible en `http://localhost:3000`.
### Docker (imagen directa)
```bash
docker run -d \
--name paste-es \
-p 3000:3000 \
-v paste-data:/app/database \
-v paste-uploads:/app/uploads \
-e DATABASE_URL="file:/app/database/paste.db" \
-e BETTER_AUTH_SECRET="$(openssl rand -base64 32)" \
-e BETTER_AUTH_URL="https://paste.es" \
-e HEMMELIG_INSTANCE_NAME="paste.es" \
ghcr.io/cloudhost-es/paste.es:latest
```
---
## Configuración
Copia `.env.example` a `.env` y ajusta los valores:
```bash
cp .env.example .env
```
### Variables requeridas
| Variable | Descripción |
|----------------------|------------------------------------------------------|
| `DATABASE_URL` | Ruta a la base de datos SQLite |
| `BETTER_AUTH_SECRET` | Clave secreta para las sesiones (mín. 32 caracteres) |
| `BETTER_AUTH_URL` | URL pública de tu instancia |
### Generar secretos seguros
```bash
openssl rand -base64 32
```
Consulta [docs/env.md](docs/env.md) para la referencia completa de variables de entorno.
---
## Desarrollo local
```bash
# Instalar dependencias
npm install
# Iniciar el servidor de desarrollo (API + cliente en terminales separadas)
npm run dev:api # Terminal 1 — API en :3000
npm run dev # Terminal 2 — cliente Vite con HMR
```
---
## Despliegue en producción
### Detrás de un proxy inverso (Nginx / Caddy)
El servicio escucha en el puerto `3000`. Configura tu proxy para que apunte a él:
**Nginx:**
```nginx
server {
listen 443 ssl;
server_name paste.es;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
```
**Caddy:**
```caddyfile
paste.es {
reverse_proxy localhost:3000
}
```
### Primer uso — crear cuenta de administrador
Tras el primer arranque, visita `https://paste.es/setup` para crear la cuenta de administrador y configurar la instancia.
---
## Documentación
- [Variables de entorno](docs/env.md) — referencia completa de configuración
- [Docker](docs/docker.md) — guía de despliegue con Docker
- [Helm / Kubernetes](docs/helm.md) — despliegue con Helm
- [Cifrado](docs/encryption.md) — cómo funciona el cifrado del lado del cliente
- [Login social](docs/social-login.md) — configuración de OAuth (GitHub, Google, etc.)
- [Peticiones de secretos](docs/secret-request.md) — solicita secretos a otros de forma segura
- [Webhooks](docs/webhook.md) — notificaciones de eventos
- [Health checks](docs/health.md) — sondas de disponibilidad para orquestación
- [Métricas Prometheus](docs/metrics.md) — monitorización con Prometheus
- [API REST](docs/api.md) — referencia de la API y especificación OpenAPI
- [CLI](docs/cli.md) — interfaz de línea de comandos para automatización
- [Tests E2E](docs/e2e.md) — pruebas end-to-end con Playwright
---
## Alojamiento y patrocinio
paste.es está alojado y patrocinado por **[CloudHost.es](https://cloudhost.es)**, empresa española de alojamiento web comprometida con la privacidad y la seguridad de los datos.
---
## Créditos
paste.es está basado en [Hemmelig](https://github.com/HemmeligOrg/Hemmelig.app) por Bjarne Øverli, publicado bajo la O'Saasy License Agreement. Consulta [LICENSE](LICENSE) para más detalles.