Expand my Community achievements bar.

Radically easy to access on brand approved content for distribution and omnichannel performant delivery. AEM Assets Content Hub and Dynamic Media with OpenAPI capabilities is now GA.
SOLVED

404 pages when using Dispatcher

Avatar

Level 2

I have just finished configuring Dispatcher and have apparently made a configuration error that I can't see m to fin.  I have a server with Author, Publisher, and IIS installed on it, and I have configured Dispatcher to work with IIS (AEM 5.6.1, Dispatcher-iis-windows-x64-4.1.4).  I have activated teh Publish agent from my Author instance and that is working fine, I see page changes when made.   When I go to the Publisher URL (http://localhost:4505/content/geometrixx/en.html) I get the correct page view.  When I go to http://localhost/content/geometrixx/en.html I get a 404 error.  My dispatcher log shows the following:

[Mon Feb 24 15:04:42 2014] [D] [3704(6024)] Dispatcher initializing (build 4.1.4)
[Mon Feb 24 15:04:42 2014] [D] [3704(6024)] farms[website].homepage = /geometrixx/en.html
[Mon Feb 24 15:04:42 2014] [D] [3704(6024)] farms[website].cache.docroot = C:\inetpub\wwwroot
[Mon Feb 24 15:04:42 2014] [I] [3704(6024)] Dispatcher initialized (build 4.1.4)
[Mon Feb 24 15:04:42 2014] [D] [3704(6024)] Found farm website for (my server IP address)
[Mon Feb 24 15:04:42 2014] [D] [3704(6024)] checking []
[Mon Feb 24 15:04:42 2014] [D] [3704(6024)] no cache due to missing extenson in uri:
[Mon Feb 24 15:04:42 2014] [D] [3704(6024)] cache-action for []: NONE
[Mon Feb 24 15:04:42 2014] [D] [3704(6024)] connected to render publish1 (localhost:4505)
[Mon Feb 24 15:04:42 2014] [D] [3704(6024)] Spooling request header: host
[Mon Feb 24 15:04:42 2014] [D] [3704(6024)] Spooling request header: accept-language
[Mon Feb 24 15:04:42 2014] [D] [3704(6024)] Spooling request header: user-agent
[Mon Feb 24 15:04:42 2014] [D] [3704(6024)] Spooling request header: dnt
[Mon Feb 24 15:04:42 2014] [D] [3704(6024)] Spooling request header: accept
[Mon Feb 24 15:04:42 2014] [D] [3704(6024)] Spooling request header: accept-encoding
[Mon Feb 24 15:04:42 2014] [D] [3704(6024)] Spooling request header: APPL_MD_PATH
[Mon Feb 24 15:04:42 2014] [D] [3704(6024)] Spooling request header: APPL_PHYSICAL_PATH
[Mon Feb 24 15:04:42 2014] [D] [3704(6024)] Spooling request header: CONTENT_LENGTH
[Mon Feb 24 15:04:42 2014] [D] [3704(6024)] Spooling request header: HTTPS
[Mon Feb 24 15:04:42 2014] [D] [3704(6024)] Spooling request header: INSTANCE_ID
[Mon Feb 24 15:04:42 2014] [D] [3704(6024)] Spooling request header: INSTANCE_META_PATH
[Mon Feb 24 15:04:42 2014] [D] [3704(6024)] Spooling request header: REMOTE_ADDR
[Mon Feb 24 15:04:42 2014] [D] [3704(6024)] Spooling request header: REMOTE_HOST
[Mon Feb 24 15:04:42 2014] [D] [3704(6024)] Spooling request header: REQUEST_METHOD
[Mon Feb 24 15:04:42 2014] [D] [3704(6024)] Spooling request header: SCRIPT_NAME
[Mon Feb 24 15:04:42 2014] [D] [3704(6024)] Spooling request header: SERVER_NAME
[Mon Feb 24 15:04:42 2014] [D] [3704(6024)] Spooling request header: SERVER_PORT
[Mon Feb 24 15:04:42 2014] [D] [3704(6024)] Spooling request header: SERVER_PORT_SECURE
[Mon Feb 24 15:04:42 2014] [D] [3704(6024)] Spooling request header: SERVER_PROTOCOL
[Mon Feb 24 15:04:42 2014] [D] [3704(6024)] Spooling request header: SERVER_SOFTWARE
[Mon Feb 24 15:04:42 2014] [D] [3704(6024)] Spooling request header: URL
[Mon Feb 24 15:04:42 2014] [D] [3704(6024)] Content length: -1, written: 101
[Mon Feb 24 15:04:42 2014] [I] [3704(6024)] "GET " 404 ~ 0ms

 

