home / skills / coollabsio / coolify-docs / renaming-services

renaming-services skill

/.claude/skills/renaming-services

This skill renames a service's documentation file and updates all references across docs/services, List.vue, and nginx/redirects.conf to prevent broken links.

npx playbooks add skill coollabsio/coolify-docs --skill renaming-services

Review the files below or copy the command above to add this skill to your agents.

Files (1)
SKILL.md
4.2 KB
---
name: renaming-services
description: Renames a service documentation file and updates all references across docs/services/, List.vue, and nginx/redirects.conf. Use when renaming services, changing service slugs, fixing camelCase to kebab-case, or when service names change in the Coolify repository templates/compose/.
allowed-tools: Read, Grep, Glob, Write, Edit, Bash
---

# Rename Service Documentation

This skill guides you through renaming a service in the Coolify documentation, ensuring all references are updated correctly.

## When to Use This Skill

- Service name changed in the Coolify repository
- Fixing incorrect service naming (e.g., camelCase to kebab-case)
- Consolidating duplicate service documentation
- Correcting typos in service slugs

## Critical: Three Locations Must Be Updated

When renaming a service, you **MUST** update all three locations:

1. **Documentation file** (`docs/services/`)
2. **Services list** (`docs/.vitepress/theme/components/Services/List.vue`)
3. **Nginx redirects** (`nginx/redirects.conf`)

Failing to update all three will cause broken links or 404 errors.

## Step-by-Step Process

### 1. Rename the Documentation File

```bash
# Rename the markdown file
git mv docs/services/old-name.md docs/services/new-name.md
```

**Naming rules:**
- Use lowercase only
- Use hyphens for spaces (kebab-case)
- Match the service name from `service-templates-latest.json`
- Don't use camelCase even if the JSON does (e.g., `denoKV` → `denokv.md`)

### 2. Update the Services List

Edit `docs/.vitepress/theme/components/Services/List.vue`:

```javascript
// Find the service entry and update the slug
{
    name: 'Service Name',
    slug: 'new-name',  // ← Change from 'old-name'
    icon: '/docs/images/services/service-logo.svg',
    description: 'Service description',
    category: 'Category'
},
```

### 3. Add Nginx Redirects

Add redirect rules to `nginx/redirects.conf`:

```nginx
# Redirect old service URL to new URL
location = /docs/services/old-name { return 301 /docs/services/new-name; }

# Also redirect legacy knowledge-base path if it existed
location = /knowledge-base/services/old-name { return 301 /docs/services/new-name; }
```

**Important:** Keep redirects even for deleted pages to prevent 404 errors from search engines and bookmarks.

### 4. Update Internal Links

Search for any internal links referencing the old name:

```bash
# Search for references to the old service name
grep -r "old-name" docs/
```

Update any found references in other documentation files.

### 5. Rename Logo File (If Needed)

If the logo filename also needs updating:

```bash
# Rename the logo
git mv docs/public/images/services/old-name-logo.svg docs/public/images/services/new-name-logo.svg
```

Then update the `icon` path in List.vue.

## Verification Checklist

After renaming, verify:

- [ ] New file exists: `docs/services/new-name.md`
- [ ] Old file removed or redirected
- [ ] List.vue `slug` matches new filename
- [ ] List.vue `icon` path is correct
- [ ] Redirect added to `nginx/redirects.conf`
- [ ] No broken internal links (run `grep -r "old-name" docs/`)
- [ ] Service appears correctly at http://localhost:5173/docs/services/new-name
- [ ] Old URL redirects to new URL

## Common Scenarios

### Fixing camelCase to kebab-case

When the Coolify JSON uses camelCase but docs should use lowercase:

- `denoKV` → `denokv.md`
- `homeAssistant` → `home-assistant.md`

### Adding Version Numbers

When Coolify adds version-specific services:

- `mautic.md` → `mautic5.md` (if JSON specifies `mautic5`)

### Consolidating Names

When compound names are required:

- `ente.md` → `ente-photos.md` (if JSON specifies `ente-photos`)

## Troubleshooting

### Service shows 404

- Check if redirect is in `nginx/redirects.conf`
- Verify slug in List.vue matches filename
- Ensure markdown file exists

### Old URL still works without redirect

- Nginx config may need reload
- Check redirect syntax in `redirects.conf`

### Search engines still show old URL

- Redirects are working correctly (301 tells search engines to update)
- Takes time for search engines to re-crawl

## Related Skills

- `adding-service-documentation` - For creating new service docs
- `disabling-services` - For hiding deprecated services

Overview

This skill renames a service documentation file and updates every reference across the docs and infrastructure that can cause broken links. It ensures the markdown filename, the services list entry, and nginx redirects are all updated consistently. Use it to convert camelCase to kebab-case, fix typos, or align docs with service slugs in templates.

How this skill works

The skill performs a three-part update: it renames the markdown in docs/services/, updates the slug and icon path in docs/.vitepress/theme/components/Services/List.vue, and adds permanent redirects in nginx/redirects.conf. It also guides you to search and update any remaining internal links and rename related assets like service logos. Finally, it includes a verification checklist to confirm the site and redirects behave correctly locally and in production.

When to use it

  • Service name changed in the codebase or templates/compose/
  • Fixing camelCase to kebab-case or other slug formatting
  • Correcting typos or consolidating duplicate service docs
  • Adding versioned or compound service slugs (e.g., mautic5, ente-photos)
  • Removing or renaming deprecated services while preserving redirects

Best practices

  • Always update all three locations: docs/services/, List.vue, and nginx/redirects.conf to avoid 404s
  • Use lowercase and hyphens for filenames (kebab-case) and match the authoritative service slug
  • Keep 301 redirects even for deleted pages to preserve SEO and bookmarks
  • Run a repository-wide search for the old slug and update any internal links you find
  • Verify changes locally at http://localhost:5173 and confirm old URLs redirect to the new paths

Example use cases

  • Rename denoKV to denokv.md and update List.vue and nginx redirects
  • Fix service slug typo from old-name to new-name across docs and redirects
  • Consolidate two docs into ente-photos.md and add redirects from the former filenames
  • Add a versioned service page like mautic5.md and update the services list and redirects

FAQ

What happens if I forget to update nginx/redirects.conf?

Old URLs will likely return 404s or remain accessible depending on server config; always add 301 redirects to preserve links and search engine indexing.

Should I change logo filenames too?

Yes—rename the logo under docs/public/images/services if needed and update the icon path in List.vue so the service card shows the correct image.