Skip to main content
This guide walks you through installing SkyTeam ROBLOX and all its dependencies.

Prerequisites Check

Before starting, ensure you have completed the Prerequisites setup:
  • Node.js 18.0.0+
  • pnpm 10.5.2+
  • PostgreSQL database

Installation Steps

1

Clone the Repository

Clone the SkyTeam ROBLOX repository to your local machine:
git clone https://github.com/yourusername/skyteam-roblox.git
cd skyteam-roblox
Replace yourusername with the actual repository owner.
2

Install Dependencies

Install all project dependencies using pnpm:
pnpm install
This command will:
  • Install dependencies for all workspaces
  • Set up internal package links
  • Build necessary packages
The --frozen-lockfile flag can be used in CI/CD to ensure reproducible builds:
pnpm install --frozen-lockfile
3

Configure Environment Variables

Set up your environment configuration:
cp .env.example .env
Edit the .env file with your configuration. See the Configuration Guide for detailed explanations of each variable.Minimum required variables:
DATABASE_URL="postgresql://user:password@localhost:5432/skyteam"
DISCORD_TOKEN="your-discord-bot-token"
ADMIN_JWT_SECRET="your-secret-key"
4

Initialize the Database

Push the database schema to your PostgreSQL instance:
pnpm --filter @skyteam/database db:push
This command uses Drizzle Kit to synchronize your database schema. See the Database Setup guide for more details.
Ensure your PostgreSQL server is running and the DATABASE_URL is correct before running this command.
5

Verify Installation

Start the development servers to verify everything is working:
pnpm dev
This will start all applications:
If all services start without errors, your installation is complete!

Monorepo Structure

SkyTeam ROBLOX is organized as a monorepo with the following structure:
skyteam/
├── apps/
│   ├── admin/     # Admin panel (Next.js)
│   ├── api/       # Backend API (Express)
│   ├── client/    # Discord bot (Discord.js)
│   ├── models/    # ROBLOX MainModule (Rojo)
│   └── web/       # Main website (Next.js)
├── packages/
│   ├── database/  # Drizzle PostgreSQL client
│   └── ui/        # Shared UI components
└── package.json   # Root workspace configuration

Available Scripts

The root package.json provides several useful scripts:
# Start all applications in development mode
pnpm dev

# Start only ROBLOX-related services
pnpm dev:roblox

# Start only web-related services
pnpm dev:web

Workspace Filtering

You can run commands for specific packages using pnpm’s --filter flag:
# Run command in a specific workspace
pnpm --filter @skyteam/api dev
pnpm --filter @skyteam/web build
pnpm --filter @skyteam/database db:studio

Troubleshooting

This usually indicates permission issues. Try:
# Fix npm permissions
sudo chown -R $USER:$USER ~/.npm

# Or use a Node version manager (recommended)
# Install nvm and reinstall Node.js
Workspace links may not be properly established:
# Clean and reinstall
rm -rf node_modules
pnpm install

# Rebuild packages
pnpm build
Verify your database configuration:
# Test PostgreSQL connection
psql "postgresql://user:password@localhost:5432/skyteam"

# Check if PostgreSQL is running
sudo systemctl status postgresql  # Linux
brew services list | grep postgres # macOS
If default ports are occupied, you can change them in each app’s configuration:
  • Web: apps/web/.env.localPORT=3000
  • Admin: apps/admin/.env.localPORT=3001
  • API: apps/api/.envPORT=4000

Next Steps

Configuration

Configure environment variables for all services

Database Setup

Learn about database schema and migrations

Docker Deployment

Deploy using Docker containers

Development

Start developing SkyTeam features

Build docs developers (and LLMs) love