At this point, I have stripped my dispatcher.any file down to the bare bones, trying to sort out the problem.  Here is the content of it:

# name of the dispatcher
/name "test"

# Each farm configures a set of load balanced renders (i.e. remote servers)
/farms
  {
  # First farm entry
  /website
    {
    
    /homepage "/geometrixx/en.html"
    /clientheaders
      { "*"  }
    /virtualhosts
      { "*"  }
    /renders
      {
      /publish1
        {
        /hostname "localhost"
        /port "4505"
        # /timeout "0"
        }
      }
            
    /filter
      {
          /0001  { /glob "*" /type "allow" }
      }

    /cache
      {
       /docroot "C:/inetpub/wwwroot"

       /rules
        {
        /0000
          {
          /glob "*"
          /type "allow"
          }
        }
    }
 
    /statistics
      {
      /categories
        {
        /html
          {
          /glob "*.html"
          }
        /others
          {
          /glob "*"
          }
        }
      }
    }
  }

 

I would appreciate any advice on where I've gone wrong on configuring this.

 

Diana W.

1 Accepted Solution

Avatar

Correct answer by
Employee Advisor

Diana,

the dispatcher log shows that you are requesting /geometrixx/en.html, while on your direct access to publish you use /content/geometrixx/en.html; is this a typo? And can you lookup the request made to the dispatcher on yourpublish as well? Because the publish already returns the 404, the dispatcher just forwards this to your browser.

kind regards

Jörg

View solution in original post

34 Replies

Avatar

Correct answer by
Employee Advisor

Diana,

the dispatcher log shows that you are requesting /geometrixx/en.html, while on your direct access to publish you use /content/geometrixx/en.html; is this a typo? And can you lookup the request made to the dispatcher on yourpublish as well? Because the publish already returns the 404, the dispatcher just forwards this to your browser.

kind regards

Jörg

Avatar

Level 1

To troubleshoot the 404 error you're encountering, let's refine your Dispatcher configuration with these targeted adjustments:

Virtual Hosts Configuration:

Your current /virtual host setup is universal, indicated by ", meaning it's prepared to handle requests for any virtual host. This is a crucial area to double-check against your IIS setup. If your IIS is specifically configured to serve a particular virtual host, you must update this section to reflect the exact virtual hostname (s) you use.

Homepage Configuration:

Your approach for the homepage configuration, noted as "/homepage", seems to be on the right track. However, ensure that this setting truly mirrors the path structure of your AEM site. For example, if your actual homepage resides at "/content/geometrixx/en.html" within your Publisher instance, you'll need to update this configuration to match.

Filter Configuration:

The current filter setup ("/filter") is open, allowing all requests. This configuration might be fine for a broad testing scenario, but it's crucial to adjust this to fit your specific needs for security and efficiency. If no specific filtering rules are required for your setup, then it might already be appropriate for initial tests.

Cache Configuration:

The specified cache configuration ("/cache") looks like a basic yet effective setup. Confirm that the docroot path provided is accurate and that the Dispatcher can access it without issues.

Render Configuration:

For the /renders section, it's important to confirm that the details here precisely align with your AEM Publisher's configuration. The port mentioned (4503) must be correct and should not have any network or firewall restrictions impeding communication.

Dispatcher Log Review:

Given that the log indicates a 404 error, it's crucial to cross-reference the URL you're requesting with your AEM site's actual structure and configuration, including the correctly configured homepage.

After implementing these focused checks and adjustments, attempt to access the URL once more while keeping an eye on the Dispatcher logs for any new information or shifts in behavior. Persisting issues should prompt a review of both IIS and AEM logs to unearth more detailed clues about the source of the 404 error.

www-homeworkify.live

Avatar

Level 1

@Johnyflee 
To resolve the 404 error you've been encountering, let's refine your Dispatcher configuration with the following detailed modifications:

