enter-services
This skill manages Pollinations AI infrastructure by checking service statuses, reviewing logs, and restarting services in production or staging.
Install
mkdir -p .claude/skills/enter-services && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/5889" && unzip -o skill.zip -d .claude/skills/enter-services && rm skill.zipInstalls to .claude/skills/enter-services
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Deploy and manage enter.pollinations.ai text/image services on EC2 and Cloudflare Workers. Requires: SSH keys, sops, wrangler.Key capabilities
- →Check status of text and image services on EC2
- →View real-time logs for production and staging services
- →Restart production or staging service instances
- →Deploy updates to Cloudflare Workers
- →Decrypt and manage environment variables
How it works
The skill executes SSH commands to interact with systemd services on EC2 instances and uses Wrangler to manage Cloudflare Worker deployments.
Inputs & outputs
When to use enter-services
- →Checking deployment service status
- →Viewing real-time logs for image/text services
- →Restarting production instances
- →Debugging service errors via journalctl
About this skill
Requirements
Before using this skill, ensure you have:
- SSH keys: Configured via GitHub secrets (see workflow)
- sops:
brew install sops(for decrypting secrets) - Wrangler:
npm install -g wrangler - Node.js:
brew install node
Must run from the pollinations repo root.
Architecture Overview
| Environment | Gateway (Cloudflare Worker) | Text/Image Services (EC2) |
|---|---|---|
| Production | enter.pollinations.ai | 54.147.14.220 (ports 16384/16385) |
| Staging | staging.enter.pollinations.ai | 44.222.254.250 (ports 16384/16385) |
SSH Configuration
Add to ~/.ssh/config:
# Production instance
Host enter-services
HostName 54.147.14.220
User ubuntu
IdentityFile ~/.ssh/enter-services-shared
# Staging instance
Host enter-services-staging
HostName 44.222.254.250
User ubuntu
IdentityFile ~/.ssh/enter-services-staging
Quick Commands
Production
# Service status
ssh enter-services "sudo systemctl status text-pollinations.service image-pollinations.service"
# View logs (real-time)
ssh enter-services "sudo journalctl -u text-pollinations.service -f"
ssh enter-services "sudo journalctl -u image-pollinations.service -f"
# Restart services
ssh enter-services "sudo systemctl restart text-pollinations.service image-pollinations.service"
# Recent errors
ssh enter-services "sudo journalctl -u text-pollinations.service -p err -n 20"
Staging
# Service status
ssh enter-services-staging "sudo systemctl status text-pollinations.service image-pollinations.service"
# View logs
ssh enter-services-staging "sudo journalctl -u text-pollinations.service -f"
# Restart
ssh enter-services-staging "sudo systemctl restart text-pollinations.service image-pollinations.service"
Deploy to Production
The GitHub workflow handles production deployments automatically on push to production branch.
Manual deployment:
# 1. SSH into production
ssh enter-services
# 2. Pull and restart
cd /home/ubuntu/pollinations
git pull origin production
cd text.pollinations.ai && npm install
sudo systemctl restart text-pollinations.service
Deploy to Staging
Full Setup (New Instance)
# 1. SSH into the new instance
ssh enter-services-staging
# 2. Install build tools (if needed)
sudo apt-get update && sudo apt-get install -y build-essential
# 3. Clone repo
git clone https://github.com/pollinations/pollinations.git
cd pollinations
# 4. Run setup script
bash enter.pollinations.ai/scripts/setup-services.sh /home/ubuntu/pollinations
# 5. Restart the text service
ssh enter-services-staging "sudo systemctl restart text-pollinations.service"
Update Staging
ssh enter-services-staging "cd /home/ubuntu/pollinations && git pull && cd text.pollinations.ai && npm install && sudo systemctl restart text-pollinations.service"
Deploy Cloudflare Worker (enter.pollinations.ai)
cd enter.pollinations.ai
# Production
npm run deploy:production
# Staging
npm run deploy:staging
Service Locations (on EC2)
- Service definitions:
/etc/systemd/system/ - Text service:
/home/ubuntu/pollinations/text.pollinations.ai/
Wrangler Configuration
The wrangler.toml contains environment configs:
| Environment | Route | Service URLs |
|---|---|---|
production | enter.pollinations.ai | Production EC2 |
staging | staging.enter.pollinations.ai | Staging EC2 |
local | localhost:3000 | Local dev |
Troubleshooting
Services won't start
# Check logs
ssh enter-services-staging "sudo journalctl -u text-pollinations.service -n 50"
# Check if .env exists
ssh enter-services-staging "ls -la /home/ubuntu/pollinations/text.pollinations.ai/.env"
# Check node/npm
ssh enter-services-staging "node -v && npm -v"
Missing dependencies
ssh enter-services-staging "cd /home/ubuntu/pollinations/text.pollinations.ai && npm install"
Need build tools
ssh enter-services-staging "sudo apt-get install -y build-essential"
Token Rotation
Internal trust-boundary tokens (PLN_ENTER_TOKEN, PLN_GPU_TOKEN, Tinybird
tokens, SOPS recipients): see token-rotation.md for the
inventory, rotation mechanisms, deploy path, and rollback.
Notes
- Production deploys on push to
productionbranch - Staging deploys on push to
stagingbranch - Always test on staging before merging to production
- The Cloudflare Worker (enter.pollinations.ai) routes to EC2 services
- Text service: port 16385, Image service: port 16384
When not to use it
- →Tasks outside the pollinations infrastructure scope
Prerequisites
Limitations
- →Must be run from the pollinations repository root
- →Requires specific SSH configuration and access
How it compares
It provides a centralized, command-based interface for managing distributed services instead of manual SSH and deployment steps.
Compared to similar skills
enter-services side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| enter-services (this skill) | 1 | 3mo | Review | Advanced |
| deployment-pipeline-design | 6 | 2mo | Review | Advanced |
| kubernetes-architect | 6 | 4mo | No flags | Advanced |
| ecs | 2 | 3mo | Review | Intermediate |
Try saying
Example prompts that trigger this skill in your AI assistant.
More by pollinations
View all by pollinations →You might also like
deployment-pipeline-design
wshobson
Design multi-stage CI/CD pipelines with approval gates, security checks, and deployment orchestration. Use when architecting deployment workflows, setting up continuous delivery, or implementing GitOps practices.
kubernetes-architect
sickn33
Expert Kubernetes architect specializing in cloud-native infrastructure, advanced GitOps workflows (ArgoCD/Flux), and enterprise container orchestration. Masters EKS/AKS/GKE, service mesh (Istio/Linkerd), progressive delivery, multi-tenancy, and platform engineering. Handles security, observability, cost optimization, and developer experience. Use PROACTIVELY for K8s architecture, GitOps implementation, or cloud-native platform design.
ecs
itsmostafa
AWS ECS container orchestration for running Docker containers. Use when deploying containerized applications, configuring task definitions, setting up services, managing clusters, or troubleshooting container issues.
dstack
dstackai
dstack is an open-source control plane for GPU provisioning and orchestration across GPU clouds, Kubernetes, and on-prem clusters.
exa-deploy-integration
jeremylongshore
Deploy Exa integrations to Vercel, Fly.io, and Cloud Run platforms. Use when deploying Exa-powered applications to production, configuring platform-specific secrets, or setting up deployment pipelines. Trigger with phrases like "deploy exa", "exa Vercel", "exa production deploy", "exa Cloud Run", "exa Fly.io".
ecs-runtime-debug-playbook
talolard
Debug AWS ECS or Fargate deployments where CI or workflow status does not match live behavior, especially when an old task definition keeps serving traffic, a new task exits during startup, health checks are false-green, Alembic or schema state may be inconsistent with physical tables, or AWS profil