Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 

README.md

Sim Development Container

Development container configuration for VS Code Dev Containers and GitHub Codespaces.

Prerequisites

  • Visual Studio Code
  • Docker Desktop or Podman Desktop
  • VS Code Dev Containers extension

Getting Started

  1. Open this project in VS Code
  2. Click "Reopen in Container" when prompted (or press F1 → "Dev Containers: Reopen in Container")
  3. Wait for the container to build and initialize
  4. Start developing with sim-start

The setup script will automatically install dependencies and run migrations.

Development Commands

Running Services

You have two options for running the development environment:

Option 1: Run everything together (recommended for most development)

sim-start  # Runs both app and socket server using concurrently

Option 2: Run services separately (useful for debugging individual services)

  • In the app container terminal: sim-app (starts Next.js app on port 3000)
  • In the realtime container terminal: sim-sockets (starts socket server on port 3002)

Other Commands

  • sim-migrate - Push schema changes to the database
  • sim-generate - Generate new migrations
  • build - Build the application
  • pgc - Connect to PostgreSQL database

Troubleshooting

Build errors: Rebuild the container with F1 → "Dev Containers: Rebuild Container"

Port conflicts: Ensure ports 3000, 3002, and 5432 are available

Container runtime issues: Verify Docker Desktop or Podman Desktop is running

Technical Details

Services:

  • App container (8GB memory limit) - Main Next.js application
  • Realtime container (4GB memory limit) - Socket.io server for real-time features
  • Database - PostgreSQL with pgvector extension
  • Migrations - Runs automatically on container creation

You can develop with services running together or independently.

Personalization

Project commands (sim-start, sim-app, etc.) are automatically available via /workspace/.devcontainer/sim-commands.sh.

Personal shell customization (aliases, prompts, etc.) should use VS Code's dotfiles feature:

  1. Create a dotfiles repository (e.g., github.com/youruser/dotfiles)
  2. Add your .bashrc, .zshrc, or other configs
  3. Configure in VS Code Settings:
    {
      "dotfiles.repository": "youruser/dotfiles",
      "dotfiles.installCommand": "install.sh"
    }

This separates project-specific commands from personal preferences, following VS Code best practices.