wiki:MasterUrl

Version 3 (modified by Nicolas, 15 years ago) (diff)

Edit introduction paragraphs. Add confirmed info about Docking's URL change.

Changing a project URL

It's recommended that projects choose master URLs that avoid anything prone to change, especially in the hostname. For example, even if you're still starting with a test project, don't use an IP address in the URL; use an actual hostname. Even having the university name as part of the hostname may be a bad idea. In December 2007, Docking@Home moved from the University of Texas at El Paso to the University of Delaware, and had to change their URL from docking.utep.edu to docking.cis.udel.edu. Thus, the best way is having a hostname just for that project. Good URLs don't change.

Even having multiple projects in the same hostname, like http://boinc.example.org/project1/ and http://boinc.example.org/project2/ may be problematic if you eventually decide you want to move project2 to a different server. It's best to have project1.example.org and project2.example.org so they can (now or in the future) have different IP addresses.

All that said, here is how you change a project URL:

  1. Pick a *good* new URL according to the above recommendations, so that you will never need to change it again.
  2. If the project was ever public, post news to let users now the URL will change.
  3. If you have any tasks in progress or waiting to be sent, it's recommended you wait until they are all done before changing the URL. And/or abort the unsent tasks. You could edit the database to fix URLs for input files, to make the unsent workunits work once the URL is changed; but if users already have workunits on their computers, they will still have old URLs and you can't edit that.
  4. Stop the project.
  5. Replace URL everywhere in config.xml
  6. Replace scheduler URL in html/users/schedulers.txt. Prefix should match the URL in <cgi_url> in config.xml.
  7. If you have project-wide files, like logos for the simple GUI, replace download URLs in project_files.xml
  8. Delete everything in html/cache, since cached pages may have links to the old URL, and users would get broken links for an hour or so. Don't delete the cache folder itself. rm -rf html/cache/*
  9. Either create new application versions, or update the app_version table to have the new URLs:
     UPDATE app_version SET xml_doc = REPLACE(xml_doc, "http://old.example.com/", "http://new.example.org/");
    
  10. If you have forums, you may want to do a similar replacement on forum contents, in case users posted links to workunits / users / computers / something.
  11. Start the project, send some test workunits, and hope it works. Keep a copy of "Murphy's Law - and other reasons why things go wrong" handy.