One-click Services
LoomDeploy includes a built-in catalog of production-ready services you can deploy in seconds β no configuration files required. Each service gets its own Docker container, persistent volume, and auto-generated connection strings.
Available services
| Service | Type | Default port |
|---|---|---|
| PostgreSQL | Database | 5432 |
| MySQL | Database | 3306 |
| MariaDB | Database | 3306 |
| MongoDB | Database | 27017 |
| Redis | Cache | 6379 |
| MinIO | Object storage (S3-compatible) | 9000 |
| Ghost | CMS | 2368 |
Deploying a service
- Go to Projects and click New Project.
- Switch to the Services tab.
- Pick a service from the catalog.
- Fill in a name and any initial credentials (e.g. database password).
- Click Deploy β the container starts in seconds.
Service overview
Once deployed, the service detail page has four tabs:
| Tab | Description |
|---|---|
| Overview | Connection strings, container stats, service info |
| Logs | Live and historical container logs |
| Credentials | Raw env var view |
| Configuration | Credentials editor, external access, resource limits, danger zone |
Connection strings
The Overview tab automatically generates ready-to-copy connection strings based on the service type and your credentials:
- Internal β for apps running on the same server (uses the Docker network hostname
ld_<project-id>) - External β shown only when public access is enabled; uses your server's IP and the bound host port
Example (PostgreSQL, internal):
postgresql://youssef:password@ld_abc123:5432/mydb
Example (PostgreSQL, external after enabling public access on port 5433):
postgresql://youssef:password@109.199.107.0:5433/mydb
Updating credentials
Go to Configuration β Service Credentials to update usernames, passwords, and database names. Clicking Save & Redeploy will:
- Update the environment variables for the container.
- Trigger a redeploy β the service restarts with the new credentials.
External / public access
By default, services are internal only β they are only reachable from other containers on the same server. To connect from an external tool (DBeaver, TablePlus, Redis CLI, etc.):
- Go to Configuration β External Access.
- Click Public in the access mode switcher.
- Click Apply & Restart.
The service port is then bound to 0.0.0.0:<port> on the host. The external connection string in the Overview tab will update automatically.
ufw allow from <your-ip> to any port <port>).Resource limits
Go to Configuration β Resource Limits to cap CPU and memory:
| Field | Unit | 0 = |
|---|---|---|
| CPU Limit | % of one core (100 = 1 core, 200 = 2 cores) | Unlimited |
| Memory Limit | MB | Unlimited |
Limits are applied on the next redeploy.
Persistent data
All services mount a Docker named volume at the path expected by the image (e.g. /var/lib/postgresql/data for Postgres). Data persists across container restarts and redeployments.
Deleting a service
Go to Configuration β Danger Zone and click Delete. This will:
- Stop and remove the container
- Remove the service project record
docker volume rm <volume-name>.