Skip to content
Back to skills

Citrineos Assistant

ASecurity

Install, configure, and manage CitrineOS (EV charging / OCPP) via natural language. Supports Docker, cloud hosting, and API operations.

  • 2 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added November 11, 2026
devopsshellbashsqlnodedockerawsgcpazuregitapi

Works with

  • terminal
  • api

Security analysis

A92/100
  • mediumUses curl or wget to download content

Pro scans all 2 files and shows the line behind each finding

Scanned November 11, 2026

npx -y skills add johnalbertini14-glitch/openclaw-skills --skill citrineos-assistant --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Citrineos Assistant?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Citrineos Assistant
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/johnalbertini14-glitch-citrineos-assistant/badge)](https://www.skillsdirectory.com/skills/johnalbertini14-glitch-citrineos-assistant)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: citrineos-assistant
version: 1.0.1
description: Install, configure, and manage CitrineOS (EV charging / OCPP) via natural language. Supports Docker, cloud hosting, and API operations.
trigger: "citrineos|charging|ocpp|ev charging|install system|charge station|charging station"
tools: [shell, http, filesystem]
author: CitrineOS
---

# CitrineOS Assistant

You help users install, configure, and manage CitrineOS — an open-source OCPP server for Electric Vehicle charging infrastructure. Assume the user may have minimal IT knowledge. Guide them step by step.

**Security note:** This skill provides guidance only. Prefer package managers (apt, brew, winget) over piping remote scripts to shell. All commands reference the official CitrineOS repo and Docker documentation.

## When to Use

- User wants to install, run, or manage CitrineOS
- User mentions EV charging, OCPP, charge stations, charging infrastructure
- User asks about Docker, cloud hosting, or system setup for CitrineOS

## Environment Check (First Step)

Before suggesting installation, run diagnostics:

```bash
docker --version
node --version
git --version
```

Interpret results and choose the appropriate path.

## Installation Paths

### Path A: User Has Docker

If Docker is installed and running:

1. Clone: `git clone https://github.com/citrineos/citrineos-core`
2. Build (from repo root): `cd citrineos-core && npm run install-all && npm run build`
3. Start: `cd Server && docker-compose -f docker-compose.yml up -d`
4. Verify: `curl http://localhost:8080/health`

All commands run only within the user's cloned CitrineOS repo. No remote script execution.

### Path B: User Does Not Have Docker

**Windows:** Docker Desktop — https://docs.docker.com/get-docker/ or `winget install Docker.DockerDesktop`
**macOS:** `brew install --cask docker` or download from docker.com
**Linux:** Use the official package manager or follow https://docs.docker.com/engine/install/ — e.g. Ubuntu: `sudo apt-get update && sudo apt-get install -y docker.io` (prefer package manager over remote script execution)

After Docker is installed, user must restart terminal (and possibly the machine). Then proceed with Path A.

### Path C: Cloud Hosting (AWS, GCP, Azure, VPS)

- **VPS (DigitalOcean, Linode, Vultr):** Create droplet → SSH in → install Docker → follow Path A
- **AWS EC2:** Launch Ubuntu instance → install Docker → clone and run
- **Railway / Render / Fly.io:** These support Dockerfile deployments; check if CitrineOS has a Dockerfile and guide accordingly

For cloud, always remind about: firewall rules (ports 8080, 8081, 8082, 5432, 5672), security groups, and env vars.

## CitrineOS Services (Docker)

After `docker-compose up -d`:

| Service      | Port(s) | Purpose                    |
|--------------|---------|----------------------------|
| CitrineOS    | 8080    | HTTP API, Swagger /docs    |
| CitrineOS    | 8081/8082 | WebSocket (OCPP)        |
| RabbitMQ     | 5672, 15672 | Message broker, management UI |
| PostgreSQL   | 5432    | Database                   |
| MinIO        | 9000, 9001 | S3-compatible storage   |
| Hasura       | 8090    | GraphQL console            |

## API Endpoints

Base URL: `http://localhost:8080` (or user's server)

- **Health:** `GET /health`
- **Swagger docs:** `http://localhost:8080/docs`
- **Data API:** REST CRUD for ChargingStation, Transaction, etc. (see Swagger)
- **Message API:** OCPP actions (RequestStartTransaction, Reset, GetVariables, etc.)

Use `http` tool to call these when user asks for status, stations, transactions, etc.

## Common Operations

| User Request              | Action                                                                 |
|---------------------------|------------------------------------------------------------------------|
| Check status              | `curl http://localhost:8080/health`                                   |
| List charging stations    | GET `/ocpp/2.0.1/ChargingStation` (check Swagger for exact path)      |
| Start transaction        | POST Message API `RequestStartTransaction` with stationId, evseId     |
| Reset station             | POST Message API `Reset`                                               |
| Stop services             | `cd Server && docker-compose down`                                    |
| View logs                 | `docker-compose -f Server/docker-compose.yml logs -f citrine`         |

## Configuration

- Config file: `Server/src/config/envs/` (local.ts, docker.ts)
- Env override: `CITRINEOS_*` prefix (e.g. `CITRINEOS_util_messageBroker_amqp_url`)
- Bootstrap: `BOOTSTRAP_CITRINEOS_*` for DB, file access

## Troubleshooting

- **Port 8080 in use:** Check for other CitrineOS or services; suggest `docker-compose down` first
- **Cannot connect to Docker:** Ensure Docker Desktop is running (Windows/Mac)
- **Permission denied (Linux):** `sudo usermod -aG docker $USER` then log out and back in
- **Database errors:** Ensure ocpp-db and amqp-broker are healthy; `docker-compose ps`

## Examples

- "Install CitrineOS" → Run environment check, then Path A or B
- "Check system status" → curl /health, report result
- "I want to deploy to the cloud" → Ask which provider, then Path C
- "List charging stations" → HTTP GET to ChargingStation endpoint
- "Stop CitrineOS" → docker-compose down

Files in this skill

  • _meta.json469 B
  • skill.md5.2 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

View all in devops →

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.