feat: CitrineOS production-grade Railway template (9 services)#2
Draft
cloudygetty-ai wants to merge 2 commits into
Draft
feat: CitrineOS production-grade Railway template (9 services)#2cloudygetty-ai wants to merge 2 commits into
cloudygetty-ai wants to merge 2 commits into
Conversation
…eOS EV charging stack
Deploys 9 services simultaneously with private networking and pre-wired
environment variables:
Infrastructure (private):
- TimescaleDB (PostgreSQL 15 + TimescaleDB) for meter time-series data
- RabbitMQ 3.12 for OCPP event streaming
- Redis 7 for caching
Application tier (private):
- CitrineOS Core — OCPP 2.0.1 CPMS (HTTP :8080, WebSocket :8081)
- Hasura GraphQL Engine v2.40 connected to TimescaleDB
- Directus 11 CMS for CitrineOS data management
- EVerest simulator for integration testing
Custom services (private):
- Extensions Service — TypeScript/Node.js 20 app that consumes OCPP events
from RabbitMQ and exposes a REST API for custom business logic
(billing, loyalty, alerts). Handlers registered in src/handlers/index.ts.
Gateway (public — sole entry point):
- Nginx 1.25 reverse proxy with envsubst-based runtime config
- Routes: /api/graphql, /cms, /ocpp, /ocpp-ws, /api/extensions
Includes docker-compose.yml for local dev, .env.example, railway.json
template descriptor, railway.toml per service, and EXTENSIONS.md guide.
https://claude.ai/code/session_01FqEkDaad3jTipkfUGBCjpE
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
citrineos-railway/— complete one-click Railway template for a production CitrineOS OCPP 2.0.1 EV charging stack${{service.VAR}}cross-service referencesgatewayservice is publicly exposed; all databases and brokers are private-network onlyServices
timescaledbtimescale/timescaledb:latest-pg15rabbitmqrabbitmq:3.12-management-alpineredisredis:7-alpinecitrineos-coreghcr.io/citrineos/citrineos-core:latesthasurahasura/graphql-engine:v2.40.0directusdirectus/directus:11everestghcr.io/everest/everest-demo:latestextensionsgatewayFiles
Test plan
docker compose up -dboots all servicescurl http://localhost/health→{"status":"ok"}curl http://localhost/api/extensions/health→ uptime JSONhttps://claude.ai/code/session_01FqEkDaad3jTipkfUGBCjpE
Generated by Claude Code