> ## Documentation Index
> Fetch the complete documentation index at: https://repocloud.io/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Customizing Applications

> Use the DevOps AI Agent to change an application on your VPS: branding, plugins, settings, email, sign-in, backups, and upgrades

## Customizing With the Agent

Once the agent has set an application up, the same chat is how you change it. The agent has root access to your server, so it can do what a system administrator does there: edit configuration files, set environment variables, install packages, add plugins, schedule jobs, and restart services. You describe the result you want in plain language, and the agent works out the steps. [The DevOps AI Agent](https://repocloud.io/docs/ai-agents/devops-ai-agent.md) explains what the chat looks like and how to open it again.

What the agent can do for one application depends on that application. A setting the application does not have cannot be switched on, and a plugin has to be one the application supports. The more exactly you name the setting, the theme, or the plugin, and the more you link to the project's own documentation, the better the result. The agent has no browser, so it does not click through an application's admin web pages: it works through configuration files, environment variables, command-line tools, and the application's own API, and when a setting exists only on a web page it says so. The chat takes text only, so a link is the way to hand the agent a file: it can download the file onto your server.

## Before You Change Anything

**1. Take a Snapshot**

On the server's manage page, press **Create Snapshot**. A snapshot is a copy of the whole disk, so restoring it undoes every change made since, the application's data included. You can keep up to 5 snapshots, at $0.10 per GB per month. See [Snapshots](https://repocloud.io/docs/manage/vps-apps.md#snapshots).

**2. Ask for the Plan First**

Start with a message such as: "Tell me what you will change and which files it touches, and wait for my go-ahead." Read the plan, correct it, then say go.

**3. Change One Thing at a Time**

When two changes are made together and the application stops working, it is harder to tell which one caused it.

**4. Check the Result**

Open the application and use the feature you changed. Expand the agent's tool rows to see exactly which commands it ran and which files it wrote, or ask it to list them.

## Recipes

Each recipe shows a request you can adapt, what the agent can do, and how to check the result. Replace the examples with your own names and addresses.

> **Branding and themes**
>
> > "Change the site name to 'Acme Support', use the logo at `https://example.com/logo.png`, and set the primary color to #0057b8."
>
> The agent can change the branding that the application keeps in a configuration file, in an environment variable, or in a setting that its command-line tool or API can change, and it can download a logo from a link you give it. Where the application offers themes, it can install and select one.
>
> **Check:** reload the page with the browser's cache bypassed, and look at it in a private window.

> **Plugins and extensions**
>
> > "Which version of the application am I running? Then install the plugin from `https://example.com/plugin` and activate it."
>
> The agent can install a plugin the way the application's documentation describes: with its command-line tool, with a package manager, or by placing the files, followed by a restart. A plugin must fit the application's version, which is why the first question is the version.
>
> **Check:** the plugin is listed in the application's admin area, and the page that uses it works.

> **Settings and environment variables**
>
> > "Turn off public sign-ups, set the default language to German, and raise the upload limit to 100 MB."
>
> The agent can find where the application reads each setting (an environment file, a Compose file, or a command or API of the application), change it, and restart what needs a restart. When a setting needs a key or another secret, it asks you for it and you paste it into the chat. The secret reaches the AI model provider with the rest of the conversation, so use a key you can revoke, with only the permissions the application needs.
>
> **Check:** ask the agent to confirm that the new value is in place, without printing any secret.

> **Domains and SSL**
>
> > "I want to serve this application at app.example.com. The DNS record points at the server. Set up the web server and the certificate, and update the application's own address setting."
>
> First see whether the server's manage page has a **Custom Domain** card, and read [Custom Domains](https://repocloud.io/docs/manage/custom-domains.md) if it does. A server without the card needs an A record at your DNS provider that points the name at the server's IPv4 address. The record is yours to create: DNS is not a RepoCloud setting. With the record in place, the agent can make the web server answer for the name, get a certificate for it, and change the application's public URL or allowed-hosts setting, which many applications need to match the new name.
>
> **Check:** open `https://app.example.com` and look at the padlock in the browser.

> **Email (SMTP)**
>
> > "Send the application's email through my SMTP provider, from noreply@example.com, and send a test message to me@example.com."
>
> The agent asks for the provider's host, port, username, and password, writes them into the application's mail settings, and can trigger a test message if the application has one.
>
> **Check:** the test message arrives, spam folder included. If it does not, ask the agent to show the application's mail log.

> **Authentication and SSO**
>
> > "Require two-factor authentication for admins, and let users sign in with our Okta account."
>
> A sign-in provider gives you a client ID and a secret, and it asks for a callback address, a URL on your server's HTTPS domain that the application defines. The agent can tell you the callback address, ask you for the ID and the secret, and enter them in the application's configuration.
>
> **Check:** sign in with a test account in a private window while your admin session is still open, so that a wrong setting does not leave you without a way into the application.

> **Backups and scheduled jobs**
>
> > "Back up the database and the uploads every night, keep the last 7 copies, and copy each one to my S3-compatible bucket."
>
> A backup that stays on the server disappears with the server, and a snapshot is kept with the server too. A copy in storage you control survives, and you provide the storage and its access keys. The agent can write the backup script, schedule it with cron, run it once so that you can see it work, and explain how to restore from it. It is also instructed to offer backups once a deployment works, so you may be asked.
>
> **Check:** a backup file exists at the off-server location and its size is plausible.

> **Performance tuning**
>
> > "The site is slow. Show me what is using memory and CPU, and fix what you can."
>
> The agent can look at memory, CPU, disk, and logs, and change the application's worker, cache, and database settings. When the server is simply too small, the answer is a larger tier: **Resize** on the manage page is yours to press, and the agent cannot change tiers. See [Resize](https://repocloud.io/docs/manage/vps-apps.md#resize). The **Usage** card opens charts of CPU, memory, disk, and bandwidth over the last 24 hours, 7 days, or 30 days.
>
> **Check:** compare the same page before and after, and watch the memory chart.

> **Upgrades**
>
> > "Tell me which version I run and which is the latest, tell me what the upgrade will change, and then upgrade."
>
> Take a snapshot first. On a VPS, updates are made over SSH or by the agent, and there is no Rebuild button as there is for a Container App. The agent can pull a newer version the way the project's documentation describes (new container images for a Docker Compose application, a package update, or a new release), then check that the application starts and that your data is intact.
>
> **Check:** the application shows the new version, and the pages you rely on still work.

> **Anything else on the server**
>
> Opening an extra port for a service, adding a database, running a second application behind the same web server, or rotating logs are all server administration, and you can ask the agent for them in the same way. The agent works on this server only.

## Working Alongside the Agent

If you change something yourself over SSH, tell the agent. It knows what it did and what it read in this conversation, and it does not watch the server in between.

A few things stay with you, because the agent has no tool for them: the snapshots, the tier, and the other settings on the manage page, your DNS records, and your RepoCloud account.

## Next Steps

> **[Custom Instructions](https://repocloud.io/docs/ai-agents/custom-instructions.md)**
>
> Give the agent your choices at deployment time

> **[Safety and Control](https://repocloud.io/docs/ai-agents/safety-and-control.md)**
>
> Snapshots, Stop, and how to keep your own way into the server

> **[Managing VPS Apps](https://repocloud.io/docs/manage/vps-apps.md)**
>
> Snapshots, resize, console, and the rest of the manage page

> **[Custom Domains](https://repocloud.io/docs/manage/custom-domains.md)**
>
> The Custom Domain card and its DNS records
