Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
wiki_administration [2011/04/27 00:08] – [Software] peterwilliamswiki_administration [2011/04/27 00:26] – [Software] peterwilliams
Line 9: Line 9:
 Everything is currently on ''serpens.berkeley.edu'', AKA ''badgrads.berkeley.edu''. FIXME I don't know where the hardware is or who formally owns it. Everything is currently on ''serpens.berkeley.edu'', AKA ''badgrads.berkeley.edu''. FIXME I don't know where the hardware is or who formally owns it.
  
-===== Software ====+===== Software =====
  
 The DokuWiki files are in ''/export/astroweb/badgrads'', which does not seem to be network-accessible right now. They are version-controlled in a Git repository with some site-specific customizations. See below for more details on how the repository works. The DokuWiki files are in ''/export/astroweb/badgrads'', which does not seem to be network-accessible right now. They are version-controlled in a Git repository with some site-specific customizations. See below for more details on how the repository works.
  
-The file permissions setup is a little complicated. The reason for this is that multiple administrator uses *and* the webserver all need to be able to write files in the DokuWiki tree. The tree is owned by group ''webadmin'' with group write bits active. The directories have their setgid bits set so that files created within them get put in the ''webadmin'' group regardless of who creates them. If you're going to modify the files, you obviously need to be a member of ''webadmin''. You also need to set your umask to 002, so that files you create are group-writeable and other administrators can modify them. The permissions on the DokuWiki installation have been set up to create files with the right modes.+The file permissions setup is a little complicated. The reason for this is that multiple administrator uses **and** the webserver all need to be able to write files in the DokuWiki tree. The tree is owned by group ''webadmin'' with group write bits active. The directories have their setgid bits set so that files created within them get put in the ''webadmin'' group regardless of who creates them. If you're going to modify the files, you obviously need to be a member of ''webadmin''. You also need to set your umask to 002, so that files you create are group-writeable and other administrators can modify them. The permissions on the DokuWiki installation have been set up to create files with the right modes.
  
 The DokuWiki installation has the "Monobook" plugin/template/style/whatever installed which gives it a MediaWiki-like appearance and style. For more info on Monobook, see [[http://tatewake.com/wiki/projects:monobook_for_dokuwiki|here]]. The DokuWiki installation has the "Monobook" plugin/template/style/whatever installed which gives it a MediaWiki-like appearance and style. For more info on Monobook, see [[http://tatewake.com/wiki/projects:monobook_for_dokuwiki|here]].
Line 30: Line 30:
 | [[http://www.math.union.edu/~dpvc/jsMath/|jsMath Image Fonts]] | 1.3 | | [[http://www.math.union.edu/~dpvc/jsMath/|jsMath Image Fonts]] | 1.3 |
  
 +==== Git Repository Setup ====
 +
 +The files in the live site are backed by a Git repository. As part of the DokuWiki directory tree, the ''.git'' directory is subject to the file ownership scheme described above.
 +
 +The repository has three branches: ''master'', ''dw-releases'', and ''plugin-releases''. The master branch contains the source for the live site and is the one that should be left checked out. ''dw-releases'' tracks pristine unpacks of DokuWiki release tarballs. ''plugin-releases'' is built on top of ''dw-releases'' and adds pristine unpacks of various DokuWiki plugins. ''master'' builds on top of ''plugin-releases'', adding site-specific customizations. As described below, this setup allows us to safely update the different components of the software without worrying about losing local modifications. It does require some comfort with Git, though.
 +
 +To make a change in the site-specific customizations, you should just modify the files in ''master'' and make a commit.
 +
 +To upgrade a plugin, or install a new one, you should check out ''plugin-releases'', unpack the new plugin, and commit it. (If the plugin is being upgraded, check if any existing files were deleted in the new version.) Look at the commit history of ''plugin-releases'' to see how this works. Then checkout ''master'' and merge ''plugin-releases''. If there are any site-specific customizations to be made, make them in the post-merge master branch. If there are any merge conflicts, one of the site-specific hacks apparently needs to by synced with the new plugin.
 +
 +To upgrade the base DokuWiki install, check out ''dw-releases'' and unpack the new release. Check ''data/deleted.files'' for a list of files that were deleted in the release, and ''git rm'' them. Commit everything. Check out ''plugin-releases'', and merge in ''dw-releases''. Check out ''master'', and merge in ''plugin-releases''. If there are any conflicts, one of the site-specific hacks needs fixing.
 +
 +''git log plugin-releases'' shows the plugins that we've installed. ''git log plugin-releases..master'' shows the site-specific modifications that have been made.
  
 ====== Known Bugs / Improvement Requests ====== ====== Known Bugs / Improvement Requests ======