Virtual Hosts Configuration:
Your setup currently handles all hosts as indicated by "*". It's important to ensure this matches your IIS configuration. If your IIS serves a specific virtual host, you'll need to modify this section to accurately reflect the virtual hostname(s) in use.

Homepage Configuration:
Your configuration under "/homepage" is mostly correct, but verify it matches the exact path of your AEM site's homepage. For instance, if the homepage is "/content/geometrixx/en.html" on your Publisher instance, update the configuration accordingly.

Filter Configuration:
The current "/filter" configuration is permissive, allowing all requests through. This might be suitable for broad testing, but consider tailoring it to your specific security and efficiency needs. If your current setup doesn't require specific filtering rules, it might be adequate for initial testing.

Cache Configuration:
Your "/cache" configuration appears basic yet effective. Make sure the docroot path is accurate and accessible by the Dispatcher without any hindrance.

Render Configuration:
Check the "/renders" section to ensure it aligns precisely with your AEM Publisher's settings. The listed port (4503) needs to be correct and free from any networking or firewall constraints that could block communication.

Dispatcher Log Review:
Given that a 404 error appears in your logs, carefully compare the requested URL against the actual configuration and structure of your AEM site, with particular focus on the configured homepage.

After applying these adjustments, retry accessing the URL and monitor the Dispatcher logs for any new activity or information. Continued issues should prompt a closer examination of both IIS and AEM logs to identify more specifics about the 404 error's origin.

www-ncedclouds.com

Avatar

Level 1

@Johnyflee 

To troubleshoot the 404 error you're encountering, let's refine your Dispatcher configuration with these targeted adjustments:

1. Virtual Hosts Configuration

Your current virtual host setup is universal, indicated by "*" which means it’s prepared to handle requests for any virtual host. Verify this against your IIS setup:

  • Check IIS Configuration: If your IIS is configured to serve a specific virtual host, update this section to reflect the exact virtual hostname(s) you use.

2. Homepage Configuration

Your homepage configuration is set to "/homepage". Ensure this matches the path structure of your AEM site:

  • Example: If your actual homepage is at "/content/geometrixx/en.html" on your Publisher instance, update this configuration accordingly.

3. Filter Configuration

The current filter setup ("/filter") allows all requests. Adjust this to fit your specific needs:

  • Security and Efficiency: Tailor the filter rules to your specific requirements. If no specific rules are needed, the current setup might be fine for initial tests.

4. Cache Configuration

The specified cache configuration ("/cache") is basic yet effective. Ensure the following:

  • Docroot Path: Confirm that the provided docroot path is accurate and accessible by the Dispatcher without issues.

5. Render Configuration

For the /renders section, ensure the details align with your AEM Publisher's configuration:

  • Port Accuracy: Verify that the port (4503) is correct and ensure no network or firewall restrictions are impeding communication.

6. Dispatcher Log Review

Given the log indicates a 404 error:

  • URL Cross-Reference: Cross-check the URL you’re requesting with your AEM site’s actual structure and configuration, ensuring the homepage is correctly set.

After making these adjustments, attempt to access the URL again. Monitor the Dispatcher logs for any new information or changes in behavior. If issues persist, review both IIS and AEM logs for more detailed clues about the source of the 404 error.

https://www-njmcdirects.com/

Avatar

Level 2

The reference in the log to /geometrixx/en.html is the /homepage variable, not the page I am requesting.  (I have tried configuring with and without the homepage option and the result is the same).  So no, that isn't a typo.

I am not sure what you mean by looking up the request made to the publisher - the page shows up just fine at the publish URL at http://localhost:4505/content/geometrixx/en.html as I said above.  I see this page when I am on the file server or when I am on my local browser (except with the IP address instead of localhost).  The logs for my Replicating agent from the Author environment to Publish look just fine, and I can see changes replicated when I make them and activate.  My problem is with something in Dispatch.  As a further bit of information, I am working my way through the Adobe Systems Admin Training manual so that I don't miss a step, since it's been a year since I took the training.  I have replaced the dispatcher.any file with the template twice and gone step-by-step through the configuration, but I still get a 404 error when I try to view the page through the IIS webserver.

 

Diana W.

Avatar

Level 2

I have now gone back to the very beginning, a fresh install of Dispatcher with the generic Dispatcher.any file - the only thing I changed was the Render's IP address.  Same 404 error page as before, and this is the log:

 

