sp add
Enable optional services on your ServicePlus deployment.
Usage
Optional flag — pin a specific version
By default, sp add auto-detects and installs the latest stable image for the service. To pin a specific version instead — useful for matching an existing setup or avoiding a known issue in a newer release — pass --version:
The tag is validated against Docker Hub before the service is installed. The resolved version is stored in your encrypted config, so
sp update and other commands stay consistent with what you chose.Available services
| Service | What it adds |
|---|---|
n8n | Workflow automation with 400+ integrations. Automatically provisions PostgreSQL + pgvector. |
calcom | Self-hosted appointment booking at cal.yourdomain.com. |
pocketbase | Backend-as-a-service with auth, database, and file storage at pb.yourdomain.com. |
adminer | Database management UI at db.yourdomain.com. Use temporarily; disable when not needed. |
Examples
When you add n8n, ServicePlus automatically provisions a PostgreSQL 16 database with the pgvectorextension enabled — this powers n8n's AI agent workflows and semantic search. If you later add Cal.com, it also uses this same PostgreSQL instance (in its own separate database).PocketBase is independent — it uses its own embedded SQLite database and does not touch PostgreSQL.
What happens when you add a service
- Pulls the Docker image for the service
- Generates secure credentials automatically
- Creates the necessary database and user
- Configures the Apache reverse proxy with a new subdomain
- Provisions a new SSL certificate for the subdomain
- Starts the container and verifies it is healthy
Best practices
- Add services one at a time to make it easier to troubleshoot if something goes wrong
- Run
sp statusafter adding a service to confirm it is running - For Adminer: add it, do your work, then run
sp remove adminer— do not leave it running permanently