# Umbraco

## **Umbraco 8.18.15 Setup Guide on Windows Server 2025**

### **1. Download Required Files**

* **Source code (.ZIP):** [Umbraco 8.18.15 Source](https://github.com/umbraco/Umbraco-CMS/archive/refs/tags/release-8.18.15.zip)
* **NuGet package (.nupkg):** [UmbracoCms 8.18.15](https://www.nuget.org/api/v2/package/UmbracoCms/8.18.15)
* **NuGet CLI:** [nuget.exe](https://dist.nuget.org/win-x86-commandline/latest/nuget.exe)

***

### **2. Install IIS and Visual Studio 2019**

#### **Visual Studio 2019 workloads**

* ASP.NET and web development
* .NET desktop development

#### **Required components**

* .NET Framework 4.7.2 SDK
* .NET Framework 4.8 SDK
* IIS Express
* MSBuild

#### **IIS Server Roles**

* **Common HTTP Features**
* **Application Development**
  * .NET Extensibility 4.8
  * ASP.NET 4.8
  * ISAPI Extensions
  * ISAPI Filters

***

### **3. Restore & Build the Project**

1. Move `nuget.exe` to `C:\tools\`.
2. Extract the source code `.zip` to `C:\umbraco8`.
3. **Restore NuGet Packages**

```powershell
cd C:\umbraco8\src
C:\tools\nuget.exe restore
```

4. Open `C:\umbraco8\src\umbraco.sln` in Visual Studio 2019
5. Right-click the solution → **Restore NuGet Packages** (again from VS)
6. Build the solution
7. Verify IIS is installed and running:

```powershell
C:\Windows\System32\inetsrv\appcmd.exe list site
```

8. **Publish Umbraco**

* Right-click **Umbraco.Web.UI** → **Publish**
* More actions → Connection → Publish method: **File System**
* Target location: `C:\inetpub\umbraco8`
* Click **Publish**

***

### **4. Fix Missing Static Files**

The source code build does **not include some installer static assets** (CSS, JS, images). To fix:

1. Rename the NuGet package:

```
UmbracoCms.8.18.15.nupkg → UmbracoCms.8.18.15.zip
```

2. Extract the `.zip` file.
3. Copy **only the static files** from:

```
.\UmbracoFiles\*
```

to:

```
C:\inetpub\umbraco8
```

> **Important:** Do **NOT** overwrite `bin` or config files. Only copy folders like `Views`, `css`, `js`, `images`, etc. This ensures the installer runs without breaking dependencies.

***

### **5. Add Website in IIS**

1. Right-click **Sites** → **Add Website…**
   * Site name: `umbraco8`
   * Physical path: `C:\inetpub\umbraco8`
   * Port: `8888`
2. Grant IIS AppPool modify permissions:

```powershell
icacls C:\inetpub\umbraco8 /grant "IIS AppPool\umbraco8:(OI)(CI)M" /T
```

3. Ensure IIS\_IUSRS or Network Service has **read access** to the webroot.
4. Start the website and visit: <http://localhost:8888> → you should see the **Umbraco installation page**.

<figure><img src="/files/js5rEQrMgRUqKh9pm3zk" alt=""><figcaption></figcaption></figure>

***

### **Common Issues / Debugging**

| Problem                                       | Solution                                                              |
| --------------------------------------------- | --------------------------------------------------------------------- |
| **White page with "A server error occurred"** | Missing JS/CSS → copy full `UmbracoFiles` from NuGet. (Step 4)        |
| **Cannot access site externally**             | Configure Windows Firewall to allow inbound traffic on port 8888.     |
| **Database connection fails**                 | Ensure SQL Server is installed, running, and credentials are correct. |
| **Permission errors**                         | Ensure AppPool user has full control on `C:\inetpub\umbraco8`.        |


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://0xpthree.gitbook.io/notes/development/windows/umbraco.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