[Tue Feb 25 10:45:31 2014] [D] [5492(3928)] Dispatcher initializing (build 4.1.4)
[Tue Feb 25 10:45:31 2014] [D] [5492(3928)] farms[website].cache.docroot = C:\inetpub\wwwroot
[Tue Feb 25 10:45:31 2014] [I] [5492(3928)] Dispatcher initialized (build 4.1.4)
[Tue Feb 25 10:45:31 2014] [D] [5492(3928)] Found farm website for 128.192.118.249

[Tue Feb 25 10:45:31 2014] [I] [5492(3928)] "GET " 0 - 0ms
[Tue Feb 25 10:47:12 2014] [D] [5492(3964)] Found farm website for 128.192.118.249
[Tue Feb 25 10:47:12 2014] [D] [5492(3964)] checking []
[Tue Feb 25 10:47:12 2014] [D] [5492(3964)] no cache due to missing extenson in uri:
[Tue Feb 25 10:47:12 2014] [D] [5492(3964)] cache-action for []: NONE
[Tue Feb 25 10:47:12 2014] [D] [5492(3964)] Filter rejects GET  HTTP/1.0

Avatar

Level 8

Dispatcher doesn't cache files that have no file name extension:

[Tue Feb 25 10:47:12 2014] [D] [5492(3964)] no cache due to missing extenson in uri:
 

Could this be the problem?

scott

Avatar

Level 2

But it has an extension - the url is:  http://(ip address)/content/geometrixx/en.html - wouldn't that be an .html file?  I am just trying to open the basic out-of-the-box demo page, nothing fancy. 

Avatar

Level 8

Ok -- just checking all the bases. I notice you are using non-default port numbers. Have you configured the URL externalizer? 

http://dev.day.com/docs/en/cq/current/developing/externalizer.html

And also configured the flush replication agent accordingly?

scott

Avatar

Level 2

