Ir al contenido

Instalación

Esta guía te acompaña en el despliegue de solyto en tu propio servidor usando Docker.

Antes de empezar, asegúrate de tener:

  • Un servidor (VPS, dedicado o doméstico) con al menos 2 GB de RAM y 10 GB de almacenamiento
  • Docker y Docker Compose instalados
  • Tres nombres de dominio (o subdominios) apuntando a la IP de tu servidor:
    • app.example.com — el frontend
    • api.example.com — la API
    • dav.example.com — CalDAV/CardDAV
  • Una dirección de correo válida para los certificados TLS de Let’s Encrypt
  • Los puertos 80 y 443 abiertos en tu cortafuegos

Apunta tus tres nombres de dominio a la IP pública de tu servidor:

app.example.com A your.server.ip
api.example.com A your.server.ip
dav.example.com A your.server.ip

Espera a que se propague el DNS antes de continuar (normalmente unos minutos, hasta 24 horas).

La forma más rápida de instalar solyto es con el script de configuración:

Ventana de terminal
curl -fsSL "https://raw.githubusercontent.com/solyto/selfhosted/main/setup.sh?$(date +%s)" | bash

El script de configuración hará lo siguiente:

  1. Clonar el repositorio selfhosted
  2. Crear los directorios necesarios (storage/, bootstrap/cache/, etc.)
  3. Preguntarte de forma interactiva por:
    • API_DOMAIN — p. ej. api.example.com
    • APP_DOMAIN — p. ej. app.example.com
    • DAV_DOMAIN — p. ej. dav.example.com
    • ACME_EMAIL — tu correo para Let’s Encrypt
  4. Generar todos los secretos necesarios (contraseñas de base de datos, clave de aplicación, etc.)
  5. Escribir todo en .env y ./secrets/

Cuando el script termine, inicia los servicios:

Ventana de terminal
cd selfhosted
docker compose up -d

Si prefieres hacerlo todo manualmente:

Ventana de terminal
git clone https://github.com/solyto/selfhosted.git
cd selfhosted
Ventana de terminal
mkdir -p storage/app/public
mkdir -p storage/framework/cache
mkdir -p storage/framework/sessions
mkdir -p storage/framework/views
mkdir -p storage/logs
mkdir -p bootstrap/cache
chown -R www-data:www-data storage/

Copia el archivo de entorno de ejemplo y edítalo:

Ventana de terminal
cp .env.example .env

Edita .env con tus nombres de dominio, zona horaria y preferencias. Consulta Configuración para ver todas las opciones disponibles.

Crea el directorio ./secrets/ y genera los archivos de secretos necesarios:

Ventana de terminal
mkdir -p secrets
# Clave de aplicación
echo "base64:$(openssl rand -base64 32)" > secrets/app_key
# MariaDB
echo "solyto" > secrets/db_user
openssl rand -hex 32 > secrets/db_password
echo "solyto" > secrets/mariadb_user
openssl rand -hex 32 > secrets/mariadb_password
openssl rand -hex 32 > secrets/mariadb_root_password
# PostgreSQL (DAV)
echo "solyto_dav" > secrets/dav_db_user
openssl rand -hex 32 > secrets/dav_db_password
openssl rand -hex 32 > secrets/postgres_root_password
# Secretos opcionales (crea archivos vacíos)
touch secrets/solyto_bot_webhook_token
touch secrets/solyto_bot_telegram_token
touch secrets/hardcover_api_key
touch secrets/ai_api_key
touch secrets/mailgun_secret
touch secrets/vapid_public_key
touch secrets/vapid_private_key
touch secrets/bgg_api_key
touch secrets/tmdb_access_token
touch secrets/imgproxy_key
touch secrets/imgproxy_salt

Consulta Secretos de Docker para más detalles sobre cada secreto.

Ventana de terminal
docker compose up -d
Ventana de terminal
docker compose ps

Todos los servicios deberían mostrar el estado Up o Up (healthy).

Ventana de terminal
curl -s https://api.example.com/api/v1/health

Una respuesta correcta significa que la API está en funcionamiento y conectada a la base de datos.

Abre https://app.example.com en tu navegador. Deberías ver la página de inicio de sesión de solyto.

La página de registro está disponible en https://app.example.com/auth/register — crea tu cuenta con un nombre visible, una dirección de correo y una contraseña (mínimo 12 caracteres).

Alternativamente, crea un usuario desde la línea de comandos:

Ventana de terminal
docker exec -it <project>-api so users:create

Sustituye <project> por tu PROJECT_NAME (por defecto solyto). Si cambiaste el nombre del proyecto, ajusta el nombre del contenedor en consecuencia.

Un vídeo paso a paso del proceso de instalación está en preparación y se incrustará aquí.

Video coming soonInstalar solyto en un servidor nuevoApunta tus dominios al servidor, ejecuta el script de configuración y arranca la pila.~10 min