Skip to content

Quick Start Guide

Get up and running with the Surkyl Platform monorepo in just a few minutes.

Before you begin, ensure you have the following installed:

  • Node.js: v18 or higher (Download)
  • pnpm: v8 or higher (npm install -g pnpm)
  • Rust: Latest stable version (Install)
  • PostgreSQL: v14 or higher (for backend development)
  • Docker: Latest version (optional, for containerized services)
Terminal window
git clone <repository-url>
cd aio
Terminal window
pnpm install

This will install all dependencies for the entire monorepo.

To run any application in development mode:

Terminal window
# Run the playground app (Angular)
nx serve playground
# Run the docs site (Astro Starlight)
nx serve docs
# Run MueSync landing page
nx serve muesync-com
# Run Surkyl website
nx serve surkyl-com

For Rust applications, use the standard Nx commands:

Terminal window
# Build Rust applications
nx build gate
nx build surkyl-server
nx build godseye-proxy
# Run Rust applications in development
cargo run --bin gate
cargo run --bin surkyl-server
cargo run --bin godseye-proxy
Terminal window
nx build <project-name>

Examples:

Terminal window
# Build Angular app
nx build playground
# Build Astro site
nx build docs
nx build muesync-com
nx build surkyl-com
# Build Rust applications
nx build gate
nx build surkyl-server
Terminal window
# Run tests for a specific project
nx test <project-name>
# Run tests for Angular library
nx test pixel
# Run Rust tests
nx test gate
cargo test
Terminal window
# Run E2E tests with Playwright
nx e2e playground-e2e
nx e2e identity-ui-e2e

Visualize the dependency graph of your monorepo:

Terminal window
nx graph

See all available tasks for a project:

Terminal window
nx show project <project-name>
Terminal window
# Lint a specific project
nx lint <project-name>
# Lint all projects
nx run-many --target=lint --all
Terminal window
# Format all files
nx format:write
# Check formatting
nx format:check

If you’re working with surkyl-server, you’ll need to set up PostgreSQL:

Terminal window
# macOS
brew install postgresql@14
# Ubuntu/Debian
sudo apt-get install postgresql-14
# Start PostgreSQL
brew services start postgresql@14 # macOS
sudo systemctl start postgresql # Linux
Terminal window
createdb surkyl_server
Terminal window
cd apps/surkyl-server
sqlx database setup

Create apps/surkyl-server/configs/surkyl-server.config.yml or set environment variables:

database:
url: postgresql://postgres:postgres@localhost:5432/surkyl_server
security:
jwt_secret: your-secret-key-change-this-in-production

Some services provide Docker Compose configurations:

Terminal window
# Run Gate with Docker
cd apps/gate
docker-compose up
# Run Surkyl Server with Docker
cd apps/surkyl-server
docker-compose up
# Run GodSEye Proxy
cd apps/godseye-proxy
docker-compose up

Install the recommended extensions:

  1. Open the workspace in VS Code
  2. When prompted, install recommended extensions
  3. Or manually install from .vscode/extensions.json

The Nx plugin is available for JetBrains IDEs.

For a better developer experience, install Nx Console:

If you get a port conflict error, check for running processes:

Terminal window
# Find process using port 4200
lsof -i :4200
# Kill the process
kill -9 <PID>

If Rust builds fail:

Terminal window
# Update Rust
rustup update
# Clean build artifacts
cargo clean
# Rebuild
cargo build

If you encounter module resolution issues:

Terminal window
# Clean install
rm -rf node_modules
pnpm install
# Clear Nx cache
nx reset

Now that you’re set up, explore:

If you run into issues:

  1. Check this documentation
  2. Review the project-specific README files
  3. Check existing GitHub issues
  4. Open a new issue if needed