I am using the standard ports on this box - I literally built it step by step with the training manual.  Author is on port 4502, Publisher1 is on 4503, Publisher2 is on 4505, web is on 80.  I am just using one Publish instance (#2 at 4505) to simplify things.  However I will look at that document.

 

Diana

Avatar

Level 2

ANd yes, the Flush agent is configured and working fine - the log shows success.

 

Not that there is anything to flush, as no content is being cached on the wwwroot page....

 

Diana

Avatar

Level 2

Combing through the logs, I think that this is the problem.  My log says:

checking []

compared to another person's log - checking [/content/public/individuals-families/financial-life/planning-strateg ies.html]

So it appears that the problem is that no page is being checked - why would this be happening? 

 

Diana

Avatar

Level 2

It seems like your Dispatcher configuration is mostly correct, but there might be a small issue causing the 404 error. Here are some comments on your configuration:

Virtual Hosts Configuration:


/virtualhosts
{ "*" }
The * here indicates that the farm is handling requests for all virtual hosts. Ensure that this matches your IIS configuration. If your IIS is set up with a specific virtual host, replace * with the actual virtual host name.

Homepage Configuration:


/homepage "/geometrixx/en.html"
The homepage configuration seems fine, but ensure that it matches the actual structure of your AEM website. If the homepage is located at "/content/geometrixx/en.html" on the Publisher instance, update this path accordingly.

Filter Configuration:


/filter
{
/0001 { /glob "*" /type "allow" }
}
The filter configuration allows all requests. Double-check if you have any specific filtering requirements. If not, this should be okay for testing purposes.

Cache Configuration:


/cache
{
/docroot "C:/inetpub/wwwroot"
/rules
{
/0000
{
/glob "*"
/type "allow"
}
}
}
The cache configuration looks good for a basic setup. Ensure that the specified docroot path is correct and accessible by the Dispatcher.

Render Configuration:


/renders
{
/publish1
{
/hostname "localhost"
/port "4505"
}
}
Double-check that the render configuration matches the actual configuration of your AEM Publisher instance. Ensure that the specified port (4505) is correct and accessible.

Dispatcher Log:
The log indicates a 404 error for the request. Make sure that the requested URL matches the structure of your AEM website and the configured homepage.

After making these considerations, try accessing the URL again and monitor the Dispatcher logs for any changes or additional information. If the issue persists, consider checking the IIS logs and AEM logs for more details on the 404 error.

www-mycenturahealth.us/

Avatar

Level 1

It appears that your Dispatcher configuration is mostly correct, but there may be a small issue contributing to the 404 error. Here are some insights on your configuration:

Virtual Hosts Configuration:

In the /virtualhosts section, the use of "" indicates that the farm handles requests for all virtual hosts. It's crucial to ensure this aligns with your IIS configuration. If your IIS is set up with a specific virtual host, replace "" with the actual virtual host name.

Homepage Configuration:

The configuration for the homepage ("/homepage") seems appropriate, but it's essential to verify that it accurately reflects the structure of your AEM website. If the homepage is located at "/content/geometrixx/en.html" on the Publisher instance, adjust this path accordingly.

Filter Configuration:

The filter configuration ("/filter") currently permits all requests. Ensure this aligns with your specific filtering requirements. If none exist, this configuration should suffice for testing purposes.

Cache Configuration:

The cache configuration ("/cache") appears suitable for a basic setup. Confirm that the specified docroot path is accurate and accessible by the Dispatcher.

Render Configuration:

In the /renders section, validate that the render configuration matches the setup of your AEM Publisher instance. Ensure the specified port (4505) is both correct and accessible.

Dispatcher Log:

The log indicates a 404 error for the request. Verify that the requested URL matches your AEM website's structure and the configured homepage.

Following these considerations, attempt to access the URL again and monitor the Dispatcher logs for any alterations or additional insights. If the issue persists, consult the IIS logs and AEM logs for further details on the 404 error. https://liteblueinsights.com/

Avatar

Level 1

It seems that your Dispatcher configuration is nearly correct, but there might be a minor issue contributing to the 404 error. Here are some observations on your configuration:

  1. Virtual Hosts Configuration: In the /virtualhosts section, the usage of "" indicates that the farm handles requests for all virtual hosts. It's crucial to ensure this matches your IIS configuration. If your IIS is configured with a specific virtual host, replace "" with the actual virtual host name.

  2. Homepage Configuration: The configuration for the homepage ("/homepage") appears appropriate, but it's important to verify that it accurately reflects the structure of your AEM website. If the homepage is located at "/content/geometrixx/en.html" on the Publisher instance, adjust this path accordingly.

  3. Filter Configuration: The filter configuration ("/filter") currently allows all requests. Make sure this aligns with your specific filtering needs. If there are none, this configuration should be sufficient for testing purposes.

  4. Cache Configuration: The cache configuration ("/cache") seems suitable for a basic setup. Double-check that the specified docroot path is accurate and accessible by the Dispatcher.

  5. Render Configuration: In the /renders section, validate that the render configuration matches the setup of your AEM Publisher instance. Confirm that the specified port (4505) is correct and accessible.

  6. Dispatcher Log: The log indicates a 404 error for the request. Verify that the requested URL matches the structure of your AEM website and the configured homepage.

After considering these points, try accessing the URL again and monitor the Dispatcher logs for any changes or additional insights. If the issue persists, check the IIS logs and AEM logs for further details on the 404 error. I appreciate your kind words regarding the blog post! Your support for sharing valuable content means a lot. Keep up the great work, and I'll be sure to check out your website. Spotify receiptify

Avatar

Level 1

It appears that your Dispatcher configuration is mostly accurate, but there may be a minor issue leading to the 404 error. Here are some comments on your configuration:

Virtual Hosts Configuration:

/virtualhosts { "*" } The use of * indicates that the farm is handling requests for all virtual hosts. Make sure this aligns with your IIS setup. If your IIS is configured with a specific virtual host, replace * with its actual name.

Homepage Configuration:

/homepage "/geometrixx/en.html" The homepage configuration seems correct, but verify that it matches the actual structure of your AEM website. If the homepage resides at "/content/geometrixx/en.html" on the Publisher instance, adjust this path accordingly.

Filter Configuration:

/filter { /0001 { /glob "*" /type "allow" } } This filter configuration permits all requests. Review if you have any specific filtering needs. If not, this should suffice for testing purposes.

Cache Configuration:

/cache { /docroot "C:/inetpub/wwwroot" /rules { /0000 { /glob "*" /type "allow" } } } The cache setup appears suitable for a basic configuration. Confirm that the specified docroot path is accurate and accessible by the Dispatcher.

Render Configuration:

/renders { /publish1 { /hostname "localhost" /port "4505" } } Double-check that the render configuration matches your AEM Publisher instance setup. Ensure that the specified port (4505) is correct and reachable.

Dispatcher Log: The log reports a 404 error for the request. Verify that the requested URL corresponds to the structure of your AEM website and the configured homepage.

After addressing these points, attempt to access the URL again and monitor the Dispatcher logs for any updates or additional details. If the problem persists, consider examining the IIS and AEM logs for further insights into the 404 error.

https://ourdogbitelawyer.com/

Avatar

Level 1

@DKWilliams YT3converter

It seems that your Dispatcher configuration is mostly correct, but there might be a minor issue contributing to the 404 error. Here are some points to consider regarding your configuration:

Virtual Hosts Configuration:

Within the /virtualhosts section, the usage of "" suggests that the farm handles requests for all virtual hosts. It's crucial to ensure that this aligns with your IIS configuration. If your IIS is set up with a specific virtual host, replace "" with the actual virtual host name.

Homepage Configuration:

The configuration for the homepage ("/homepage") seems appropriate, but it's important to verify that it accurately reflects the structure of your AEM website. If the homepage is located at "/content/geometrixx/en.html" on the Publisher instance, adjust this path accordingly.

Filter Configuration:

The filter configuration ("/filter") currently allows all requests. Make sure this aligns with your specific filtering requirements. If none exist, this configuration should be sufficient for testing purposes.

Cache Configuration:

The cache configuration ("/cache") appears suitable for a basic setup. Confirm that the specified docroot path is accurate and accessible by the Dispatcher.

Render Configuration:

In the /renders section, validate that the render configuration matches the setup of your AEM Publisher instance. Ensure the specified port (4505) is both correct and accessible.

Dispatcher Log:

The log indicates a 404 error for the request. Verify that the requested URL matches your AEM website's structure and the configured homepage.

After considering these points, try accessing the URL again and monitor the Dispatcher logs for any changes or additional insights. If the issue persists, review the IIS logs and AEM logs for further details on the 404 error.

Avatar

Level 2

@DKWilliams ankle care services in plano
It appears that your Dispatcher configuration is generally correct, but there might be a small issue contributing to the 404 error. Here are some areas to review:

  1. Virtual Hosts Configuration: Ensure that the use of "" in the /virtualhosts section aligns with your IIS setup. If your IIS is configured with a specific virtual host, replace "" with its actual name.

  2. Homepage Configuration: Double-check that the configuration for the homepage ("/homepage") accurately reflects the structure of your AEM website. Adjust the path if needed.

  3. Filter Configuration: Confirm that the filter configuration ("/filter") matches your specific requirements. If none exist, the current configuration should be fine for testing.

  4. Cache Configuration: Make sure the cache configuration ("/cache") is set up correctly, with the specified docroot path accessible by the Dispatcher.

  5. Render Configuration: Validate that the render configuration in the /renders section matches your AEM Publisher setup. Ensure the port (4505) is correct and reachable.

  6. Dispatcher Log: Check the Dispatcher logs for the 404 error and verify that the requested URL matches your AEM website's structure and the configured homepage.

After reviewing these areas, try accessing the URL again and keep an eye on the Dispatcher logs for any changes or additional information. If the issue persists, examine the IIS and AEM logs for further insights into the 404 error.

Avatar

Level 1

@basitshRcm services
Could you please provide more detailed information about the Virtual Hosts Configuration? Specifically, I'd like to ensure that the use of "" in the /virtualhosts section aligns perfectly with our IIS setup. If there are any discrepancies or specific configurations that need adjustment, I'd like to address those accordingly.

Avatar

Level 2

Hi @marcussickpsychiatrist plano tx

In your Dispatcher configuration, the "Virtual Hosts" part deals with how your website handles different web addresses (like example.com or subdomain.example.com). Here's what you should check:

  1. Virtual Hosts Block: This is like a section in your settings that says how to handle different web addresses.

  2. /hostname Directive: This tells the Dispatcher what web address to expect. Make sure it matches the main web address you use in IIS.

  3. Additional Virtual Host Configurations: If you have more than one web address going to different parts of your site, you can add extra instructions here.

Just make sure the main web address you use in the Dispatcher matches the one you use in IIS. If you're not sure, ask someone who knows more about your website setup.