<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://docs.ulyssis.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Pcy</id>
	<title>ULYSSIS documentation - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://docs.ulyssis.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Pcy"/>
	<link rel="alternate" type="text/html" href="https://docs.ulyssis.org/Special:Contributions/Pcy"/>
	<updated>2026-05-13T02:51:55Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.15</generator>
	<entry>
		<id>https://docs.ulyssis.org/index.php?title=Overview&amp;diff=1847</id>
		<title>Overview</title>
		<link rel="alternate" type="text/html" href="https://docs.ulyssis.org/index.php?title=Overview&amp;diff=1847"/>
		<updated>2024-08-24T20:31:32Z</updated>

		<summary type="html">&lt;p&gt;Pcy: /* Webserver */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;background:#f9f9f9;border:1px solid #ddd;font-size:95%;padding:1.5em;&amp;quot;&amp;gt;&lt;br /&gt;
Welcome to our documentation website. Many of the common procedures and issues our users experience are described here. If you still encounter problems we haven't covered or you just can't seem to get things to work, even though you followed one of our manuals, feel free to contact us on ulyssis@ulyssis.org for personal support.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:45%;float:left;padding-right:10px;&amp;quot;&amp;gt;&lt;br /&gt;
== Account ==&lt;br /&gt;
* [[Registering a new account]]&lt;br /&gt;
* [[Renewing your account]]&lt;br /&gt;
* [[Transferring your account]]&lt;br /&gt;
* [[Resetting your password]]&lt;br /&gt;
* [[Reducing disk usage|Help, my account uses too much disk space]]&lt;br /&gt;
* [[Why do I have to pay 0.00 euro and how?]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;width:45%;float:left&amp;quot;&amp;gt;&lt;br /&gt;
== Files ==&lt;br /&gt;
* [[Accessing your files]]&lt;br /&gt;
* [[Transferring files over SFTP]]&lt;br /&gt;
* [[Making Backups]]&lt;br /&gt;
* [[Secure file permissions]]&lt;br /&gt;
* [[Reducing disk usage]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:45%;float:left;padding-right:10px;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Webserver ==&lt;br /&gt;
* [[Webserver changes summer 2024]]&lt;br /&gt;
* [[Using your webspace]]&lt;br /&gt;
* [[Using (Fast)CGI for non-PHP websites]]&lt;br /&gt;
* [[Getting Apache logs]]&lt;br /&gt;
* [[Managing PHP errors]]&lt;br /&gt;
* [[Setting PHP options]]&lt;br /&gt;
* [[Sending email from websites]]&lt;br /&gt;
* [[Adding domain names|Adding domain names (.be, .com, .org, ...)]]&lt;br /&gt;
* [[Getting SSL/TLS|Getting SSL/TLS (HTTPS security)]]&lt;br /&gt;
* [[Shibboleth|Shibboleth (Centrale KU Leuven Login)]]&lt;br /&gt;
* [[Claiming a port]]&lt;br /&gt;
* [[ULYSSIS security measures]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;width:45%;float:left&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Mail ==&lt;br /&gt;
* [[Introduction to ULYSSIS email]]&lt;br /&gt;
* [[Mailbox]]&lt;br /&gt;
* [[Mailbox in Thunderbird]]&lt;br /&gt;
* [[Forwarders]]&lt;br /&gt;
* [[Using a forwarder as an alias]]&lt;br /&gt;
* [[Add an alias in Gmail]]&lt;br /&gt;
* [[Add an alias in Hotmail/Outlook]]&lt;br /&gt;
* [[Add an alias in Thunderbird]]&lt;br /&gt;
* [[Add an alias in ULYSSIS webmail]]&lt;br /&gt;
* [[Spam]]&lt;br /&gt;
* [[ULYSSIS security measures]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:45%;float:left;padding-right:10px;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CMSs ==&lt;br /&gt;
* [[Software Version Checker]]&lt;br /&gt;
* [[Setting up WordPress]]&lt;br /&gt;
* [[Setting up Drupal]]&lt;br /&gt;
* [[Setting up Joomla]]&lt;br /&gt;
* [[Setting up MediaWiki]]&lt;br /&gt;
* [[Updating WordPress]]&lt;br /&gt;
* [[Updating MediaWiki]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;width:45%;float:left&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Security &amp;amp; anti-spam ==&lt;br /&gt;
* [[Secure file permissions]]&lt;br /&gt;
* [[Software Version Checker]]&lt;br /&gt;
* [[Preventing spam on Wordpress]]&lt;br /&gt;
* [[Preventing spam on Joomla]]&lt;br /&gt;
* [[Preventing spam on Drupal]]&lt;br /&gt;
* [[Preventing spam on MediaWiki]]&lt;br /&gt;
* [[Securing MediaWiki using Centrale KU Leuven Login]]&lt;br /&gt;
* [[ULYSSIS security measures]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:45%;float:left;padding-right:10px;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Databases ==&lt;br /&gt;
* [[Using PostgreSQL]]&lt;br /&gt;
* [[Using MySQL]]&lt;br /&gt;
* [[Using PHPMyAdmin]]&lt;br /&gt;
* [[Using PHPPgAdmin]]&lt;br /&gt;
* [[Using Adminer]]&lt;br /&gt;
* [[Making Backups]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;width:45%;float:left&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Shell ==&lt;br /&gt;
* [[Accessing your files]]&lt;br /&gt;
* [[Transferring files over SFTP]]&lt;br /&gt;
* [[Accessing shell servers over SSH]]&lt;br /&gt;
* [[ULYSSIS public IRC]]&lt;br /&gt;
* [[Useful Linux Commands]]&lt;br /&gt;
* [[Managing Cron jobs]]&lt;br /&gt;
* [[Claiming a port]]&lt;br /&gt;
* [[Installing packages]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:45%;float:left;padding-right:10px;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Versioning ==&lt;br /&gt;
* [[GitLab]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;width:45%;float:left&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ULYSSIS Public Services  ==&lt;br /&gt;
* [[ULYSSIS public IRC]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:45%;float:left;padding-right:10px;&amp;quot;&amp;gt;&lt;br /&gt;
== Tutorials ==&lt;br /&gt;
* [[Using the kulemt package]]&lt;br /&gt;
* [[Exporting your KU Leuven class schedule and calendar]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;/div&gt;</summary>
		<author><name>Pcy</name></author>
	</entry>
	<entry>
		<id>https://docs.ulyssis.org/index.php?title=Webserver_changes_summer_2024&amp;diff=1846</id>
		<title>Webserver changes summer 2024</title>
		<link rel="alternate" type="text/html" href="https://docs.ulyssis.org/index.php?title=Webserver_changes_summer_2024&amp;diff=1846"/>
		<updated>2024-08-05T20:56:05Z</updated>

		<summary type="html">&lt;p&gt;Pcy: /* When are the changes planned? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page lists the changes to the webservers of ULYSSIS in the summer of 2024, and how you can prepare for it. If any of these&lt;br /&gt;
instructions are not clear to you, or if you have some more questions about the changes, '''don't hesitate to e-mail us at [mailto:ulyssis@ulyssis.org ulyssis@ulyssis.org]'''.&lt;br /&gt;
&lt;br /&gt;
== When are the changes planned? ==&lt;br /&gt;
&lt;br /&gt;
These changes are planned to be applied on Sunday 8 and Monday 9 september, 2024.&lt;br /&gt;
&lt;br /&gt;
== What will change? ==&lt;br /&gt;
&lt;br /&gt;
We will upgrade the Ubuntu release on our servers from 22.04 LTS to 24.04 LTS. This will include newer version of many services. An overview of the most important version changes can be found below. For other services/packages, you can always use the [https://packages.ubuntu.com/ Ubuntu Package Search]. The distribution name for Ubuntu 24.04 LTS is &amp;quot;noble&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* PHP will be updated from 8.1 to 8.3&lt;br /&gt;
* PostgreSQL will be updated from 14 to 16.2&lt;br /&gt;
* MariaDB (MySQL) will be updated from 10.6.7 to 10.11.8&lt;br /&gt;
* Python will be updated from 3.10 to 3.12&lt;br /&gt;
&lt;br /&gt;
Furthermore, many services (such as Apache2) are migrating their regex engine from PCRE to PCRE2. You can find a list of incompatibilities [https://stackoverflow.com/questions/70273084/regex-differences-between-pcre-and-pcre2 here].&lt;br /&gt;
&lt;br /&gt;
If you host your own PHP website, you might want to check out these guides:&lt;br /&gt;
* [https://www.php.net/manual/en/migration82.php Migrating from PHP 8.1.x to PHP 8.2.x]&lt;br /&gt;
* [https://www.php.net/manual/en/migration83.php Migrating from PHP 8.2.x to PHP 8.3.x]&lt;br /&gt;
&lt;br /&gt;
Note that any existing Python virtual environments in use will need to be recreated in order to function properly.&lt;/div&gt;</summary>
		<author><name>Pcy</name></author>
	</entry>
	<entry>
		<id>https://docs.ulyssis.org/index.php?title=Webserver_changes_summer_2024&amp;diff=1845</id>
		<title>Webserver changes summer 2024</title>
		<link rel="alternate" type="text/html" href="https://docs.ulyssis.org/index.php?title=Webserver_changes_summer_2024&amp;diff=1845"/>
		<updated>2024-08-05T20:55:53Z</updated>

		<summary type="html">&lt;p&gt;Pcy: /* When are the changes planned? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page lists the changes to the webservers of ULYSSIS in the summer of 2024, and how you can prepare for it. If any of these&lt;br /&gt;
instructions are not clear to you, or if you have some more questions about the changes, '''don't hesitate to e-mail us at [mailto:ulyssis@ulyssis.org ulyssis@ulyssis.org]'''.&lt;br /&gt;
&lt;br /&gt;
== When are the changes planned? ==&lt;br /&gt;
&lt;br /&gt;
These changes are planned to be applied on 8 and 9 september, 2024.&lt;br /&gt;
&lt;br /&gt;
== What will change? ==&lt;br /&gt;
&lt;br /&gt;
We will upgrade the Ubuntu release on our servers from 22.04 LTS to 24.04 LTS. This will include newer version of many services. An overview of the most important version changes can be found below. For other services/packages, you can always use the [https://packages.ubuntu.com/ Ubuntu Package Search]. The distribution name for Ubuntu 24.04 LTS is &amp;quot;noble&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* PHP will be updated from 8.1 to 8.3&lt;br /&gt;
* PostgreSQL will be updated from 14 to 16.2&lt;br /&gt;
* MariaDB (MySQL) will be updated from 10.6.7 to 10.11.8&lt;br /&gt;
* Python will be updated from 3.10 to 3.12&lt;br /&gt;
&lt;br /&gt;
Furthermore, many services (such as Apache2) are migrating their regex engine from PCRE to PCRE2. You can find a list of incompatibilities [https://stackoverflow.com/questions/70273084/regex-differences-between-pcre-and-pcre2 here].&lt;br /&gt;
&lt;br /&gt;
If you host your own PHP website, you might want to check out these guides:&lt;br /&gt;
* [https://www.php.net/manual/en/migration82.php Migrating from PHP 8.1.x to PHP 8.2.x]&lt;br /&gt;
* [https://www.php.net/manual/en/migration83.php Migrating from PHP 8.2.x to PHP 8.3.x]&lt;br /&gt;
&lt;br /&gt;
Note that any existing Python virtual environments in use will need to be recreated in order to function properly.&lt;/div&gt;</summary>
		<author><name>Pcy</name></author>
	</entry>
	<entry>
		<id>https://docs.ulyssis.org/index.php?title=Webserver_changes_summer_2024&amp;diff=1844</id>
		<title>Webserver changes summer 2024</title>
		<link rel="alternate" type="text/html" href="https://docs.ulyssis.org/index.php?title=Webserver_changes_summer_2024&amp;diff=1844"/>
		<updated>2024-07-07T15:58:42Z</updated>

		<summary type="html">&lt;p&gt;Pcy: Created page with &amp;quot;This page lists the changes to the webservers of ULYSSIS in the summer of 2024, and how you can prepare for it. If any of these instructions are not clear to you, or if you have some more questions about the changes, '''don't hesitate to e-mail us at [mailto:ulyssis@ulyssis.org ulyssis@ulyssis.org]'''.  == When are the changes planned? ==  These changes are planned in the weekend of &amp;lt;TBC&amp;gt;.  == What will change? ==  We will upgrade the Ubuntu release on our servers from 2...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page lists the changes to the webservers of ULYSSIS in the summer of 2024, and how you can prepare for it. If any of these&lt;br /&gt;
instructions are not clear to you, or if you have some more questions about the changes, '''don't hesitate to e-mail us at [mailto:ulyssis@ulyssis.org ulyssis@ulyssis.org]'''.&lt;br /&gt;
&lt;br /&gt;
== When are the changes planned? ==&lt;br /&gt;
&lt;br /&gt;
These changes are planned in the weekend of &amp;lt;TBC&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== What will change? ==&lt;br /&gt;
&lt;br /&gt;
We will upgrade the Ubuntu release on our servers from 22.04 LTS to 24.04 LTS. This will include newer version of many services. An overview of the most important version changes can be found below. For other services/packages, you can always use the [https://packages.ubuntu.com/ Ubuntu Package Search]. The distribution name for Ubuntu 24.04 LTS is &amp;quot;noble&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* PHP will be updated from 8.1 to 8.3&lt;br /&gt;
* PostgreSQL will be updated from 14 to 16.2&lt;br /&gt;
* MariaDB (MySQL) will be updated from 10.6.7 to 10.11.8&lt;br /&gt;
* Python will be updated from 3.10 to 3.12&lt;br /&gt;
&lt;br /&gt;
Furthermore, many services (such as Apache2) are migrating their regex engine from PCRE to PCRE2. You can find a list of incompatibilities [https://stackoverflow.com/questions/70273084/regex-differences-between-pcre-and-pcre2 here].&lt;br /&gt;
&lt;br /&gt;
If you host your own PHP website, you might want to check out these guides:&lt;br /&gt;
* [https://www.php.net/manual/en/migration82.php Migrating from PHP 8.1.x to PHP 8.2.x]&lt;br /&gt;
* [https://www.php.net/manual/en/migration83.php Migrating from PHP 8.2.x to PHP 8.3.x]&lt;br /&gt;
&lt;br /&gt;
Note that any existing Python virtual environments in use will need to be recreated in order to function properly.&lt;/div&gt;</summary>
		<author><name>Pcy</name></author>
	</entry>
	<entry>
		<id>https://docs.ulyssis.org/index.php?title=TEST_Software_Version_Checker&amp;diff=1672</id>
		<title>TEST Software Version Checker</title>
		<link rel="alternate" type="text/html" href="https://docs.ulyssis.org/index.php?title=TEST_Software_Version_Checker&amp;diff=1672"/>
		<updated>2021-12-18T19:16:49Z</updated>

		<summary type="html">&lt;p&gt;Pcy: fix silly typos&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
Many of our users use the same popular software. However, as is common in popular and widespread software, various bugs or errors can occur in the program. These flaws can be exploited by hackers to gain access to websites or databases. &lt;br /&gt;
&lt;br /&gt;
Whenever a new update is released for any popular software (e.g., WordPress, MediaWiki, Joomla) hackers will find out which security flaws have been patched, and using this knowledge, they try to find new systems flaws to gain access to the websites or databases. This is the reason why it is so critical to update the software itself,  plugins, themes, or any related software as soon as the updates roll out. To help facilitate this and prevent security breaches, we have created a tool, the Software Version Checker, to help you keep the most commonly used software up-to-date. Currently, this feature is only active if you have an organization or student union account.&lt;br /&gt;
==What to do when you receive an e-mail==&lt;br /&gt;
When you receive an e-mail from the Software Version Checker, it is of utmost importance to update the software mentioned in the e-mail. It is also the best time to check if the other software you use is up-to-date. As mentioned below, our tool does not check all software.&lt;br /&gt;
&lt;br /&gt;
You can find more information [[Updating WordPress|here]] on how to automate this for WordPress to save a lot of time and effort. Since updating MediaWiki can be a somewhat daunting process, we have made a more detailed guide available on [[Updating MediaWiki]]. &lt;br /&gt;
==Supported Software==&lt;br /&gt;
Sadly not every piece of software can be supported. Because of this, we have decided to choose the most popular software, since they are more likely to get security breaches.  &lt;br /&gt;
*Drupal (including modules and themes) &lt;br /&gt;
*Joomla (Plugins are not supported) &lt;br /&gt;
*MediaWiki (MediaWiki Extensions and Themes are not supported)&lt;br /&gt;
*phpBB (including plugins and styles) &lt;br /&gt;
*WordPress (including plugins and themes)&lt;br /&gt;
==Functionality of the Software Version Checker==&lt;br /&gt;
The Software Version Checker fulfills the following functions: &lt;br /&gt;
*Scan relevant files, detect supported software, and store in database&lt;br /&gt;
*Check the version and validity of outdated software&lt;br /&gt;
*Notify accounts that are using outdated software&lt;br /&gt;
==Stored Data in the database==&lt;br /&gt;
The following data is stored in the database:&lt;br /&gt;
*The location of the Software Version Checker, the plugins, extensions and themes&lt;br /&gt;
*The responsible organisation or student union&lt;br /&gt;
*The software version&lt;br /&gt;
*The details of the software&lt;br /&gt;
*The update URL for the software&lt;br /&gt;
*The date the entry was added&lt;br /&gt;
==Ignoring specific software==&lt;br /&gt;
The Software Version Checker has a feature that allows to specify paths that the Software Version Checker will not search. If you believe you have software that should be ignored (for example certain custom plugins or themes), you are free to e-mail a request to ulyssis@ulyssis.org. Please list your account name, the location of the specific file(s), the nature of what is being detected, and a detailed description of the specific situation.&lt;br /&gt;
==Ignoring Organisations/Student Unions==&lt;br /&gt;
The Software Version Checker also allows our users to ignore specific Organisations or Student Unions entirely. This feature is possible on request, but only after extensive deliberation with ULYSSIS. Enabling this feature also has possible consequences; no more mails about software that is outdated, unless it is enabled on request, and no possible support if the user's account gets hacked. If the account does get hacked it will be suspend immediately.&lt;/div&gt;</summary>
		<author><name>Pcy</name></author>
	</entry>
	<entry>
		<id>https://docs.ulyssis.org/index.php?title=Mailbox_in_Thunderbird&amp;diff=1663</id>
		<title>Mailbox in Thunderbird</title>
		<link rel="alternate" type="text/html" href="https://docs.ulyssis.org/index.php?title=Mailbox_in_Thunderbird&amp;diff=1663"/>
		<updated>2021-12-03T17:31:00Z</updated>

		<summary type="html">&lt;p&gt;Pcy: /* Adding a ULYSSIS mailbox to Thunderbird */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;When you create a ULYSSIS account, you get an email address: &amp;lt;code&amp;gt;''username''@ulyssis.org&amp;lt;/code&amp;gt;. Usually, this address gets forwarded to your KU Leuven email address. However, you can choose to use it as your own [[Mailbox|ULYSSIS mailbox]]. &lt;br /&gt;
&lt;br /&gt;
It is possible to check this mailbox via https://webmail.ulyssis.org. However, it is far more convenient and efficient to use a standalone email client. This article will explain the process of adding a mailbox to the Thunderbird client. &lt;br /&gt;
==Thunderbird==&lt;br /&gt;
Thunderbird is a free and open source email client made by Mozilla. It is available for download at https://thunderbird.net.  You can then install the downloaded file like you would install any other application. Once installed, launch Thunderbird and configure a mailbox using the steps below.&lt;br /&gt;
&lt;br /&gt;
==Adding a ULYSSIS mailbox to Thunderbird==&lt;br /&gt;
If this is the first mailbox being added to Thunderbird, the following pop-up should come up:&lt;br /&gt;
[[File:First Open TB.png|left|alt=|thumb|432x432px]]&lt;br /&gt;
&lt;br /&gt;
If the pop-up did not appear, or this is not your first mailbox; click the email button (highlighted in blue in the screenshot below) under the &amp;quot;Set Up Another Account&amp;quot; section:&lt;br /&gt;
[[File:New Mailbox.png|left|alt=|thumb|600x600px]]&lt;br /&gt;
&lt;br /&gt;
Once the pop-up is present, proceed by entering the login details for your mailbox. The first step is to fill in your name, email address and password  (this email adress should be your ULYSSIS username followed by &amp;lt;code&amp;gt;@ulyssis.org&amp;lt;/code&amp;gt;):&lt;br /&gt;
[[File:Fill in email.png|left|alt=|thumb|432x432px]]&lt;br /&gt;
&lt;br /&gt;
Next, the button &amp;quot;Configure manually...&amp;quot; on the bottom left will become clickable (as seen on the screenshot above). When this button is clicked, the pop-up should look like this:&lt;br /&gt;
[[File:Click Configure Manually.png|left|alt=|thumb|479x479px]]&lt;br /&gt;
&lt;br /&gt;
Now, fill in the information as follows:&lt;br /&gt;
&lt;br /&gt;
[[File:Fill advanced.png|left|alt=|thumb|479x479px]]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Manual settings&lt;br /&gt;
|-&lt;br /&gt;
|| || INCOMING || OUTGOING&lt;br /&gt;
|-&lt;br /&gt;
|| Protocol: || IMAP || SMTP&lt;br /&gt;
|-&lt;br /&gt;
|| Server: || mail.ulyssis.org || smtps.kuleuven.be&lt;br /&gt;
|-&lt;br /&gt;
|| Port: || 993 || 443&lt;br /&gt;
|-&lt;br /&gt;
|| SSL: || SSL/TLS || SSL/TLS&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding-right: 10px&amp;quot; | Authentication: &lt;br /&gt;
|| Autodetect &lt;br /&gt;
|| Autodetect&lt;br /&gt;
|-&lt;br /&gt;
|| Username: &lt;br /&gt;
| style=&amp;quot;padding-right: 10px&amp;quot; | ULYSSIS username &lt;br /&gt;
|| r/m/s/u number&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notice the ports used to configure a ULYSSIS mailbox are not automatically recognized by Thunderbird. This means they should be entered manually instead of using the drop-down.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;Re-test&amp;quot; button on the bottom right of the following screenshot is used to validate the settings. When pressed, Thunderbird will try to connect to the mail server. When successful, the pop-up should look like this:&lt;br /&gt;
&lt;br /&gt;
[[File:After Clicking Retest GOOD.png|left|alt=|thumb|479x479px]]&lt;br /&gt;
&lt;br /&gt;
If this test succeeds, the pop-up will close when the &amp;quot;Done&amp;quot; button has been clicked. After the pop-up closes, a mailbox should be added to the left sidebar of the main Thunderbird window. By clicking on the inbox tab, your emails should start showing up (as seen in the last screenshot). After finishing up this setup, your mailbox should synchronize automatically.&lt;br /&gt;
&lt;br /&gt;
[[File:After Clicking GetMessages.png|left|alt=|thumb|600x600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{notice|Use your KU Leuven login for the outgoing (SMTP) mailserver|When sending the first email after configuration, Thunderbird might show a pop-up: &amp;quot;Enter your password for r0000000 on smtps.kuleuven.be:&amp;quot;. It is really important to enter your KU Leuven password (the password used for central login), otherwise your email will not be sent.}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Mail]]&lt;/div&gt;</summary>
		<author><name>Pcy</name></author>
	</entry>
	<entry>
		<id>https://docs.ulyssis.org/index.php?title=Mailbox_in_Thunderbird&amp;diff=1662</id>
		<title>Mailbox in Thunderbird</title>
		<link rel="alternate" type="text/html" href="https://docs.ulyssis.org/index.php?title=Mailbox_in_Thunderbird&amp;diff=1662"/>
		<updated>2021-12-03T17:27:52Z</updated>

		<summary type="html">&lt;p&gt;Pcy: spelling tweaks etc&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;When you create a ULYSSIS account, you get an email address: &amp;lt;code&amp;gt;''username''@ulyssis.org&amp;lt;/code&amp;gt;. Usually, this address gets forwarded to your KU Leuven email address. However, you can choose to use it as your own [[Mailbox|ULYSSIS mailbox]]. &lt;br /&gt;
&lt;br /&gt;
It is possible to check this mailbox via https://webmail.ulyssis.org. However, it is far more convenient and efficient to use a standalone email client. This article will explain the process of adding a mailbox to the Thunderbird client. &lt;br /&gt;
==Thunderbird==&lt;br /&gt;
Thunderbird is a free and open source email client made by Mozilla. It is available for download at https://thunderbird.net.  You can then install the downloaded file like you would install any other application. Once installed, launch Thunderbird and configure a mailbox using the steps below.&lt;br /&gt;
&lt;br /&gt;
==Adding a ULYSSIS mailbox to Thunderbird==&lt;br /&gt;
If this is the first mailbox being added to Thunderbird, the following pop-up should come up:&lt;br /&gt;
[[File:First Open TB.png|left|alt=|thumb|432x432px]]&lt;br /&gt;
&lt;br /&gt;
If the pop-up did not appear, or this is not your first mailbox; click the email button (highlighted in blue in the screenshot below) under the &amp;quot;Set Up Another Account&amp;quot; section:&lt;br /&gt;
[[File:New Mailbox.png|left|alt=|thumb|600x600px]]&lt;br /&gt;
&lt;br /&gt;
Once the pop-up is present, proceed by entering the login details for your mailbox. The first step is to fill in your name, email address and password  (this email adress should be your ULYSSIS username followed by &amp;lt;code&amp;gt;@ulyssis.org&amp;lt;/code&amp;gt;):&lt;br /&gt;
[[File:Fill in email.png|left|alt=|thumb|432x432px]]&lt;br /&gt;
&lt;br /&gt;
Next, the button &amp;quot;Configure manually...&amp;quot; on the bottom left will become clickable (as seen on the screenshot above). When this button is clicked, the pop-up should look like this:&lt;br /&gt;
[[File:Click Configure Manually.png|left|alt=|thumb|479x479px]]&lt;br /&gt;
&lt;br /&gt;
Now, fill in the information as follows:&lt;br /&gt;
&lt;br /&gt;
[[File:Fill advanced.png|left|alt=|thumb|479x479px]]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Manual settings&lt;br /&gt;
|-&lt;br /&gt;
|| || INCOMING || OUTGOING&lt;br /&gt;
|-&lt;br /&gt;
|| Protocol: || IMAP || SMTP&lt;br /&gt;
|-&lt;br /&gt;
|| Server: || mail.ulyssis.org || smtps.kuleuven.be&lt;br /&gt;
|-&lt;br /&gt;
|| Port: || 993 || 443&lt;br /&gt;
|-&lt;br /&gt;
|| SSL: || SSL/TLS || SSL/TLS&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding-right: 10px&amp;quot; | Authentication: &lt;br /&gt;
|| Autodetect &lt;br /&gt;
|| Autodetect&lt;br /&gt;
|-&lt;br /&gt;
|| Username: &lt;br /&gt;
| style=&amp;quot;padding-right: 10px&amp;quot; | ULYSSIS username &lt;br /&gt;
|| r/m/s/u number&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notice the ports used to configure a ULYSSIS mailbox are not automatically recognized by Thunderbird. This means they should be entered manually instead of using the drop-down.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;Re-test&amp;quot; button on the bottom right of the following screenshot is used to validate the settings. When pressed, Thunderbird will try to connect to the mail server. When successful, the pop-up should look like this:&lt;br /&gt;
&lt;br /&gt;
[[File:After Clicking Retest GOOD.png|left|alt=|thumb|479x479px]]&lt;br /&gt;
&lt;br /&gt;
If this test succeeds, the pop-up will close when the &amp;quot;Done&amp;quot; button has been clicked. After the pop-up closes, a mailbox should be added to the left sidebar of the main Thunderbird window. By clicking on the inbox tab, your emails should start showing up (as seen in the last screenshot). After finishing up this setup, your mailbox should synchronize automatically.&lt;br /&gt;
[[File:After Clicking GetMessages.png|left|alt=|thumb|600x600px]]&lt;br /&gt;
&lt;br /&gt;
When sending the first email after configuration, Thunderbird might show a pop-up: &amp;quot;Enter your password for r0000000 on smtps.kuleuven.be:&amp;quot;. It is really important to enter your KU Leuven password (the password used for central login), otherwise your email will not be sent.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Mail]]&lt;/div&gt;</summary>
		<author><name>Pcy</name></author>
	</entry>
	<entry>
		<id>https://docs.ulyssis.org/index.php?title=Using_(Fast)CGI_for_non-PHP_websites&amp;diff=1341</id>
		<title>Using (Fast)CGI for non-PHP websites</title>
		<link rel="alternate" type="text/html" href="https://docs.ulyssis.org/index.php?title=Using_(Fast)CGI_for_non-PHP_websites&amp;diff=1341"/>
		<updated>2021-04-28T22:20:03Z</updated>

		<summary type="html">&lt;p&gt;Pcy: more uniform inline code snippet/keyword style, &amp;quot;that's called&amp;quot; -&amp;gt; &amp;quot;which is called&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;You're not stuck with PHP if you want to make a dynamic website. You can use all sorts of frameworks and programming languages with ULYSSIS, as long as it has CGI or FastCGI support.&lt;br /&gt;
&lt;br /&gt;
If you want to use a certain programming language or framework, and you can't get it to work, don't hesitate to contact us at [mailto:ulyssis@ulyssis.org ulyssis@ulyssis.org]. We will of course not write any code for you, but we can give you some pointers or directions.&lt;br /&gt;
&lt;br /&gt;
==CGI==&lt;br /&gt;
&lt;br /&gt;
CGI is a simple way to create a dynamic website. We use Apache's [http://httpd.apache.org/docs/2.4/mod/mod_cgid.html mod_cgid] to provide support for CGI. Note, however, that CGI is inefficient and&lt;br /&gt;
in general we recommend you to use a framework together with FastCGI. There are many frameworks, ranging from very simple and lightweight, to more complex and feature rich.&lt;br /&gt;
&lt;br /&gt;
If, for example, you want Apache to interpret all files with the extension &amp;lt;code&amp;gt;.cgi&amp;lt;/code&amp;gt; as CGI scripts, use the following &amp;lt;tt&amp;gt;.htaccess&amp;lt;/tt&amp;gt; file (to be placed in your &amp;lt;code&amp;gt;www&amp;lt;/code&amp;gt; folder):&lt;br /&gt;
&amp;lt;pre&amp;gt;Options +ExecCGI&lt;br /&gt;
AddHandler cgi-script .cgi&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here's an example of a very simple Python CGI script (called &amp;lt;code&amp;gt;hello.cgi&amp;lt;/code&amp;gt;):&lt;br /&gt;
&amp;lt;pre&amp;gt;#!/usr/bin/env python&lt;br /&gt;
&lt;br /&gt;
print 'Content-Type: text/plain\n'&lt;br /&gt;
print 'Hello world!'&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CGI scripts need to be executable, otherwise they won't work:&lt;br /&gt;
&amp;lt;pre&amp;gt;chmod +x hello.cgi&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==FastCGI==&lt;br /&gt;
&lt;br /&gt;
We use Apache's [http://httpd.apache.org/mod_fcgid/mod/mod_fcgid.html mod_fcgid] to provide support for FastCGI.&lt;br /&gt;
&lt;br /&gt;
In order to use FastCGI, you will generally need a starter script specific to your programming languae, framework or application. Just do a web search for &amp;quot;''keyword'' mod_fcgid&amp;quot;, where ''keyword'' is the programming language, framework or application you're planning to use, and you will often find good instructions. We've included some examples below&lt;br /&gt;
&lt;br /&gt;
You'll want to treat this starter script as a &amp;lt;code&amp;gt;mod_fcgid&amp;lt;/code&amp;gt; script, and usually, you'll want to redirect everything to this script, so you can use an &amp;lt;code&amp;gt;.htaccess&amp;lt;/code&amp;gt; file that looks like this:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;apache&amp;quot;&amp;gt;Options +ExecCGI&lt;br /&gt;
AddHandler fcgid-script .fcgi&lt;br /&gt;
RewriteEngine On&lt;br /&gt;
RewriteCond %{REQUEST_FILENAME} !-f&lt;br /&gt;
RewriteRule ^(.*)$ starter.fcgi/$1 [QSA,L]&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Replace ''starter.fcgi'' with the name of your starter script. Don't forget to make your starter script executable:&lt;br /&gt;
&amp;lt;pre&amp;gt;chmod +x starter.fcgi&amp;lt;/pre&amp;gt;&lt;br /&gt;
The starter script must be located in the same folder as the &amp;lt;code&amp;gt;.htaccess&amp;lt;/code&amp;gt; file.&lt;br /&gt;
&lt;br /&gt;
{{warning|Warning!|Do not place sensitive files inside the web accessible folder. Make sure they are located in a folder outside the document root, or they will be downloadable through the webserver.}}&lt;br /&gt;
It is adviced to only place the fcgi starter script, &amp;lt;code&amp;gt;.htaccess&amp;lt;/code&amp;gt; and static files (images, stylesheets) inside the document root.&lt;br /&gt;
&lt;br /&gt;
=== Startup time and persistency === &lt;br /&gt;
&lt;br /&gt;
It is important to keep in mind that our Apache webworkers will only run your start script when a request is made. As soon as that first request has been received, it will try and keep a few instances of your application around for future use. This of course affects how you restart your application after changes (see below), but also means that applications with a longer start up time (for example a language such as Python combined with a larger framework) will experience an initial slow request. This slow startup is obviously not a factor for faster languages such as Haskell, C++ or Go.&lt;br /&gt;
&lt;br /&gt;
Sadly, Apache is unable to have FastCGI processes persist beyond a reload or restart. This means in practice that every night around 6h25 when the logs are rotated, which requires Apache to be reloaded, all running fcgi processes will be gracefully terminated. The same thing happens when we make changes to the Apache configuration when a new website or user is added. &lt;br /&gt;
&lt;br /&gt;
For those who have a very high startup time and don't generate enough traffic to not experience issues with this behaviour, it's possible to use a [[Managing_Cron_jobs | cronjob]] to visit the website every night at 6h30 or 7h, or even hourly.&lt;br /&gt;
&lt;br /&gt;
===Restarting your application===&lt;br /&gt;
&lt;br /&gt;
If you've changed your application, you will need to restart it for these changes to take effect. However, because you're editing the application on a different server than where it is running, you do not have access to the running process. You'll have to create some sort of mechanism to restart the process.&lt;br /&gt;
&lt;br /&gt;
In the Django example below, the starter script has been written so that when it is changed, the application is automatically restarted within 1 second. The same mechanism can be applied to other Python sites. You can change the modification date without actually changing the contents of the starter script by using &amp;lt;code&amp;gt;touch&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;touch starter.fcgi&amp;lt;/pre&amp;gt;&lt;br /&gt;
Replace &amp;lt;code&amp;gt;starter.fcgi&amp;lt;/code&amp;gt; with the name of your starter script.&lt;br /&gt;
&lt;br /&gt;
=== Examples ===&lt;br /&gt;
==== Python and Django ====&lt;br /&gt;
&lt;br /&gt;
If you want to make a website using Python and [https://www.djangoproject.com/ Django], we recommend that you use a virtual environment. You can use the following steps to get up and running with Django on your ULYSSIS hosting account.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Accessing shell servers over SSH|Log in to a shell server]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Create a new virtualenv, you can create one in &amp;lt;code&amp;gt;~/.venv&amp;lt;/code&amp;gt;, for example:&lt;br /&gt;
&amp;lt;pre&amp;gt;python3 -m venv ~/.venv&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Activate this virtualenv:&lt;br /&gt;
&amp;lt;pre&amp;gt;. ~/.venv/bin/activate&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
Install Django inside of this virtualenv:&lt;br /&gt;
&amp;lt;pre&amp;gt;pip install django&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
Create a new Django project:&lt;br /&gt;
&amp;lt;pre&amp;gt;django-admin.py startproject mysite&amp;lt;/pre&amp;gt;&lt;br /&gt;
Replace ''mysite'' with your project's desired name.&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
Install flup for FastCGI:&lt;br /&gt;
&amp;lt;pre&amp;gt;pip install flup6&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
Put an &amp;lt;code&amp;gt;.htaccess&amp;lt;/code&amp;gt; file in your site's directory, e.g. the &amp;lt;code&amp;gt;www&amp;lt;/code&amp;gt; folder:&lt;br /&gt;
&amp;lt;pre&amp;gt;Options +ExecCGI&lt;br /&gt;
AddHandler fcgid-script .fcgi&lt;br /&gt;
RewriteEngine On&lt;br /&gt;
RewriteCond %{REQUEST_FILENAME} !-f&lt;br /&gt;
RewriteRule ^(.*)$ mysite.fcgi/$1 [QSA,L]&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
Create the starter script (replace &amp;lt;code&amp;gt;user&amp;lt;/code&amp;gt; with org if you are an organization, and &amp;lt;code&amp;gt;username&amp;lt;/code&amp;gt; with your ULYSSIS username):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;#!/home/user/username/.venv/bin/python&lt;br /&gt;
&lt;br /&gt;
import sys, os, os.path&lt;br /&gt;
from threading import Thread&lt;br /&gt;
&lt;br /&gt;
this_file = os.path.realpath(__file__)&lt;br /&gt;
&lt;br /&gt;
site_dir = '/home/user/username/mysite'&lt;br /&gt;
sys.path.insert(0, site_dir)&lt;br /&gt;
os.chdir(site_dir)&lt;br /&gt;
&lt;br /&gt;
os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings'&lt;br /&gt;
&lt;br /&gt;
def stat_thread():&lt;br /&gt;
    import time, os, signal&lt;br /&gt;
    start_mtime = os.stat(this_file).st_mtime&lt;br /&gt;
    while True:&lt;br /&gt;
        cur_mtime = os.stat(this_file).st_mtime&lt;br /&gt;
        if cur_mtime != start_mtime:&lt;br /&gt;
            os.kill(os.getpid(), signal.SIGTERM)&lt;br /&gt;
        time.sleep(1)&lt;br /&gt;
&lt;br /&gt;
Thread(target=stat_thread).start()&lt;br /&gt;
&lt;br /&gt;
from django.core.servers.basehttp import get_internal_wsgi_application&lt;br /&gt;
from flup.server.fcgi import WSGIServer&lt;br /&gt;
WSGIServer(get_internal_wsgi_application(), debug=False).run()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Call this script &amp;lt;code&amp;gt;mysite.fcgi&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
Make the starter script executable:&lt;br /&gt;
&amp;lt;pre&amp;gt;chmod +x mysite.fcgi&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
Go to ''username''.ulyssis.be (or whatever URL you chose to use), and it should show you the default &amp;quot;Welcome to Django&amp;quot; page.&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This guide was based on, and you can find more information in the official Django documentation:&lt;br /&gt;
* [https://docs.djangoproject.com/en/stable/intro/tutorial01/ The Django tutorial]&lt;br /&gt;
* [https://flask.palletsprojects.com/en/1.1.x/deploying/fastcgi/ Flask documentation for FastCGI]&lt;br /&gt;
&lt;br /&gt;
==== Go ====&lt;br /&gt;
To make a website or web application in Go and host it on your ULYSSIS hosting account, you can use the standard library ''fcgi'' package. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; [[Accessing shell servers over SSH|Log in to a shell server]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; Put an &amp;lt;code&amp;gt;.htaccess&amp;lt;/code&amp;gt; file in your site's directory (e.g. the &amp;lt;code&amp;gt;www&amp;lt;/code&amp;gt; folder) with a reference to your executable. Here we've chosen &amp;lt;code&amp;gt;mysite.fcgi&amp;lt;/code&amp;gt;, but you can adapt this to your liking.&lt;br /&gt;
&amp;lt;pre&amp;gt;Options +ExecCGI&lt;br /&gt;
AddHandler fcgid-script .fcgi&lt;br /&gt;
RewriteEngine On&lt;br /&gt;
RewriteCond %{REQUEST_FILENAME} !-f&lt;br /&gt;
RewriteRule ^(.*)$ mysite.fcgi/$1 [QSA,L]&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; Write your code, and compile the binary to &amp;lt;code&amp;gt;mysite.fcgi&amp;lt;/code&amp;gt;. Below you can find a basic example of how to register two handlers (of which one is the fallback), then start the FastCGI client, and finally have a function (which is called as a goroutine) to check if the binary has been replaced so old processes don't stick around.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;go&amp;quot;&amp;gt;package main&lt;br /&gt;
&lt;br /&gt;
import (&lt;br /&gt;
	&amp;quot;fmt&amp;quot;&lt;br /&gt;
	&amp;quot;net/http&amp;quot;&lt;br /&gt;
	&amp;quot;net/http/fcgi&amp;quot;&lt;br /&gt;
	&amp;quot;os&amp;quot;&lt;br /&gt;
	&amp;quot;path/filepath&amp;quot;&lt;br /&gt;
	&amp;quot;time&amp;quot;&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
func uri_interesting(w http.ResponseWriter, r *http.Request) {&lt;br /&gt;
	w.WriteHeader(http.StatusOK)&lt;br /&gt;
	fmt.Fprintln(w, &amp;quot;&amp;lt;h1&amp;gt;Oh, seems like this link isn't that interesting after all&amp;lt;/h1&amp;gt;&amp;quot;)&lt;br /&gt;
	fmt.Fprintln(w, &amp;quot;&amp;lt;p&amp;gt;Back to the &amp;lt;a href=\&amp;quot;/\&amp;quot;&amp;gt;Homepage&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&amp;quot;)&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
func uri_default(w http.ResponseWriter, r *http.Request) {&lt;br /&gt;
	if r.URL.Path != &amp;quot;/&amp;quot; {&lt;br /&gt;
		w.WriteHeader(http.StatusNotFound)&lt;br /&gt;
		fmt.Fprintln(w, &amp;quot;&amp;lt;h1&amp;gt;This page doesn't exist&amp;lt;/h1&amp;gt;&amp;quot;)&lt;br /&gt;
		fmt.Fprintln(w, &amp;quot;&amp;lt;p&amp;gt;Back to the &amp;lt;a href=\&amp;quot;/\&amp;quot;&amp;gt;Homepage&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&amp;quot;)&lt;br /&gt;
	} else {&lt;br /&gt;
		w.WriteHeader(http.StatusOK)&lt;br /&gt;
		fmt.Fprintln(w, &amp;quot;&amp;lt;h1&amp;gt;Welcome to this testwebsite!&amp;lt;/h1&amp;gt;&amp;quot;)&lt;br /&gt;
		fmt.Fprintln(w, &amp;quot;&amp;lt;p&amp;gt;This website is written in Go but doesn't really do much.&amp;quot;)&lt;br /&gt;
		fmt.Fprintln(w, &amp;quot;Feel free to visit this &amp;lt;a href=\&amp;quot;/interesting/link\&amp;quot;&amp;gt;Interesting link&amp;lt;/a&amp;gt; or this &amp;lt;a href=\&amp;quot;/non-existent/link\&amp;quot;&amp;gt;non-existent link&amp;lt;/a&amp;gt;.&amp;lt;/p&amp;gt;&amp;quot;)&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
func main() {&lt;br /&gt;
	go check_selfreplacement()&lt;br /&gt;
	http.HandleFunc(&amp;quot;/interesting/link&amp;quot;, uri_interesting)&lt;br /&gt;
	http.HandleFunc(&amp;quot;/&amp;quot;, uri_default)&lt;br /&gt;
	if err := fcgi.Serve(nil, nil); err != nil {&lt;br /&gt;
		panic(err)&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
func check_selfreplacement() {&lt;br /&gt;
	fcgi_location, _ := os.Executable()&lt;br /&gt;
	fcgi_location, _ = filepath.EvalSymlinks(fcgi_location)&lt;br /&gt;
	start_stat, _ := os.Stat(fcgi_location)&lt;br /&gt;
	for {&lt;br /&gt;
		current_stat, _ := os.Stat(fcgi_location)&lt;br /&gt;
		if start_stat.ModTime() != current_stat.ModTime() {&lt;br /&gt;
			os.Exit(0)&lt;br /&gt;
		}&lt;br /&gt;
		time.Sleep(1 * time.Second)&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
If you want to give this example a try, save it as &amp;lt;code&amp;gt;mysite.fcgi.go&amp;lt;/code&amp;gt; and then use &amp;lt;code&amp;gt;go build&amp;lt;/code&amp;gt; to compile it.&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Visit your website to verify everything works&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Webserver]]&lt;/div&gt;</summary>
		<author><name>Pcy</name></author>
	</entry>
	<entry>
		<id>https://docs.ulyssis.org/index.php?title=Getting_SSL/TLS&amp;diff=1283</id>
		<title>Getting SSL/TLS</title>
		<link rel="alternate" type="text/html" href="https://docs.ulyssis.org/index.php?title=Getting_SSL/TLS&amp;diff=1283"/>
		<updated>2021-04-20T13:04:04Z</updated>

		<summary type="html">&lt;p&gt;Pcy: /* Let's Encrypt */ fullchain verduidelijking&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;ULYSSIS does not sell or offer any other SSL certificates than our self-signed certificate. We will however guide requests and install a certificate from the KU Leuven is you are eligible for one, and we will also install certificates you have bought or obtained elsewhere.&lt;br /&gt;
&lt;br /&gt;
==Requesting SSL from the KU Leuven==&lt;br /&gt;
&lt;br /&gt;
The KU Leuven partners with other universities through TERENA/Géant to arrange certificates for its services, organisations and academic structures. We have permission to request free SSL/TLS certificates for student unions (kringen) recognized by LOKO or faculty consultative bodies (facultaire overlegorganen) recognized by Studentenraad KU Leuven as well as organisations (vrije verenigingen) recognized by LOKO or KU Leuven. We are not eligible to request SSL/TLS certificates for individuals with a personal account, nor research groups or staff associations. We suggest those latter groups request certificates from KU Leuven ICTS directly or consider Let's Encrypt or another third party service.&lt;br /&gt;
&lt;br /&gt;
Before sending us a request, the following steps have to be performed:&lt;br /&gt;
* Set up the site that needs SSL if that's not already the case&lt;br /&gt;
* Make sure our nameservers are being used for the involved domain(s), as explained on [[Adding domain names]]&lt;br /&gt;
* Consider all subdomains (whether separate websites or not) you wish to have certificates for&lt;br /&gt;
* Make a list of all relevant arguments for your use of SSL/TLS certificates. It's important to consider aspects of your website where important or personal information is exchanged: registration, login pages, newsletter signup, etc.&lt;br /&gt;
&lt;br /&gt;
When '''all''' steps are done, the account holder of the ULYSSIS account can send an email to ulyssis@ulyssis.org containing their name, the name of the organisation, the relevant arguments what you will use SSL for and the domain and if needed a list of subdomains that should be covered by the certificate.&lt;br /&gt;
&lt;br /&gt;
Based on our previous experience and our arrangements with ICTS we will consider whether you are eligible for certificates and whether your request is well-founded. We will then generate the required cryptographic key and request and submit them on the certificate platform supplied by ICTS and its partners. Depending on the situation, the verification and delivery of the certificate can take some time. As soon as the certificate has been issued, we will install it and notify you.&lt;br /&gt;
&lt;br /&gt;
For procedures to request certificates, we follow instructions from ICTS. These instructions have changed several times in the past, so it's possible for a new request or for a renewal, you may have to follow a different procedure or make changes.&lt;br /&gt;
&lt;br /&gt;
{{notice|Limitations|ICTS does not allow SSL requests for historic *.student.kuleuven.be domains. We judge requests for username.ulyssis.be and username.studentenweb.org on an individual basis.}}&lt;br /&gt;
&lt;br /&gt;
==External certificates==&lt;br /&gt;
To install external certificates we require the certificate itself, the private key, and possibly the chain. We prefer you also send us (a link to) the documentation of your supplier. As certificate files, especially private keys, are a delicate matter we suggest you just email us the path in your homedirectory you've put them and we will move them over to the webserver safely. For more information concerning this procedure you can always contact us on ulyssis@ulyssis.org&lt;br /&gt;
&lt;br /&gt;
===Let's Encrypt===&lt;br /&gt;
We currently do not have an automated system for renewing and deploying certificates such as those supplied by Let's Encrypt. We are however looking into automating this process in the future. Since more of our users are starting to use Let's Encrypt, and all of their certificates need to be renewed frequently, we have a specific procedure now.&lt;br /&gt;
&lt;br /&gt;
When wishing to add a certificate with Let's Encrypt to your website, or renew your existing one, first create a folder &amp;lt;code&amp;gt;letsencrypt&amp;lt;/code&amp;gt; in your '''home directory'''. Then add a folder per domain or group of domains:&lt;br /&gt;
&lt;br /&gt;
 mkdir -p ~/letsencrypt/mydomain.be&lt;br /&gt;
&lt;br /&gt;
Certificates should be stored in these folders, according to the following file structure:&lt;br /&gt;
&lt;br /&gt;
 letsencrypt/&lt;br /&gt;
 └── mydomain.be/&lt;br /&gt;
     ├── mydomain.be.chain (the CA file; &amp;quot;full chain&amp;quot;, not the regular chain)&lt;br /&gt;
     ├── mydomain.be.crt (the cert file; &amp;quot;public key&amp;quot;)&lt;br /&gt;
     └── mydomain.be.key (the key file; &amp;quot;private key&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
If you already possess the necessary files, renaming and copying them accordingly is sufficient. &lt;br /&gt;
'''You still have to email us to install your certificate.''' More information in the last section on this page.&lt;br /&gt;
&lt;br /&gt;
Otherwise, you can generate or renew your certificates using acme.sh. This is explained in the next section.&lt;br /&gt;
&lt;br /&gt;
==== Generating certificates ====&lt;br /&gt;
{{notice|If you use a &amp;lt;code&amp;gt;.htaccess&amp;lt;/code&amp;gt; file in the webroot of the domain name, make sure to add the following lines at the top of the file:|&amp;lt;pre&amp;gt;&amp;lt;IfModule mod_rewrite.c&amp;gt;&lt;br /&gt;
    RewriteRule &amp;quot;^.well-known/acme-challenge&amp;quot; - [L]&lt;br /&gt;
&amp;lt;/IfModule&amp;gt;&amp;lt;/pre&amp;gt;}}&lt;br /&gt;
Because the normal method of generating Let's Encrypt certificates, certbot, requires root access, it's impossible for normal users to do so on our servers. Luckily there are plenty of alternatives which implement the Let's Encrypt protocol. In this tutorial, we'll show how to use the acme.sh program to generate certificates on the ULYSSIS servers. '''If you already followed this section to generate certificates, skip to the next section on renewing certificates.'''&lt;br /&gt;
&lt;br /&gt;
Firstly, execute the following commands to download the acme.sh script in your home directory and make it executable:&lt;br /&gt;
&lt;br /&gt;
 curl -o ~/acme.sh https://raw.githubusercontent.com/acmesh-official/acme.sh/master/acme.sh&lt;br /&gt;
 chmod +x ~/acme.sh&lt;br /&gt;
&lt;br /&gt;
Next, determine for which domains and subdomains you want to generate a certificate. You will need to generate a single certificate for each domain and subdomain which points to the same folder on your account (in most cases this is &amp;lt;code&amp;gt;www&amp;lt;/code&amp;gt; in your home directory).&lt;br /&gt;
&lt;br /&gt;
The following example command will generate a certificate for &amp;lt;code&amp;gt;mydomain.be&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;www.mydomain.be&amp;lt;/code&amp;gt; which points to the &amp;lt;code&amp;gt;www&amp;lt;/code&amp;gt; folder in the home directory. '''Change the parameters''' as explained below before executing this command!&lt;br /&gt;
&lt;br /&gt;
 ~/acme.sh --issue --cert-file ~/letsencrypt/mydomain.be/mydomain.be.crt --key-file ~/letsencrypt/mydomain.be/mydomain.be.key --ca-file ~/letsencrypt/mydomain.be/mydomain.be.chain -m &amp;quot;email@mydomain.be&amp;quot; -w ~/www -d mydomain.be -d www.mydomain.be&lt;br /&gt;
&lt;br /&gt;
The explanation of these many parameters is as follows:&lt;br /&gt;
* &amp;lt;code&amp;gt;--issue&amp;lt;/code&amp;gt; tells acme.sh to generate a new certificate.&lt;br /&gt;
* &amp;lt;code&amp;gt;--cert-file ~/letsencrypt/mydomain.be/mydomain.be.crt&amp;lt;/code&amp;gt; tells acme.sh to store the certificate file in the &amp;lt;code&amp;gt;letsencrypt/mydomain.be&amp;lt;/code&amp;gt; folder in your home directory, using the special file name as required by the file structure. '''This folder should already exist''', please refer to the previous section if you have not created this folder yet.&lt;br /&gt;
* &amp;lt;code&amp;gt;--key-file ~/letsencrypt/mydomain.be/mydomain.be.key&amp;lt;/code&amp;gt; tells acme.sh to store the key file in the &amp;lt;code&amp;gt;letsencrypt/mydomain.be&amp;lt;/code&amp;gt; folder in your home directory, using the special file name as required by the file structure.&lt;br /&gt;
* &amp;lt;code&amp;gt;--ca-file ~/letsencrypt/mydomain.be/mydomain.be.chain&amp;lt;/code&amp;gt; tells acme.sh to store the CA file in the &amp;lt;code&amp;gt;letsencrypt/mydomain.be&amp;lt;/code&amp;gt; folder in your home directory, using the special file name as required by the file structure.&lt;br /&gt;
* &amp;lt;code&amp;gt;-m &amp;quot;email@mydomain.be&amp;quot;&amp;lt;/code&amp;gt; tells acme.sh the email address associated with the certificate. Let's Encrypt will remind this email address (if provided) when the certificate is close to expiring.&lt;br /&gt;
* &amp;lt;code&amp;gt;-w ~/www&amp;lt;/code&amp;gt; tells acme.sh where the domains in this certificate point to. Make sure to change the &amp;lt;code&amp;gt;www&amp;lt;/code&amp;gt; part if the domains point to a different folder in your home directory.&lt;br /&gt;
* &amp;lt;code&amp;gt;-d mydomain.be&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;-d www.mydomain.be&amp;lt;/code&amp;gt; tell acme.sh that the certificate should protect &amp;lt;code&amp;gt;mydomain.be&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;www.mydomain.be&amp;lt;/code&amp;gt;. The first domain name will be the &amp;quot;main domain&amp;quot;, which is important for renewing. You should '''add all domain names''' pointing to the &amp;lt;code&amp;gt;-w&amp;lt;/code&amp;gt; folder.&lt;br /&gt;
&lt;br /&gt;
After executing this command with the right parameters, your certificate should be generated successfully. When you have to renew the certificate in the future, you should follow the instructions in the next section. '''Don't forget to email us to install your new certificate.''' More information in the last section on this page.&lt;br /&gt;
&lt;br /&gt;
==== Renewing certificates ====&lt;br /&gt;
To renew the certificates of &amp;lt;code&amp;gt;mydomain.be&amp;lt;/code&amp;gt;, just execute:&lt;br /&gt;
 ~/acme.sh --renew -d mydomain.be&lt;br /&gt;
&lt;br /&gt;
For the &amp;lt;code&amp;gt;-d&amp;lt;/code&amp;gt; parameter, you have to provide the '''first''' domain name you provided when generating the certificate (in the previous section, this was &amp;lt;code&amp;gt;mydomain.be&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
If you are not sure which domain name to use, you can execute the command:&lt;br /&gt;
 ~/acme.sh --list&lt;br /&gt;
&lt;br /&gt;
This will generate a list of available certificates, which looks a bit like this:&lt;br /&gt;
 Main_Domain  KeyLength  SAN_Domains      CA               Created  Renew&lt;br /&gt;
 mydomain.be  &amp;quot;&amp;quot;         www.mydomain.be  LetsEncrypt.org  ...      ...&lt;br /&gt;
 ...          ...        ...              ...              ...      ...&lt;br /&gt;
&lt;br /&gt;
In this example, the main domain is &amp;lt;code&amp;gt;mydomain.be&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The renewed certificates will automatically be copied to the files you provided in the command to generate the certificates (see previous section).&lt;br /&gt;
&lt;br /&gt;
'''After renewing the certificate, you have to email us to install your certificate.''' More information in the next section.&lt;br /&gt;
&lt;br /&gt;
==== Getting your certificates installed ====&lt;br /&gt;
Check whether everything is stored correctly by executing the following command:&lt;br /&gt;
 ulyssis-certificate check mydomain.be&lt;br /&gt;
&lt;br /&gt;
If everything looks good, you should only see lines starting with &amp;lt;code&amp;gt;[ OK ]&amp;lt;/code&amp;gt;. Any line starting with &amp;lt;code&amp;gt;[FAIL]&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;[ABRT]&amp;lt;/code&amp;gt; means a check has failed, you must correct this error before asking us to install your certificate. &lt;br /&gt;
&lt;br /&gt;
Once all steps are done and if you are the '''account holder''', '''you can send us an email clearly stating the account name, for which domains we need to add certificates and where the files are stored'''. If you are renewing existing certificates, also clearly state that in your email.&lt;br /&gt;
&lt;br /&gt;
We have largely automated the installation of certificates. If you do not follow these instructions, your request will be denied or you may end up with broken SSL, so make sure you follow this procedure carefully.&lt;br /&gt;
&lt;br /&gt;
[[Category:Webserver]]&lt;/div&gt;</summary>
		<author><name>Pcy</name></author>
	</entry>
	<entry>
		<id>https://docs.ulyssis.org/index.php?title=Reducing_disk_usage&amp;diff=1240</id>
		<title>Reducing disk usage</title>
		<link rel="alternate" type="text/html" href="https://docs.ulyssis.org/index.php?title=Reducing_disk_usage&amp;diff=1240"/>
		<updated>2021-03-08T07:28:33Z</updated>

		<summary type="html">&lt;p&gt;Pcy: fix spelling etc&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
This page discusses what happens when you use more disk space than has been allotted to your account (your quota) and how to reduce your disk usage. You may have been pointed here through an automatic email notification you are running over your quota, or through our support. This page is also useful if you want to reduce your disk usage even if you're not using more than your quota. You can check your current disk usage as well as your quota on https://ucc.ulyssis.org/quota. &lt;br /&gt;
&lt;br /&gt;
This page first discusses what happens when you use more disk space than is available to your account type (so you therefore go over your quota). This is followed by a detailed manual on how to use the command line tool ''ncdu'' to look for the files and folders that may be causing trouble within your account. Finally, there's a list of examples of common causes for large disk space usage. &lt;br /&gt;
&lt;br /&gt;
== What happens when I go over my quota? ==&lt;br /&gt;
&lt;br /&gt;
If you are using more disk space than the allowed quota for your account type for more than seven consecutive days (the so-called grace period), you will no longer be able to write any additional files or extend existing files. You will probably no longer be able to edit websites on your account or it might even stop working outright. If you haven't configured a forwarder for your &amp;lt;code&amp;gt;''username''@ulyssis.org&amp;lt;/code&amp;gt; email address, you will lose emails sent to this address. The grace period of seven days is intended for you to have time to reduce your disk space. You will receive an email every day reminding you that you are using too much disk space. In order to prevent impact on other users in cases where disk usage within an account suddenly and substantially surges, an additional quota slightly higher than your normal quota is imposed, independent of any grace period.&lt;br /&gt;
&lt;br /&gt;
== Identifying which files &amp;amp; folders use the most disk space  ==&lt;br /&gt;
It is not always easy to immediately identify what is taking up space on your account. Sadly, there are no dependable cross-platform tools to help with this. Instead, we will be using the command line tool ''ncdu'', which runs directly on one of our shell servers. You do not need to be proficient with command line interfaces in order to use this tool, the step-by-step manual below will guide you through the process. However, should you get stuck, do not hesitate to contact us at &amp;lt;code&amp;gt;ulyssis@ulyssis.org&amp;lt;/code&amp;gt;.   &lt;br /&gt;
&lt;br /&gt;
* Connect through SSH to one of the shell servers: https://docs.ulyssis.org/Accessing_shell_servers_over_SSH&lt;br /&gt;
* Type in &amp;lt;code&amp;gt;ncdu&amp;lt;/code&amp;gt; and press enter. You will then see that &amp;lt;code&amp;gt;ncdu&amp;lt;/code&amp;gt; is scanning your account.&lt;br /&gt;
* Once &amp;lt;code&amp;gt;ncdu&amp;lt;/code&amp;gt; has finished scanning, it will display which files or folders located directly in your home directory are using the most disk space. When the filename stars with &amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt; it is a folder. The results are ordered by size, so it makes most sense to start with the top items.&lt;br /&gt;
* You can select different files/folders using the '''up and down arrow keys''', navigate the directory structure using either the '''enter and backspace''' keys or the '''left and right''' arrows to move in and out of folders, quit ncdu by pressing '''q''' and delete a file or folder with '''d'''. Be careful to not delete files you still need as you will need to contact us in order to restore them from a backup.&lt;br /&gt;
* You can check your progress on https://ucc.ulyssis.org/quota. The percentage and values displayed are always current and accurate, there is no delay.[[File:Disk usage ncdu.png|thumb|760x760px]]&lt;br /&gt;
&lt;br /&gt;
=== Common sources of unnecessary disk usage ===&lt;br /&gt;
&lt;br /&gt;
* Your ULYSSIS mailbox: Depending on your account settings, your ''@ulyssis.org'' email account may be used as a forwarder or an inbox. When set to ''Inbox'' on https://ucc.ulyssis.org/mail, email will be saved to the ''Maildir'' folder within your account. A substantial amount of email, especially with large attachments, may grow to quite a significant size. You can verify the contents of your mailbox easily by logging in on https://webmail.ulyssis.org using your ULYSSIS account credentials. You can then remove those emails that are no longer useful, and don't forget to empty the trash. To remove the entire mailbox, you can simply remove the Maildir folder from your account (using ncdu, FileZilla, or another tool). To empty the trash manually, you can remove the ''Maildir/.Trash'' folder. If you no longer wish to use you mailbox, don't forget to change the configuration on https://ucc.ulyssis.org/mail to forward your messages, since you may receive relevant information about your account through this address.&lt;br /&gt;
* Old websites: if you have older websites on your account that you are no longer using, it might be worth removing them in their entirety. If the deleted website uses a database (this will always be the case if your using WordPress, MediaWiki or another popular CMS), then you should also delete those through our control panel: https://ucc.ulyssis.org (either the MySQL or PostgreSQL sections). If this website had an associated (sub)domain, please send us an email to have it removed. Also keep in mind that old websites may pose a security risk, so it's never good to leave them lying about.&lt;br /&gt;
* Unused images: in the case of many CMSes (WordPress, Drupal, ...), removing an image from a post will not delete it. For example, in the case of WordPress it will still be available through the [https://wordpress.com/support/media/deleting-files/ Media Library]. In order to reclaim the disk space used by the image, you will have to delete it there as well. Similarly, MediaWiki offers a list of ''unused files'' as a special page available in the list of ''Special Pages''.&lt;br /&gt;
* Large images: images and especially pictures are often several MBs in size and often have a large resolution. While this is great for editing and printing, such large sizes are not all that useful for inclusion in a webpage. They can make your site load slower and use more disk space without a significant increase in quality. You should therefore consider resizing images before uploading them or installing a plugin, module or extension that reduces their size on upload. However, make sure to watch out for plugins that keep the original image around as this will not reduce but increase your disk usage. For a tutorial on how to resize images, you can take a look at https://wordpress.com/support/media/image-optimization/. This tutorial is geared towards WordPress, but is also applicable in general. If you are using MediaWiki, we have written a plugin that reduces the size of various types of files. You can find more details on [[Setting up MediaWiki#Extensions|Setting up MediaWiki - Extensions]].&lt;br /&gt;
* Backups: ULYSSIS makes daily backups of all account data, including databases, and keeps them for at least a month. It is therefore not necessary to make automated backups of your own, for example with plugins such as [https://nl.wordpress.org/plugins/updraftplus/ Updraft] for WordPress. Although it is a good practice to make backups whenever you are making large changes to your site, it is not necessary to keep them after you have verified that your site works correctly.&lt;br /&gt;
* Anything missing on this list? Feel free to contact us on &amp;lt;code&amp;gt;ulyssis@ulyssis.org&amp;lt;/code&amp;gt; with your suggestions.&lt;br /&gt;
[[Category:Files]]&lt;br /&gt;
[[Category:Account]]&lt;/div&gt;</summary>
		<author><name>Pcy</name></author>
	</entry>
	<entry>
		<id>https://docs.ulyssis.org/index.php?title=Transferring_your_account&amp;diff=1214</id>
		<title>Transferring your account</title>
		<link rel="alternate" type="text/html" href="https://docs.ulyssis.org/index.php?title=Transferring_your_account&amp;diff=1214"/>
		<updated>2021-02-27T11:49:54Z</updated>

		<summary type="html">&lt;p&gt;Pcy: fix grammar &amp;amp; wording&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;You can transfer the account of your (faculty) organization to a new webmaster. The new webmaster must have a valid Central KU Leuven Login. Otherwise, the new webmaster will not be able to accept the account transfer.&lt;br /&gt;
&lt;br /&gt;
The instructions below must be executed by the current account owner.&lt;br /&gt;
&lt;br /&gt;
* Log in to [https://ucc.ulyssis.org/ UCC].&lt;br /&gt;
* Click 'Transfer account' in the menu on the right.&lt;br /&gt;
* Enter the details of the new account owner. Ensure the KULeuven email address is entered correctly.&lt;br /&gt;
&lt;br /&gt;
The new webmaster will receive an email to confirm the transfer.&lt;br /&gt;
&lt;br /&gt;
[[Category:Account]]&lt;/div&gt;</summary>
		<author><name>Pcy</name></author>
	</entry>
	<entry>
		<id>https://docs.ulyssis.org/index.php?title=Using_MySQL&amp;diff=1201</id>
		<title>Using MySQL</title>
		<link rel="alternate" type="text/html" href="https://docs.ulyssis.org/index.php?title=Using_MySQL&amp;diff=1201"/>
		<updated>2020-12-16T18:04:32Z</updated>

		<summary type="html">&lt;p&gt;Pcy: fix wording and punctuation a little bit&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MySQL is one of the most popular databases for websites. It's used by most CMSes and other common web software, and many programming languages have support for it. ULYSSIS specifically uses MariaDB, which is a fork of MySQL with similar features and (almost) identical SQL syntax, but offers better performance and has less corporate interference in the development process.&lt;br /&gt;
&lt;br /&gt;
== Managing MySQL ==&lt;br /&gt;
All common management tasks can be performed through our control panel [https://ucc.ulyssis.org UCC], under the MySQL section.&lt;br /&gt;
&lt;br /&gt;
===Creating a MySQL user===&lt;br /&gt;
To use MySQL on your ULYSSIS account, you first need to create a MySQL user on [https://ucc.ulyssis.org UCC]. In the MySQL section of the panel, you will be suggested to click a link to create a user. Then fill in a password for the database user. It is highly recommended that this password differs from the password you use for your account. Finally, click ''Create user'' and you are ready to go.&lt;br /&gt;
&lt;br /&gt;
===Creating a MySQL database===&lt;br /&gt;
After having created a MySQL user, you can click ''Add database'' in [https://ucc.ulyssis.org UCC] and enter the name for your new database. It will automatically be prefixed by your username.&lt;br /&gt;
&lt;br /&gt;
===Deleting a MySQL database===&lt;br /&gt;
If you no longer need a database, you can easily remove it by clicking on ''MySQL'' in [https://ucc.ulyssis.org UCC] and then pressing on ''Remove database'' next to the database you would like to delete. After confirming, the database and all its tables and other contents will be gone. For security reasons, you can't remove databases using an SQL query like DROP DATABASE, but have to go through UCC.&lt;br /&gt;
&lt;br /&gt;
== Accessing MySQL ==&lt;br /&gt;
Our MySQL and PostgreSQL databases run on a separate database server, this means you may need to enter a specific host, together with the correct credentials, to access your database within a website or application. You may also wish to use a common tool such as PHPMyAdmin or access a database remotely. Details on how to do that are available in the sections below.&lt;br /&gt;
&lt;br /&gt;
===Using MySQL for your website or application===&lt;br /&gt;
 Host: mysql.ulyssis.org&lt;br /&gt;
 Username: your account's username&lt;br /&gt;
 Password: the password you chose when you made the MySQL user&lt;br /&gt;
 Database: the database name you chose, prefixed by your username&lt;br /&gt;
&lt;br /&gt;
For example, if my username is foobar, I made a database called website and I were to create a PHP website I would use something like:&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;$db = new mysqli('mysql.ulyssis.org', 'foobar', 'correct horse battery staple', 'foobar_website');&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;$db = new PDO('mysql:host=mysql.ulyssis.org;dbname=foobar_website', 'foobar', 'correct horse battery staple');&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Accessing MySQL with PHPMyAdmin or Adminer===&lt;br /&gt;
Using your username and password you can easily manage your MySQL databases, tables and records on https://phpmyadmin.ulyssis.org and https://adminer.ulyssis.org. Documentation is also available to aid in [[using PHPMyAdmin]] and [[using Adminer]].&lt;br /&gt;
&lt;br /&gt;
===Accessing MySQL from outside of our network===&lt;br /&gt;
To prevent unnecessary load on our database server by hackers and bots it is only available inside of our network. If you wish to access it externally the easiest way is to use an SSH tunnel. In many MySQL management tools this is already supported. &lt;br /&gt;
&lt;br /&gt;
==== MySQL Workbench ====&lt;br /&gt;
While [https://www.mysql.com/products/workbench/ MySQL Workbench] might not fully support our MySQL database, all commonly used operations work perfectly. You can connect to our database using MySQL Workbench by creating a connection as follows ([username] should be replaced by your username, of course):&lt;br /&gt;
[[File:MySQL_Workbench_SSH.png]]&lt;br /&gt;
&lt;br /&gt;
==== Linux, Mac OSX ====&lt;br /&gt;
On Linux, Mac OSX and other Unix-like Operating Systems it is also easily possible to use the following command to create a tunnel to a local port (in this case 3300)&lt;br /&gt;
 ssh username@ssh2.ulyssis.org -L 3300:mysql.ulyssis.org:3306 -N&lt;br /&gt;
&lt;br /&gt;
While this command is running, you can connect to the MySQL server with host 'localhost' and port '3300'.&lt;br /&gt;
To terminate the port forwarding, press ctrl-C in the terminal.&lt;br /&gt;
&lt;br /&gt;
You can use &amp;quot;ssh -f username@ssh2.ulyssis.org -L 3300:mysql.ulyssis.org:3306 -N&amp;quot;: the f-argument will put the command in the background.&lt;br /&gt;
&lt;br /&gt;
[[Category:Databases]]&lt;/div&gt;</summary>
		<author><name>Pcy</name></author>
	</entry>
	<entry>
		<id>https://docs.ulyssis.org/index.php?title=ULYSSIS_public_IRC&amp;diff=1115</id>
		<title>ULYSSIS public IRC</title>
		<link rel="alternate" type="text/html" href="https://docs.ulyssis.org/index.php?title=ULYSSIS_public_IRC&amp;diff=1115"/>
		<updated>2020-07-28T00:54:04Z</updated>

		<summary type="html">&lt;p&gt;Pcy: /* Using Bitlbee */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;ULYSSIS hosts its own IRC network. IRC stands for Internet Relay Chat, [https://en.wikipedia.org/wiki/Internet_Relay_Chat IRC on wikipedia]. It is a chat protocol that mainly focuses on group chat, but also allows for private chat.&lt;br /&gt;
&lt;br /&gt;
If you have an urgent question, IRC is often the quickest way to contact us. But also if you don't have a question and just want to hang out in our chat, feel free to join!&lt;br /&gt;
&lt;br /&gt;
==Web IRC client==&lt;br /&gt;
If you won't regularly use our IRC or if you just want to check it out, you can use our web IRC client. You can find it at [https://webirc.ulyssis.org/ webirc.ulyssis.org].&lt;br /&gt;
&lt;br /&gt;
==IRC network details==&lt;br /&gt;
&lt;br /&gt;
Below are specific instructions for some clients, but if you are already familiar with IRC, here are the details you need to connect to our server. We highly recommend using SSL.&lt;br /&gt;
&lt;br /&gt;
 Server: irc.ulyssis.org&lt;br /&gt;
 Port: 6668 (SSL)&lt;br /&gt;
 Channel: #ulyssis&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;code&amp;gt;irc.ulyssis.org&amp;lt;/code&amp;gt; is down, you can also try the other server in the same network, hosted at &amp;lt;code&amp;gt;irc2.ulyssis.org&amp;lt;/code&amp;gt;. Both are connected to each other and you can use them interchangeably. It is advised to add it as a fallback in your IRC client.&lt;br /&gt;
&lt;br /&gt;
==IRC clients==&lt;br /&gt;
To use IRC, you'll need an IRC client. We advise the terminal based [https://irssi.org/ irssi] or [https://weechat.org/ weechat] for Linux and [https://hexchat.github.io/ hexchat] or [https://www.mirc.com/ mIRC] for Windows, but there are a lot of other free options.&lt;br /&gt;
&lt;br /&gt;
You can only receive messages over IRC while you're connected. Therefore, we advise you to run irssi or weechat in either a screen or a tmux session. With a ULYSSIS account, you can run screen or tmux on our shellservers, as they keep running 24/7 you can use them to keep track of your conversations.&lt;br /&gt;
Screen and tmux are similar programs. Screen has been around for longer and is more tested, while tmux is more modern with new features and being easier to use for beginners.&lt;br /&gt;
&lt;br /&gt;
===Using irssi on our shell servers===&lt;br /&gt;
====Connect to the shellserver====&lt;br /&gt;
Use the ssh command in your Linux or OS X terminal, or use PuTTY to connect on windows.&lt;br /&gt;
Extensive information on how to do so can be found on [[Accessing shell servers over SSH]].&lt;br /&gt;
&lt;br /&gt;
====Start irssi in a screen====&lt;br /&gt;
*When on the shellserver, enter &amp;lt;code&amp;gt;screen -U&amp;lt;/code&amp;gt; to start a screen session, or &amp;lt;code&amp;gt;tmux&amp;lt;/code&amp;gt; to start a tmux session.&lt;br /&gt;
*Enter &amp;lt;code&amp;gt;irssi&amp;lt;/code&amp;gt; to start irssi&lt;br /&gt;
*Connect to the IRC server: &amp;lt;code&amp;gt;/server -ssl irc.ulyssis.org 6668&amp;lt;/code&amp;gt;&lt;br /&gt;
*Connect to the public channel: &amp;lt;code&amp;gt;/join #ulyssis&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Screen usage====&lt;br /&gt;
*To exit the screen: press Ctrl-A and press D ('detach') to return to the shellserver.&lt;br /&gt;
*To reconnect: enter &amp;lt;code&amp;gt;screen -r&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;screen -DR&amp;lt;/code&amp;gt; (the latter will create a new screen if it wasn't already made).&lt;br /&gt;
&lt;br /&gt;
====Tmux usage====&lt;br /&gt;
*To exit the tmux session: press Ctrl-B and press D ('detach') to return to the shellserver.&lt;br /&gt;
*To reconnect: enter &amp;lt;code&amp;gt;tmux attach&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Help, I can't reconnect to my session!====&lt;br /&gt;
*Check if you are on the right shell server and didn't make a typing error.&lt;br /&gt;
*If everything is correct, your screen may have been stopped by a crash or a reboot of our shellserver. You can check the [http://www.ulyssis.org/status status] section of our website for more information about possible downtimes.&lt;br /&gt;
*Make sure you use the right program (&amp;lt;code&amp;gt;screen&amp;lt;/code&amp;gt; if you started a screen session and &amp;lt;code&amp;gt;tmux&amp;lt;/code&amp;gt; if you started a tmux session)&lt;br /&gt;
&lt;br /&gt;
==Using ZNC==&lt;br /&gt;
Alternatively, if you don't like using terminal-based clients, or just want to run your client locally, you can connect with our [https://znc.ulyssis.org/ ZNC server]. However, to use it, you'll need a ULYSSIS account. ZNC connects to our IRC server in your place (fill in the details at the beginning of this article). You can then connect to ZNC with a client of your choice, and it will send you the history you've missed while you were offline.&lt;br /&gt;
&lt;br /&gt;
Log in to our ZNC server. In your settings, create a new network. Fill in the basic details (server name, nickname, set &amp;lt;code&amp;gt;BindHost&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;0.0.0.0&amp;lt;/code&amp;gt;). In the server field, fill in &amp;lt;code&amp;gt;irc.ulyssis.org +6668&amp;lt;/code&amp;gt;. Add &amp;lt;code&amp;gt;#ulyssis&amp;lt;/code&amp;gt; as a channel. You may want to increase the buffer count. Then save at the bottom of the page.&lt;br /&gt;
&lt;br /&gt;
In your IRC client, connect to the server &amp;lt;code&amp;gt;znc.ulyssis.org&amp;lt;/code&amp;gt; on port 6666 (with SSL) and set &amp;lt;code&amp;gt;username/network:password&amp;lt;/code&amp;gt; as password to the server. Replace &amp;lt;code&amp;gt;username&amp;lt;/code&amp;gt; with your ULYSSIS username, &amp;lt;code&amp;gt;network&amp;lt;/code&amp;gt; with the name of the network in your znc settings, and &amp;lt;code&amp;gt;password&amp;lt;/code&amp;gt; with your ULYSSIS password.&lt;br /&gt;
&lt;br /&gt;
==Using Bitlbee==&lt;br /&gt;
&lt;br /&gt;
With [https://www.bitlbee.org/main.php/news.r.html Bitlbee], you can connect to other services as if they were an IRC server. It is available at &amp;lt;code&amp;gt;bitlbee.ulyssis.org&amp;lt;/code&amp;gt; on ports 7000 and 7001 (SSL). For documentation on how to use Bitlbee, we refer to the manual on its website. This service is only reachable from within the ULYSSIS and KU Leuven networks.&lt;br /&gt;
&lt;br /&gt;
[[Category:Shell]]&lt;br /&gt;
[[Category:ULYSSIS Public Services]]&lt;/div&gt;</summary>
		<author><name>Pcy</name></author>
	</entry>
	<entry>
		<id>https://docs.ulyssis.org/index.php?title=ULYSSIS_public_IRC&amp;diff=1114</id>
		<title>ULYSSIS public IRC</title>
		<link rel="alternate" type="text/html" href="https://docs.ulyssis.org/index.php?title=ULYSSIS_public_IRC&amp;diff=1114"/>
		<updated>2020-07-28T00:46:09Z</updated>

		<summary type="html">&lt;p&gt;Pcy: /* Using Bitlbee */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;ULYSSIS hosts its own IRC network. IRC stands for Internet Relay Chat, [https://en.wikipedia.org/wiki/Internet_Relay_Chat IRC on wikipedia]. It is a chat protocol that mainly focuses on group chat, but also allows for private chat.&lt;br /&gt;
&lt;br /&gt;
If you have an urgent question, IRC is often the quickest way to contact us. But also if you don't have a question and just want to hang out in our chat, feel free to join!&lt;br /&gt;
&lt;br /&gt;
==Web IRC client==&lt;br /&gt;
If you won't regularly use our IRC or if you just want to check it out, you can use our web IRC client. You can find it at [https://webirc.ulyssis.org/ webirc.ulyssis.org].&lt;br /&gt;
&lt;br /&gt;
==IRC network details==&lt;br /&gt;
&lt;br /&gt;
Below are specific instructions for some clients, but if you are already familiar with IRC, here are the details you need to connect to our server. We highly recommend using SSL.&lt;br /&gt;
&lt;br /&gt;
 Server: irc.ulyssis.org&lt;br /&gt;
 Port: 6668 (SSL)&lt;br /&gt;
 Channel: #ulyssis&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;code&amp;gt;irc.ulyssis.org&amp;lt;/code&amp;gt; is down, you can also try the other server in the same network, hosted at &amp;lt;code&amp;gt;irc2.ulyssis.org&amp;lt;/code&amp;gt;. Both are connected to each other and you can use them interchangeably. It is advised to add it as a fallback in your IRC client.&lt;br /&gt;
&lt;br /&gt;
==IRC clients==&lt;br /&gt;
To use IRC, you'll need an IRC client. We advise the terminal based [https://irssi.org/ irssi] or [https://weechat.org/ weechat] for Linux and [https://hexchat.github.io/ hexchat] or [https://www.mirc.com/ mIRC] for Windows, but there are a lot of other free options.&lt;br /&gt;
&lt;br /&gt;
You can only receive messages over IRC while you're connected. Therefore, we advise you to run irssi or weechat in either a screen or a tmux session. With a ULYSSIS account, you can run screen or tmux on our shellservers, as they keep running 24/7 you can use them to keep track of your conversations.&lt;br /&gt;
Screen and tmux are similar programs. Screen has been around for longer and is more tested, while tmux is more modern with new features and being easier to use for beginners.&lt;br /&gt;
&lt;br /&gt;
===Using irssi on our shell servers===&lt;br /&gt;
====Connect to the shellserver====&lt;br /&gt;
Use the ssh command in your Linux or OS X terminal, or use PuTTY to connect on windows.&lt;br /&gt;
Extensive information on how to do so can be found on [[Accessing shell servers over SSH]].&lt;br /&gt;
&lt;br /&gt;
====Start irssi in a screen====&lt;br /&gt;
*When on the shellserver, enter &amp;lt;code&amp;gt;screen -U&amp;lt;/code&amp;gt; to start a screen session, or &amp;lt;code&amp;gt;tmux&amp;lt;/code&amp;gt; to start a tmux session.&lt;br /&gt;
*Enter &amp;lt;code&amp;gt;irssi&amp;lt;/code&amp;gt; to start irssi&lt;br /&gt;
*Connect to the IRC server: &amp;lt;code&amp;gt;/server -ssl irc.ulyssis.org 6668&amp;lt;/code&amp;gt;&lt;br /&gt;
*Connect to the public channel: &amp;lt;code&amp;gt;/join #ulyssis&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Screen usage====&lt;br /&gt;
*To exit the screen: press Ctrl-A and press D ('detach') to return to the shellserver.&lt;br /&gt;
*To reconnect: enter &amp;lt;code&amp;gt;screen -r&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;screen -DR&amp;lt;/code&amp;gt; (the latter will create a new screen if it wasn't already made).&lt;br /&gt;
&lt;br /&gt;
====Tmux usage====&lt;br /&gt;
*To exit the tmux session: press Ctrl-B and press D ('detach') to return to the shellserver.&lt;br /&gt;
*To reconnect: enter &amp;lt;code&amp;gt;tmux attach&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Help, I can't reconnect to my session!====&lt;br /&gt;
*Check if you are on the right shell server and didn't make a typing error.&lt;br /&gt;
*If everything is correct, your screen may have been stopped by a crash or a reboot of our shellserver. You can check the [http://www.ulyssis.org/status status] section of our website for more information about possible downtimes.&lt;br /&gt;
*Make sure you use the right program (&amp;lt;code&amp;gt;screen&amp;lt;/code&amp;gt; if you started a screen session and &amp;lt;code&amp;gt;tmux&amp;lt;/code&amp;gt; if you started a tmux session)&lt;br /&gt;
&lt;br /&gt;
==Using ZNC==&lt;br /&gt;
Alternatively, if you don't like using terminal-based clients, or just want to run your client locally, you can connect with our [https://znc.ulyssis.org/ ZNC server]. However, to use it, you'll need a ULYSSIS account. ZNC connects to our IRC server in your place (fill in the details at the beginning of this article). You can then connect to ZNC with a client of your choice, and it will send you the history you've missed while you were offline.&lt;br /&gt;
&lt;br /&gt;
Log in to our ZNC server. In your settings, create a new network. Fill in the basic details (server name, nickname, set &amp;lt;code&amp;gt;BindHost&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;0.0.0.0&amp;lt;/code&amp;gt;). In the server field, fill in &amp;lt;code&amp;gt;irc.ulyssis.org +6668&amp;lt;/code&amp;gt;. Add &amp;lt;code&amp;gt;#ulyssis&amp;lt;/code&amp;gt; as a channel. You may want to increase the buffer count. Then save at the bottom of the page.&lt;br /&gt;
&lt;br /&gt;
In your IRC client, connect to the server &amp;lt;code&amp;gt;znc.ulyssis.org&amp;lt;/code&amp;gt; on port 6666 (with SSL) and set &amp;lt;code&amp;gt;username/network:password&amp;lt;/code&amp;gt; as password to the server. Replace &amp;lt;code&amp;gt;username&amp;lt;/code&amp;gt; with your ULYSSIS username, &amp;lt;code&amp;gt;network&amp;lt;/code&amp;gt; with the name of the network in your znc settings, and &amp;lt;code&amp;gt;password&amp;lt;/code&amp;gt; with your ULYSSIS password.&lt;br /&gt;
&lt;br /&gt;
==Using Bitlbee==&lt;br /&gt;
&lt;br /&gt;
With [https://www.bitlbee.org/main.php/news.r.html Bitlbee], you can connect to other services as if they were an IRC server. It is available at &amp;lt;code&amp;gt;irc.ulyssis.org&amp;lt;/code&amp;gt; on ports 7000 and 7001 (SSL). For documentation on how to use Bitlbee, we refer to the manual on its website. This service is only reachable from within the ULYSSIS and KU Leuven networks.&lt;br /&gt;
&lt;br /&gt;
[[Category:Shell]]&lt;br /&gt;
[[Category:ULYSSIS Public Services]]&lt;/div&gt;</summary>
		<author><name>Pcy</name></author>
	</entry>
	<entry>
		<id>https://docs.ulyssis.org/index.php?title=ULYSSIS_public_IRC&amp;diff=1113</id>
		<title>ULYSSIS public IRC</title>
		<link rel="alternate" type="text/html" href="https://docs.ulyssis.org/index.php?title=ULYSSIS_public_IRC&amp;diff=1113"/>
		<updated>2020-07-28T00:35:46Z</updated>

		<summary type="html">&lt;p&gt;Pcy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;ULYSSIS hosts its own IRC network. IRC stands for Internet Relay Chat, [https://en.wikipedia.org/wiki/Internet_Relay_Chat IRC on wikipedia]. It is a chat protocol that mainly focuses on group chat, but also allows for private chat.&lt;br /&gt;
&lt;br /&gt;
If you have an urgent question, IRC is often the quickest way to contact us. But also if you don't have a question and just want to hang out in our chat, feel free to join!&lt;br /&gt;
&lt;br /&gt;
==Web IRC client==&lt;br /&gt;
If you won't regularly use our IRC or if you just want to check it out, you can use our web IRC client. You can find it at [https://webirc.ulyssis.org/ webirc.ulyssis.org].&lt;br /&gt;
&lt;br /&gt;
==IRC network details==&lt;br /&gt;
&lt;br /&gt;
Below are specific instructions for some clients, but if you are already familiar with IRC, here are the details you need to connect to our server. We highly recommend using SSL.&lt;br /&gt;
&lt;br /&gt;
 Server: irc.ulyssis.org&lt;br /&gt;
 Port: 6668 (SSL)&lt;br /&gt;
 Channel: #ulyssis&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;code&amp;gt;irc.ulyssis.org&amp;lt;/code&amp;gt; is down, you can also try the other server in the same network, hosted at &amp;lt;code&amp;gt;irc2.ulyssis.org&amp;lt;/code&amp;gt;. Both are connected to each other and you can use them interchangeably. It is advised to add it as a fallback in your IRC client.&lt;br /&gt;
&lt;br /&gt;
==IRC clients==&lt;br /&gt;
To use IRC, you'll need an IRC client. We advise the terminal based [https://irssi.org/ irssi] or [https://weechat.org/ weechat] for Linux and [https://hexchat.github.io/ hexchat] or [https://www.mirc.com/ mIRC] for Windows, but there are a lot of other free options.&lt;br /&gt;
&lt;br /&gt;
You can only receive messages over IRC while you're connected. Therefore, we advise you to run irssi or weechat in either a screen or a tmux session. With a ULYSSIS account, you can run screen or tmux on our shellservers, as they keep running 24/7 you can use them to keep track of your conversations.&lt;br /&gt;
Screen and tmux are similar programs. Screen has been around for longer and is more tested, while tmux is more modern with new features and being easier to use for beginners.&lt;br /&gt;
&lt;br /&gt;
===Using irssi on our shell servers===&lt;br /&gt;
====Connect to the shellserver====&lt;br /&gt;
Use the ssh command in your Linux or OS X terminal, or use PuTTY to connect on windows.&lt;br /&gt;
Extensive information on how to do so can be found on [[Accessing shell servers over SSH]].&lt;br /&gt;
&lt;br /&gt;
====Start irssi in a screen====&lt;br /&gt;
*When on the shellserver, enter &amp;lt;code&amp;gt;screen -U&amp;lt;/code&amp;gt; to start a screen session, or &amp;lt;code&amp;gt;tmux&amp;lt;/code&amp;gt; to start a tmux session.&lt;br /&gt;
*Enter &amp;lt;code&amp;gt;irssi&amp;lt;/code&amp;gt; to start irssi&lt;br /&gt;
*Connect to the IRC server: &amp;lt;code&amp;gt;/server -ssl irc.ulyssis.org 6668&amp;lt;/code&amp;gt;&lt;br /&gt;
*Connect to the public channel: &amp;lt;code&amp;gt;/join #ulyssis&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Screen usage====&lt;br /&gt;
*To exit the screen: press Ctrl-A and press D ('detach') to return to the shellserver.&lt;br /&gt;
*To reconnect: enter &amp;lt;code&amp;gt;screen -r&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;screen -DR&amp;lt;/code&amp;gt; (the latter will create a new screen if it wasn't already made).&lt;br /&gt;
&lt;br /&gt;
====Tmux usage====&lt;br /&gt;
*To exit the tmux session: press Ctrl-B and press D ('detach') to return to the shellserver.&lt;br /&gt;
*To reconnect: enter &amp;lt;code&amp;gt;tmux attach&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Help, I can't reconnect to my session!====&lt;br /&gt;
*Check if you are on the right shell server and didn't make a typing error.&lt;br /&gt;
*If everything is correct, your screen may have been stopped by a crash or a reboot of our shellserver. You can check the [http://www.ulyssis.org/status status] section of our website for more information about possible downtimes.&lt;br /&gt;
*Make sure you use the right program (&amp;lt;code&amp;gt;screen&amp;lt;/code&amp;gt; if you started a screen session and &amp;lt;code&amp;gt;tmux&amp;lt;/code&amp;gt; if you started a tmux session)&lt;br /&gt;
&lt;br /&gt;
==Using ZNC==&lt;br /&gt;
Alternatively, if you don't like using terminal-based clients, or just want to run your client locally, you can connect with our [https://znc.ulyssis.org/ ZNC server]. However, to use it, you'll need a ULYSSIS account. ZNC connects to our IRC server in your place (fill in the details at the beginning of this article). You can then connect to ZNC with a client of your choice, and it will send you the history you've missed while you were offline.&lt;br /&gt;
&lt;br /&gt;
Log in to our ZNC server. In your settings, create a new network. Fill in the basic details (server name, nickname, set &amp;lt;code&amp;gt;BindHost&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;0.0.0.0&amp;lt;/code&amp;gt;). In the server field, fill in &amp;lt;code&amp;gt;irc.ulyssis.org +6668&amp;lt;/code&amp;gt;. Add &amp;lt;code&amp;gt;#ulyssis&amp;lt;/code&amp;gt; as a channel. You may want to increase the buffer count. Then save at the bottom of the page.&lt;br /&gt;
&lt;br /&gt;
In your IRC client, connect to the server &amp;lt;code&amp;gt;znc.ulyssis.org&amp;lt;/code&amp;gt; on port 6666 (with SSL) and set &amp;lt;code&amp;gt;username/network:password&amp;lt;/code&amp;gt; as password to the server. Replace &amp;lt;code&amp;gt;username&amp;lt;/code&amp;gt; with your ULYSSIS username, &amp;lt;code&amp;gt;network&amp;lt;/code&amp;gt; with the name of the network in your znc settings, and &amp;lt;code&amp;gt;password&amp;lt;/code&amp;gt; with your ULYSSIS password.&lt;br /&gt;
&lt;br /&gt;
==Using Bitlbee==&lt;br /&gt;
&lt;br /&gt;
With [https://www.bitlbee.org/main.php/news.r.html Bitlbee], you can connect to other services as if they were an IRC server. It is available at &amp;lt;code&amp;gt;irc.ulyssis.org&amp;lt;/code&amp;gt; on ports 7000 and 7001 (SSL). For documentation on how to use Bitlbee, we refer to the manual on its website.&lt;br /&gt;
&lt;br /&gt;
[[Category:Shell]]&lt;br /&gt;
[[Category:ULYSSIS Public Services]]&lt;/div&gt;</summary>
		<author><name>Pcy</name></author>
	</entry>
	<entry>
		<id>https://docs.ulyssis.org/index.php?title=Using_(Fast)CGI_for_non-PHP_websites&amp;diff=1014</id>
		<title>Using (Fast)CGI for non-PHP websites</title>
		<link rel="alternate" type="text/html" href="https://docs.ulyssis.org/index.php?title=Using_(Fast)CGI_for_non-PHP_websites&amp;diff=1014"/>
		<updated>2019-11-10T21:40:13Z</updated>

		<summary type="html">&lt;p&gt;Pcy: fix flask link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;You're not stuck with PHP if you want to make a dynamic website. You can use all sorts of frameworks and programming languages with ULYSSIS, as long as it has CGI or FastCGI support.&lt;br /&gt;
&lt;br /&gt;
If you want to use a certain programming language or framework, and you can't get it to work, don't hesitate to contact us at [mailto:ulyssis@ulyssis.org ulyssis@ulyssis.org]. We will of course not write any code for you, but we can give you some pointers or directions.&lt;br /&gt;
&lt;br /&gt;
==CGI==&lt;br /&gt;
&lt;br /&gt;
CGI is a simple way to create a dynamic website. We use Apache's [http://httpd.apache.org/docs/2.4/mod/mod_cgid.html mod_cgid] to provide support for CGI. Note, however, that CGI is inefficient and&lt;br /&gt;
in general we recommend you to use a framework together with FastCGI. There are many frameworks, ranging from very simple and lightweight, to more complex and feature rich.&lt;br /&gt;
&lt;br /&gt;
If, for example, you want Apache to interpret all files with the extension &amp;lt;tt&amp;gt;.cgi&amp;lt;/tt&amp;gt; as CGI scripts, use the following &amp;lt;tt&amp;gt;.htaccess&amp;lt;/tt&amp;gt; file (to be placed in your &amp;lt;tt&amp;gt;www&amp;lt;/tt&amp;gt; folder):&lt;br /&gt;
&amp;lt;pre&amp;gt;Options +ExecCGI&lt;br /&gt;
AddHandler cgi-script .cgi&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here's an example of a very simple Python CGI script (called &amp;lt;tt&amp;gt;hello.cgi&amp;lt;/tt&amp;gt;):&lt;br /&gt;
&amp;lt;pre&amp;gt;#!/usr/bin/env python&lt;br /&gt;
&lt;br /&gt;
print 'Content-Type: text/plain\n'&lt;br /&gt;
print 'Hello world!'&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CGI scripts need to be executable, otherwise they won't work:&lt;br /&gt;
&amp;lt;pre&amp;gt;chmod +x hello.cgi&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==FastCGI==&lt;br /&gt;
&lt;br /&gt;
We use Apache's [http://httpd.apache.org/mod_fcgid/mod/mod_fcgid.html mod_fcgid] to provide support for FastCGI.&lt;br /&gt;
&lt;br /&gt;
In order to use FastCGI, you will generally need a starter script specific to your framework and application. Just do a web search for &amp;quot;''framework'' mod_fcgid&amp;quot;, where you ''framework'' is the framework you're using, and you will find good instructions. There's a Django example below.&lt;br /&gt;
&lt;br /&gt;
You'll want to treat this starter script as a &amp;lt;tt&amp;gt;mod_fcgid&amp;lt;/tt&amp;gt; script, and usually, you'll want to redirect everything to this script, so you can use an &amp;lt;tt&amp;gt;.htaccess&amp;lt;/tt&amp;gt; file that looks like this:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;apache&amp;quot;&amp;gt;Options +ExecCGI&lt;br /&gt;
AddHandler fcgid-script .fcgi&lt;br /&gt;
RewriteEngine On&lt;br /&gt;
RewriteCond %{REQUEST_FILENAME} !-f&lt;br /&gt;
RewriteRule ^(.*)$ starter.fcgi/$1 [QSA,L]&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Replace ''starter.fcgi'' with the name of your starter script. Don't forget to make your starter script executable:&lt;br /&gt;
&amp;lt;pre&amp;gt;chmod +x starter.fcgi&amp;lt;/pre&amp;gt;&lt;br /&gt;
The starter script must be located in the same folder as the &amp;lt;tt&amp;gt;.htaccess&amp;lt;/tt&amp;gt; file.&lt;br /&gt;
&lt;br /&gt;
{{warning|Warning!|Do not place sensitive files inside the web accessible folder. Make sure they are located in a folder outside the document root, or they will be downloadable through the webserver.}}&lt;br /&gt;
It is adviced to only place the fcgi starter script, &amp;lt;tt&amp;gt;.htaccess&amp;lt;/tt&amp;gt; and static files (images, stylesheets) inside the document root.&lt;br /&gt;
&lt;br /&gt;
=== Startup time and persistency === &lt;br /&gt;
&lt;br /&gt;
It is important to keep in mind that our Apache webworkers will only run your start script when a request is made. As soon as that first request has been received, it will try and keep a few instances of your application around for future use. This of course affects how you restart your application after changes (see below), but also means that applications with a longer start up time (for example a language such as Python combined with a larger framework) will experience an initial slow request. This slow startup is obviously not a factor for faster languages such as Haskell, C++ or Go.&lt;br /&gt;
&lt;br /&gt;
Sadly, Apache is unable to have FastCGI processes persist beyond a reload or restart. This means in practice that every night around 6h25 when the logs are rotated, which requires Apache to be reloaded, all running fcgi processes will be gracefully terminated. The same thing happens when we make changes to the Apache configuration when a new website or user is added. &lt;br /&gt;
&lt;br /&gt;
For those who have a very high startup time and don't generate enough traffic to not experience issues with this behaviour, it's possible to use a [[Managing_Cron_jobs | cronjob]] to visit the website every night at 6h30 or 7h, or even hourly.&lt;br /&gt;
&lt;br /&gt;
===Restarting your application===&lt;br /&gt;
&lt;br /&gt;
If you've changed your application, you will need to restart it for these changes to take effect. However, because you're editing the application on a different server than were it is running, you do not have access to the running process. You'll have to create some sort of mechanism to restart the process.&lt;br /&gt;
&lt;br /&gt;
In the Django example below, the starter script has been written so that when it is changed, the application is automatically restarted within 1 second. The same mechanism can be applied to other Python sites. You can change the modification date without actually changing the contents of the starter script by using &amp;lt;tt&amp;gt;touch&amp;lt;/tt&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;touch starter.fcgi&amp;lt;/pre&amp;gt;&lt;br /&gt;
Replace ''starter.fcgi'' with the name of your starter script.&lt;br /&gt;
&lt;br /&gt;
===Example: Django===&lt;br /&gt;
&lt;br /&gt;
If you want to make a website using [https://www.djangoproject.com/ Django], we recommend that you use a [http://virtualenv.readthedocs.org/ virtualenv]. This tool is already preinstalled on our shell servers.&lt;br /&gt;
&lt;br /&gt;
You can use the following steps to get up and running with Django at ULYSSIS:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Accessing shell servers over SSH|Log in to a shell server]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Create a new virtualenv, you can create one in &amp;lt;tt&amp;gt;~/.venv&amp;lt;/tt&amp;gt;, for example:&lt;br /&gt;
&amp;lt;pre&amp;gt;virtualenv ~/.venv&amp;lt;/pre&amp;gt;&lt;br /&gt;
Or, for Python 3:&lt;br /&gt;
&amp;lt;pre&amp;gt;virtualenv ~/.venv --python=python3&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Activate this virtualenv:&lt;br /&gt;
&amp;lt;pre&amp;gt;. ~/.venv/bin/activate&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
Install Django inside of this virtualenv:&lt;br /&gt;
&amp;lt;pre&amp;gt;pip install django&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
Create a new Django project:&lt;br /&gt;
&amp;lt;pre&amp;gt;django-admin.py startproject mysite&amp;lt;/pre&amp;gt;&lt;br /&gt;
Replace ''mysite'' with your project's desired name.&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
Install flup for FastCGI:&lt;br /&gt;
&amp;lt;pre&amp;gt;pip install flup6&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
Put an &amp;lt;tt&amp;gt;.htaccess&amp;lt;/tt&amp;gt; file in your site's directory, e.g. the &amp;lt;tt&amp;gt;www&amp;lt;/tt&amp;gt; folder:&lt;br /&gt;
&amp;lt;pre&amp;gt;Options +ExecCGI&lt;br /&gt;
AddHandler fcgid-script .fcgi&lt;br /&gt;
RewriteEngine On&lt;br /&gt;
RewriteCond %{REQUEST_FILENAME} !-f&lt;br /&gt;
RewriteRule ^(.*)$ mysite.fcgi/$1 [QSA,L]&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
Create the starter script (replace ''user'' with org if you are an organization, and ''username'' with your ULYSSIS username):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;#!/home/user/username/.venv/bin/python&lt;br /&gt;
&lt;br /&gt;
import sys, os, os.path&lt;br /&gt;
from threading import Thread&lt;br /&gt;
&lt;br /&gt;
this_file = os.path.realpath(__file__)&lt;br /&gt;
&lt;br /&gt;
site_dir = '/home/user/username/mysite'&lt;br /&gt;
sys.path.insert(0, site_dir)&lt;br /&gt;
os.chdir(site_dir)&lt;br /&gt;
&lt;br /&gt;
os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings'&lt;br /&gt;
&lt;br /&gt;
def stat_thread():&lt;br /&gt;
    import time, os, signal&lt;br /&gt;
    start_mtime = os.stat(this_file).st_mtime&lt;br /&gt;
    while True:&lt;br /&gt;
        cur_mtime = os.stat(this_file).st_mtime&lt;br /&gt;
        if cur_mtime != start_mtime:&lt;br /&gt;
            os.kill(os.getpid(), signal.SIGTERM)&lt;br /&gt;
        time.sleep(1)&lt;br /&gt;
&lt;br /&gt;
Thread(target=stat_thread).start()&lt;br /&gt;
&lt;br /&gt;
from django.core.servers.basehttp import get_internal_wsgi_application&lt;br /&gt;
from flup.server.fcgi import WSGIServer&lt;br /&gt;
WSGIServer(get_internal_wsgi_application(), debug=False).run()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Call this script &amp;lt;tt&amp;gt;mysite.fcgi&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
Make the starter script executable:&lt;br /&gt;
&amp;lt;pre&amp;gt;chmod +x mysite.fcgi&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
Go to ''username''.ulyssis.be (or whatever URL you chose to use), and it should show you the default &amp;quot;Welcome to Django&amp;quot; page.&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This guide was based on, and you can find more information in the official Django documentation:&lt;br /&gt;
* [https://docs.djangoproject.com/en/stable/intro/tutorial01/ The Django tutorial]&lt;br /&gt;
* [https://flask.palletsprojects.com/en/1.1.x/deploying/fastcgi/ Flask documentation for FastCGI]&lt;br /&gt;
&lt;br /&gt;
[[Category:Webserver]]&lt;/div&gt;</summary>
		<author><name>Pcy</name></author>
	</entry>
	<entry>
		<id>https://docs.ulyssis.org/index.php?title=Setting_up_WordPress&amp;diff=1013</id>
		<title>Setting up WordPress</title>
		<link rel="alternate" type="text/html" href="https://docs.ulyssis.org/index.php?title=Setting_up_WordPress&amp;diff=1013"/>
		<updated>2019-11-10T21:29:12Z</updated>

		<summary type="html">&lt;p&gt;Pcy: layout van 'username'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==How to install WordPress for your account==&lt;br /&gt;
&lt;br /&gt;
First you need to download WordPress from their website, https://wordpress.org/download/. After you've&lt;br /&gt;
received a zip file, you have to extract it using your file manager (Windows: ''use right-click and select &amp;quot;extract all&amp;quot;''; OSX: ''double-click the zip, it automatically extracts''; Linux: ''right-click the file, and select &amp;quot;extract here&amp;quot;''), this gives you a directory named &amp;lt;code&amp;gt;wordpress&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Next, you have to move the '''contents''' of the &amp;lt;code&amp;gt;wordpress&amp;lt;/code&amp;gt; directory to your &amp;lt;code&amp;gt;www&amp;lt;/code&amp;gt; directory on our servers, which can be accessed via SFTP.&lt;br /&gt;
If you need further instructions, you can find detailed instructions on: [[Accessing your files]].&lt;br /&gt;
&lt;br /&gt;
Besides files, we also need a database to install WordPress on. If you haven't created a new database for the purpose of this installation, you can do this through UCC. Instruction on how to do this are available on [[Using MySQL]]. If you haven't created a database user yet, or don't know the password, you can also find more information there.&lt;br /&gt;
&lt;br /&gt;
Now we are ready to install WordPress, so we need to visit the web installer. If you're using a custom domain based on this guide: [[Adding domain names]], you can access the installer by visiting your domain. If you do not use such a domain, the installer can be found on &amp;lt;code&amp;gt;username.studentenweb.org&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;username.ulyssis.be&amp;lt;/code&amp;gt; (replace &amp;lt;code&amp;gt;username&amp;lt;/code&amp;gt; with your actual username).&lt;br /&gt;
This is where you have to set up your website. The easiest way to do this, is by following the wizard.&lt;br /&gt;
&lt;br /&gt;
The setup will ask you for your database configuration: &lt;br /&gt;
*'''Database Name/Databasenaam:''' the name of the MySQL database&lt;br /&gt;
*'''Username/Gebruikersnaam:''' your username&lt;br /&gt;
*'''Password/Wachtwoord:''' your MySQL database password&lt;br /&gt;
*'''Database Host/Hostnaam:''' &amp;lt;code&amp;gt;mysql.ulyssis.org&amp;lt;/code&amp;gt;&lt;br /&gt;
*'''Table Prefix:''' only change this if you have multiple installations of WordPress in your database&amp;lt;br&amp;gt;&lt;br /&gt;
So it will look something like this:&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:wordpress_screenshot.png|thumb|left|600px]]&lt;br /&gt;
In the next step you need to fill in your own preferences.&lt;br /&gt;
&lt;br /&gt;
Finally you will be prompted to log into your WordPress website. Now the installation is finished.&lt;br /&gt;
&lt;br /&gt;
To help you design your website, there are a few guides from WordPress that can help you:&lt;br /&gt;
*https://wordpress.org/support/article/first-steps-with-wordpress-b/&lt;br /&gt;
*https://wordpress.org/support/article/using-themes/#get-new-themes&lt;br /&gt;
*https://wordpress.org/support/article/managing-plugins/&lt;br /&gt;
&lt;br /&gt;
==Setting up multiple instances of WordPress==&lt;br /&gt;
&lt;br /&gt;
If you want to have multiple instances of a WordPress site, you need to create a new folder in &lt;br /&gt;
your &amp;lt;code&amp;gt;www&amp;lt;/code&amp;gt; directory on your shell account. Then you need a virtual host for this folder, for this you have to send us an email asking for this.&lt;br /&gt;
&lt;br /&gt;
After your new virtual host has been configured, you need to do the same steps that you would do for a regular WordPress installation, i.e. the steps in the section above.&lt;br /&gt;
&lt;br /&gt;
You can also use WordPress' [https://codex.wordpress.org/Create_A_Network multisite] option. &lt;br /&gt;
If you need more help with this, you can find it here: [https://wordpress.org/support/forum/multisite here].&lt;br /&gt;
&lt;br /&gt;
[[Category:CMSs]]&lt;/div&gt;</summary>
		<author><name>Pcy</name></author>
	</entry>
	<entry>
		<id>https://docs.ulyssis.org/index.php?title=Exporting_your_KU_Leuven_class_schedule_and_calendar&amp;diff=1012</id>
		<title>Exporting your KU Leuven class schedule and calendar</title>
		<link rel="alternate" type="text/html" href="https://docs.ulyssis.org/index.php?title=Exporting_your_KU_Leuven_class_schedule_and_calendar&amp;diff=1012"/>
		<updated>2019-11-10T21:26:34Z</updated>

		<summary type="html">&lt;p&gt;Pcy: zet vertaalde termen in cursief&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;While relatively unknown, it is possible to create an automatically updating iCal feed of your KULoket agenda without using external services.&lt;br /&gt;
&lt;br /&gt;
# Set up agenda sync on KU Loket&lt;br /&gt;
## Visit [http://kuloket.be/ KU Loket]&lt;br /&gt;
## Go to the '''Agenda''' tab [[File:KUL-Agenda-Step1.PNG|thumb|200px]]&lt;br /&gt;
## Click '''Agenda sync'''&lt;br /&gt;
## Click '''Configure agenda''' (''Agenda instellen'') [[File:KUL-Agenda-Step2.PNG|thumb|200px]]&lt;br /&gt;
## Change the switch '''Show schedule in my agenda''' (''Toon uurrooster in mijn agenda'') to '''On'''. [[File:KUL-Agenda-Step3.PNG|thumb|200px]] You will have to wait about 15 minutes before continuing to the next step.&lt;br /&gt;
# Visit https://owa.student.kuleuven.be and log in with your KU Leuven credentials.&lt;br /&gt;
# In the top menu bar, click '''Calendar''' (''Agenda'')&lt;br /&gt;
# On the top right (below the menu bar), click the '''Share''' (''Delen'') button. A side-panel appears.&lt;br /&gt;
# Enter a non-KU Leuven email address in the '''Share with''' (''Delen met'') textfield.  After filling the email address, press the enter key.&lt;br /&gt;
# Make sure '''Full details''' (''Volledige informatie'') is selected in the dropdown next to your email address&lt;br /&gt;
# Click the '''Send''' (''Verzenden'') button at the top of the side-panel.&lt;br /&gt;
# You will receive an email with two weblinks. The first link shows your calendar in your webbrowser, the second link is your iCal feed.&lt;br /&gt;
&lt;br /&gt;
Some applications will not accept a &amp;lt;code&amp;gt;webcal://&amp;lt;/code&amp;gt; URL.&lt;br /&gt;
If that is the case you can simply modify the URL to start with &amp;lt;code&amp;gt;https://&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Tutorials]]&lt;/div&gt;</summary>
		<author><name>Pcy</name></author>
	</entry>
	<entry>
		<id>https://docs.ulyssis.org/index.php?title=Using_Adminer&amp;diff=1011</id>
		<title>Using Adminer</title>
		<link rel="alternate" type="text/html" href="https://docs.ulyssis.org/index.php?title=Using_Adminer&amp;diff=1011"/>
		<updated>2019-11-10T21:25:03Z</updated>

		<summary type="html">&lt;p&gt;Pcy: fix typos&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;You can access both your MySQL and PostgreSQL databases using Adminer, though not both at the same time. This application can be found on https://adminer.ulyssis.org. To login you need to use your MySQL or PostgreSQL password, this password is different from your account password for security reasons as well as convenience. In case you've forgotten your passwords you can get it from your website's configuration file. This is usually called config.php, wp-config.php, settings.php or something similar. You can change your database passwords through our control panel [https://ucc.ulyssis.org/ UCC], but keep in mind to then also change the password in relevant configuration files, or your applications may stop working correctly. &lt;br /&gt;
&lt;br /&gt;
To use MySQL, please use the server &amp;lt;code&amp;gt;mysql.ulyssis.org&amp;lt;/code&amp;gt;. In case of PostgreSQL, please use &amp;lt;code&amp;gt;pgsql.ulyssis.org&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
== Basic Usage ==&lt;br /&gt;
&lt;br /&gt;
When logging in using MySQL, you will see an overview of all your databases. When using PostgreSQL you will see all databases that have been created by all of our users (this is a known problem with Adminer), though you won't be able to view them.&lt;br /&gt;
&lt;br /&gt;
You can then view databases and tables. For each table you can view the records, view and change the structure, add records, take backups, etc. Sadly no official documentation is available, though Adminer has a [https://sourceforge.net/p/adminer/discussion/ forum] where you can ask for help.&lt;br /&gt;
&lt;br /&gt;
== Making Backups ==&lt;br /&gt;
&lt;br /&gt;
{{notice|Keep in mind|If you are backing up and/or restoring a larger database, it's advised to use command line tools since they are more performant than webtools and don't have any timeouts that could interrupt your backup/restore. Please refer to [[Making Backups]] for more details.}}&lt;br /&gt;
Adminer has an export option which can be used to backup the structure and/or data of databases and tables. When no database or table has been selected, the export button in the sidebar allows to export all databases at the same time. When a specific database or table is selected, that database or table is exported. You can specify to save the file, in what format, and whether structures and data should be dropped, truncated or created. You can later restore backups by uploading the file through the form available through the import button in the sidebar. To make restoring easier, we suggest you backup individual databases or even individual tables and use the SQL format.&lt;br /&gt;
&lt;br /&gt;
[[Category:Databases]]&lt;/div&gt;</summary>
		<author><name>Pcy</name></author>
	</entry>
	<entry>
		<id>https://docs.ulyssis.org/index.php?title=Using_PHPPgAdmin&amp;diff=1010</id>
		<title>Using PHPPgAdmin</title>
		<link rel="alternate" type="text/html" href="https://docs.ulyssis.org/index.php?title=Using_PHPPgAdmin&amp;diff=1010"/>
		<updated>2019-11-10T21:24:07Z</updated>

		<summary type="html">&lt;p&gt;Pcy: fix typos&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;You can access your PostgreSQL databases using PHPPgAdmin. This application can be found on https://phppgadmin.ulyssis.org. To login you need to use your PostgreSQL password, this password is different from your account password for security reasons as well as convenience. In case you've forgotten your PostgreSQL password you can get it from your website's configuration file. This is usually called config.php, wp-config.php, settings.php or something similar. You can change your database passwords through our control panel [https://ucc.ulyssis.org/ UCC], but keep in mind to then also change the password in relevant configuration files, or your applications may stop working correctly.&lt;br /&gt;
&lt;br /&gt;
== Basic Usage ==&lt;br /&gt;
&lt;br /&gt;
You can login by clicking on the only server in the left sidebar ''PostgreSQL voor gebruikers, kringen en organisaties''. Once you've logged in, you will see an overview of all your databases. You can then view databases, schemas and tables by clicking on them or navigating through the sidebar. For each table you can view the records, view and change the structure, add records, take backups, etc. Official documentation of all functionality is sadly lacking, but you can still refer to [http://phppgadmin.sourceforge.net/doku.php?id=faq_docs the official documentation]&lt;br /&gt;
&lt;br /&gt;
== Making Backups ==&lt;br /&gt;
&lt;br /&gt;
{{notice|Keep in mind|If you are backing up and/or restoring a larger database, it's advised to use command line tools since they are more performant than webtools and don't have any timeouts that could interrupt your backup/restore. Please refer to [[Making Backups]] for more details.}}&lt;br /&gt;
PHPPgAdmin has an export option which can be used to backup the structure and/or data of databases, schemas and tables, as well as more advanced features such as sequences and functions. When no database, schema or table has been selected, the export tab in the top menu allows to export all databases at the same time. When a specific database or table is selected, that database or table is exported. You can decide whether you wish to export the structure, the data or both, as well as the format and if DROPs need to be included. You can later restore backups by uploading the file through the form on the SQL page (top right corner). To make restoring easier, we suggest you backup individual databases or even individual tables and use the SQL format instead of COPY.&lt;br /&gt;
&lt;br /&gt;
[[Category:Databases]]&lt;/div&gt;</summary>
		<author><name>Pcy</name></author>
	</entry>
	<entry>
		<id>https://docs.ulyssis.org/index.php?title=Using_PHPMyAdmin&amp;diff=1009</id>
		<title>Using PHPMyAdmin</title>
		<link rel="alternate" type="text/html" href="https://docs.ulyssis.org/index.php?title=Using_PHPMyAdmin&amp;diff=1009"/>
		<updated>2019-11-10T21:22:30Z</updated>

		<summary type="html">&lt;p&gt;Pcy: fix typos&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;You can access your MySQL databases using PHPMyAdmin. This application can be found on https://phpmyadmin.ulyssis.org. To login you need to use your MySQL password, this password is different from your account password for security reasons as well as convenience. In case you've forgotten your MySQL password, you can get it from your website's configuration file. This is usually called config.php, wp-config.php, settings.php or something similar. You can change your database passwords through our control panel [https://ucc.ulyssis.org/ UCC], but keep in mind to then also change the password in relevant configuration files, or your applications may stop working correctly.&lt;br /&gt;
&lt;br /&gt;
== Basic Usage ==&lt;br /&gt;
&lt;br /&gt;
Once you've logged in, you will see your username on the left. You can click the plus sign right next to your name to reveal all your databases. You can then view databases and tables. For each table you can view the records, view and change the structure, add records, take backups, etc. Detailed documentation is available on the PHPMyAdmin [https://www.phpmyadmin.net/docs/ official documentation website]&lt;br /&gt;
&lt;br /&gt;
== Making Backups ==&lt;br /&gt;
&lt;br /&gt;
{{notice|Keep in mind|If you are backing up and/or restoring a larger database, it's advised to use command line tools since they are more performant than webtools and don't have any timeouts that could interrupt your backup/restore. Please refer to [[Making Backups]] for more details.}}&lt;br /&gt;
PHPMyAdmin has an export option which can be used to backup the structure and/or data of databases and tables. When no database or table has been selected, the export tab in the top menu allows to export all databases at the same time. When a specific database or table is selected, that database or table is exported. You can either accept the default settings, or ask for more settings, to specificy whether any checks, DROPs or time settings are required, as well as to specify if you wish to export the structure, the data or both. You can restore backups at a later point in time by uploading the file through the form on the import tab. To make restoring easier, we suggest you backup individual databases or even individual tables.&lt;br /&gt;
&lt;br /&gt;
[[Category:Databases]]&lt;/div&gt;</summary>
		<author><name>Pcy</name></author>
	</entry>
	<entry>
		<id>https://docs.ulyssis.org/index.php?title=Making_Backups&amp;diff=1008</id>
		<title>Making Backups</title>
		<link rel="alternate" type="text/html" href="https://docs.ulyssis.org/index.php?title=Making_Backups&amp;diff=1008"/>
		<updated>2019-11-10T21:19:47Z</updated>

		<summary type="html">&lt;p&gt;Pcy: fix typos&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;ULYSSIS takes backups of all files, databases, settings and repositories 1-4 times a week. These backups can be restored in case of severe server failure or in case of an emergency (if for example a user by mistake deletes all of their site). It is, however, more convenient that users take their own backups when they do experiments on their account.&lt;br /&gt;
&lt;br /&gt;
== A backup of your files ==&lt;br /&gt;
You can use the methods described in [[Accessing your files]] to download a copy of all of your files or specific folders you will be working on. If something goes wrong, you can easily restore files to a previous state by re-uploading those you have downloaded and saved.&lt;br /&gt;
&lt;br /&gt;
== A backup of your databases ==&lt;br /&gt;
To take a backup of your database you simply use the export function of PHPMyAdmin, PHPPgAdmin and/or Adminer as described on [[Using PHPMyAdmin]], [[Using PHPPgAdmin]] and [[Using Adminer]].&lt;br /&gt;
&lt;br /&gt;
If you are backing up and/or restoring a larger database, it's advisable to use command line tools since they are more performant than the web-based tools and don't have any timeouts that could interrupt your backup/restore. &lt;br /&gt;
&lt;br /&gt;
=== MySQL command line ===&lt;br /&gt;
&lt;br /&gt;
To take a backup, execute the following command on one of our shellservers (with the right database name filled in):&lt;br /&gt;
&lt;br /&gt;
 mysqldump -h mysql.ulyssis.org -p username_database &amp;gt; backup.sql&lt;br /&gt;
&lt;br /&gt;
This will prompt you for your database password (please refer to [[Using MySQL]] if you don't know your password) and then dump the entire database to backup.sql file as SQL. &lt;br /&gt;
&lt;br /&gt;
To restore your backup you can use the mysql command on one of our shellservers (with the right database name filled in), whatever SQL file you specify will be executed:&lt;br /&gt;
&lt;br /&gt;
 mysql -h mysql.ulyssis.org -p username_database &amp;lt; backup.sql&lt;br /&gt;
&lt;br /&gt;
Please keep in mind that by default mysqldump includes statements in the SQL file that will delete all tables that will be restored.&lt;br /&gt;
&lt;br /&gt;
If you wish to have more control over different settings when taking or restoring please, you can refer to the respective man pages of mysqldump and mysql using &amp;lt;code&amp;gt;man mysqldump&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;man mysql&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== PostgreSQL command line ===&lt;br /&gt;
To take a backup, execute the following command on one of our shellservers (with the right database name filled in):&lt;br /&gt;
&lt;br /&gt;
 pg_dump -h pgsql.ulyssis.org -W --clean username_database &amp;gt; backup.sql&lt;br /&gt;
&lt;br /&gt;
This will prompt you for your database password (please refer to [[Using PostgreSQL]] if you don't know your password) and then dump the entire database to backup.sql file as SQL with COPY statements. If you prefer INSERT instead of COPY statements, you can add &amp;lt;code&amp;gt;--inserts&amp;lt;/code&amp;gt; to your command. &lt;br /&gt;
&lt;br /&gt;
To restore your backup you can use the pg_restore command on one of our shellservers (with the right database name filled in), whatever SQL file you specify will be executed:&lt;br /&gt;
&lt;br /&gt;
 psql -h pgsql.ulyssis.org -W username_database &amp;lt; backup.sql&lt;br /&gt;
&lt;br /&gt;
Please keep in mind that because we specified &amp;lt;code&amp;gt;--clean&amp;lt;/code&amp;gt; earlier, our SQL file includes statements that will delete all tables, sequences, functions and schemas that will be restored.&lt;br /&gt;
&lt;br /&gt;
If you wish to have more control over different settings when taking or restoring please, you can refer to the respective man pages of pg_dump and psql using &amp;lt;code&amp;gt;man pg_dump&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;man psql&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Files]]&lt;br /&gt;
[[Category:Databases]]&lt;/div&gt;</summary>
		<author><name>Pcy</name></author>
	</entry>
</feed>