Chibisafe: Compartir imágenes de forma rápida y privada
Introducción
Notas sobre cómo he montado Chibisafe con Docker y Caddy, sin usar la configuración "obligatoria" que proponen en la web. Documentado para no olvidar detalles y poder replicarlo fácil.
Características
- Subida de imágenes y archivos con links directos.
- Soporta API y panel web.
- Configurado con dominio propio y Caddy como reverse proxy.
Requisitos previos
- Docker y Docker Compose.
- Dominio configurado (ejemplo:
chibi.midominio.eu.org). - Caddy funcionando.
- Carpeta para uploads y base de datos preparada.
Configuración del docker-compose
services:
chibisafe:
image: chibisafe/chibisafe:latest
container_name: Chibisafe
environment:
- BASE_API_URL=https://chibi.midominio.eu.org
ports:
- 8001:8001
restart: unless-stopped
chibisafe_server:
image: chibisafe/chibisafe-server:latest
container_name: ChibisafeServer
volumes:
- ./database:/app/database:rw
- /ruta/a/uploads:/app/uploads:rw
- ./logs:/app/logs:rw
ports:
- 8674:8000
restart: unless-stopped
networks:
default:
name: Chibisafe_NET
- Se usan dos contenedores:
chibisafe(frontend) ychibisafe_server(API y gestión de archivos). - La ruta
/ruta/a/uploadsdebe apuntar al almacenamiento físico deseado. - También se encuentra el
docker-compose.yml, elCaddyfiley otros servicios adicionales en el repositorio personal (Gitea).
Caddyfile usado
# Chibisafe
chibi.midominio.eu.org {
route {
file_server * {
root /app/uploads
pass_thru
}
@api path /api/*
reverse_proxy @api http://localhost:8674 {
header_up Host {http.reverse_proxy.upstream.hostport}
header_up X-Real-IP {http.request.header.X-Real-IP}
}
@docs path /docs*
reverse_proxy @docs http://localhost:8674 {
header_up Host {http.reverse_proxy.upstream.hostport}
header_up X-Real-IP {http.request.header.X-Real-IP}
}
reverse_proxy http://localhost:8001 {
header_up Host {http.reverse_proxy.upstream.hostport}
header_up X-Real-IP {http.request.header.X-Real-IP}
}
}
encode gzip
log {
output file /var/log/caddy/chibi-access.log
format transform "{request>headers>X-Forwarded-For>[0]:request>remote_ip} - {user_id} [{ts}] \"{request>method} {request>uri} {request>proto}\" {status} {size}" {
time_format "02/Jan/2006:15:04:05 -0700"
}
}
}
Dominio anonimizado:chibi.midominio.eu.org.
file_server para servir directamente los archivos.
Se separan rutas para API (/api/*) y docs (/docs*).
reverse_proxy principal al frontend para todo lo demás.
Errores comunes o decisiones importantes
- No es obligatorio usar el Caddyfile que propone Chibisafe; se puede adaptar libremente.
- Revisar bien la ruta de los volúmenes para evitar perder uploads.
Resumen breve
docker-compose.ymlcon dos contenedores: frontend y backend.- Volúmenes bien definidos.
- Caddyfile adaptado al dominio propio.
- Revisar siempre la ruta
/app/uploads.