Product: Sentinel - A GLINR Product by Glincker Time to Complete: 5 minutes Level: Beginner
By the end of this tutorial, you'll have:
- ✅ Sentinel installed and running
- ✅ A simple full-stack app managed by Sentinel
- ✅ Real-time system monitoring dashboard
- ✅ Understanding of core commands
- macOS, Linux, or Windows
- Node.js 18+ (for example app)
- Docker (optional, for database examples)
brew install glincker/tap/sentinel
sentinel --versionwget https://github.com/glincker/sentinel/releases/latest/download/sentinel.AppImage
chmod +x sentinel.AppImage
./sentinel.AppImage --versionDownload .exe from Releases and run installer.
Navigate to a project directory:
cd ~/my-projectInitialize Sentinel with interactive template selector:
sentinel initYou'll see:
🛡️ Sentinel Configuration Generator
Select a template:
1. Simple (single process)
2. Full-stack (frontend + backend + database)
3. Microservices (multiple services)
4. Custom (blank template)
Enter your choice (1-4): 2
Choose 2 for full-stack. Sentinel creates sentinel.yaml:
processes:
- name: database
command: docker
args:
- run
- --rm
- -p
- "5432:5432"
- postgres:16-alpine
- name: backend
command: npm
args:
- run
- dev
cwd: ./server
env:
PORT: "8101"
depends_on:
- database
- name: frontend
command: npm
args:
- run
- dev
cwd: ./client
env:
PORT: "8100"
depends_on:
- backendOpen sentinel.yaml and update paths/commands for your project:
processes:
# If you don't have Docker, remove the database process
# - name: database
# ...
- name: api
command: npm
args:
- run
- start
cwd: ./my-api-folder # ← Update this
env:
PORT: "8101"
- name: web
command: npm
args:
- run
- dev
cwd: ./my-frontend-folder # ← Update this
env:
PORT: "8100"
depends_on:
- apiTip: Start simple! Just 1-2 processes for your first run.
sentinel startYou'll see:
🛡️ Starting processes...
✓ api started (PID: 12345)
✓ web started (PID: 12346)
All processes running. Use 'sentinel status' to check.
sentinel guiClick "Start All" in the dashboard.
sentinel statusOutput:
┌──────────┬──────────┬────────┬─────────┬────────────┐
│ Name │ Status │ PID │ CPU │ Memory │
├──────────┼──────────┼────────┼─────────┼────────────┤
│ api │ running │ 12345 │ 2.3% │ 45 MB │
│ web │ running │ 12346 │ 1.8% │ 38 MB │
└──────────┴──────────┴────────┴─────────┴────────────┘
System: CPU 18.5% | RAM 4.2 GB / 16 GB | Disk 120 GB / 500 GB
sentinel logs apiOutput:
[2025-10-20 10:30:15] Server listening on port 8101
[2025-10-20 10:30:16] Database connected
[2025-10-20 10:30:17] Ready to accept requests
sentinel guiExplore:
- Dashboard: Real-time CPU/RAM graphs
- Process Cards: Click to see details
- Quick Actions: Start/stop/restart buttons
sentinel restart apisentinel stop websentinel stopprocesses:
- name: backend
command: node
args:
- server.js
env:
PORT: "8101"
- name: frontend
command: npm
args:
- start
env:
PORT: "8100"processes:
- name: api
command: uvicorn
args:
- main:app
- --reload
- --port
- "8101"
- name: web
command: npm
args:
- run
- devprocesses:
- name: auth-service
command: npm
args: [run, dev]
cwd: ./services/auth
env:
PORT: "8101"
- name: user-service
command: npm
args: [run, dev]
cwd: ./services/users
env:
PORT: "8102"
- name: gateway
command: npm
args: [run, dev]
cwd: ./services/gateway
env:
PORT: "8100"
depends_on:
- auth-service
- user-serviceProblem: sentinel.yaml has invalid syntax.
Solution:
# Validate YAML syntax online: https://www.yamllint.com/
# Or regenerate:
sentinel init --forceProblem: Command not found or wrong directory.
Solutions:
-
Check command exists:
which npm # Should output a path -
Check working directory:
processes: - name: api cwd: ./server # Make sure this folder exists!
-
Run command manually:
cd ./server npm run dev # Does this work?
Problem: Another process is using the port.
Solutions:
-
Find and kill the process:
# macOS/Linux lsof -ti:8101 | xargs kill # Windows netstat -ano | findstr :8101 taskkill /PID <PID> /F
-
Or change the port in
sentinel.yaml:env: PORT: "8102" # Use a different port
Browse real-world examples:
ls examples/
# mern/ - MongoDB + Express + React
# nextjs/ - Next.js full-stack
# python-fastapi/ - FastAPI + React
# spring-react/ - Spring Boot + ReactCopy one to your project:
cp examples/mern/sentinel.yaml ./sentinel.yamlsentinel add my-new-service "npm run dev" --directory ./new-serviceEdit sentinel.yaml:
processes:
- name: api
command: npm
args: [run, dev]
auto_restart: true # ← Restart on crash
max_restarts: 3 # ← Max attempts
restart_delay_ms: 1000 # ← Wait 1s between restartsprocesses:
- name: api
command: npm
args: [run, dev]
health_check:
command: curl
args:
- -f
- http://localhost:8101/health
interval_ms: 10000 # Check every 10s
timeout_ms: 5000
retries: 3- Architecture: docs/ARCHITECTURE.md
- Development Guide: docs/DEVELOPMENT.md
- FAQ: docs/FAQ.md
- Roadmap: docs/ROADMAP.md
# Initialize config
sentinel init
# Start all processes
sentinel start
# Start specific process
sentinel start api
# Stop all processes
sentinel stop
# Stop specific process
sentinel stop api
# Restart process
sentinel restart api
# Check status
sentinel status
# View logs
sentinel logs api
# View last 100 lines
sentinel logs api --lines 100
# Add new process
sentinel add my-service "npm run dev" --directory ./my-service
# Remove process
sentinel remove my-service
# List all processes
sentinel list
# Open GUI
sentinel gui
# Show version
sentinel --version
# Show help
sentinel --help| Shortcut | Action |
|---|---|
Ctrl/Cmd + S |
Start all processes |
Ctrl/Cmd + Q |
Stop all processes |
Ctrl/Cmd + R |
Restart all processes |
Ctrl/Cmd + , |
Open settings |
Ctrl/Cmd + 1 |
Go to Dashboard |
Ctrl/Cmd + 2 |
Go to Process Detail |
Ctrl/Cmd + 3 |
Go to Settings |
processes:
- name: database
command: docker
# ...
- name: backend
command: npm
depends_on:
- database # ← Waits for database to startDon't use common dev ports (3000, 3001, 5000, 8000):
env:
PORT: "8100" # Good! Less likely to conflictprocesses:
- name: api
command: npm
args: [run, dev]
cwd: ./server # ← Run command from this folderglobal_env:
NODE_ENV: development # Applied to all processes
processes:
- name: api
env:
PORT: "8101" # Applied to this process onlyStart with 1-2 processes, add more as needed.
✅ How to install Sentinel ✅ How to create and customize configs ✅ How to start/stop/restart processes ✅ How to monitor system resources ✅ How to troubleshoot common issues ✅ How to use the CLI and GUI
- Discord: https://discord.gg/sentinel
- GitHub Discussions: https://github.com/glincker/sentinel/discussions
- Documentation: https://docs.glincker.com/sentinel
- Email: sentinel@glincker.com
🚀 Share your setup! Tweet your sentinel.yaml with #SentinelDev
⭐ Star the repo: https://github.com/glincker/sentinel
💬 Join the community: https://discord.gg/sentinel
📝 Contribute: See CONTRIBUTING.md
Built with ❤️ by Glincker (A GLINR Product)