Tutorial: Instalar Sim.ai (Sim Studio) usando Docker
Este tutorial explica paso a paso cómo desplegar Sim Studio de forma local con Docker y Docker Compose, sin necesidad de usar APIs externas. El HTML está sin estilos, listo para publicarlo en Blogger u otra plataforma.
Requisitos
- Docker y Docker Compose instalados y funcionando.
- Git instalado.
- (Opcional) Ollama para usar modelos locales.
1. Crear carpeta de instalación
mkdir -p /home/docker/simstudio
cd /home/docker/simstudio
2. Clonar el repositorio oficial
Como la imagen simstudioai/sim no está en Docker Hub, se debe clonar el repositorio oficial desde GitHub:
sudo git clone --depth 1 https://github.com/simstudioai/sim.git
cd sim
3. Cambiar el puerto si el 3000 está ocupado
Editá el archivo docker-compose.prod.yml y reemplazá la línea:
ports:
- "3000:3000"
por, por ejemplo:
ports:
- "3100:3000"
Así accederás a http://localhost:3100 en lugar del 3000.
4. Cambiar el puerto de PostgreSQL si el 5432 está ocupado
Dentro del mismo archivo, buscá la sección del servicio db: y reemplazá:
ports:
- "5432:5432"
por:
ports:
- "5433:5432"
Esto evita conflictos si ya tenés otra base PostgreSQL corriendo en tu sistema.
5. Iniciar Sim Studio en modo producción
sudo docker compose -f docker-compose.prod.yml up -d
Esperá a que los contenedores se construyan y levanten. Luego abrí en tu navegador:
http://localhost:3100
6. Base de datos PostgreSQL + pgvector
Sim necesita PostgreSQL con la extensión pgvector para embeddings. Si no la tenés, podés levantarla fácilmente con Docker:
docker run --name simstudio-db \
-e POSTGRES_PASSWORD=tu_password \
-e POSTGRES_DB=simstudio \
-p 5432:5432 -d \
pgvector/pgvector:pg17
7. Configurar las variables de entorno
Copiá los archivos de ejemplo y ajustá la conexión a tu base de datos:
cd apps/sim
cp .env.example .env
# Editá .env y agregá:
DATABASE_URL="postgresql://postgres:tu_password@localhost:5433/simstudio"
8. Migrar la base de datos
cd packages/db
cp .env.example .env
# Editar con la misma DATABASE_URL
bunx drizzle-kit migrate --config=./drizzle.config.ts
9. Crear tu usuario inicial
Una vez que los contenedores estén activos, abrí tu navegador en http://localhost:3100. La primera vez que entres, verás una pantalla para crear un usuario y contraseña.
Ese primer usuario se convertirá en el administrador del sistema.
10. Modo desarrollo (opcional)
Para desarrolladores o pruebas locales:
bun run dev:full
O bien por separado:
# Aplicación principal
bun run dev
# Servidor realtime
cd apps/sim
bun run dev:sockets
11. Usar modelos locales con Ollama (opcional)
Permite usar modelos sin depender de APIs externas:
GPU:
docker compose -f docker-compose.ollama.yml --profile setup up -d
CPU:
docker compose -f docker-compose.ollama.yml --profile cpu --profile setup up -d
Para añadir más modelos:
docker compose -f docker-compose.ollama.yml exec ollama ollama pull llama3.1:8b
12. Comandos útiles
- Ver logs:
docker compose -f docker-compose.prod.yml logs -f - Reconstruir contenedores:
docker compose -f docker-compose.prod.yml up -d --build - Apagar todo:
docker compose -f docker-compose.prod.yml down
13. Errores comunes
El puerto 3000 o 5432 está en uso
Modificá los puertos del compose antes de iniciar (por ejemplo, 3100 y 5433).
Error de conexión a PostgreSQL
Verificá la variable DATABASE_URL y que el contenedor de la base esté activo.
pgvector faltante
Usá la imagen pgvector/pgvector:pg17 como en el ejemplo anterior, o instalá la extensión manualmente.
Notas finales
Este método usa exclusivamente Docker, sin dependencias externas. Es ideal para entornos de prueba o despliegue rápido.
Si preferís instalar manualmente, necesitás bun, PostgreSQL con pgvector y ejecutar las migraciones con Drizzle.
Comentarios
Publicar un comentario