<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=us-ascii"><meta name=Generator content="Microsoft Word 14 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
{font-family:Tahoma;
panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0cm;
margin-bottom:.0001pt;
font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-fareast-language:EN-US;}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:#0563C1;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{mso-style-priority:99;
color:#954F72;
text-decoration:underline;}
span.EmailStyle17
{mso-style-type:personal;
font-family:"Calibri","sans-serif";
color:windowtext;}
span.EmailStyle18
{mso-style-type:personal-reply;
font-family:"Calibri","sans-serif";
color:#44546A;}
.MsoChpDefault
{mso-style-type:export-only;
font-size:10.0pt;}
@page WordSection1
{size:612.0pt 792.0pt;
margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=EN-GB link="#0563C1" vlink="#954F72"><div class=WordSection1><p class=MsoNormal><span style='color:#44546A'>Sorry, I thought that was in Markdown, but actually it’s in <a href="https://trac.edgewall.org/wiki/WikiFormatting">WikiFormatting</a> and unlike Markdown there isn’t an easy way to read it rendered (unlike Markdown which you can poke at </span><a href="https://dillinger.io/">https://dillinger.io/</a> )<span style='color:#44546A'><o:p></o:p></span></p><p class=MsoNormal><span style='color:#44546A'><o:p> </o:p></span></p><div><div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm 0cm 0cm'><p class=MsoNormal><b><span lang=EN-US style='font-size:10.0pt;font-family:"Tahoma","sans-serif";mso-fareast-language:EN-GB'>From:</span></b><span lang=EN-US style='font-size:10.0pt;font-family:"Tahoma","sans-serif";mso-fareast-language:EN-GB'> Philip Sargent (Gmail) [mailto:philip.sargent@gmail.com] <br><b>Sent:</b> 29 July 2019 22:34<br><b>To:</b> 'expo-tech@lists.wookware.org'<br><b>Subject:</b> Example of how another club does it..<o:p></o:p></span></p></div></div><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>= Setup of the CUYC Website =<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>All paths relative to ''/societies/cuyc'' on srcf.net.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>== Overview ==<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>''public_html/.htaccess'' contains !RewriteRules leaving requests to the ServerControl script or the OsTicket system be handled by the SRCF-global httpd (port 80), whereas all other requests are forwarded to our internal Apache (currently running on port 4456).<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>All external python modules are installed in a [http://www.virtualenv.org virtualenv] (symlink ''myVirtualEnv/'' to the currently used version).<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>== E-mail ==<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>The mail server for the cuyc.org.uk domain is !GoogleMail. Get in touch with Tom Playford if there are any issues.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>!GoogleMail has a catch-all inbox, which keeps a copy of all e-mails, and forwards them to the SRCF.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>The SRCF processes incoming mail using the ''.forward'' exim script, delivering the mail to people's personal addresses (based on Club appointments and committee_email_prefix fields on Member objects).<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>All e-mail forwardings are created by ''cuy/scripts/cron/update_email_addresses.py''.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>It also adds a special rule for the purser, training, and theoryhelp addresses, which are delivered to back-up GMail accounts and piped into [OsTicket osTicket].<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>== File system ==<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>==== Log files<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Both under ''apache2/logs/'' and ''log/''.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>''apache2/logs/error_log'' contains Django's stdout (e.g., the output of all `print` statements in the code). [[BR]]<o:p></o:p></p><p class=MsoNormal>''log/error.log'' contains http errors.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>==== Internal Apache<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Uses mod_wsgi to transfer requests to Trac (all URLs starting with /trac/) and the Main site (everything else).<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Directory: apache2/ [[BR]]<o:p></o:p></p><p class=MsoNormal>Config: apache2/conf/httpd.conf<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>==== Main site<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Built on Django (kudos to Tom Playford).<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Now under git version control, and in a github private repository (https://github.com/CUYC/cuyc-website.git).<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Directory: cuy/ [[BR]]<o:p></o:p></p><p class=MsoNormal>Custom python modules: 00.pkgs_not_in_pypi/ [[BR]]<o:p></o:p></p><p class=MsoNormal>Config: apache2/conf/django.wsgi, cuy/settings.py [[BR]]<o:p></o:p></p><p class=MsoNormal>Database: SRCF postgresql ('cuyc') [[BR]]<o:p></o:p></p><p class=MsoNormal>Backup: daily to Tom's server - '''check this is still working after recent upgrades'''<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>==== Trac - Committee ticket system and Wiki<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>The part of the website you are looking at right now.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Directory: cuy/trac/ [[BR]]<o:p></o:p></p><p class=MsoNormal>Config: cuy/trac/conf/trac.ini, cuy/trac/apache/trac.{wsgi,cgi,fcgi} [[BR]]<o:p></o:p></p><p class=MsoNormal>Database: sqlite, cuy/trac/db/trac.db [[BR]]<o:p></o:p></p><p class=MsoNormal>Backup: '''none so far'''<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>==== osTicket - External ticket system<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>See the [OsTicket explanation of our osTicket installation].<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Directory: public_html/ticket/ [[BR]]<o:p></o:p></p><p class=MsoNormal>Config: public_html/ticket/include/ost-config.php [[BR]]<o:p></o:p></p><p class=MsoNormal>Database: SRCF MySQL (currently user gac43's personal one) - '''need to change''' [[BR]]<o:p></o:p></p><p class=MsoNormal>Backup: '''none so far'''; copies of all tickets are sent to {cuycpurser,cuyctraining,cuyctheoryhelp}@gmail.com<o:p></o:p></p></div></body></html>