<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://feministwiki.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=SocJusWiz</id>
	<title>FeministWiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://feministwiki.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=SocJusWiz"/>
	<link rel="alternate" type="text/html" href="https://feministwiki.org/wiki/Special:Contributions/SocJusWiz"/>
	<updated>2026-04-17T23:27:13Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://feministwiki.org/w/index.php?title=FeministWiki:Todo&amp;diff=157</id>
		<title>FeministWiki:Todo</title>
		<link rel="alternate" type="text/html" href="https://feministwiki.org/w/index.php?title=FeministWiki:Todo&amp;diff=157"/>
		<updated>2019-02-18T16:47:42Z</updated>

		<summary type="html">&lt;p&gt;SocJusWiz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Regular SQL backups to ensure data integrity when restoring a STRATO backup&lt;br /&gt;
* Implement single sign-on&lt;br /&gt;
* Implement password recovery&lt;br /&gt;
* Implement file upload to XMPP&lt;br /&gt;
* Look into issue with saving drafts&lt;br /&gt;
* Add blogs (WP?)&lt;br /&gt;
* Add mailing lists&lt;br /&gt;
* Create newsletter&lt;br /&gt;
* Add e-mail notifications to forum &amp;amp; co.&lt;br /&gt;
* Add Mastodon&lt;br /&gt;
* Add calendar&lt;br /&gt;
* Add Diaspora?&lt;br /&gt;
* Import Wikipedia features (infoboxes, citations)&lt;/div&gt;</summary>
		<author><name>SocJusWiz</name></author>
	</entry>
	<entry>
		<id>https://feministwiki.org/w/index.php?title=FeministWiki:Todo&amp;diff=142</id>
		<title>FeministWiki:Todo</title>
		<link rel="alternate" type="text/html" href="https://feministwiki.org/w/index.php?title=FeministWiki:Todo&amp;diff=142"/>
		<updated>2019-01-26T18:34:21Z</updated>

		<summary type="html">&lt;p&gt;SocJusWiz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Implement single sign-on&lt;br /&gt;
* Implement password recovery&lt;br /&gt;
* Implement file upload to XMPP&lt;br /&gt;
* Look into issue with saving drafts&lt;br /&gt;
* Add blogs (WP?)&lt;br /&gt;
* Add mailing lists&lt;br /&gt;
* Create newsletter&lt;br /&gt;
* Add e-mail notifications to forum &amp;amp; co.&lt;br /&gt;
* Add Mastodon&lt;br /&gt;
* Add calendar&lt;br /&gt;
* Add Diaspora?&lt;br /&gt;
* Import Wikipedia features (infoboxes, citations)&lt;/div&gt;</summary>
		<author><name>SocJusWiz</name></author>
	</entry>
	<entry>
		<id>https://feministwiki.org/w/index.php?title=Transwomen_in_women%27s_sports&amp;diff=135</id>
		<title>Transwomen in women&#039;s sports</title>
		<link rel="alternate" type="text/html" href="https://feministwiki.org/w/index.php?title=Transwomen_in_women%27s_sports&amp;diff=135"/>
		<updated>2018-10-20T14:54:58Z</updated>

		<summary type="html">&lt;p&gt;SocJusWiz: /* Michelle Dumaresq */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Since the [[Trans activism|trans activist]] notion of &amp;quot;trans women are women&amp;quot; is meant literally, it follows that transwomen would be allowed to partake in women&#039;s sports. When a sports organization adheres to this notion, it poses a problem to women&#039;s sports, since the various physiological differences between the sexes allow peak-performing male athletes to significantly outperform peak-performing female athletes in most disciplines. The extent to which [[hormone replacement therapy]] (HRT) decreases the advantages of being male is yet unstudied, however it is clear that many of the changes the male body undergoes during puberty are not reversed by HRT, such as overall body size, skeletal structure, or the size of the lungs and heart.&lt;br /&gt;
&lt;br /&gt;
== Physiological differences ==&lt;br /&gt;
&lt;br /&gt;
Significant physiological differences between the human sexes that might affect athletic performance include but are not limited to:&lt;br /&gt;
&lt;br /&gt;
* Males weight about 15% more on average&amp;lt;ref&amp;gt;https://www.cdc.gov/nchs/data/ad/ad347.pdf&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Males are about 15 cm (6 in) taller on average&amp;lt;ref&amp;gt;https://www.cdc.gov/nchs/data/ad/ad347.pdf&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Males have denser and therefore more durable bones on average&amp;lt;ref&amp;gt;https://www.ncbi.nlm.nih.gov/pmc/articles/PMC2100202&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Males have stronger tendons and ligaments on average&amp;lt;ref&amp;gt;https://www.ncbi.nlm.nih.gov/pmc/articles/PMC2100202&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Males on avreage have greater total muscle mass&amp;lt;ref&amp;gt;http://jap.physiology.org/content/89/1/81&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Males on average have a greater ratio of muscle mass to total body mass&amp;lt;ref&amp;gt;http://jap.physiology.org/content/89/1/81&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Males have about 56% greater lung volume relative to body mass&amp;lt;ref&amp;gt;Glucksman A (1981). Sexual Dimorphism in Human and Mammalian Biology and Pathology. Academic Press. pp. 66–75.&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Males have larger hearts, with 10% higher red blood cell count and higher haemoglobin, meaning greater oxygen carrying capacity, although the difference is less pronounced among athletes&amp;lt;ref&amp;gt;Glucksman A (1981). Sexual Dimorphism in Human and Mammalian Biology and Pathology. Academic Press. pp. 66–75.&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Males have higher circulating &amp;quot;clotting factors&amp;quot; which allow for faster healing of wounds and higher peripheral pain tolerance&amp;lt;ref&amp;gt;Glucksman A (1981). Sexual Dimorphism in Human and Mammalian Biology and Pathology. Academic Press. pp. 66–75.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The differences in strength can be very significant. For instance, gross measures of body strength suggest that women are approximately only 50% to 60% as strong as men in the upper body, and 60% to 70% as strong in the lower body.&amp;lt;ref&amp;gt;https://www.ncbi.nlm.nih.gov/pubmed/8477683&amp;lt;/ref&amp;gt; A study of hand-grip strength found that even elite female athletes can be surpassed by a man with no athletic training.&amp;lt;ref&amp;gt;https://www.ncbi.nlm.nih.gov/pubmed/17186303&amp;lt;/ref&amp;gt; Another study of sports performance in various disciplines found that males tend to perform 5.5% to 36.8% better, depending on the discipline.&amp;lt;ref&amp;gt;https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3761733/&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notable transwomen in women&#039;s sports ==&lt;br /&gt;
&lt;br /&gt;
=== Fallon Fox ===&lt;br /&gt;
&lt;br /&gt;
Male transgender mixed martial arts (MMA) fighter [[Fallon Fox]] has brutalized a female opponent, Tamikka Brents, causing her to suffer a concussion, an orbital bone fracture, and seven staples to the head, in the first round. After her loss, Brents took to social media to convey her thoughts on the experience of fighting Fox: &amp;quot;I&#039;ve fought a lot of women and have never felt the strength that I felt in a fight as I did that night. I can&#039;t answer whether it&#039;s because she was born a man or not because I&#039;m not a doctor. I can only say, I&#039;ve never felt so overpowered ever in my life and I am an abnormally strong female in my own right,&amp;quot; she stated. &amp;quot;Her grip was different, I could usually move around in the clinch against other females but couldn&#039;t move at all in Fox&#039;s clinch...&amp;quot;&amp;lt;ref&amp;gt;http://www.cagepotato.com/after-being-tkod-by-fallon-fox-tamikka-brents-says-transgender-fighters-in-mma-just-isnt-fair/&amp;lt;/ref&amp;gt; Fox has won 5 out of 6 MMA fights in total.&lt;br /&gt;
&lt;br /&gt;
=== Rachel McKinnon ===&lt;br /&gt;
&lt;br /&gt;
Male transgender cyclist [[Rachel McKinnon]] won the women’s 35-44 sprint during the UCI Masters Track Cycling World Championships in Los Angeles, in October 2018.&amp;lt;ref&amp;gt;https://www.cyclingweekly.com/news/latest-news/rachel-mckinnon-becomes-first-transgender-woman-win-track-world-title-397473&amp;lt;/ref&amp;gt; Third place finisher Jennifer Wagner commented that this was unfair, and later commented on Twitter that she would work on getting the rules changed, which Rachel McKinnon characterized as transphobic.&lt;br /&gt;
&lt;br /&gt;
=== Terry Miller and Andraya Yearwood ===&lt;br /&gt;
&lt;br /&gt;
Two male transgender high school athletes, [[Terry Miller]] and [[Andraya Yearwood]], won first and second place in the Connecticut state championship 100-meter dash in 2018. Miller also won first place in the 200-meter dash.&amp;lt;ref&amp;gt;https://www.wkbn.com/news/national-world/transgender-track-stars-win-state-championship-ignites-debate/1238813951&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Laurel Hubbard ===&lt;br /&gt;
&lt;br /&gt;
Male transgender New Zealand weightlifter [[Laurel Hubbard]] competed at the heaviest 90 kg+ category at the 2017 Australian International &amp;amp; Australian Open in Melbourne, winning the gold medal.&amp;lt;ref&amp;gt;http://www.heraldsun.com.au/sport/more-sports/laurel-hubbard-wins-female-90kg-division-at-weightliftings-australian-international/news-story/cd4a5fa012eb9a5ceb0281faceea5c7a&amp;lt;/ref&amp;gt; Hubbard qualified for the 2018 Commonwealth Games, but an elbow injury during the competition forced Hubbard&#039;s withdrawal from the event, while however leading the field.&amp;lt;ref&amp;gt;https://www.theguardian.com/sport/2018/apr/09/transgender-weightlifter-laurel-hubbards-eligibility-under-scrutiny&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Michelle Dumaresq ===&lt;br /&gt;
&lt;br /&gt;
Canadian professional downhill mountain-bike competitor [[Michelle Dumaresq]], who is a [[Sex reassignment surgery|post-operative]] male-born transsexual, won the 2002 Canada Cup series, which qualified Dumaresq for the Canadian National team. In September 2002, Dumaresq co-represented Canada at the World Mountain Bike Championships. However, due to technical issues with the bike, Dumaresq only managed a 24th-place finish in the event. In 2003, Dumaresq won the 2003 Canadian National Championships and again represented Canada in the 2003 World Championships. Dumaresq repeated a Nationals win in 2004 and finished 17th at the 2004 World Mountain Bike Championships held in Les Gets, France.&lt;br /&gt;
&lt;br /&gt;
At the 2006 Canadian Nationals, a protest from one of the competitors during the podium ceremonies brought attention to Dumaresq&#039;s participation in female sports. The boyfriend of second-place finisher Danika Schroeter jumped up onto the podium and helped Schroeter put on a T-shirt reading &#039;100% Pure Woman Champ&#039;. The Canadian Cycling Association suspended Schroeter for her actions. However, the CCA announced that Schroeter&#039;s time off the race course would be served during the off-season when it would have no impact on her.&lt;br /&gt;
&lt;br /&gt;
=== Hannah Mouncey ===&lt;br /&gt;
&lt;br /&gt;
On 27 May 2018, male transgender handball player [[Hannah Mouncey]] scored three goals for Melbourne Handball Club in their win over University of Queensland Handball Club for the 2018 Oceanian Open Club Championship.&amp;lt;ref&amp;gt;http://handballvic.org.au/event/5628/&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>SocJusWiz</name></author>
	</entry>
	<entry>
		<id>https://feministwiki.org/w/index.php?title=Transwomen_in_women%27s_sports&amp;diff=134</id>
		<title>Transwomen in women&#039;s sports</title>
		<link rel="alternate" type="text/html" href="https://feministwiki.org/w/index.php?title=Transwomen_in_women%27s_sports&amp;diff=134"/>
		<updated>2018-10-20T14:54:38Z</updated>

		<summary type="html">&lt;p&gt;SocJusWiz: /* Notable transwomen in women&amp;#039;s sports */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Since the [[Trans activism|trans activist]] notion of &amp;quot;trans women are women&amp;quot; is meant literally, it follows that transwomen would be allowed to partake in women&#039;s sports. When a sports organization adheres to this notion, it poses a problem to women&#039;s sports, since the various physiological differences between the sexes allow peak-performing male athletes to significantly outperform peak-performing female athletes in most disciplines. The extent to which [[hormone replacement therapy]] (HRT) decreases the advantages of being male is yet unstudied, however it is clear that many of the changes the male body undergoes during puberty are not reversed by HRT, such as overall body size, skeletal structure, or the size of the lungs and heart.&lt;br /&gt;
&lt;br /&gt;
== Physiological differences ==&lt;br /&gt;
&lt;br /&gt;
Significant physiological differences between the human sexes that might affect athletic performance include but are not limited to:&lt;br /&gt;
&lt;br /&gt;
* Males weight about 15% more on average&amp;lt;ref&amp;gt;https://www.cdc.gov/nchs/data/ad/ad347.pdf&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Males are about 15 cm (6 in) taller on average&amp;lt;ref&amp;gt;https://www.cdc.gov/nchs/data/ad/ad347.pdf&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Males have denser and therefore more durable bones on average&amp;lt;ref&amp;gt;https://www.ncbi.nlm.nih.gov/pmc/articles/PMC2100202&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Males have stronger tendons and ligaments on average&amp;lt;ref&amp;gt;https://www.ncbi.nlm.nih.gov/pmc/articles/PMC2100202&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Males on avreage have greater total muscle mass&amp;lt;ref&amp;gt;http://jap.physiology.org/content/89/1/81&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Males on average have a greater ratio of muscle mass to total body mass&amp;lt;ref&amp;gt;http://jap.physiology.org/content/89/1/81&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Males have about 56% greater lung volume relative to body mass&amp;lt;ref&amp;gt;Glucksman A (1981). Sexual Dimorphism in Human and Mammalian Biology and Pathology. Academic Press. pp. 66–75.&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Males have larger hearts, with 10% higher red blood cell count and higher haemoglobin, meaning greater oxygen carrying capacity, although the difference is less pronounced among athletes&amp;lt;ref&amp;gt;Glucksman A (1981). Sexual Dimorphism in Human and Mammalian Biology and Pathology. Academic Press. pp. 66–75.&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Males have higher circulating &amp;quot;clotting factors&amp;quot; which allow for faster healing of wounds and higher peripheral pain tolerance&amp;lt;ref&amp;gt;Glucksman A (1981). Sexual Dimorphism in Human and Mammalian Biology and Pathology. Academic Press. pp. 66–75.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The differences in strength can be very significant. For instance, gross measures of body strength suggest that women are approximately only 50% to 60% as strong as men in the upper body, and 60% to 70% as strong in the lower body.&amp;lt;ref&amp;gt;https://www.ncbi.nlm.nih.gov/pubmed/8477683&amp;lt;/ref&amp;gt; A study of hand-grip strength found that even elite female athletes can be surpassed by a man with no athletic training.&amp;lt;ref&amp;gt;https://www.ncbi.nlm.nih.gov/pubmed/17186303&amp;lt;/ref&amp;gt; Another study of sports performance in various disciplines found that males tend to perform 5.5% to 36.8% better, depending on the discipline.&amp;lt;ref&amp;gt;https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3761733/&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notable transwomen in women&#039;s sports ==&lt;br /&gt;
&lt;br /&gt;
=== Fallon Fox ===&lt;br /&gt;
&lt;br /&gt;
Male transgender mixed martial arts (MMA) fighter [[Fallon Fox]] has brutalized a female opponent, Tamikka Brents, causing her to suffer a concussion, an orbital bone fracture, and seven staples to the head, in the first round. After her loss, Brents took to social media to convey her thoughts on the experience of fighting Fox: &amp;quot;I&#039;ve fought a lot of women and have never felt the strength that I felt in a fight as I did that night. I can&#039;t answer whether it&#039;s because she was born a man or not because I&#039;m not a doctor. I can only say, I&#039;ve never felt so overpowered ever in my life and I am an abnormally strong female in my own right,&amp;quot; she stated. &amp;quot;Her grip was different, I could usually move around in the clinch against other females but couldn&#039;t move at all in Fox&#039;s clinch...&amp;quot;&amp;lt;ref&amp;gt;http://www.cagepotato.com/after-being-tkod-by-fallon-fox-tamikka-brents-says-transgender-fighters-in-mma-just-isnt-fair/&amp;lt;/ref&amp;gt; Fox has won 5 out of 6 MMA fights in total.&lt;br /&gt;
&lt;br /&gt;
=== Rachel McKinnon ===&lt;br /&gt;
&lt;br /&gt;
Male transgender cyclist [[Rachel McKinnon]] won the women’s 35-44 sprint during the UCI Masters Track Cycling World Championships in Los Angeles, in October 2018.&amp;lt;ref&amp;gt;https://www.cyclingweekly.com/news/latest-news/rachel-mckinnon-becomes-first-transgender-woman-win-track-world-title-397473&amp;lt;/ref&amp;gt; Third place finisher Jennifer Wagner commented that this was unfair, and later commented on Twitter that she would work on getting the rules changed, which Rachel McKinnon characterized as transphobic.&lt;br /&gt;
&lt;br /&gt;
=== Terry Miller and Andraya Yearwood ===&lt;br /&gt;
&lt;br /&gt;
Two male transgender high school athletes, [[Terry Miller]] and [[Andraya Yearwood]], won first and second place in the Connecticut state championship 100-meter dash in 2018. Miller also won first place in the 200-meter dash.&amp;lt;ref&amp;gt;https://www.wkbn.com/news/national-world/transgender-track-stars-win-state-championship-ignites-debate/1238813951&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Laurel Hubbard ===&lt;br /&gt;
&lt;br /&gt;
Male transgender New Zealand weightlifter [[Laurel Hubbard]] competed at the heaviest 90 kg+ category at the 2017 Australian International &amp;amp; Australian Open in Melbourne, winning the gold medal.&amp;lt;ref&amp;gt;http://www.heraldsun.com.au/sport/more-sports/laurel-hubbard-wins-female-90kg-division-at-weightliftings-australian-international/news-story/cd4a5fa012eb9a5ceb0281faceea5c7a&amp;lt;/ref&amp;gt; Hubbard qualified for the 2018 Commonwealth Games, but an elbow injury during the competition forced Hubbard&#039;s withdrawal from the event, while however leading the field.&amp;lt;ref&amp;gt;https://www.theguardian.com/sport/2018/apr/09/transgender-weightlifter-laurel-hubbards-eligibility-under-scrutiny&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Michelle Dumaresq ===&lt;br /&gt;
&lt;br /&gt;
Canadian professional downhill mountain-bike competitor [[Michelle Dumaresq]], who is a [[Sexual reassignment surgery|post-operative]] male-born transsexual, won the 2002 Canada Cup series, which qualified Dumaresq for the Canadian National team. In September 2002, Dumaresq co-represented Canada at the World Mountain Bike Championships. However, due to technical issues with the bike, Dumaresq only managed a 24th-place finish in the event. In 2003, Dumaresq won the 2003 Canadian National Championships and again represented Canada in the 2003 World Championships. Dumaresq repeated a Nationals win in 2004 and finished 17th at the 2004 World Mountain Bike Championships held in Les Gets, France.&lt;br /&gt;
&lt;br /&gt;
At the 2006 Canadian Nationals, a protest from one of the competitors during the podium ceremonies brought attention to Dumaresq&#039;s participation in female sports. The boyfriend of second-place finisher Danika Schroeter jumped up onto the podium and helped Schroeter put on a T-shirt reading &#039;100% Pure Woman Champ&#039;. The Canadian Cycling Association suspended Schroeter for her actions. However, the CCA announced that Schroeter&#039;s time off the race course would be served during the off-season when it would have no impact on her.&lt;br /&gt;
&lt;br /&gt;
=== Hannah Mouncey ===&lt;br /&gt;
&lt;br /&gt;
On 27 May 2018, male transgender handball player [[Hannah Mouncey]] scored three goals for Melbourne Handball Club in their win over University of Queensland Handball Club for the 2018 Oceanian Open Club Championship.&amp;lt;ref&amp;gt;http://handballvic.org.au/event/5628/&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>SocJusWiz</name></author>
	</entry>
	<entry>
		<id>https://feministwiki.org/w/index.php?title=Transwomen_in_women%27s_sports&amp;diff=133</id>
		<title>Transwomen in women&#039;s sports</title>
		<link rel="alternate" type="text/html" href="https://feministwiki.org/w/index.php?title=Transwomen_in_women%27s_sports&amp;diff=133"/>
		<updated>2018-10-20T14:53:15Z</updated>

		<summary type="html">&lt;p&gt;SocJusWiz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Since the [[Trans activism|trans activist]] notion of &amp;quot;trans women are women&amp;quot; is meant literally, it follows that transwomen would be allowed to partake in women&#039;s sports. When a sports organization adheres to this notion, it poses a problem to women&#039;s sports, since the various physiological differences between the sexes allow peak-performing male athletes to significantly outperform peak-performing female athletes in most disciplines. The extent to which [[hormone replacement therapy]] (HRT) decreases the advantages of being male is yet unstudied, however it is clear that many of the changes the male body undergoes during puberty are not reversed by HRT, such as overall body size, skeletal structure, or the size of the lungs and heart.&lt;br /&gt;
&lt;br /&gt;
== Physiological differences ==&lt;br /&gt;
&lt;br /&gt;
Significant physiological differences between the human sexes that might affect athletic performance include but are not limited to:&lt;br /&gt;
&lt;br /&gt;
* Males weight about 15% more on average&amp;lt;ref&amp;gt;https://www.cdc.gov/nchs/data/ad/ad347.pdf&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Males are about 15 cm (6 in) taller on average&amp;lt;ref&amp;gt;https://www.cdc.gov/nchs/data/ad/ad347.pdf&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Males have denser and therefore more durable bones on average&amp;lt;ref&amp;gt;https://www.ncbi.nlm.nih.gov/pmc/articles/PMC2100202&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Males have stronger tendons and ligaments on average&amp;lt;ref&amp;gt;https://www.ncbi.nlm.nih.gov/pmc/articles/PMC2100202&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Males on avreage have greater total muscle mass&amp;lt;ref&amp;gt;http://jap.physiology.org/content/89/1/81&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Males on average have a greater ratio of muscle mass to total body mass&amp;lt;ref&amp;gt;http://jap.physiology.org/content/89/1/81&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Males have about 56% greater lung volume relative to body mass&amp;lt;ref&amp;gt;Glucksman A (1981). Sexual Dimorphism in Human and Mammalian Biology and Pathology. Academic Press. pp. 66–75.&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Males have larger hearts, with 10% higher red blood cell count and higher haemoglobin, meaning greater oxygen carrying capacity, although the difference is less pronounced among athletes&amp;lt;ref&amp;gt;Glucksman A (1981). Sexual Dimorphism in Human and Mammalian Biology and Pathology. Academic Press. pp. 66–75.&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Males have higher circulating &amp;quot;clotting factors&amp;quot; which allow for faster healing of wounds and higher peripheral pain tolerance&amp;lt;ref&amp;gt;Glucksman A (1981). Sexual Dimorphism in Human and Mammalian Biology and Pathology. Academic Press. pp. 66–75.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The differences in strength can be very significant. For instance, gross measures of body strength suggest that women are approximately only 50% to 60% as strong as men in the upper body, and 60% to 70% as strong in the lower body.&amp;lt;ref&amp;gt;https://www.ncbi.nlm.nih.gov/pubmed/8477683&amp;lt;/ref&amp;gt; A study of hand-grip strength found that even elite female athletes can be surpassed by a man with no athletic training.&amp;lt;ref&amp;gt;https://www.ncbi.nlm.nih.gov/pubmed/17186303&amp;lt;/ref&amp;gt; Another study of sports performance in various disciplines found that males tend to perform 5.5% to 36.8% better, depending on the discipline.&amp;lt;ref&amp;gt;https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3761733/&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notable transwomen in women&#039;s sports ==&lt;br /&gt;
&lt;br /&gt;
=== Fallon Fox ===&lt;br /&gt;
&lt;br /&gt;
Male transgender mixed martial arts (MMA) fighter [[Fallon Fox]] has brutalized a female opponent, Tamikka Brents, causing her to suffer a concussion, an orbital bone fracture, and seven staples to the head, in the first round. After her loss, Brents took to social media to convey her thoughts on the experience of fighting Fox: &amp;quot;I&#039;ve fought a lot of women and have never felt the strength that I felt in a fight as I did that night. I can&#039;t answer whether it&#039;s because she was born a man or not because I&#039;m not a doctor. I can only say, I&#039;ve never felt so overpowered ever in my life and I am an abnormally strong female in my own right,&amp;quot; she stated. &amp;quot;Her grip was different, I could usually move around in the clinch against other females but couldn&#039;t move at all in Fox&#039;s clinch...&amp;quot;&amp;lt;ref&amp;gt;http://www.cagepotato.com/after-being-tkod-by-fallon-fox-tamikka-brents-says-transgender-fighters-in-mma-just-isnt-fair/&amp;lt;/ref&amp;gt; Fox has won 5 out of 6 MMA fights in total.&lt;br /&gt;
&lt;br /&gt;
=== Rachel McKinnon ===&lt;br /&gt;
&lt;br /&gt;
Male cyclist [[Rachel McKinnon]] won the women’s 35-44 sprint during the UCI Masters Track Cycling World Championships in Los Angeles, in October 2018.&amp;lt;ref&amp;gt;https://www.cyclingweekly.com/news/latest-news/rachel-mckinnon-becomes-first-transgender-woman-win-track-world-title-397473&amp;lt;/ref&amp;gt; Third place finisher Jennifer Wagner commented that this was unfair, and later commented on Twitter that she would work on getting the rules changed, which Rachel McKinnon characterized as transphobic.&lt;br /&gt;
&lt;br /&gt;
=== Terry Miller and Andraya Yearwood ===&lt;br /&gt;
&lt;br /&gt;
Two male transgender high school athletes, [[Terry Miller]] and [[Andraya Yearwood]], won first and second place in the Connecticut state championship 100-meter dash in 2018. Miller also won first place in the 200-meter dash.&amp;lt;ref&amp;gt;https://www.wkbn.com/news/national-world/transgender-track-stars-win-state-championship-ignites-debate/1238813951&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Laurel Hubbard ===&lt;br /&gt;
&lt;br /&gt;
New Zealand weightlifter [[Laurel Hubbard]] competed at the heaviest 90 kg+ category at the 2017 Australian International &amp;amp; Australian Open in Melbourne, winning the gold medal.&amp;lt;ref&amp;gt;http://www.heraldsun.com.au/sport/more-sports/laurel-hubbard-wins-female-90kg-division-at-weightliftings-australian-international/news-story/cd4a5fa012eb9a5ceb0281faceea5c7a&amp;lt;/ref&amp;gt; Hubbard qualified for the 2018 Commonwealth Games, but an elbow injury during the competition forced Hubbard&#039;s withdrawal from the event, while however leading the field.&amp;lt;ref&amp;gt;https://www.theguardian.com/sport/2018/apr/09/transgender-weightlifter-laurel-hubbards-eligibility-under-scrutiny&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Michelle Dumaresq ===&lt;br /&gt;
&lt;br /&gt;
Canadian professional downhill mountain-bike competitor [[Michelle Dumaresq]], who is a [[Sexual reassignment surgery|post-operative]] male-born transsexual, won the 2002 Canada Cup series, which qualified Dumaresq for the Canadian National team. In September 2002, Dumaresq co-represented Canada at the World Mountain Bike Championships. However, due to technical issues with the bike, Dumaresq only managed a 24th-place finish in the event. In 2003, Dumaresq won the 2003 Canadian National Championships and again represented Canada in the 2003 World Championships. Dumaresq repeated a Nationals win in 2004 and finished 17th at the 2004 World Mountain Bike Championships held in Les Gets, France.&lt;br /&gt;
&lt;br /&gt;
At the 2006 Canadian Nationals, a protest from one of the competitors during the podium ceremonies brought attention to Dumaresq&#039;s participation in female sports. The boyfriend of second-place finisher Danika Schroeter jumped up onto the podium and helped Schroeter put on a T-shirt reading &#039;100% Pure Woman Champ&#039;. The Canadian Cycling Association suspended Schroeter for her actions. However, the CCA announced that Schroeter&#039;s time off the race course would be served during the off-season when it would have no impact on her.&lt;br /&gt;
&lt;br /&gt;
=== Hannah Mouncey ===&lt;br /&gt;
&lt;br /&gt;
On 27 May 2018, [[Hannah Mouncey]] scored three goals for Melbourne Handball Club in their win over University of Queensland Handball Club for the 2018 Oceanian Open Club Championship.&amp;lt;ref&amp;gt;http://handballvic.org.au/event/5628/&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>SocJusWiz</name></author>
	</entry>
	<entry>
		<id>https://feministwiki.org/w/index.php?title=Main_Page&amp;diff=132</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://feministwiki.org/w/index.php?title=Main_Page&amp;diff=132"/>
		<updated>2018-10-20T12:27:24Z</updated>

		<summary type="html">&lt;p&gt;SocJusWiz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;Services: [https://chat.feministwiki.org/ FeministChat] - [https://forum.feministwiki.org/ FeministForum] - [https://mail.feministwiki.org/ FeministMail] - [https://files.feministwiki.org/ FeministFiles] - [[FeministWiki:Services#FeministIRC|FeministIRC]] - [https://add-member.feministwiki.org/ Add a member]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Welcome to &#039;&#039;&#039;FeministWiki&#039;&#039;&#039;, a wiki and a digital home for the feminist community.&lt;br /&gt;
&lt;br /&gt;
A wiki is a knowledge-base like an encyclopedia, but managed by the public.  The FeministWiki specializes on feminism, and is managed by feminists and their supporters.  Further, the FeministWiki platform offers an integrated &amp;quot;digital home&amp;quot; for feminists, consisting of a chat, forum, email accounts (&#039;&#039;janedoe@feministwiki.org&#039;&#039;), per-member and shared file storage, and more.  To become a member, all you need to do is contact an existing member and let them know about your commitment to the feminist cause.  You can also contact the project&#039;s technician at [mailto:admin@feministwiki.org admin@feministwiki.org] or [https://twitter.com/FeministWiki @FeministWiki] on Twitter.&lt;br /&gt;
&lt;br /&gt;
Once you are a member, you will be given a username and password with which you can log in to all FeministWiki services.  If you want more detailed information, you can read the [[FeministWiki:Membership|details about membership]] or [[FeministWiki:Services|details about the services]].  For an introduction to wiki editing, see [[FeministWiki:Help|our small help page]] or the bigger [https://www.mediawiki.org/wiki/Help:Contents MediaWiki help page].&lt;br /&gt;
&lt;br /&gt;
Heads up: &#039;&#039;&#039;the FeministWiki needs you&#039;&#039;&#039;.  All of the technical infrastructure of the FeministWiki is only useful if there&#039;s a community making use of it, and content on the wiki doesn&#039;t write itself!  Be bold, don&#039;t shy off of asking for membership, and let the community and the world benefit from your added knowledge.  You can become a member even if you have no intention to contribute to the actual wiki; feel free to chat away with other members, discuss matters important to you on the forum, or use the file storage to have a central place to store your favorite information-material on feminism.&lt;br /&gt;
&lt;br /&gt;
The project is mere months old and the community is yet in an infantile stage, but with your contribution, it will grow.&lt;br /&gt;
&lt;br /&gt;
== What is feminism? ==&lt;br /&gt;
&lt;br /&gt;
There are a variety of ideological groupings which call themselves feminism, and some of them are in contradiction with each other.  As such, a feminist community cannot possibly support all ideologies that have been labelled feminism.  The FeministWiki is for feminists who adhere to a relatively straightforward and classical interpretation of feminism: the liberation of female people from male supremacy.  This is sometimes called &#039;&#039;radical feminism&#039;&#039; because male supremacy is a radical notion for many people, and its elimination requires radical changes to society.&lt;br /&gt;
&lt;br /&gt;
Male supremacy refers to social and political systems that use stereotypes, myths, discrimination, belittlement, violence, and other means to keep female people down, so male people can exploit them for domestic labor, sexual enjoyment, reproductive work, or even unearned emotional support.  While male supremacy primarily targets women and girls for exploitation, it also causes collateral damage to men and boys, because it requires them to uphold the myth of male superiority, punishing those who can&#039;t or won&#039;t fulfill their role.&lt;br /&gt;
&lt;br /&gt;
The FeministWiki promotes second-wave feminist literature:&lt;br /&gt;
&lt;br /&gt;
* [https://radfem.org/ Radical Feminist Archives]&lt;br /&gt;
&lt;br /&gt;
Further, the FeministWiki promotes and stands in solidarity with the following groups and organizations:&lt;br /&gt;
&lt;br /&gt;
* [http://womensliberationfront.org/ WoLF]: The Women&#039;s Liberation Front&lt;br /&gt;
* [https://feministcurrent.com/ Feminist Current]: Canadian feminist news, commentary, and podcasts&lt;br /&gt;
* [https://nordicmodelnow.org/ Nordic Model Now]: Educational movement for the abolition of prostitution&lt;br /&gt;
* [http://www.spaceintl.org/ SPACE International]: Survivors of Prostitution Abuse Calling for Enlightenment&lt;br /&gt;
* [https://womansplaceuk.org/ Women&#039;s Place UK]: Women&#039;s campaigning group scrutinizing gender self-identification&lt;br /&gt;
* [https://pussychurchofmodernwitchcraft.com/ The Pussy Church of Modern Witchcraft]: Lesbian-led Church for Women and Girls&lt;br /&gt;
&lt;br /&gt;
== Who&#039;s behind the project? ==&lt;br /&gt;
&lt;br /&gt;
The FeministWiki belongs to the community.  However, the technical infrastructure is managed by [[FeministWiki:Technician|the technician]].  The first technician, who set up the infrastructure, is a male computer programmer who goes by the pseudonym &amp;quot;Social Justice Wizard&amp;quot; (humor intended) on [https://twitter.com/socjuswiz Twitter] and [https://medium.com/@socjuswiz Medium].  The technician has no leadership role in the community.  She or he is solely responsible for managing the infrastructure, offering technical support, and receiving membership requests.  For now, he also pays the bills (a relatively small sum) needed to run the infrastructure.&lt;br /&gt;
&lt;br /&gt;
* [[FeministWiki:Todo|Project Todo]]&lt;br /&gt;
* [[FeministWiki:TechnicalDocumentation|Technical Documentation]]&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title=FeministWiki - A wiki and digital home for the feminist community&lt;br /&gt;
|keywords=feminist feminism wiki feministwiki feminismwiki&lt;br /&gt;
|description=Welcome to the FeministWiki, a wiki about feminism and a digital home for the feminist community&lt;br /&gt;
|twitter:card=summary&lt;br /&gt;
|twitter:site=@FeministWiki&lt;br /&gt;
|twitter:image:src=https://feministwiki.org/w/resources/assets/wiki.png&lt;br /&gt;
|google-site-verification=RZf8hzu0sR32H9OsEXa3-aN3LzE4T2nLPg1s9SrJgJI&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>SocJusWiz</name></author>
	</entry>
	<entry>
		<id>https://feministwiki.org/w/index.php?title=Main_Page&amp;diff=131</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://feministwiki.org/w/index.php?title=Main_Page&amp;diff=131"/>
		<updated>2018-10-20T12:26:24Z</updated>

		<summary type="html">&lt;p&gt;SocJusWiz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;Services: [https://chat.feministwiki.org/ FeministChat] - [https://forum.feministwiki.org/ FeministForum] - [https://mail.feministwiki.org/ FeministMail] - [https://files.feministwiki.org/ FeministFiles] - [https://add-member.feministwiki.org/ Add a member]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Welcome to &#039;&#039;&#039;FeministWiki&#039;&#039;&#039;, a wiki and a digital home for the feminist community.&lt;br /&gt;
&lt;br /&gt;
A wiki is a knowledge-base like an encyclopedia, but managed by the public.  The FeministWiki specializes on feminism, and is managed by feminists and their supporters.  Further, the FeministWiki platform offers an integrated &amp;quot;digital home&amp;quot; for feminists, consisting of a chat, forum, email accounts (&#039;&#039;janedoe@feministwiki.org&#039;&#039;), per-member and shared file storage, and more.  To become a member, all you need to do is contact an existing member and let them know about your commitment to the feminist cause.  You can also contact the project&#039;s technician at [mailto:admin@feministwiki.org admin@feministwiki.org] or [https://twitter.com/FeministWiki @FeministWiki] on Twitter.&lt;br /&gt;
&lt;br /&gt;
Once you are a member, you will be given a username and password with which you can log in to all FeministWiki services.  If you want more detailed information, you can read the [[FeministWiki:Membership|details about membership]] or [[FeministWiki:Services|details about the services]].  For an introduction to wiki editing, see [[FeministWiki:Help|our small help page]] or the bigger [https://www.mediawiki.org/wiki/Help:Contents MediaWiki help page].&lt;br /&gt;
&lt;br /&gt;
Heads up: &#039;&#039;&#039;the FeministWiki needs you&#039;&#039;&#039;.  All of the technical infrastructure of the FeministWiki is only useful if there&#039;s a community making use of it, and content on the wiki doesn&#039;t write itself!  Be bold, don&#039;t shy off of asking for membership, and let the community and the world benefit from your added knowledge.  You can become a member even if you have no intention to contribute to the actual wiki; feel free to chat away with other members, discuss matters important to you on the forum, or use the file storage to have a central place to store your favorite information-material on feminism.&lt;br /&gt;
&lt;br /&gt;
The project is mere months old and the community is yet in an infantile stage, but with your contribution, it will grow.&lt;br /&gt;
&lt;br /&gt;
== What is feminism? ==&lt;br /&gt;
&lt;br /&gt;
There are a variety of ideological groupings which call themselves feminism, and some of them are in contradiction with each other.  As such, a feminist community cannot possibly support all ideologies that have been labelled feminism.  The FeministWiki is for feminists who adhere to a relatively straightforward and classical interpretation of feminism: the liberation of female people from male supremacy.  This is sometimes called &#039;&#039;radical feminism&#039;&#039; because male supremacy is a radical notion for many people, and its elimination requires radical changes to society.&lt;br /&gt;
&lt;br /&gt;
Male supremacy refers to social and political systems that use stereotypes, myths, discrimination, belittlement, violence, and other means to keep female people down, so male people can exploit them for domestic labor, sexual enjoyment, reproductive work, or even unearned emotional support.  While male supremacy primarily targets women and girls for exploitation, it also causes collateral damage to men and boys, because it requires them to uphold the myth of male superiority, punishing those who can&#039;t or won&#039;t fulfill their role.&lt;br /&gt;
&lt;br /&gt;
The FeministWiki promotes second-wave feminist literature:&lt;br /&gt;
&lt;br /&gt;
* [https://radfem.org/ Radical Feminist Archives]&lt;br /&gt;
&lt;br /&gt;
Further, the FeministWiki promotes and stands in solidarity with the following groups and organizations:&lt;br /&gt;
&lt;br /&gt;
* [http://womensliberationfront.org/ WoLF]: The Women&#039;s Liberation Front&lt;br /&gt;
* [https://feministcurrent.com/ Feminist Current]: Canadian feminist news, commentary, and podcasts&lt;br /&gt;
* [https://nordicmodelnow.org/ Nordic Model Now]: Educational movement for the abolition of prostitution&lt;br /&gt;
* [http://www.spaceintl.org/ SPACE International]: Survivors of Prostitution Abuse Calling for Enlightenment&lt;br /&gt;
* [https://womansplaceuk.org/ Women&#039;s Place UK]: Women&#039;s campaigning group scrutinizing gender self-identification&lt;br /&gt;
* [https://pussychurchofmodernwitchcraft.com/ The Pussy Church of Modern Witchcraft]: Lesbian-led Church for Women and Girls&lt;br /&gt;
&lt;br /&gt;
== Who&#039;s behind the project? ==&lt;br /&gt;
&lt;br /&gt;
The FeministWiki belongs to the community.  However, the technical infrastructure is managed by [[FeministWiki:Technician|the technician]].  The first technician, who set up the infrastructure, is a male computer programmer who goes by the pseudonym &amp;quot;Social Justice Wizard&amp;quot; (humor intended) on [https://twitter.com/socjuswiz Twitter] and [https://medium.com/@socjuswiz Medium].  The technician has no leadership role in the community.  She or he is solely responsible for managing the infrastructure, offering technical support, and receiving membership requests.  For now, he also pays the bills (a relatively small sum) needed to run the infrastructure.&lt;br /&gt;
&lt;br /&gt;
* [[FeministWiki:Todo|Project Todo]]&lt;br /&gt;
* [[FeministWiki:TechnicalDocumentation|Technical Documentation]]&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title=FeministWiki - A wiki and digital home for the feminist community&lt;br /&gt;
|keywords=feminist feminism wiki feministwiki feminismwiki&lt;br /&gt;
|description=Welcome to the FeministWiki, a wiki about feminism and a digital home for the feminist community&lt;br /&gt;
|twitter:card=summary&lt;br /&gt;
|twitter:site=@FeministWiki&lt;br /&gt;
|twitter:image:src=https://feministwiki.org/w/resources/assets/wiki.png&lt;br /&gt;
|google-site-verification=RZf8hzu0sR32H9OsEXa3-aN3LzE4T2nLPg1s9SrJgJI&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>SocJusWiz</name></author>
	</entry>
	<entry>
		<id>https://feministwiki.org/w/index.php?title=Main_Page&amp;diff=130</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://feministwiki.org/w/index.php?title=Main_Page&amp;diff=130"/>
		<updated>2018-10-20T12:24:39Z</updated>

		<summary type="html">&lt;p&gt;SocJusWiz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 100%&amp;quot;&lt;br /&gt;
| style=&amp;quot;width: 33%; text-align: center&amp;quot; | [https://chat.feministwiki.org/ FeministChat]&lt;br /&gt;
| style=&amp;quot;width: 33%; text-align: center&amp;quot; | [https://forum.feministwiki.org/ FeministForum]&lt;br /&gt;
| style=&amp;quot;width: 33%; text-align: center&amp;quot; | [https://mail.feministwiki.org/ FeministMail]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 33%; text-align: center&amp;quot; | [https://files.feministwiki.org/ FeministFiles]&lt;br /&gt;
| style=&amp;quot;width: 33%; text-align: center&amp;quot; | [[FeministWiki:Services#FeministIRC|FeministIRC]]&lt;br /&gt;
| style=&amp;quot;width: 33%; text-align: center&amp;quot; | [https://add-member.feministwiki.org/ Add a member]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Welcome to &#039;&#039;&#039;FeministWiki&#039;&#039;&#039;, a wiki and a digital home for the feminist community.&lt;br /&gt;
&lt;br /&gt;
A wiki is a knowledge-base like an encyclopedia, but managed by the public.  The FeministWiki specializes on feminism, and is managed by feminists and their supporters.  Further, the FeministWiki platform offers an integrated &amp;quot;digital home&amp;quot; for feminists, consisting of a chat, forum, email accounts (&#039;&#039;janedoe@feministwiki.org&#039;&#039;), per-member and shared file storage, and more.  To become a member, all you need to do is contact an existing member and let them know about your commitment to the feminist cause.  You can also contact the project&#039;s technician at [mailto:admin@feministwiki.org admin@feministwiki.org] or [https://twitter.com/FeministWiki @FeministWiki] on Twitter.&lt;br /&gt;
&lt;br /&gt;
Once you are a member, you will be given a username and password with which you can log in to all FeministWiki services.  If you want more detailed information, you can read the [[FeministWiki:Membership|details about membership]] or [[FeministWiki:Services|details about the services]].  For an introduction to wiki editing, see [[FeministWiki:Help|our small help page]] or the bigger [https://www.mediawiki.org/wiki/Help:Contents MediaWiki help page].&lt;br /&gt;
&lt;br /&gt;
Heads up: &#039;&#039;&#039;the FeministWiki needs you&#039;&#039;&#039;.  All of the technical infrastructure of the FeministWiki is only useful if there&#039;s a community making use of it, and content on the wiki doesn&#039;t write itself!  Be bold, don&#039;t shy off of asking for membership, and let the community and the world benefit from your added knowledge.  You can become a member even if you have no intention to contribute to the actual wiki; feel free to chat away with other members, discuss matters important to you on the forum, or use the file storage to have a central place to store your favorite information-material on feminism.&lt;br /&gt;
&lt;br /&gt;
The project is mere months old and the community is yet in an infantile stage, but with your contribution, it will grow.&lt;br /&gt;
&lt;br /&gt;
== What is feminism? ==&lt;br /&gt;
&lt;br /&gt;
There are a variety of ideological groupings which call themselves feminism, and some of them are in contradiction with each other.  As such, a feminist community cannot possibly support all ideologies that have been labelled feminism.  The FeministWiki is for feminists who adhere to a relatively straightforward and classical interpretation of feminism: the liberation of female people from male supremacy.  This is sometimes called &#039;&#039;radical feminism&#039;&#039; because male supremacy is a radical notion for many people, and its elimination requires radical changes to society.&lt;br /&gt;
&lt;br /&gt;
Male supremacy refers to social and political systems that use stereotypes, myths, discrimination, belittlement, violence, and other means to keep female people down, so male people can exploit them for domestic labor, sexual enjoyment, reproductive work, or even unearned emotional support.  While male supremacy primarily targets women and girls for exploitation, it also causes collateral damage to men and boys, because it requires them to uphold the myth of male superiority, punishing those who can&#039;t or won&#039;t fulfill their role.&lt;br /&gt;
&lt;br /&gt;
The FeministWiki promotes second-wave feminist literature:&lt;br /&gt;
&lt;br /&gt;
* [https://radfem.org/ Radical Feminist Archives]&lt;br /&gt;
&lt;br /&gt;
Further, the FeministWiki promotes and stands in solidarity with the following groups and organizations:&lt;br /&gt;
&lt;br /&gt;
* [http://womensliberationfront.org/ WoLF]: The Women&#039;s Liberation Front&lt;br /&gt;
* [https://feministcurrent.com/ Feminist Current]: Canadian feminist news, commentary, and podcasts&lt;br /&gt;
* [https://nordicmodelnow.org/ Nordic Model Now]: Educational movement for the abolition of prostitution&lt;br /&gt;
* [http://www.spaceintl.org/ SPACE International]: Survivors of Prostitution Abuse Calling for Enlightenment&lt;br /&gt;
* [https://womansplaceuk.org/ Women&#039;s Place UK]: Women&#039;s campaigning group scrutinizing gender self-identification&lt;br /&gt;
* [https://pussychurchofmodernwitchcraft.com/ The Pussy Church of Modern Witchcraft]: Lesbian-led Church for Women and Girls&lt;br /&gt;
&lt;br /&gt;
== Who&#039;s behind the project? ==&lt;br /&gt;
&lt;br /&gt;
The FeministWiki belongs to the community.  However, the technical infrastructure is managed by [[FeministWiki:Technician|the technician]].  The first technician, who set up the infrastructure, is a male computer programmer who goes by the pseudonym &amp;quot;Social Justice Wizard&amp;quot; (humor intended) on [https://twitter.com/socjuswiz Twitter] and [https://medium.com/@socjuswiz Medium].  The technician has no leadership role in the community.  She or he is solely responsible for managing the infrastructure, offering technical support, and receiving membership requests.  For now, he also pays the bills (a relatively small sum) needed to run the infrastructure.&lt;br /&gt;
&lt;br /&gt;
* [[FeministWiki:Todo|Project Todo]]&lt;br /&gt;
* [[FeministWiki:TechnicalDocumentation|Technical Documentation]]&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title=FeministWiki - A wiki and digital home for the feminist community&lt;br /&gt;
|keywords=feminist feminism wiki feministwiki feminismwiki&lt;br /&gt;
|description=Welcome to the FeministWiki, a wiki about feminism and a digital home for the feminist community&lt;br /&gt;
|twitter:card=summary&lt;br /&gt;
|twitter:site=@FeministWiki&lt;br /&gt;
|twitter:image:src=https://feministwiki.org/w/resources/assets/wiki.png&lt;br /&gt;
|google-site-verification=RZf8hzu0sR32H9OsEXa3-aN3LzE4T2nLPg1s9SrJgJI&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>SocJusWiz</name></author>
	</entry>
	<entry>
		<id>https://feministwiki.org/w/index.php?title=Main_Page&amp;diff=129</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://feministwiki.org/w/index.php?title=Main_Page&amp;diff=129"/>
		<updated>2018-10-20T12:21:08Z</updated>

		<summary type="html">&lt;p&gt;SocJusWiz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| [https://chat.feministwiki.org/ FeministChat]&lt;br /&gt;
| [https://forum.feministwiki.org/ FeministForum]&lt;br /&gt;
| [https://mail.feministwiki.org/ FeministMail]&lt;br /&gt;
|-&lt;br /&gt;
| [https://files.feministwiki.org/ FeministFiles]&lt;br /&gt;
| [[FeministWiki:Services#FeministIRC|FeministIRC]]&lt;br /&gt;
| [https://add-member.feministwiki.org/ Add a member]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Welcome to &#039;&#039;&#039;FeministWiki&#039;&#039;&#039;, a wiki and a digital home for the feminist community.&lt;br /&gt;
&lt;br /&gt;
A wiki is a knowledge-base like an encyclopedia, but managed by the public.  The FeministWiki specializes on feminism, and is managed by feminists and their supporters.  Further, the FeministWiki platform offers an integrated &amp;quot;digital home&amp;quot; for feminists, consisting of a chat, forum, email accounts (&#039;&#039;janedoe@feministwiki.org&#039;&#039;), per-member and shared file storage, and more.  To become a member, all you need to do is contact an existing member and let them know about your commitment to the feminist cause.  You can also contact the project&#039;s technician at [mailto:admin@feministwiki.org admin@feministwiki.org] or [https://twitter.com/FeministWiki @FeministWiki] on Twitter.&lt;br /&gt;
&lt;br /&gt;
Once you are a member, you will be given a username and password with which you can log in to all FeministWiki services.  If you want more detailed information, you can read the [[FeministWiki:Membership|details about membership]] or [[FeministWiki:Services|details about the services]].  For an introduction to wiki editing, see [[FeministWiki:Help|our small help page]] or the bigger [https://www.mediawiki.org/wiki/Help:Contents MediaWiki help page].&lt;br /&gt;
&lt;br /&gt;
Heads up: &#039;&#039;&#039;the FeministWiki needs you&#039;&#039;&#039;.  All of the technical infrastructure of the FeministWiki is only useful if there&#039;s a community making use of it, and content on the wiki doesn&#039;t write itself!  Be bold, don&#039;t shy off of asking for membership, and let the community and the world benefit from your added knowledge.  You can become a member even if you have no intention to contribute to the actual wiki; feel free to chat away with other members, discuss matters important to you on the forum, or use the file storage to have a central place to store your favorite information-material on feminism.&lt;br /&gt;
&lt;br /&gt;
The project is mere months old and the community is yet in an infantile stage, but with your contribution, it will grow.&lt;br /&gt;
&lt;br /&gt;
== What is feminism? ==&lt;br /&gt;
&lt;br /&gt;
There are a variety of ideological groupings which call themselves feminism, and some of them are in contradiction with each other.  As such, a feminist community cannot possibly support all ideologies that have been labelled feminism.  The FeministWiki is for feminists who adhere to a relatively straightforward and classical interpretation of feminism: the liberation of female people from male supremacy.  This is sometimes called &#039;&#039;radical feminism&#039;&#039; because male supremacy is a radical notion for many people, and its elimination requires radical changes to society.&lt;br /&gt;
&lt;br /&gt;
Male supremacy refers to social and political systems that use stereotypes, myths, discrimination, belittlement, violence, and other means to keep female people down, so male people can exploit them for domestic labor, sexual enjoyment, reproductive work, or even unearned emotional support.  While male supremacy primarily targets women and girls for exploitation, it also causes collateral damage to men and boys, because it requires them to uphold the myth of male superiority, punishing those who can&#039;t or won&#039;t fulfill their role.&lt;br /&gt;
&lt;br /&gt;
The FeministWiki promotes second-wave feminist literature:&lt;br /&gt;
&lt;br /&gt;
* [https://radfem.org/ Radical Feminist Archives]&lt;br /&gt;
&lt;br /&gt;
Further, the FeministWiki promotes and stands in solidarity with the following groups and organizations:&lt;br /&gt;
&lt;br /&gt;
* [http://womensliberationfront.org/ WoLF]: The Women&#039;s Liberation Front&lt;br /&gt;
* [https://feministcurrent.com/ Feminist Current]: Canadian feminist news, commentary, and podcasts&lt;br /&gt;
* [https://nordicmodelnow.org/ Nordic Model Now]: Educational movement for the abolition of prostitution&lt;br /&gt;
* [http://www.spaceintl.org/ SPACE International]: Survivors of Prostitution Abuse Calling for Enlightenment&lt;br /&gt;
* [https://womansplaceuk.org/ Women&#039;s Place UK]: Women&#039;s campaigning group scrutinizing gender self-identification&lt;br /&gt;
* [https://pussychurchofmodernwitchcraft.com/ The Pussy Church of Modern Witchcraft]: Lesbian-led Church for Women and Girls&lt;br /&gt;
&lt;br /&gt;
== Who&#039;s behind the project? ==&lt;br /&gt;
&lt;br /&gt;
The FeministWiki belongs to the community.  However, the technical infrastructure is managed by [[FeministWiki:Technician|the technician]].  The first technician, who set up the infrastructure, is a male computer programmer who goes by the pseudonym &amp;quot;Social Justice Wizard&amp;quot; (humor intended) on [https://twitter.com/socjuswiz Twitter] and [https://medium.com/@socjuswiz Medium].  The technician has no leadership role in the community.  She or he is solely responsible for managing the infrastructure, offering technical support, and receiving membership requests.  For now, he also pays the bills (a relatively small sum) needed to run the infrastructure.&lt;br /&gt;
&lt;br /&gt;
* [[FeministWiki:Todo|Project Todo]]&lt;br /&gt;
* [[FeministWiki:TechnicalDocumentation|Technical Documentation]]&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title=FeministWiki - A wiki and digital home for the feminist community&lt;br /&gt;
|keywords=feminist feminism wiki feministwiki feminismwiki&lt;br /&gt;
|description=Welcome to the FeministWiki, a wiki about feminism and a digital home for the feminist community&lt;br /&gt;
|twitter:card=summary&lt;br /&gt;
|twitter:site=@FeministWiki&lt;br /&gt;
|twitter:image:src=https://feministwiki.org/w/resources/assets/wiki.png&lt;br /&gt;
|google-site-verification=RZf8hzu0sR32H9OsEXa3-aN3LzE4T2nLPg1s9SrJgJI&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>SocJusWiz</name></author>
	</entry>
	<entry>
		<id>https://feministwiki.org/w/index.php?title=Main_Page&amp;diff=128</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://feministwiki.org/w/index.php?title=Main_Page&amp;diff=128"/>
		<updated>2018-10-20T12:16:19Z</updated>

		<summary type="html">&lt;p&gt;SocJusWiz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;Services: [https://chat.feministwiki.org/ FeministChat] - [https://forum.feministwiki.org/ FeministForum] - [https://mail.feministwiki.org/ FeministMail] - [https://files.feministwiki.org/ FeministFiles] - [https://add-member.feministwiki.org/ Add a member]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Welcome to &#039;&#039;&#039;FeministWiki&#039;&#039;&#039;, a wiki and a digital home for the feminist community.&lt;br /&gt;
&lt;br /&gt;
A wiki is a knowledge-base like an encyclopedia, but managed by the public.  The FeministWiki specializes on feminism, and is managed by feminists and their supporters.  Further, the FeministWiki platform offers an integrated &amp;quot;digital home&amp;quot; for feminists, consisting of a chat, forum, email accounts (&#039;&#039;janedoe@feministwiki.org&#039;&#039;), per-member and shared file storage, and more.  To become a member, all you need to do is contact an existing member and let them know about your commitment to the feminist cause.  You can also contact the project&#039;s technician at [mailto:admin@feministwiki.org admin@feministwiki.org] or [https://twitter.com/FeministWiki @FeministWiki] on Twitter.&lt;br /&gt;
&lt;br /&gt;
Once you are a member, you will be given a username and password with which you can log in to all FeministWiki services.  If you want more detailed information, you can read the [[FeministWiki:Membership|details about membership]] or [[FeministWiki:Services|details about the services]].  For an introduction to wiki editing, see [[FeministWiki:Help|our small help page]] or the bigger [https://www.mediawiki.org/wiki/Help:Contents MediaWiki help page].&lt;br /&gt;
&lt;br /&gt;
Heads up: &#039;&#039;&#039;the FeministWiki needs you&#039;&#039;&#039;.  All of the technical infrastructure of the FeministWiki is only useful if there&#039;s a community making use of it, and content on the wiki doesn&#039;t write itself!  Be bold, don&#039;t shy off of asking for membership, and let the community and the world benefit from your added knowledge.  You can become a member even if you have no intention to contribute to the actual wiki; feel free to chat away with other members, discuss matters important to you on the forum, or use the file storage to have a central place to store your favorite information-material on feminism.&lt;br /&gt;
&lt;br /&gt;
The project is mere months old and the community is yet in an infantile stage, but with your contribution, it will grow.&lt;br /&gt;
&lt;br /&gt;
== What is feminism? ==&lt;br /&gt;
&lt;br /&gt;
There are a variety of ideological groupings which call themselves feminism, and some of them are in contradiction with each other.  As such, a feminist community cannot possibly support all ideologies that have been labelled feminism.  The FeministWiki is for feminists who adhere to a relatively straightforward and classical interpretation of feminism: the liberation of female people from male supremacy.  This is sometimes called &#039;&#039;radical feminism&#039;&#039; because male supremacy is a radical notion for many people, and its elimination requires radical changes to society.&lt;br /&gt;
&lt;br /&gt;
Male supremacy refers to social and political systems that use stereotypes, myths, discrimination, belittlement, violence, and other means to keep female people down, so male people can exploit them for domestic labor, sexual enjoyment, reproductive work, or even unearned emotional support.  While male supremacy primarily targets women and girls for exploitation, it also causes collateral damage to men and boys, because it requires them to uphold the myth of male superiority, punishing those who can&#039;t or won&#039;t fulfill their role.&lt;br /&gt;
&lt;br /&gt;
The FeministWiki promotes second-wave feminist literature:&lt;br /&gt;
&lt;br /&gt;
* [https://radfem.org/ Radical Feminist Archives]&lt;br /&gt;
&lt;br /&gt;
Further, the FeministWiki promotes and stands in solidarity with the following groups and organizations:&lt;br /&gt;
&lt;br /&gt;
* [http://womensliberationfront.org/ WoLF]: The Women&#039;s Liberation Front&lt;br /&gt;
* [https://feministcurrent.com/ Feminist Current]: Canadian feminist news, commentary, and podcasts&lt;br /&gt;
* [https://nordicmodelnow.org/ Nordic Model Now]: Educational movement for the abolition of prostitution&lt;br /&gt;
* [http://www.spaceintl.org/ SPACE International]: Survivors of Prostitution Abuse Calling for Enlightenment&lt;br /&gt;
* [https://womansplaceuk.org/ Women&#039;s Place UK]: Women&#039;s campaigning group scrutinizing gender self-identification&lt;br /&gt;
* [https://pussychurchofmodernwitchcraft.com/ The Pussy Church of Modern Witchcraft]: Lesbian-led Church for Women and Girls&lt;br /&gt;
&lt;br /&gt;
== Who&#039;s behind the project? ==&lt;br /&gt;
&lt;br /&gt;
The FeministWiki belongs to the community.  However, the technical infrastructure is managed by [[FeministWiki:Technician|the technician]].  The first technician, who set up the infrastructure, is a male computer programmer who goes by the pseudonym &amp;quot;Social Justice Wizard&amp;quot; (humor intended) on [https://twitter.com/socjuswiz Twitter] and [https://medium.com/@socjuswiz Medium].  The technician has no leadership role in the community.  She or he is solely responsible for managing the infrastructure, offering technical support, and receiving membership requests.  For now, he also pays the bills (a relatively small sum) needed to run the infrastructure.&lt;br /&gt;
&lt;br /&gt;
* [[FeministWiki:Todo|Project Todo]]&lt;br /&gt;
* [[FeministWiki:TechnicalDocumentation|Technical Documentation]]&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title=FeministWiki - A wiki and digital home for the feminist community&lt;br /&gt;
|keywords=feminist feminism wiki feministwiki feminismwiki&lt;br /&gt;
|description=Welcome to the FeministWiki, a wiki about feminism and a digital home for the feminist community&lt;br /&gt;
|twitter:card=summary&lt;br /&gt;
|twitter:site=@FeministWiki&lt;br /&gt;
|twitter:image:src=https://feministwiki.org/w/resources/assets/wiki.png&lt;br /&gt;
|google-site-verification=RZf8hzu0sR32H9OsEXa3-aN3LzE4T2nLPg1s9SrJgJI&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>SocJusWiz</name></author>
	</entry>
	<entry>
		<id>https://feministwiki.org/w/index.php?title=Main_Page&amp;diff=127</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://feministwiki.org/w/index.php?title=Main_Page&amp;diff=127"/>
		<updated>2018-10-20T12:15:17Z</updated>

		<summary type="html">&lt;p&gt;SocJusWiz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to &#039;&#039;&#039;FeministWiki&#039;&#039;&#039;, a wiki and a digital home for the feminist community.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Services: [https://chat.feministwiki.org/ FeministChat] - [https://forum.feministwiki.org/ FeministForum] - [https://mail.feministwiki.org/ FeministMail] - [https://files.feministwiki.org/ FeministFiles] - [https://add-member.feministwiki.org/ Add a member]&lt;br /&gt;
&lt;br /&gt;
A wiki is a knowledge-base like an encyclopedia, but managed by the public.  The FeministWiki specializes on feminism, and is managed by feminists and their supporters.  Further, the FeministWiki platform offers an integrated &amp;quot;digital home&amp;quot; for feminists, consisting of a chat, forum, email accounts (&#039;&#039;janedoe@feministwiki.org&#039;&#039;), per-member and shared file storage, and more.  To become a member, all you need to do is contact an existing member and let them know about your commitment to the feminist cause.  You can also contact the project&#039;s technician at [mailto:admin@feministwiki.org admin@feministwiki.org] or [https://twitter.com/FeministWiki @FeministWiki] on Twitter.&lt;br /&gt;
&lt;br /&gt;
Once you are a member, you will be given a username and password with which you can log in to all FeministWiki services.  If you want more detailed information, you can read the [[FeministWiki:Membership|details about membership]] or [[FeministWiki:Services|details about the services]].  For an introduction to wiki editing, see [[FeministWiki:Help|our small help page]] or the bigger [https://www.mediawiki.org/wiki/Help:Contents MediaWiki help page].&lt;br /&gt;
&lt;br /&gt;
Heads up: &#039;&#039;&#039;the FeministWiki needs you&#039;&#039;&#039;.  All of the technical infrastructure of the FeministWiki is only useful if there&#039;s a community making use of it, and content on the wiki doesn&#039;t write itself!  Be bold, don&#039;t shy off of asking for membership, and let the community and the world benefit from your added knowledge.  You can become a member even if you have no intention to contribute to the actual wiki; feel free to chat away with other members, discuss matters important to you on the forum, or use the file storage to have a central place to store your favorite information-material on feminism.&lt;br /&gt;
&lt;br /&gt;
The project is mere months old and the community is yet in an infantile stage, but with your contribution, it will grow.&lt;br /&gt;
&lt;br /&gt;
== What is feminism? ==&lt;br /&gt;
&lt;br /&gt;
There are a variety of ideological groupings which call themselves feminism, and some of them are in contradiction with each other.  As such, a feminist community cannot possibly support all ideologies that have been labelled feminism.  The FeministWiki is for feminists who adhere to a relatively straightforward and classical interpretation of feminism: the liberation of female people from male supremacy.  This is sometimes called &#039;&#039;radical feminism&#039;&#039; because male supremacy is a radical notion for many people, and its elimination requires radical changes to society.&lt;br /&gt;
&lt;br /&gt;
Male supremacy refers to social and political systems that use stereotypes, myths, discrimination, belittlement, violence, and other means to keep female people down, so male people can exploit them for domestic labor, sexual enjoyment, reproductive work, or even unearned emotional support.  While male supremacy primarily targets women and girls for exploitation, it also causes collateral damage to men and boys, because it requires them to uphold the myth of male superiority, punishing those who can&#039;t or won&#039;t fulfill their role.&lt;br /&gt;
&lt;br /&gt;
The FeministWiki promotes second-wave feminist literature:&lt;br /&gt;
&lt;br /&gt;
* [https://radfem.org/ Radical Feminist Archives]&lt;br /&gt;
&lt;br /&gt;
Further, the FeministWiki promotes and stands in solidarity with the following groups and organizations:&lt;br /&gt;
&lt;br /&gt;
* [http://womensliberationfront.org/ WoLF]: The Women&#039;s Liberation Front&lt;br /&gt;
* [https://feministcurrent.com/ Feminist Current]: Canadian feminist news, commentary, and podcasts&lt;br /&gt;
* [https://nordicmodelnow.org/ Nordic Model Now]: Educational movement for the abolition of prostitution&lt;br /&gt;
* [http://www.spaceintl.org/ SPACE International]: Survivors of Prostitution Abuse Calling for Enlightenment&lt;br /&gt;
* [https://womansplaceuk.org/ Women&#039;s Place UK]: Women&#039;s campaigning group scrutinizing gender self-identification&lt;br /&gt;
* [https://pussychurchofmodernwitchcraft.com/ The Pussy Church of Modern Witchcraft]: Lesbian-led Church for Women and Girls&lt;br /&gt;
&lt;br /&gt;
== Who&#039;s behind the project? ==&lt;br /&gt;
&lt;br /&gt;
The FeministWiki belongs to the community.  However, the technical infrastructure is managed by [[FeministWiki:Technician|the technician]].  The first technician, who set up the infrastructure, is a male computer programmer who goes by the pseudonym &amp;quot;Social Justice Wizard&amp;quot; (humor intended) on [https://twitter.com/socjuswiz Twitter] and [https://medium.com/@socjuswiz Medium].  The technician has no leadership role in the community.  She or he is solely responsible for managing the infrastructure, offering technical support, and receiving membership requests.  For now, he also pays the bills (a relatively small sum) needed to run the infrastructure.&lt;br /&gt;
&lt;br /&gt;
* [[FeministWiki:Todo|Project Todo]]&lt;br /&gt;
* [[FeministWiki:TechnicalDocumentation|Technical Documentation]]&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title=FeministWiki - A wiki and digital home for the feminist community&lt;br /&gt;
|keywords=feminist feminism wiki feministwiki feminismwiki&lt;br /&gt;
|description=Welcome to the FeministWiki, a wiki about feminism and a digital home for the feminist community&lt;br /&gt;
|twitter:card=summary&lt;br /&gt;
|twitter:site=@FeministWiki&lt;br /&gt;
|twitter:image:src=https://feministwiki.org/w/resources/assets/wiki.png&lt;br /&gt;
|google-site-verification=RZf8hzu0sR32H9OsEXa3-aN3LzE4T2nLPg1s9SrJgJI&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>SocJusWiz</name></author>
	</entry>
	<entry>
		<id>https://feministwiki.org/w/index.php?title=Main_Page&amp;diff=126</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://feministwiki.org/w/index.php?title=Main_Page&amp;diff=126"/>
		<updated>2018-10-20T11:51:28Z</updated>

		<summary type="html">&lt;p&gt;SocJusWiz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float: right; margin-left: 10px&amp;quot;&lt;br /&gt;
! Services&lt;br /&gt;
|-&lt;br /&gt;
| [https://chat.feministwiki.org/ FeministChat]&lt;br /&gt;
|-&lt;br /&gt;
| [https://forum.feministwiki.org/ FeministForum]&lt;br /&gt;
|-&lt;br /&gt;
| [https://mail.feministwiki.org/ FeministMail]&lt;br /&gt;
|-&lt;br /&gt;
| [https://files.feministwiki.org/ FeministFiles]&lt;br /&gt;
|-&lt;br /&gt;
| [[FeministWiki:Services#FeministIRC|FeministIRC]]&lt;br /&gt;
|-&lt;br /&gt;
| [https://add-member.feministwiki.org/ Add a member]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Welcome to &#039;&#039;&#039;FeministWiki&#039;&#039;&#039;, a wiki and a digital home for the feminist community.&lt;br /&gt;
&lt;br /&gt;
A wiki is a knowledge-base like an encyclopedia, but managed by the public.  The FeministWiki specializes on feminism, and is managed by feminists and their supporters.  Further, the FeministWiki platform offers an integrated &amp;quot;digital home&amp;quot; for feminists, consisting of a chat, forum, email accounts (&#039;&#039;janedoe@feministwiki.org&#039;&#039;), per-member and shared file storage, and more.  To become a member, all you need to do is contact an existing member and let them know about your commitment to the feminist cause.  You can also contact the project&#039;s technician at [mailto:admin@feministwiki.org admin@feministwiki.org] or [https://twitter.com/FeministWiki @FeministWiki] on Twitter.&lt;br /&gt;
&lt;br /&gt;
Once you are a member, you will be given a username and password with which you can log in to all FeministWiki services.  If you want more detailed information, you can read the [[FeministWiki:Membership|details about membership]] or [[FeministWiki:Services|details about the services]].  For an introduction to wiki editing, see [[FeministWiki:Help|our small help page]] or the bigger [https://www.mediawiki.org/wiki/Help:Contents MediaWiki help page].&lt;br /&gt;
&lt;br /&gt;
Heads up: &#039;&#039;&#039;the FeministWiki needs you&#039;&#039;&#039;.  All of the technical infrastructure of the FeministWiki is only useful if there&#039;s a community making use of it, and content on the wiki doesn&#039;t write itself!  Be bold, don&#039;t shy off of asking for membership, and let the community and the world benefit from your added knowledge.  You can become a member even if you have no intention to contribute to the actual wiki; feel free to chat away with other members, discuss matters important to you on the forum, or use the file storage to have a central place to store your favorite information-material on feminism.&lt;br /&gt;
&lt;br /&gt;
The project is mere months old and the community is yet in an infantile stage, but with your contribution, it will grow.&lt;br /&gt;
&lt;br /&gt;
== What is feminism? ==&lt;br /&gt;
&lt;br /&gt;
There are a variety of ideological groupings which call themselves feminism, and some of them are in contradiction with each other.  As such, a feminist community cannot possibly support all ideologies that have been labelled feminism.  The FeministWiki is for feminists who adhere to a relatively straightforward and classical interpretation of feminism: the liberation of female people from male supremacy.  This is sometimes called &#039;&#039;radical feminism&#039;&#039; because male supremacy is a radical notion for many people, and its elimination requires radical changes to society.&lt;br /&gt;
&lt;br /&gt;
Male supremacy refers to social and political systems that use stereotypes, myths, discrimination, belittlement, violence, and other means to keep female people down, so male people can exploit them for domestic labor, sexual enjoyment, reproductive work, or even unearned emotional support.  While male supremacy primarily targets women and girls for exploitation, it also causes collateral damage to men and boys, because it requires them to uphold the myth of male superiority, punishing those who can&#039;t or won&#039;t fulfill their role.&lt;br /&gt;
&lt;br /&gt;
The FeministWiki promotes second-wave feminist literature:&lt;br /&gt;
&lt;br /&gt;
* [https://radfem.org/ Radical Feminist Archives]&lt;br /&gt;
&lt;br /&gt;
Further, the FeministWiki promotes and stands in solidarity with the following groups and organizations:&lt;br /&gt;
&lt;br /&gt;
* [http://womensliberationfront.org/ WoLF]: The Women&#039;s Liberation Front&lt;br /&gt;
* [https://feministcurrent.com/ Feminist Current]: Canadian feminist news, commentary, and podcasts&lt;br /&gt;
* [https://nordicmodelnow.org/ Nordic Model Now]: Educational movement for the abolition of prostitution&lt;br /&gt;
* [http://www.spaceintl.org/ SPACE International]: Survivors of Prostitution Abuse Calling for Enlightenment&lt;br /&gt;
* [https://womansplaceuk.org/ Women&#039;s Place UK]: Women&#039;s campaigning group scrutinizing gender self-identification&lt;br /&gt;
* [https://pussychurchofmodernwitchcraft.com/ The Pussy Church of Modern Witchcraft]: Lesbian-led Church for Women and Girls&lt;br /&gt;
&lt;br /&gt;
== Who&#039;s behind the project? ==&lt;br /&gt;
&lt;br /&gt;
The FeministWiki belongs to the community.  However, the technical infrastructure is managed by [[FeministWiki:Technician|the technician]].  The first technician, who set up the infrastructure, is a male computer programmer who goes by the pseudonym &amp;quot;Social Justice Wizard&amp;quot; (humor intended) on [https://twitter.com/socjuswiz Twitter] and [https://medium.com/@socjuswiz Medium].  The technician has no leadership role in the community.  She or he is solely responsible for managing the infrastructure, offering technical support, and receiving membership requests.  For now, he also pays the bills (a relatively small sum) needed to run the infrastructure.&lt;br /&gt;
&lt;br /&gt;
* [[FeministWiki:Todo|Project Todo]]&lt;br /&gt;
* [[FeministWiki:TechnicalDocumentation|Technical Documentation]]&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title=FeministWiki - A wiki and digital home for the feminist community&lt;br /&gt;
|keywords=feminist feminism wiki feministwiki feminismwiki&lt;br /&gt;
|description=Welcome to the FeministWiki, a wiki about feminism and a digital home for the feminist community&lt;br /&gt;
|twitter:card=summary&lt;br /&gt;
|twitter:site=@FeministWiki&lt;br /&gt;
|twitter:image:src=https://feministwiki.org/w/resources/assets/wiki.png&lt;br /&gt;
|google-site-verification=RZf8hzu0sR32H9OsEXa3-aN3LzE4T2nLPg1s9SrJgJI&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>SocJusWiz</name></author>
	</entry>
	<entry>
		<id>https://feministwiki.org/w/index.php?title=Transwomen_in_women%27s_sports&amp;diff=125</id>
		<title>Transwomen in women&#039;s sports</title>
		<link rel="alternate" type="text/html" href="https://feministwiki.org/w/index.php?title=Transwomen_in_women%27s_sports&amp;diff=125"/>
		<updated>2018-10-20T11:26:16Z</updated>

		<summary type="html">&lt;p&gt;SocJusWiz: Created page with &amp;quot;Since the trans activist notion of &amp;quot;trans women are women&amp;quot; is meant literally, it follows that transwomen would be allowed to partake in women&amp;#039;s sports unde...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Since the [[Trans activism|trans activist]] notion of &amp;quot;trans women are women&amp;quot; is meant literally, it follows that transwomen would be allowed to partake in women&#039;s sports under this logic. When a sports organization adheres to this notion, it poses a problem to women&#039;s sports, since the various physiological differences between the sexes allow peak-performing male athletes to significantly outperform peak-performing female athletes in most disciplines. The extent to which [[hormone replacement therapy]] (HRT) decreases the advantages of being male is yet unstudied, however it is clear that many of the changes the male body undergoes during puberty are not reversed by HRT, such as overall body size, skeletal structure, or the size of the lungs and heart.&lt;br /&gt;
&lt;br /&gt;
== Physiological differences ==&lt;br /&gt;
&lt;br /&gt;
Significant physiological differences between the human sexes that might affect athletic performance include but are not limited to:&lt;br /&gt;
&lt;br /&gt;
* Males weight about 15% more on average&amp;lt;ref&amp;gt;https://www.cdc.gov/nchs/data/ad/ad347.pdf&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Males are about 15 cm (6 in) taller on average&amp;lt;ref&amp;gt;https://www.cdc.gov/nchs/data/ad/ad347.pdf&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Males have denser and therefore more durable bones on average&amp;lt;ref&amp;gt;https://www.ncbi.nlm.nih.gov/pmc/articles/PMC2100202&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Males have stronger tendons and ligaments on average&amp;lt;ref&amp;gt;https://www.ncbi.nlm.nih.gov/pmc/articles/PMC2100202&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Males on avreage have greater total muscle mass&amp;lt;ref&amp;gt;http://jap.physiology.org/content/89/1/81&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Males on average have a greater ratio of muscle mass to total body mass&amp;lt;ref&amp;gt;http://jap.physiology.org/content/89/1/81&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Males have about 56% greater lung volume relative to body mass&amp;lt;ref&amp;gt;Glucksman A (1981). Sexual Dimorphism in Human and Mammalian Biology and Pathology. Academic Press. pp. 66–75.&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Males have larger hearts, with 10% higher red blood cell count and higher haemoglobin, meaning greater oxygen carrying capacity, although the difference is less pronounced among athletes&amp;lt;ref&amp;gt;Glucksman A (1981). Sexual Dimorphism in Human and Mammalian Biology and Pathology. Academic Press. pp. 66–75.&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Males have higher circulating &amp;quot;clotting factors&amp;quot; which allow for faster healing of wounds and higher peripheral pain tolerance&amp;lt;ref&amp;gt;Glucksman A (1981). Sexual Dimorphism in Human and Mammalian Biology and Pathology. Academic Press. pp. 66–75.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The differences in strength can be very significant. For instance, gross measures of body strength suggest that women are approximately only 50% to 60% as strong as men in the upper body, and 60% to 70% as strong in the lower body.&amp;lt;ref&amp;gt;https://www.ncbi.nlm.nih.gov/pubmed/8477683&amp;lt;/ref&amp;gt; A study of hand-grip strength found that even elite female athletes can be surpassed by a man with no athletic training.&amp;lt;ref&amp;gt;https://www.ncbi.nlm.nih.gov/pubmed/17186303&amp;lt;/ref&amp;gt; Another study of sports performance in various disciplines found that males tend to perform 5.5% to 36.8% better, depending on the discipline.&amp;lt;ref&amp;gt;https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3761733/&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notable transwomen in women&#039;s sports ==&lt;br /&gt;
&lt;br /&gt;
=== Fallon Fox ===&lt;br /&gt;
&lt;br /&gt;
Male transgender mixed martial arts (MMA) fighter [[Fallon Fox]] has brutalized a female opponent, Tamikka Brents, causing her to suffer a concussion, an orbital bone fracture, and seven staples to the head, in the first round. After her loss, Brents took to social media to convey her thoughts on the experience of fighting Fox: &amp;quot;I&#039;ve fought a lot of women and have never felt the strength that I felt in a fight as I did that night. I can&#039;t answer whether it&#039;s because she was born a man or not because I&#039;m not a doctor. I can only say, I&#039;ve never felt so overpowered ever in my life and I am an abnormally strong female in my own right,&amp;quot; she stated. &amp;quot;Her grip was different, I could usually move around in the clinch against other females but couldn&#039;t move at all in Fox&#039;s clinch...&amp;quot;&amp;lt;ref&amp;gt;http://www.cagepotato.com/after-being-tkod-by-fallon-fox-tamikka-brents-says-transgender-fighters-in-mma-just-isnt-fair/&amp;lt;/ref&amp;gt; Fox has won 5 out of 6 MMA fights in total.&lt;br /&gt;
&lt;br /&gt;
=== Rachel McKinnon ===&lt;br /&gt;
&lt;br /&gt;
Male cyclist [[Rachel McKinnon]] won the women’s 35-44 sprint during the UCI Masters Track Cycling World Championships in Los Angeles, in October 2018.&amp;lt;ref&amp;gt;https://www.cyclingweekly.com/news/latest-news/rachel-mckinnon-becomes-first-transgender-woman-win-track-world-title-397473&amp;lt;/ref&amp;gt; Third place finisher Jennifer Wagner commented that this was unfair, and later commented on Twitter that she would work on getting the rules changed, which Rachel McKinnon characterized as transphobic.&lt;br /&gt;
&lt;br /&gt;
=== Terry Miller and Andraya Yearwood ===&lt;br /&gt;
&lt;br /&gt;
Two male transgender high school athletes, [[Terry Miller]] and [[Andraya Yearwood]], won first and second place in the Connecticut state championship 100-meter dash in 2018. Miller also won first place in the 200-meter dash.&amp;lt;ref&amp;gt;https://www.wkbn.com/news/national-world/transgender-track-stars-win-state-championship-ignites-debate/1238813951&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Laurel Hubbard ===&lt;br /&gt;
&lt;br /&gt;
New Zealand weightlifter [[Laurel Hubbard]] competed at the heaviest 90 kg+ category at the 2017 Australian International &amp;amp; Australian Open in Melbourne, winning the gold medal.&amp;lt;ref&amp;gt;http://www.heraldsun.com.au/sport/more-sports/laurel-hubbard-wins-female-90kg-division-at-weightliftings-australian-international/news-story/cd4a5fa012eb9a5ceb0281faceea5c7a&amp;lt;/ref&amp;gt; Hubbard qualified for the 2018 Commonwealth Games, but an elbow injury during the competition forced Hubbard&#039;s withdrawal from the event, while however leading the field.&amp;lt;ref&amp;gt;https://www.theguardian.com/sport/2018/apr/09/transgender-weightlifter-laurel-hubbards-eligibility-under-scrutiny&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Michelle Dumaresq ===&lt;br /&gt;
&lt;br /&gt;
Canadian professional downhill mountain-bike competitor [[Michelle Dumaresq]], who is a [[Sexual reassignment surgery|post-operative]] male-born transsexual, won the 2002 Canada Cup series, which qualified Dumaresq for the Canadian National team. In September 2002, Dumaresq co-represented Canada at the World Mountain Bike Championships. However, due to technical issues with the bike, Dumaresq only managed a 24th-place finish in the event. In 2003, Dumaresq won the 2003 Canadian National Championships and again represented Canada in the 2003 World Championships. Dumaresq repeated a Nationals win in 2004 and finished 17th at the 2004 World Mountain Bike Championships held in Les Gets, France.&lt;br /&gt;
&lt;br /&gt;
At the 2006 Canadian Nationals, a protest from one of the competitors during the podium ceremonies brought attention to Dumaresq&#039;s participation in female sports. The boyfriend of second-place finisher Danika Schroeter jumped up onto the podium and helped Schroeter put on a T-shirt reading &#039;100% Pure Woman Champ&#039;. The Canadian Cycling Association suspended Schroeter for her actions. However, the CCA announced that Schroeter&#039;s time off the race course would be served during the off-season when it would have no impact on her.&lt;br /&gt;
&lt;br /&gt;
=== Hannah Mouncey ===&lt;br /&gt;
&lt;br /&gt;
On 27 May 2018, [[Hannah Mouncey]] scored three goals for Melbourne Handball Club in their win over University of Queensland Handball Club for the 2018 Oceanian Open Club Championship.&amp;lt;ref&amp;gt;http://handballvic.org.au/event/5628/&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>SocJusWiz</name></author>
	</entry>
	<entry>
		<id>https://feministwiki.org/w/index.php?title=FeministWiki:Technical_documentation&amp;diff=124</id>
		<title>FeministWiki:Technical documentation</title>
		<link rel="alternate" type="text/html" href="https://feministwiki.org/w/index.php?title=FeministWiki:Technical_documentation&amp;diff=124"/>
		<updated>2018-10-13T16:36:03Z</updated>

		<summary type="html">&lt;p&gt;SocJusWiz: /* Certs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page documents the FeministWiki&#039;s technical infrastructure, the target audience being technicians.&lt;br /&gt;
&lt;br /&gt;
== Hosts ==&lt;br /&gt;
&lt;br /&gt;
The following table documents the basic DNS configuration, and can be used as part of the &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt; file on each server to obviate the need for DNS lookups when connecting to one another.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!IP            !! FQDN                        !! Host          !! Purpose&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||            feministwiki.org ||               || Wiki&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||        www.feministwiki.org || www           || Wiki&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       ldap.feministwiki.org || ldap          || LDAP&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       chat.feministwiki.org || chat          || Web-client for XMPP&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||      forum.feministwiki.org || forum         || BBS Forum&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       mail.feministwiki.org || mail          || Web-client for Mail&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||      files.feministwiki.org || files         || File storage&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       imap.feministwiki.org || imap          || IMAP&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       smtp.feministwiki.org || smtp          || SMTP&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       xmpp.feministwiki.org || xmpp          || XMPP&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||        irc.feministwiki.org || irc           || IRC&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||     social.feministwiki.org || social        || GNU social&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 || add-member.feministwiki.org || add-member    || Add a member&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
(As you can see, all services are on the same server for now.)&lt;br /&gt;
&lt;br /&gt;
== Special DNS entries ==&lt;br /&gt;
&lt;br /&gt;
For CAA:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Type !! Name !! Flag !! Tag   !! Value          &lt;br /&gt;
|-&lt;br /&gt;
|CAA  || @    || 0    || issue || letsencrypt.org&lt;br /&gt;
|-&lt;br /&gt;
|CAA  || @    || 0    || iodef || admin@feministwiki.org&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
For email:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Type !! Host            !! Data                                                                   !! Purpose&lt;br /&gt;
|-&lt;br /&gt;
|MX   || @               || smtp.feministwiki.org                                                  || Mail server&lt;br /&gt;
|-&lt;br /&gt;
|TXT  || @               || v=spf1 mx -all                                                         || SPF&lt;br /&gt;
|-&lt;br /&gt;
|TXT  || mail._domainkey || v=DKIM1; k=rsa; p=&amp;lt;pubkey&amp;gt;                                             || DKIM&lt;br /&gt;
|-&lt;br /&gt;
|TXT  || _dmarc          || v=DMARC1; p=reject; rua=&amp;lt;nowiki&amp;gt;mailto:admin&amp;lt;/nowiki&amp;gt;@feministwiki.org || DMARC&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
For XMPP:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Type !! Service      !! Protocol !! Name !! Destination           !! Port&lt;br /&gt;
|-&lt;br /&gt;
|SRV  || _xmpp-client || _tcp     || @    || xmpp.feministwiki.org || 5222&lt;br /&gt;
|-&lt;br /&gt;
|SRV  || _xmpp-server || _tcp     || @    || xmpp.feministwiki.org || 5269&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Google Site Verification:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Type !! Host            !! Data&lt;br /&gt;
|-&lt;br /&gt;
|TXT  || @               || google-site-verification=&amp;lt;key&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== SSH access ==&lt;br /&gt;
&lt;br /&gt;
FeministWiki hosts have ssh enabled for &amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt; access, but password login is disabled.  You must own a valid private key to log in.&lt;br /&gt;
&lt;br /&gt;
== Git repo of scripts and configuration ==&lt;br /&gt;
&lt;br /&gt;
The following GitHub account hosts repositories with scripts and configuration used by the FeministWiki:&lt;br /&gt;
&lt;br /&gt;
https://github.com/FeministWiki&lt;br /&gt;
&lt;br /&gt;
== Certs ==&lt;br /&gt;
&lt;br /&gt;
The FeministWiki uses LetsEncrypt to acquire digital certificates for encrypted communication.&lt;br /&gt;
&lt;br /&gt;
To ease use of the letsencrypt command, the file &amp;lt;code&amp;gt;/root/etc/domains&amp;lt;/code&amp;gt; contains all the FQDNs used by the FeministWiki, one per line.  Given that, the preferred way to populate the &amp;lt;code&amp;gt;/etc/letsencrypt/live/feministwiki.org&amp;lt;/code&amp;gt; directory with fresh certs is to run the following commands while TCP port 80 is free (e.g. stop Apache first):&lt;br /&gt;
&lt;br /&gt;
  # Use $() to eliminate the terminating newline, if any.&lt;br /&gt;
  domains=$(cat /root/etc/domains)&lt;br /&gt;
  &lt;br /&gt;
  domains=$(printf &#039;%s&#039; &amp;quot;$domains&amp;quot; | tr &#039;\n&#039; &#039;,&#039;)&lt;br /&gt;
  &lt;br /&gt;
  letsencrypt certonly --authenticator standalone -d &amp;quot;$domains&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Additionally, for programs that require a cert file and its private key in a single combined &amp;lt;code&amp;gt;.pem&amp;lt;/code&amp;gt; file, run the following commands to generate such a file:&lt;br /&gt;
&lt;br /&gt;
 cd /etc/letsencrypt/live/feministwiki.org&lt;br /&gt;
 cat fullchain.pem privkey.pem &amp;gt; certbundle.pem&lt;br /&gt;
&lt;br /&gt;
The script &amp;lt;code&amp;gt;/root/bin/letsencrypt-refresh&amp;lt;/code&amp;gt; &#039;&#039;&#039;does all of the above&#039;&#039;&#039;, so in practice you just need to run the following commands to recreate the cert:&lt;br /&gt;
&lt;br /&gt;
 service apache2 stop  # Assuming Apache is running on the machine&lt;br /&gt;
 letsencrypt-refresh&lt;br /&gt;
 service apache2 start&lt;br /&gt;
&lt;br /&gt;
The above can be used not only to refresh a cert that&#039;s running out, but also to add a new domain to the cert.  Just add the domain to &amp;lt;code&amp;gt;/root/etc/domains&amp;lt;/code&amp;gt; and run the commands.&lt;br /&gt;
&lt;br /&gt;
Note that the letsencrypt command doesn&#039;t work well on a &amp;quot;dumb&amp;quot; terminal such as an Emacs shell buffer.  Make sure to run it from within a proper terminal emulator.&lt;br /&gt;
&lt;br /&gt;
=== Readability of the key files ===&lt;br /&gt;
&lt;br /&gt;
To ensure that processes running under unprivileged users can read key files, ensure that the users they run under are members of the &amp;lt;code&amp;gt;ssl-cert&amp;lt;/code&amp;gt; group, which should have read access to the files in &amp;lt;code&amp;gt;/etc/letsencrypt/live/feministwiki.org&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Services ==&lt;br /&gt;
&lt;br /&gt;
This section documents the individual services of the FeministWiki.  They should work regardless of what server they&#039;re on.  I.e. every service could in theory be hosted on its own server.&lt;br /&gt;
&lt;br /&gt;
=== LDAP ===&lt;br /&gt;
&lt;br /&gt;
Host: ldap.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: OpenLDAP&lt;br /&gt;
&lt;br /&gt;
The LDAP service contains the central database of FeministWiki members.  The structure looks like this:&lt;br /&gt;
&lt;br /&gt;
* dc=feministwiki,dc=org&lt;br /&gt;
** ou=members&lt;br /&gt;
*** cn=&#039;&#039;username&#039;&#039; &amp;lt;br/&amp;gt; objectClass: inetOrgPerson &amp;lt;br/&amp;gt; cn: &#039;&#039;username&#039;&#039; &amp;lt;br/&amp;gt; uid: &#039;&#039;username&#039;&#039; &amp;lt;br/&amp;gt; sn: - &amp;lt;br/&amp;gt; userPassword: {SSHA}&#039;&#039;saltedhash&#039;&#039; &amp;lt;br/&amp;gt; mail: &#039;&#039;username&#039;&#039;@feministwiki.org&lt;br /&gt;
*** cn=&#039;&#039;username2&#039;&#039; &amp;lt;br/&amp;gt; objectClass: inetOrgPerson &amp;lt;br/&amp;gt; cn: &#039;&#039;username2&#039;&#039; &amp;lt;br/&amp;gt; uid: &#039;&#039;username2&#039;&#039; &amp;lt;br/&amp;gt; sn: - &amp;lt;br/&amp;gt; userPassword: {SSHA}&#039;&#039;saltedhash2&#039;&#039; &amp;lt;br/&amp;gt; mail: &#039;&#039;username2&#039;&#039;@feministwiki.org &amp;lt;br/&amp;gt; manager: cn=&#039;&#039;username&#039;&#039;,ou=members,dc=feministwiki,dc=org&lt;br /&gt;
*** ...&lt;br /&gt;
** ou=groups&lt;br /&gt;
*** cn=members &amp;lt;br/&amp;gt; objectClass: groupOfNames &amp;lt;br/&amp;gt; cn: members &amp;lt;br/&amp;gt; member: &#039;&#039;username&#039;&#039; &amp;lt;br/&amp;gt; member: &#039;&#039;username2&#039;&#039; &amp;lt;br/&amp;gt; member: ...&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* The &amp;lt;code&amp;gt;cn&amp;lt;/code&amp;gt; (common name) and &amp;lt;code&amp;gt;uid&amp;lt;/code&amp;gt; (user ID) fields both contain the username.  This is because some software is preconfigured to look at &amp;lt;code&amp;gt;uid&amp;lt;/code&amp;gt;, while most look at &amp;lt;code&amp;gt;cn&amp;lt;/code&amp;gt;.&lt;br /&gt;
* The &amp;lt;code&amp;gt;sn&amp;lt;/code&amp;gt; (surname) field simply contains a minus character as a placeholder, because it&#039;s a mandatory field.&lt;br /&gt;
* The &amp;lt;code&amp;gt;manager&amp;lt;/code&amp;gt; field is optional and we use it to record the member who added the member in question.&lt;br /&gt;
&lt;br /&gt;
To make sure passwords are stored with the &amp;lt;code&amp;gt;{SSHA}&amp;lt;/code&amp;gt; scheme rather than plain text, the &amp;lt;code&amp;gt;ppolicy&amp;lt;/code&amp;gt; &amp;quot;password policy overlay&amp;quot; is used.  ZYTRAX has a very nice book about LDAP which documents how to enable this: http://www.zytrax.com/books/ldap/ch6/ppolicy.html&lt;br /&gt;
&lt;br /&gt;
In short, the steps go as follows (these commands &#039;&#039;should&#039;&#039; work verbatim):&lt;br /&gt;
&lt;br /&gt;
 # Add the ppolicy schema&lt;br /&gt;
 ldapadd -Y external -H ldapi:/// &amp;lt; /etc/ldap/schema/ppolicy.ldif&lt;br /&gt;
 &lt;br /&gt;
 # Enable the ppolicy dynamic module&lt;br /&gt;
 ldapmodify -Y external -H ldapi:/// &amp;lt;&amp;lt;EOF&lt;br /&gt;
 dn: cn=module{0},cn=config&lt;br /&gt;
 changetype: modify&lt;br /&gt;
 add: olcModuleLoad&lt;br /&gt;
 olcModuleLoad: ppolicy&lt;br /&gt;
 EOF&lt;br /&gt;
 &lt;br /&gt;
 # Add the ppolicy overlay with olcPPolicyHashCleartext set to TRUE&lt;br /&gt;
 ldapadd -Y external -H ldapi:/// &amp;lt;&amp;lt;EOF&lt;br /&gt;
 dn: olcOverlay=ppolicy,olcDatabase={1}mdb,cn=config&lt;br /&gt;
 objectClass: olcPPolicyConfig&lt;br /&gt;
 olcOverlay: ppolicy&lt;br /&gt;
 olcPPolicyHashCleartext: TRUE&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
=== Wiki ===&lt;br /&gt;
&lt;br /&gt;
Host: feministwiki.org, www.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: MediaWiki&lt;br /&gt;
&lt;br /&gt;
The wiki uses a [https://www.mediawiki.org/wiki/MediaWiki MediaWiki] installation located at &amp;lt;code&amp;gt;/var/www/wiki/w&amp;lt;/code&amp;gt; with the [https://www.mediawiki.org/wiki/Extension:LDAP_Authentication LDAP Authentication] plugin for login management and the &amp;quot;Short URL&amp;quot; feature enabled with help of Apache&#039;s vhost configuration, which is located at &amp;lt;code&amp;gt;/etc/apache2/sites-available/wiki.conf&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The wiki uses the SQL database called &amp;quot;feministwiki&amp;quot; and the SQL user of the same name.&lt;br /&gt;
&lt;br /&gt;
=== Chat (web interface) ===&lt;br /&gt;
&lt;br /&gt;
Host: chat.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: Converse.js&lt;br /&gt;
&lt;br /&gt;
The web-interface for the FeministChat uses the full-screen &amp;quot;Impress&amp;quot; variant of the [https://conversejs.org/ Converse.js] XMPP client.  The hosted HTML and JS files are located at &amp;lt;code&amp;gt;/var/www/chat&amp;lt;/code&amp;gt;, although they load Converse.js as an external script from upstream, which is why the self-hosted HTML and JS are very minimal.&lt;br /&gt;
&lt;br /&gt;
=== Forum ===&lt;br /&gt;
&lt;br /&gt;
Host: forum.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: phpBB&lt;br /&gt;
&lt;br /&gt;
The forum uses a [https://www.phpbb.com/ phpBB] installation located at &amp;lt;code&amp;gt;/var/www/forum&amp;lt;/code&amp;gt;.  Most configuration of phpBB, including LDAP authentication, is done through its administration panel.  The style used by the forum is essentially Basic Orange, though the logo is changed via an inheriting style called FeministWiki.&lt;br /&gt;
&lt;br /&gt;
The forum uses the SQL database called &amp;quot;feministforum&amp;quot; and the SQL user of the same name.&lt;br /&gt;
&lt;br /&gt;
=== Mail (web interface) ===&lt;br /&gt;
&lt;br /&gt;
Host: mail.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: Roundcube&lt;br /&gt;
&lt;br /&gt;
The web-interface for the FeministMail uses the [https://roundcube.net/ Roundcube] mail client, installed at &amp;lt;code&amp;gt;/var/www/mail&amp;lt;/code&amp;gt;.  It uses the standard &amp;quot;larry&amp;quot; style, but with some tweaks to logos and images.&lt;br /&gt;
&lt;br /&gt;
=== Files ===&lt;br /&gt;
&lt;br /&gt;
Host: files.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: Nextcloud&lt;br /&gt;
&lt;br /&gt;
FeministFiles is a [https://nextcloud.com/ Nextcloud] installation with some branding, and LDAP authentication, installed at &amp;lt;code&amp;gt;/var/www/files&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== IMAP ===&lt;br /&gt;
&lt;br /&gt;
Host: imap.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: Dovecot&lt;br /&gt;
&lt;br /&gt;
FeministMail uses the [https://www.dovecot.org/ Dovecot] IMAP server, configured for LDAP authentication and using virtual mail boxes under &amp;lt;code&amp;gt;/home/vmail&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== SMTP ===&lt;br /&gt;
&lt;br /&gt;
Host: smtp.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: Postfix, OpenDKIM&lt;br /&gt;
&lt;br /&gt;
FeministMail uses the [http://www.postfix.org/ Postfix] SMTP server, using SASL authentication through Dovecot, LDAP-based virtual mail boxes under &amp;lt;code&amp;gt;/home/vmail&amp;lt;/code&amp;gt;, and DKIM signing via OpenDKIM.  Send a mail to a Gmail account and use the &amp;quot;Show original&amp;quot; feature of Gmail to see if the mail passes SPF, DKIM, and DMARC tests.&lt;br /&gt;
&lt;br /&gt;
There are also various tools on the web to automatically test the DNS settings for correctness, to check if the domain/IP is on blacklists, etc., which you can find via Google.  All in all, FeministMail is probably the most complicated service of the FeministWiki, as far as technical background goes.&lt;br /&gt;
&lt;br /&gt;
=== XMPP ===&lt;br /&gt;
&lt;br /&gt;
Host: xmpp.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: ejabberd&lt;br /&gt;
&lt;br /&gt;
FeministChat uses the [https://www.ejabberd.im/ ejabberd] XMPP server, configured to use LDAP authentication and an LDAP-based shared roster group for all members.&lt;br /&gt;
&lt;br /&gt;
=== IRC ===&lt;br /&gt;
&lt;br /&gt;
Host: irc.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: InspIRCd&lt;br /&gt;
&lt;br /&gt;
FeministIRC uses the [http://www.inspircd.org/ InspIRCd] IRC server with the &amp;lt;code&amp;gt;ldapauth&amp;lt;/code&amp;gt; module for LDAP authentication.&lt;br /&gt;
&lt;br /&gt;
=== Add a member ===&lt;br /&gt;
&lt;br /&gt;
Host: add-member.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: custom&lt;br /&gt;
&lt;br /&gt;
The page to add a new member, hosted at &amp;lt;code&amp;gt;/var/www/add-member&amp;lt;/code&amp;gt;, uses a bit of self-written HTML, PHP, and a setuid-root C program to invoke the shell script located at &amp;lt;code&amp;gt;/root/bin/fw-adduser&amp;lt;/code&amp;gt; with root privileges.&lt;/div&gt;</summary>
		<author><name>SocJusWiz</name></author>
	</entry>
	<entry>
		<id>https://feministwiki.org/w/index.php?title=FeministWiki:Todo&amp;diff=123</id>
		<title>FeministWiki:Todo</title>
		<link rel="alternate" type="text/html" href="https://feministwiki.org/w/index.php?title=FeministWiki:Todo&amp;diff=123"/>
		<updated>2018-10-07T09:46:32Z</updated>

		<summary type="html">&lt;p&gt;SocJusWiz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Implement single sign-on&lt;br /&gt;
* Add blogs (WP?)&lt;br /&gt;
* Add mailing lists&lt;br /&gt;
* Create newsletter&lt;br /&gt;
* Add Mastodon&lt;br /&gt;
* Add calendar&lt;br /&gt;
* Add Diaspora?&lt;br /&gt;
* Import Wikipedia features (infoboxes, citations)&lt;/div&gt;</summary>
		<author><name>SocJusWiz</name></author>
	</entry>
	<entry>
		<id>https://feministwiki.org/w/index.php?title=Main_Page&amp;diff=122</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://feministwiki.org/w/index.php?title=Main_Page&amp;diff=122"/>
		<updated>2018-09-30T15:04:54Z</updated>

		<summary type="html">&lt;p&gt;SocJusWiz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float: right&amp;quot;&lt;br /&gt;
! Services&lt;br /&gt;
|-&lt;br /&gt;
| [https://chat.feministwiki.org/ FeministChat]&lt;br /&gt;
|-&lt;br /&gt;
| [https://forum.feministwiki.org/ FeministForum]&lt;br /&gt;
|-&lt;br /&gt;
| [https://mail.feministwiki.org/ FeministMail]&lt;br /&gt;
|-&lt;br /&gt;
| [https://files.feministwiki.org/ FeministFiles]&lt;br /&gt;
|-&lt;br /&gt;
| [[FeministWiki:Services#FeministIRC|FeministIRC]]&lt;br /&gt;
|-&lt;br /&gt;
| [https://add-member.feministwiki.org/ Add a member]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Welcome to &#039;&#039;&#039;FeministWiki&#039;&#039;&#039;, a wiki and a digital home for the feminist community.&lt;br /&gt;
&lt;br /&gt;
A wiki is a knowledge-base like an encyclopedia, but managed by the public.  The FeministWiki specializes on feminism, and is managed by feminists and their supporters.  Further, the FeministWiki platform offers an integrated &amp;quot;digital home&amp;quot; for feminists, consisting of a chat, forum, email accounts (&#039;&#039;janedoe@feministwiki.org&#039;&#039;), per-member and shared file storage, and more.  To become a member, all you need to do is contact an existing member and let them know about your commitment to the feminist cause.  You can also contact the project&#039;s technician at [mailto:admin@feministwiki.org admin@feministwiki.org] or [https://twitter.com/FeministWiki @FeministWiki] on Twitter.&lt;br /&gt;
&lt;br /&gt;
Once you are a member, you will be given a username and password with which you can log in to all FeministWiki services.  If you want more detailed information, you can read the [[FeministWiki:Membership|details about membership]] or [[FeministWiki:Services|details about the services]].  For an introduction to wiki editing, see [[FeministWiki:Help|our small help page]] or the bigger [https://www.mediawiki.org/wiki/Help:Contents MediaWiki help page].&lt;br /&gt;
&lt;br /&gt;
Heads up: &#039;&#039;&#039;the FeministWiki needs you&#039;&#039;&#039;.  All of the technical infrastructure of the FeministWiki is only useful if there&#039;s a community making use of it, and content on the wiki doesn&#039;t write itself!  Be bold, don&#039;t shy off of asking for membership, and let the community and the world benefit from your added knowledge.  You can become a member even if you have no intention to contribute to the actual wiki; feel free to chat away with other members, discuss matters important to you on the forum, or use the file storage to have a central place to store your favorite information-material on feminism.&lt;br /&gt;
&lt;br /&gt;
The project is mere months old and the community is yet in an infantile stage, but with your contribution, it will grow.&lt;br /&gt;
&lt;br /&gt;
== What is feminism? ==&lt;br /&gt;
&lt;br /&gt;
There are a variety of ideological groupings which call themselves feminism, and some of them are in contradiction with each other.  As such, a feminist community cannot possibly support all ideologies that have been labelled feminism.  The FeministWiki is for feminists who adhere to a relatively straightforward and classical interpretation of feminism: the liberation of female people from male supremacy.  This is sometimes called &#039;&#039;radical feminism&#039;&#039; because male supremacy is a radical notion for many people, and its elimination requires radical changes to society.&lt;br /&gt;
&lt;br /&gt;
Male supremacy refers to social and political systems that use stereotypes, myths, discrimination, belittlement, violence, and other means to keep female people down, so male people can exploit them for domestic labor, sexual enjoyment, reproductive work, or even unearned emotional support.  While male supremacy primarily targets women and girls for exploitation, it also causes collateral damage to men and boys, because it requires them to uphold the myth of male superiority, punishing those who can&#039;t or won&#039;t fulfill their role.&lt;br /&gt;
&lt;br /&gt;
The FeministWiki promotes second-wave feminist literature:&lt;br /&gt;
&lt;br /&gt;
* [https://radfem.org/ Radical Feminist Archives]&lt;br /&gt;
&lt;br /&gt;
Further, the FeministWiki promotes and stands in solidarity with the following groups and organizations:&lt;br /&gt;
&lt;br /&gt;
* [http://womensliberationfront.org/ WoLF]: The Women&#039;s Liberation Front&lt;br /&gt;
* [https://feministcurrent.com/ Feminist Current]: Canadian feminist news, commentary, and podcasts&lt;br /&gt;
* [https://nordicmodelnow.org/ Nordic Model Now]: Educational movement for the abolition of prostitution&lt;br /&gt;
* [http://www.spaceintl.org/ SPACE International]: Survivors of Prostitution Abuse Calling for Enlightenment&lt;br /&gt;
* [https://womansplaceuk.org/ Women&#039;s Place UK]: Women&#039;s campaigning group scrutinizing gender self-identification&lt;br /&gt;
* [https://pussychurchofmodernwitchcraft.com/ The Pussy Church of Modern Witchcraft]: Lesbian-led Church for Women and Girls&lt;br /&gt;
&lt;br /&gt;
== Who&#039;s behind the project? ==&lt;br /&gt;
&lt;br /&gt;
The FeministWiki belongs to the community.  However, the technical infrastructure is managed by [[FeministWiki:Technician|the technician]].  The first technician, who set up the infrastructure, is a male computer programmer who goes by the pseudonym &amp;quot;Social Justice Wizard&amp;quot; (humor intended) on [https://twitter.com/socjuswiz Twitter] and [https://medium.com/@socjuswiz Medium].  The technician has no leadership role in the community.  She or he is solely responsible for managing the infrastructure, offering technical support, and receiving membership requests.  For now, he also pays the bills (a relatively small sum) needed to run the infrastructure.&lt;br /&gt;
&lt;br /&gt;
* [[FeministWiki:Todo|Project Todo]]&lt;br /&gt;
* [[FeministWiki:TechnicalDocumentation|Technical Documentation]]&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title=FeministWiki - A wiki and digital home for the feminist community&lt;br /&gt;
|keywords=feminist feminism wiki feministwiki feminismwiki&lt;br /&gt;
|description=Welcome to the FeministWiki, a wiki about feminism and a digital home for the feminist community&lt;br /&gt;
|twitter:card=summary&lt;br /&gt;
|twitter:site=@FeministWiki&lt;br /&gt;
|twitter:image:src=https://feministwiki.org/w/resources/assets/wiki.png&lt;br /&gt;
|google-site-verification=RZf8hzu0sR32H9OsEXa3-aN3LzE4T2nLPg1s9SrJgJI&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>SocJusWiz</name></author>
	</entry>
	<entry>
		<id>https://feministwiki.org/w/index.php?title=FeministWiki:Technical_documentation&amp;diff=121</id>
		<title>FeministWiki:Technical documentation</title>
		<link rel="alternate" type="text/html" href="https://feministwiki.org/w/index.php?title=FeministWiki:Technical_documentation&amp;diff=121"/>
		<updated>2018-09-30T14:14:47Z</updated>

		<summary type="html">&lt;p&gt;SocJusWiz: /* Special DNS entries */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page documents the FeministWiki&#039;s technical infrastructure, the target audience being technicians.&lt;br /&gt;
&lt;br /&gt;
== Hosts ==&lt;br /&gt;
&lt;br /&gt;
The following table documents the basic DNS configuration, and can be used as part of the &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt; file on each server to obviate the need for DNS lookups when connecting to one another.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!IP            !! FQDN                        !! Host          !! Purpose&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||            feministwiki.org ||               || Wiki&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||        www.feministwiki.org || www           || Wiki&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       ldap.feministwiki.org || ldap          || LDAP&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       chat.feministwiki.org || chat          || Web-client for XMPP&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||      forum.feministwiki.org || forum         || BBS Forum&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       mail.feministwiki.org || mail          || Web-client for Mail&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||      files.feministwiki.org || files         || File storage&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       imap.feministwiki.org || imap          || IMAP&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       smtp.feministwiki.org || smtp          || SMTP&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       xmpp.feministwiki.org || xmpp          || XMPP&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||        irc.feministwiki.org || irc           || IRC&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||     social.feministwiki.org || social        || GNU social&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 || add-member.feministwiki.org || add-member    || Add a member&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
(As you can see, all services are on the same server for now.)&lt;br /&gt;
&lt;br /&gt;
== Special DNS entries ==&lt;br /&gt;
&lt;br /&gt;
For CAA:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Type !! Name !! Flag !! Tag   !! Value          &lt;br /&gt;
|-&lt;br /&gt;
|CAA  || @    || 0    || issue || letsencrypt.org&lt;br /&gt;
|-&lt;br /&gt;
|CAA  || @    || 0    || iodef || admin@feministwiki.org&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
For email:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Type !! Host            !! Data                                                                   !! Purpose&lt;br /&gt;
|-&lt;br /&gt;
|MX   || @               || smtp.feministwiki.org                                                  || Mail server&lt;br /&gt;
|-&lt;br /&gt;
|TXT  || @               || v=spf1 mx -all                                                         || SPF&lt;br /&gt;
|-&lt;br /&gt;
|TXT  || mail._domainkey || v=DKIM1; k=rsa; p=&amp;lt;pubkey&amp;gt;                                             || DKIM&lt;br /&gt;
|-&lt;br /&gt;
|TXT  || _dmarc          || v=DMARC1; p=reject; rua=&amp;lt;nowiki&amp;gt;mailto:admin&amp;lt;/nowiki&amp;gt;@feministwiki.org || DMARC&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
For XMPP:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Type !! Service      !! Protocol !! Name !! Destination           !! Port&lt;br /&gt;
|-&lt;br /&gt;
|SRV  || _xmpp-client || _tcp     || @    || xmpp.feministwiki.org || 5222&lt;br /&gt;
|-&lt;br /&gt;
|SRV  || _xmpp-server || _tcp     || @    || xmpp.feministwiki.org || 5269&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Google Site Verification:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Type !! Host            !! Data&lt;br /&gt;
|-&lt;br /&gt;
|TXT  || @               || google-site-verification=&amp;lt;key&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== SSH access ==&lt;br /&gt;
&lt;br /&gt;
FeministWiki hosts have ssh enabled for &amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt; access, but password login is disabled.  You must own a valid private key to log in.&lt;br /&gt;
&lt;br /&gt;
== Git repo of scripts and configuration ==&lt;br /&gt;
&lt;br /&gt;
The following GitHub account hosts repositories with scripts and configuration used by the FeministWiki:&lt;br /&gt;
&lt;br /&gt;
https://github.com/FeministWiki&lt;br /&gt;
&lt;br /&gt;
== Certs ==&lt;br /&gt;
&lt;br /&gt;
The FeministWiki uses LetsEncrypt to acquire digital certificates for encrypted communication.&lt;br /&gt;
&lt;br /&gt;
To ease use of the letsencrypt command, the file &amp;lt;code&amp;gt;/root/etc/domains&amp;lt;/code&amp;gt; contains all the FQDNs used by the FeministWiki, one per line.  Given that, the preferred way to populate the &amp;lt;code&amp;gt;/etc/letsencrypt/live/feministwiki.org&amp;lt;/code&amp;gt; directory with fresh certs is to run the following command while TCP port 80 is free (e.g. stop Apache first):&lt;br /&gt;
&lt;br /&gt;
 letsencrypt certonly --authenticator standalone -d &amp;quot;$(tr &#039;\n&#039; &#039;,&#039; &amp;lt; /root/etc/domains)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Additionally, for programs that require a cert file and its private key in a single combined &amp;lt;code&amp;gt;.pem&amp;lt;/code&amp;gt; file, run the following commands to generate such a file:&lt;br /&gt;
&lt;br /&gt;
 cd /etc/letsencrypt/live/feministwiki.org&lt;br /&gt;
 cat fullchain.pem privkey.pem &amp;gt; certbundle.pem&lt;br /&gt;
&lt;br /&gt;
The script &amp;lt;code&amp;gt;/root/bin/letsencrypt-refresh&amp;lt;/code&amp;gt; &#039;&#039;&#039;does all of the above&#039;&#039;&#039;, so in practice you just need to run the following commands to recreate the cert:&lt;br /&gt;
&lt;br /&gt;
 service apache2 stop  # Assuming Apache is running on the machine&lt;br /&gt;
 letsencrypt-refresh&lt;br /&gt;
 service apache2 start&lt;br /&gt;
&lt;br /&gt;
The above can be used not only to refresh a cert that&#039;s running out, but also to add a new domain to the cert.  Just add the domain to &amp;lt;code&amp;gt;/root/etc/domains&amp;lt;/code&amp;gt; and run the commands.&lt;br /&gt;
&lt;br /&gt;
Note that the letsencrypt command doesn&#039;t work well on a &amp;quot;dumb&amp;quot; terminal such as an Emacs shell buffer.  Make sure to run it from within a proper terminal emulator.&lt;br /&gt;
&lt;br /&gt;
=== Readability of the key files ===&lt;br /&gt;
&lt;br /&gt;
To ensure that processes running under unprivileged users can read key files, ensure that the users they run under are members of the &amp;lt;code&amp;gt;ssl-cert&amp;lt;/code&amp;gt; group, which should have read access to the files in &amp;lt;code&amp;gt;/etc/letsencrypt/live/feministwiki.org&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Services ==&lt;br /&gt;
&lt;br /&gt;
This section documents the individual services of the FeministWiki.  They should work regardless of what server they&#039;re on.  I.e. every service could in theory be hosted on its own server.&lt;br /&gt;
&lt;br /&gt;
=== LDAP ===&lt;br /&gt;
&lt;br /&gt;
Host: ldap.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: OpenLDAP&lt;br /&gt;
&lt;br /&gt;
The LDAP service contains the central database of FeministWiki members.  The structure looks like this:&lt;br /&gt;
&lt;br /&gt;
* dc=feministwiki,dc=org&lt;br /&gt;
** ou=members&lt;br /&gt;
*** cn=&#039;&#039;username&#039;&#039; &amp;lt;br/&amp;gt; objectClass: inetOrgPerson &amp;lt;br/&amp;gt; cn: &#039;&#039;username&#039;&#039; &amp;lt;br/&amp;gt; uid: &#039;&#039;username&#039;&#039; &amp;lt;br/&amp;gt; sn: - &amp;lt;br/&amp;gt; userPassword: {SSHA}&#039;&#039;saltedhash&#039;&#039; &amp;lt;br/&amp;gt; mail: &#039;&#039;username&#039;&#039;@feministwiki.org&lt;br /&gt;
*** cn=&#039;&#039;username2&#039;&#039; &amp;lt;br/&amp;gt; objectClass: inetOrgPerson &amp;lt;br/&amp;gt; cn: &#039;&#039;username2&#039;&#039; &amp;lt;br/&amp;gt; uid: &#039;&#039;username2&#039;&#039; &amp;lt;br/&amp;gt; sn: - &amp;lt;br/&amp;gt; userPassword: {SSHA}&#039;&#039;saltedhash2&#039;&#039; &amp;lt;br/&amp;gt; mail: &#039;&#039;username2&#039;&#039;@feministwiki.org &amp;lt;br/&amp;gt; manager: cn=&#039;&#039;username&#039;&#039;,ou=members,dc=feministwiki,dc=org&lt;br /&gt;
*** ...&lt;br /&gt;
** ou=groups&lt;br /&gt;
*** cn=members &amp;lt;br/&amp;gt; objectClass: groupOfNames &amp;lt;br/&amp;gt; cn: members &amp;lt;br/&amp;gt; member: &#039;&#039;username&#039;&#039; &amp;lt;br/&amp;gt; member: &#039;&#039;username2&#039;&#039; &amp;lt;br/&amp;gt; member: ...&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* The &amp;lt;code&amp;gt;cn&amp;lt;/code&amp;gt; (common name) and &amp;lt;code&amp;gt;uid&amp;lt;/code&amp;gt; (user ID) fields both contain the username.  This is because some software is preconfigured to look at &amp;lt;code&amp;gt;uid&amp;lt;/code&amp;gt;, while most look at &amp;lt;code&amp;gt;cn&amp;lt;/code&amp;gt;.&lt;br /&gt;
* The &amp;lt;code&amp;gt;sn&amp;lt;/code&amp;gt; (surname) field simply contains a minus character as a placeholder, because it&#039;s a mandatory field.&lt;br /&gt;
* The &amp;lt;code&amp;gt;manager&amp;lt;/code&amp;gt; field is optional and we use it to record the member who added the member in question.&lt;br /&gt;
&lt;br /&gt;
To make sure passwords are stored with the &amp;lt;code&amp;gt;{SSHA}&amp;lt;/code&amp;gt; scheme rather than plain text, the &amp;lt;code&amp;gt;ppolicy&amp;lt;/code&amp;gt; &amp;quot;password policy overlay&amp;quot; is used.  ZYTRAX has a very nice book about LDAP which documents how to enable this: http://www.zytrax.com/books/ldap/ch6/ppolicy.html&lt;br /&gt;
&lt;br /&gt;
In short, the steps go as follows (these commands &#039;&#039;should&#039;&#039; work verbatim):&lt;br /&gt;
&lt;br /&gt;
 # Add the ppolicy schema&lt;br /&gt;
 ldapadd -Y external -H ldapi:/// &amp;lt; /etc/ldap/schema/ppolicy.ldif&lt;br /&gt;
 &lt;br /&gt;
 # Enable the ppolicy dynamic module&lt;br /&gt;
 ldapmodify -Y external -H ldapi:/// &amp;lt;&amp;lt;EOF&lt;br /&gt;
 dn: cn=module{0},cn=config&lt;br /&gt;
 changetype: modify&lt;br /&gt;
 add: olcModuleLoad&lt;br /&gt;
 olcModuleLoad: ppolicy&lt;br /&gt;
 EOF&lt;br /&gt;
 &lt;br /&gt;
 # Add the ppolicy overlay with olcPPolicyHashCleartext set to TRUE&lt;br /&gt;
 ldapadd -Y external -H ldapi:/// &amp;lt;&amp;lt;EOF&lt;br /&gt;
 dn: olcOverlay=ppolicy,olcDatabase={1}mdb,cn=config&lt;br /&gt;
 objectClass: olcPPolicyConfig&lt;br /&gt;
 olcOverlay: ppolicy&lt;br /&gt;
 olcPPolicyHashCleartext: TRUE&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
=== Wiki ===&lt;br /&gt;
&lt;br /&gt;
Host: feministwiki.org, www.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: MediaWiki&lt;br /&gt;
&lt;br /&gt;
The wiki uses a [https://www.mediawiki.org/wiki/MediaWiki MediaWiki] installation located at &amp;lt;code&amp;gt;/var/www/wiki/w&amp;lt;/code&amp;gt; with the [https://www.mediawiki.org/wiki/Extension:LDAP_Authentication LDAP Authentication] plugin for login management and the &amp;quot;Short URL&amp;quot; feature enabled with help of Apache&#039;s vhost configuration, which is located at &amp;lt;code&amp;gt;/etc/apache2/sites-available/wiki.conf&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The wiki uses the SQL database called &amp;quot;feministwiki&amp;quot; and the SQL user of the same name.&lt;br /&gt;
&lt;br /&gt;
=== Chat (web interface) ===&lt;br /&gt;
&lt;br /&gt;
Host: chat.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: Converse.js&lt;br /&gt;
&lt;br /&gt;
The web-interface for the FeministChat uses the full-screen &amp;quot;Impress&amp;quot; variant of the [https://conversejs.org/ Converse.js] XMPP client.  The hosted HTML and JS files are located at &amp;lt;code&amp;gt;/var/www/chat&amp;lt;/code&amp;gt;, although they load Converse.js as an external script from upstream, which is why the self-hosted HTML and JS are very minimal.&lt;br /&gt;
&lt;br /&gt;
=== Forum ===&lt;br /&gt;
&lt;br /&gt;
Host: forum.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: phpBB&lt;br /&gt;
&lt;br /&gt;
The forum uses a [https://www.phpbb.com/ phpBB] installation located at &amp;lt;code&amp;gt;/var/www/forum&amp;lt;/code&amp;gt;.  Most configuration of phpBB, including LDAP authentication, is done through its administration panel.  The style used by the forum is essentially Basic Orange, though the logo is changed via an inheriting style called FeministWiki.&lt;br /&gt;
&lt;br /&gt;
The forum uses the SQL database called &amp;quot;feministforum&amp;quot; and the SQL user of the same name.&lt;br /&gt;
&lt;br /&gt;
=== Mail (web interface) ===&lt;br /&gt;
&lt;br /&gt;
Host: mail.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: Roundcube&lt;br /&gt;
&lt;br /&gt;
The web-interface for the FeministMail uses the [https://roundcube.net/ Roundcube] mail client, installed at &amp;lt;code&amp;gt;/var/www/mail&amp;lt;/code&amp;gt;.  It uses the standard &amp;quot;larry&amp;quot; style, but with some tweaks to logos and images.&lt;br /&gt;
&lt;br /&gt;
=== Files ===&lt;br /&gt;
&lt;br /&gt;
Host: files.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: Nextcloud&lt;br /&gt;
&lt;br /&gt;
FeministFiles is a [https://nextcloud.com/ Nextcloud] installation with some branding, and LDAP authentication, installed at &amp;lt;code&amp;gt;/var/www/files&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== IMAP ===&lt;br /&gt;
&lt;br /&gt;
Host: imap.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: Dovecot&lt;br /&gt;
&lt;br /&gt;
FeministMail uses the [https://www.dovecot.org/ Dovecot] IMAP server, configured for LDAP authentication and using virtual mail boxes under &amp;lt;code&amp;gt;/home/vmail&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== SMTP ===&lt;br /&gt;
&lt;br /&gt;
Host: smtp.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: Postfix, OpenDKIM&lt;br /&gt;
&lt;br /&gt;
FeministMail uses the [http://www.postfix.org/ Postfix] SMTP server, using SASL authentication through Dovecot, LDAP-based virtual mail boxes under &amp;lt;code&amp;gt;/home/vmail&amp;lt;/code&amp;gt;, and DKIM signing via OpenDKIM.  Send a mail to a Gmail account and use the &amp;quot;Show original&amp;quot; feature of Gmail to see if the mail passes SPF, DKIM, and DMARC tests.&lt;br /&gt;
&lt;br /&gt;
There are also various tools on the web to automatically test the DNS settings for correctness, to check if the domain/IP is on blacklists, etc., which you can find via Google.  All in all, FeministMail is probably the most complicated service of the FeministWiki, as far as technical background goes.&lt;br /&gt;
&lt;br /&gt;
=== XMPP ===&lt;br /&gt;
&lt;br /&gt;
Host: xmpp.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: ejabberd&lt;br /&gt;
&lt;br /&gt;
FeministChat uses the [https://www.ejabberd.im/ ejabberd] XMPP server, configured to use LDAP authentication and an LDAP-based shared roster group for all members.&lt;br /&gt;
&lt;br /&gt;
=== IRC ===&lt;br /&gt;
&lt;br /&gt;
Host: irc.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: InspIRCd&lt;br /&gt;
&lt;br /&gt;
FeministIRC uses the [http://www.inspircd.org/ InspIRCd] IRC server with the &amp;lt;code&amp;gt;ldapauth&amp;lt;/code&amp;gt; module for LDAP authentication.&lt;br /&gt;
&lt;br /&gt;
=== Add a member ===&lt;br /&gt;
&lt;br /&gt;
Host: add-member.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: custom&lt;br /&gt;
&lt;br /&gt;
The page to add a new member, hosted at &amp;lt;code&amp;gt;/var/www/add-member&amp;lt;/code&amp;gt;, uses a bit of self-written HTML, PHP, and a setuid-root C program to invoke the shell script located at &amp;lt;code&amp;gt;/root/bin/fw-adduser&amp;lt;/code&amp;gt; with root privileges.&lt;/div&gt;</summary>
		<author><name>SocJusWiz</name></author>
	</entry>
	<entry>
		<id>https://feministwiki.org/w/index.php?title=Black_feminism&amp;diff=120</id>
		<title>Black feminism</title>
		<link rel="alternate" type="text/html" href="https://feministwiki.org/w/index.php?title=Black_feminism&amp;diff=120"/>
		<updated>2018-09-29T19:02:02Z</updated>

		<summary type="html">&lt;p&gt;SocJusWiz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Black feminism&#039;&#039;&#039; refers to ideologies centered on the experiences of Black women.  A central theme in Black feminism is &#039;&#039;intersectionality&#039;&#039;, which refers to the ways gender, race, and other social categories interact to influence an individual&#039;s life outcomes and experiences of oppression.  Prominent Black feminists from the 19th to 21th centuries include [[Anna Julia Cooper]], [[Ida B. Wells]], [[Sojourner Truth]], [[Audre Lorde]], [[Patricia Hill Collins]], Gloria Jean Watkins aka [[bell hooks]], [[Kimberlé Crenshaw]], [[Chimamanda Ngozi Adichie]], and Claire Heuchan aka [[Sister Outrider]].&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
&lt;br /&gt;
Women such as Sojourner Truth, Anna Julia Cooper, and Ida B. Wells exemplified Black feminist activism in the nineteenth century.&lt;br /&gt;
&lt;br /&gt;
In 1851, women’s rights advocate and abolitionist [[Sojourner Truth]] gave a speech at a women’s rights convention in which she challenged both racism and sexism faced by Black women.  No actual transcription of the speech exists, although Marius Robinson, who was present during the speech and who worked with Truth, published the following written version some weeks after the original speech:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
I want to say a few words about this matter. I am a woman&#039;s rights. [sic] I have as much muscle as any man, and can do as much work as any man. I have plowed and reaped and husked and chopped and mowed, and can any man do more than that? I have heard much about the sexes being equal. I can carry as much as any man, and can eat as much too, if I can get it. I am as strong as any man that is now. As for intellect, all I can say is, if a woman have a pint, and a man a quart – why can&#039;t she have her little pint full? You need not be afraid to give us our rights for fear we will take too much, – for we can&#039;t take more than our pint&#039;ll hold. The poor men seems to be all in confusion, and don&#039;t know what to do. Why children, if you have woman&#039;s rights, give it to her and you will feel better. You will have your own rights, and they won&#039;t be so much trouble. I can&#039;t read, but I can hear. I have heard the bible and have learned that Eve caused man to sin. Well, if woman upset the world, do give her a chance to set it right side up again. The Lady has spoken about Jesus, how he never spurned woman from him, and she was right. When Lazarus died, Mary and Martha came to him with faith and love and besought him to raise their brother. And Jesus wept and Lazarus came forth. And how came Jesus into the world? Through God who created him and the woman who bore him. Man, where was your part? But the women are coming up blessed be God and a few of the men are coming up with them. But man is in a tight place, the poor slave is on him, woman is coming on him, he is surely between a hawk and a buzzard.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
About a decade later, women&#039;s rights and abolition activist Gage published a different version, featuring a heavy Southern dialect, recalled from her memory.  Following is her recalling of the speech, with the Southern dialect edited to more common English for easier reading:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
The leaders of the movement trembled on seeing a tall, gaunt black woman in a gray dress and white turban, surmounted with an uncouth sunbonnet, march deliberately into the church, walk with the air of a queen up the aisle, and take her seat upon the pulpit steps. A buzz of disapprobation was heard all over the house, and there fell on the listening ear, &#039;An abolition affair!&amp;quot; &amp;quot;Woman&#039;s rights and niggers!&amp;quot; &amp;quot;I told you so!&amp;quot; &amp;quot;Go it, darkey!&amp;quot; . . Again and again, timorous and trembling ones came to me and said, with earnestness, &amp;quot;Don&#039;t let her speak, Mrs. Gage, it will ruin us. Every newspaper in the land will have our cause mixed up with abolition and niggers, and we shall be utterly denounced.&amp;quot; My only answer was, &amp;quot;We shall see when the time comes.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The second day the work waxed warm. Methodist, Baptist, Episcopal, Presbyterian, and Universalist minister came in to hear and discuss the resolutions presented. One claimed superior rights and privileges for man, on the ground of &amp;quot;superior intellect&amp;quot;; another, because of the &amp;quot;manhood of Christ; if God had desired the equality of woman, He would have given some token of His will through the birth, life, and death of the Saviour.&amp;quot; Another gave us a theological view of the &amp;quot;sin of our first mother.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
There were very few women in those days who dared to &amp;quot;speak in meeting&amp;quot;; and the august teachers of the people were seemingly getting the better of us, while the boys in the galleries, and the sneerers among the pews, were hugely enjoying the discomfiture as they supposed, of the &amp;quot;strong-minded.&amp;quot; Some of the tender-skinned friends were on the point of losing dignity, and the atmosphere betokened a storm. When, slowly from her seat in the corner rose Sojourner Truth, who, till now, had scarcely lifted her head. &amp;quot;Don&#039;t let her speak!&amp;quot; gasped half a dozen in my ear. She moved slowly and solemnly to the front, laid her old bonnet at her feet, and turned her great speaking eyes to me. There was a hissing sound of disapprobation above and below. I rose and announced, &amp;quot;Sojourner Truth,&amp;quot; and begged the audience to keep silence for a few moments.&lt;br /&gt;
&lt;br /&gt;
The tumult subsided at once, and every eye was fixed on this almost Amazon form, which stood nearly six feet high, head erect, and eyes piercing the upper air like one in a dream. At her first word there was a profound hush. She spoke in deep tones, which, though not loud, reached every ear in the house, and away through the throng at the doors and windows.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Well, children, where there is so much racket there must be somethin&#039; out o&#039; kilter.  I think that twixt the niggers of the South and the women of the North, all talkin&#039; about rights, the white man will be in a fix pretty soon.  But what&#039;s all this here talkin&#039; about?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;That man over there say that women need to be helped into carriages, and lifted over ditches, and to have the best place everywhere.  Nobody ever helps me into carriages, or over mud-puddles, or gives me any best place!&amp;quot;  And raising herself to her full height, and her voice to a pitch like rolling thunder, she asked.  &amp;quot;And ain&#039;t I a woman?  Look at me!  Look at my arm! (and she bared her right arm to the shoulder, showing her tremendous muscular power).  I have plowed, and planted, and gathered into barns, and no man could head me!  And ain&#039;t I a woman?  I could work as much and eat as much as a man--when I could get it--and bear the lash as well!  And ain&#039;t I a woman?  I have born thirteen children, and seen &#039;em most all sold off to slavery, and when I cried out with my mother&#039;s grief, none but Jesus heard me!  And ain&#039;t I a woman?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Then they talk &#039;bout this thing in the head; what this they call it?&amp;quot;  (&amp;quot;Intellect,&amp;quot; whispered some one near.)  &amp;quot;That&#039;s it, honey.  What&#039;s that got to do with women&#039;s rights or nigger&#039;s rights?  If my cup won&#039;t hold but a pint, and yours holds a quart, wouldn&#039;t you be mean not to let me have my little half-measure full?&amp;quot;  And she pointed her significant finger, and sent a keen glance at the minister who had made the argument. The cheering was long and loud.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Then that little man in black there, he says women can&#039;t have as much rights as men, &#039;cause Christ wasn&#039;t a woman!  Where did your Christ come from?&amp;quot;  Rolling thunder couldn&#039;t have stilled that crowd, as did those deep, wonderful tones, as she stood there with outstretched arms and eyes of fire.  Raising her voice still louder, she repeated, &amp;quot;Where did your Christ come from?  From God and a woman!  Man had nothin&#039; to do with Him.&amp;quot;  Oh, what a rebuke that was to that little man.&lt;br /&gt;
&lt;br /&gt;
Turning again to another objector, she took up the defense of Mother Eve.  I can not follow her through it all.  It was pointed, and witty, and solemn; eliciting at almost every sentence deafening applause; and she ended by asserting: &amp;quot;If the first woman God ever made was strong enough to turn the world upside down all alone, these women together (and she glanced her eye over the platform) ought to be able to turn it back, and get it right side up again!  And now they&#039;re asking to do it, the men better let &#039;em.&amp;quot;  Long-continued cheering greeted this.  &amp;quot;Obliged to you for hearin&#039; on me, and now ole Sojourner hasn&#039;t got nothin&#039; more to say.&amp;quot;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In 1892 another Black woman, [[Anna Julia Cooper]] published &#039;&#039;A Voice from the South&#039;&#039;, a book in which she described the importance of the voices of Black women for social change.  Another exemplary Black feminist, [[Ida B. Wells]], an activist and journalist, led a crusade against lynching during the 1890s.  The work of these and other Black women shows how Black community politics laid the foundation for social justice toward sexism from Black men, marginalization from White feminists, and disenfranchisement under White male privilege.&lt;br /&gt;
&lt;br /&gt;
== Intersectionality ==&lt;br /&gt;
&lt;br /&gt;
A central theme in black feminism is &#039;&#039;intersectionality&#039;&#039;, which refers to the ways gender, race, and other social categories (such as class, sexual orientation, etc.) interact or &amp;quot;intersect&amp;quot; to influence an individual&#039;s life outcomes and experiences of oppression.  The term was first coined by legal scholar [[Kimberlé Crenshaw]] in 1989, though the concept predates her coining of the term.  &lt;br /&gt;
&lt;br /&gt;
In the 1970s, a group of Black women formed the Combahee River Collective.  They saw intersectionality (as it is called today) as integral to the distinction between their movement and that of White feminism, because “the major source of difficulty in our political work is that we are not just trying to fight oppression on one front or even two, but instead to address a whole range of oppressions”.  During the twentieth century, Black women remained active in social justice movements as Black feminism and intersectionality expanded into academic and professional discourse.  Women like sociologist Patricia Hill Collins, critical race scholar Kimberlé Crenshaw, and writer bell hooks are a few examples.&lt;br /&gt;
&lt;br /&gt;
In recent years, the term intersectionality has frequently been misappropriated by [[Trans activism|transgender activists]], who insist that intersectional feminism must center male people who identify as [[Transwoman|transwomen]] and frequently make comparisons between Black women and transwomen, which some Black women find to be incorrect and racist, since Black women, unlike transwomen, are unambiguously [[female]].&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* https://www.blackfeminisms.com/black-feminism/&lt;br /&gt;
* https://www.blackfeminisms.com/black-feminism-defined/&lt;br /&gt;
* https://en.wikipedia.org/wiki/Ain&#039;t_I_a_Woman?&lt;br /&gt;
* https://en.wikipedia.org/wiki/Intersectionality&lt;br /&gt;
* https://sisteroutrider.wordpress.com/&lt;/div&gt;</summary>
		<author><name>SocJusWiz</name></author>
	</entry>
	<entry>
		<id>https://feministwiki.org/w/index.php?title=Main_Page&amp;diff=119</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://feministwiki.org/w/index.php?title=Main_Page&amp;diff=119"/>
		<updated>2018-09-29T16:41:36Z</updated>

		<summary type="html">&lt;p&gt;SocJusWiz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float: right&amp;quot;&lt;br /&gt;
! Services&lt;br /&gt;
|-&lt;br /&gt;
| [https://chat.feministwiki.org/ FeministChat]&lt;br /&gt;
|-&lt;br /&gt;
| [https://forum.feministwiki.org/ FeministForum]&lt;br /&gt;
|-&lt;br /&gt;
| [https://mail.feministwiki.org/ FeministMail]&lt;br /&gt;
|-&lt;br /&gt;
| [https://files.feministwiki.org/ FeministFiles]&lt;br /&gt;
|-&lt;br /&gt;
| [[FeministWiki:Services#FeministIRC|FeministIRC]]&lt;br /&gt;
|-&lt;br /&gt;
| [https://add-member.feministwiki.org/ Add a member]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Welcome to &#039;&#039;&#039;FeministWiki&#039;&#039;&#039;, a wiki and a digital home for the feminist community.&lt;br /&gt;
&lt;br /&gt;
A wiki is a knowledge-base like an encyclopedia, but managed by the public.  The FeministWiki specializes on feminism, and is managed by feminists and their supporters.  Further, the FeministWiki platform offers an integrated &amp;quot;digital home&amp;quot; for feminists, consisting of a chat, forum, email accounts (&#039;&#039;janedoe@feministwiki.org&#039;&#039;), per-member and shared file storage, and more.  To become a member, all you need to do is contact an existing member and let them know about your commitment to the feminist cause.  You can also contact the project&#039;s technician at [mailto:admin@feministwiki.org admin@feministwiki.org] or [https://twitter.com/FeministWiki @FeministWiki] on Twitter.&lt;br /&gt;
&lt;br /&gt;
Once you are a member, you will be given a username and password with which you can log in to all FeministWiki services.  If you want more detailed information, you can read the [[FeministWiki:Membership|details about membership]] or [[FeministWiki:Services|details about the services]].  For an introduction to wiki editing, see [[FeministWiki:Help|our small help page]] or the bigger [https://www.mediawiki.org/wiki/Help:Contents MediaWiki help page].&lt;br /&gt;
&lt;br /&gt;
Heads up: &#039;&#039;&#039;the FeministWiki needs you&#039;&#039;&#039;.  All of the technical infrastructure of the FeministWiki is only useful if there&#039;s a community making use of it, and content on the wiki doesn&#039;t write itself!  Be bold, don&#039;t shy off of asking for membership, and let the community and the world benefit from your added knowledge.  You can become a member even if you have no intention to contribute to the actual wiki; feel free to chat away with other members, discuss matters important to you on the forum, or use the file storage to have a central place to store your favorite information-material on feminism.&lt;br /&gt;
&lt;br /&gt;
The project is mere months old and the community is yet in an infantile stage, but with your contribution, it will grow.&lt;br /&gt;
&lt;br /&gt;
== What is feminism? ==&lt;br /&gt;
&lt;br /&gt;
There are a variety of ideological groupings which call themselves feminism, and some of them are in contradiction with each other.  As such, a feminist community cannot possibly support all ideologies that have been labelled feminism.  The FeministWiki is for feminists who adhere to a relatively straightforward and classical interpretation of feminism: the liberation of female people from male supremacy.  This is sometimes called &#039;&#039;radical feminism&#039;&#039; because male supremacy is a radical notion for many people, and its elimination requires radical changes to society.&lt;br /&gt;
&lt;br /&gt;
Male supremacy refers to social and political systems that use stereotypes, myths, discrimination, belittlement, violence, and other means to keep female people down, so male people can exploit them for domestic labor, sexual enjoyment, reproductive work, or even unearned emotional support.  While male supremacy primarily targets women and girls for exploitation, it also causes collateral damage to men and boys, because it requires them to uphold the myth of male superiority, punishing those who can&#039;t or won&#039;t fulfill their role.&lt;br /&gt;
&lt;br /&gt;
The FeministWiki promotes second-wave feminist literature:&lt;br /&gt;
&lt;br /&gt;
* [https://radfem.org/ Radical Feminist Archives]&lt;br /&gt;
&lt;br /&gt;
Further, the FeministWiki promotes and stands in solidarity with the following groups and organizations:&lt;br /&gt;
&lt;br /&gt;
* [http://womensliberationfront.org/ WoLF]: The Women&#039;s Liberation Front&lt;br /&gt;
* [https://feministcurrent.com/ Feminist Current]: Canadian feminist news, commentary, and podcasts&lt;br /&gt;
* [https://nordicmodelnow.org/ Nordic Model Now]: Educational movement for the abolition of prostitution&lt;br /&gt;
* [http://www.spaceintl.org/ SPACE International]: Survivors of Prostitution Abuse Calling for Enlightenment&lt;br /&gt;
* [https://womansplaceuk.org/ Women&#039;s Place UK]: Women&#039;s campaigning group scrutinizing gender self-identification&lt;br /&gt;
* [https://pussychurchofmodernwitchcraft.com/ The Pussy Church of Modern Witchcraft]: Lesbian-led Church for Women and Girls&lt;br /&gt;
&lt;br /&gt;
== Who&#039;s behind the project? ==&lt;br /&gt;
&lt;br /&gt;
The FeministWiki belongs to the community.  However, the technical infrastructure is managed by [[FeministWiki:Technician|the technician]].  The first technician, who set up the infrastructure, is a male computer programmer who goes by the pseudonym &amp;quot;Social Justice Wizard&amp;quot; (humor intended) on [https://twitter.com/socjuswiz Twitter] and [https://medium.com/@socjuswiz Medium].  The technician has no leadership role in the community.  She or he is solely responsible for managing the infrastructure, offering technical support, and receiving membership requests.  For now, he also pays the bills (a relatively small sum) needed to run the infrastructure.&lt;br /&gt;
&lt;br /&gt;
* [[FeministWiki:Todo|Project Todo]]&lt;br /&gt;
* [[FeministWiki:TechnicalDocumentation|Technical Documentation]]&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title=FeministWiki - A wiki and digital home for the feminist community&lt;br /&gt;
|keywords=feminist feminism wiki feministwiki feminismwiki&lt;br /&gt;
|description=Welcome to the FeministWiki, a wiki about feminism and a digital home for the feminist community&lt;br /&gt;
|twitter:card=summary&lt;br /&gt;
|twitter:site=@FeministWiki&lt;br /&gt;
|twitter:image:src=https://feministwiki.org/w/resources/assets/wiki.png&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>SocJusWiz</name></author>
	</entry>
	<entry>
		<id>https://feministwiki.org/w/index.php?title=Main_Page&amp;diff=118</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://feministwiki.org/w/index.php?title=Main_Page&amp;diff=118"/>
		<updated>2018-09-29T16:41:24Z</updated>

		<summary type="html">&lt;p&gt;SocJusWiz: /* What is feminism? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float: right&amp;quot;&lt;br /&gt;
! Services&lt;br /&gt;
|-&lt;br /&gt;
| [https://chat.feministwiki.org/ FeministChat]&lt;br /&gt;
|-&lt;br /&gt;
| [https://forum.feministwiki.org/ FeministForum]&lt;br /&gt;
|-&lt;br /&gt;
| [https://mail.feministwiki.org/ FeministMail]&lt;br /&gt;
|-&lt;br /&gt;
| [https://files.feministwiki.org/ FeministFiles]&lt;br /&gt;
|-&lt;br /&gt;
| [[FeministWiki:Services#FeministIRC|FeministIRC]]&lt;br /&gt;
|-&lt;br /&gt;
| [https://add-member.feministwiki.org/ Add a member]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Welcome to &#039;&#039;&#039;FeministWiki&#039;&#039;&#039;, a wiki and digital home for the feminist community.&lt;br /&gt;
&lt;br /&gt;
A wiki is a knowledge-base like an encyclopedia, but managed by the public.  The FeministWiki specializes on feminism, and is managed by feminists and their supporters.  Further, the FeministWiki platform offers an integrated &amp;quot;digital home&amp;quot; for feminists, consisting of a chat, forum, email accounts (&#039;&#039;janedoe@feministwiki.org&#039;&#039;), per-member and shared file storage, and more.  To become a member, all you need to do is contact an existing member and let them know about your commitment to the feminist cause.  You can also contact the project&#039;s technician at [mailto:admin@feministwiki.org admin@feministwiki.org] or [https://twitter.com/FeministWiki @FeministWiki] on Twitter.&lt;br /&gt;
&lt;br /&gt;
Once you are a member, you will be given a username and password with which you can log in to all FeministWiki services.  If you want more detailed information, you can read the [[FeministWiki:Membership|details about membership]] or [[FeministWiki:Services|details about the services]].  For an introduction to wiki editing, see [[FeministWiki:Help|our small help page]] or the bigger [https://www.mediawiki.org/wiki/Help:Contents MediaWiki help page].&lt;br /&gt;
&lt;br /&gt;
Heads up: &#039;&#039;&#039;the FeministWiki needs you&#039;&#039;&#039;.  All of the technical infrastructure of the FeministWiki is only useful if there&#039;s a community making use of it, and content on the wiki doesn&#039;t write itself!  Be bold, don&#039;t shy off of asking for membership, and let the community and the world benefit from your added knowledge.  You can become a member even if you have no intention to contribute to the actual wiki; feel free to chat away with other members, discuss matters important to you on the forum, or use the file storage to have a central place to store your favorite information-material on feminism.&lt;br /&gt;
&lt;br /&gt;
The project is mere months old and the community is yet in an infantile stage, but with your contribution, it will grow.&lt;br /&gt;
&lt;br /&gt;
== What is feminism? ==&lt;br /&gt;
&lt;br /&gt;
There are a variety of ideological groupings which call themselves feminism, and some of them are in contradiction with each other.  As such, a feminist community cannot possibly support all ideologies that have been labelled feminism.  The FeministWiki is for feminists who adhere to a relatively straightforward and classical interpretation of feminism: the liberation of female people from male supremacy.  This is sometimes called &#039;&#039;radical feminism&#039;&#039; because male supremacy is a radical notion for many people, and its elimination requires radical changes to society.&lt;br /&gt;
&lt;br /&gt;
Male supremacy refers to social and political systems that use stereotypes, myths, discrimination, belittlement, violence, and other means to keep female people down, so male people can exploit them for domestic labor, sexual enjoyment, reproductive work, or even unearned emotional support.  While male supremacy primarily targets women and girls for exploitation, it also causes collateral damage to men and boys, because it requires them to uphold the myth of male superiority, punishing those who can&#039;t or won&#039;t fulfill their role.&lt;br /&gt;
&lt;br /&gt;
The FeministWiki promotes second-wave feminist literature:&lt;br /&gt;
&lt;br /&gt;
* [https://radfem.org/ Radical Feminist Archives]&lt;br /&gt;
&lt;br /&gt;
Further, the FeministWiki promotes and stands in solidarity with the following groups and organizations:&lt;br /&gt;
&lt;br /&gt;
* [http://womensliberationfront.org/ WoLF]: The Women&#039;s Liberation Front&lt;br /&gt;
* [https://feministcurrent.com/ Feminist Current]: Canadian feminist news, commentary, and podcasts&lt;br /&gt;
* [https://nordicmodelnow.org/ Nordic Model Now]: Educational movement for the abolition of prostitution&lt;br /&gt;
* [http://www.spaceintl.org/ SPACE International]: Survivors of Prostitution Abuse Calling for Enlightenment&lt;br /&gt;
* [https://womansplaceuk.org/ Women&#039;s Place UK]: Women&#039;s campaigning group scrutinizing gender self-identification&lt;br /&gt;
* [https://pussychurchofmodernwitchcraft.com/ The Pussy Church of Modern Witchcraft]: Lesbian-led Church for Women and Girls&lt;br /&gt;
&lt;br /&gt;
== Who&#039;s behind the project? ==&lt;br /&gt;
&lt;br /&gt;
The FeministWiki belongs to the community.  However, the technical infrastructure is managed by [[FeministWiki:Technician|the technician]].  The first technician, who set up the infrastructure, is a male computer programmer who goes by the pseudonym &amp;quot;Social Justice Wizard&amp;quot; (humor intended) on [https://twitter.com/socjuswiz Twitter] and [https://medium.com/@socjuswiz Medium].  The technician has no leadership role in the community.  She or he is solely responsible for managing the infrastructure, offering technical support, and receiving membership requests.  For now, he also pays the bills (a relatively small sum) needed to run the infrastructure.&lt;br /&gt;
&lt;br /&gt;
* [[FeministWiki:Todo|Project Todo]]&lt;br /&gt;
* [[FeministWiki:TechnicalDocumentation|Technical Documentation]]&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title=FeministWiki - A wiki and digital home for the feminist community&lt;br /&gt;
|keywords=feminist feminism wiki feministwiki feminismwiki&lt;br /&gt;
|description=Welcome to the FeministWiki, a wiki about feminism and a digital home for the feminist community&lt;br /&gt;
|twitter:card=summary&lt;br /&gt;
|twitter:site=@FeministWiki&lt;br /&gt;
|twitter:image:src=https://feministwiki.org/w/resources/assets/wiki.png&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>SocJusWiz</name></author>
	</entry>
	<entry>
		<id>https://feministwiki.org/w/index.php?title=Main_Page&amp;diff=117</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://feministwiki.org/w/index.php?title=Main_Page&amp;diff=117"/>
		<updated>2018-09-29T13:13:11Z</updated>

		<summary type="html">&lt;p&gt;SocJusWiz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float: right&amp;quot;&lt;br /&gt;
! Services&lt;br /&gt;
|-&lt;br /&gt;
| [https://chat.feministwiki.org/ FeministChat]&lt;br /&gt;
|-&lt;br /&gt;
| [https://forum.feministwiki.org/ FeministForum]&lt;br /&gt;
|-&lt;br /&gt;
| [https://mail.feministwiki.org/ FeministMail]&lt;br /&gt;
|-&lt;br /&gt;
| [https://files.feministwiki.org/ FeministFiles]&lt;br /&gt;
|-&lt;br /&gt;
| [[FeministWiki:Services#FeministIRC|FeministIRC]]&lt;br /&gt;
|-&lt;br /&gt;
| [https://add-member.feministwiki.org/ Add a member]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Welcome to &#039;&#039;&#039;FeministWiki&#039;&#039;&#039;, a wiki and digital home for the feminist community.&lt;br /&gt;
&lt;br /&gt;
A wiki is a knowledge-base like an encyclopedia, but managed by the public.  The FeministWiki specializes on feminism, and is managed by feminists and their supporters.  Further, the FeministWiki platform offers an integrated &amp;quot;digital home&amp;quot; for feminists, consisting of a chat, forum, email accounts (&#039;&#039;janedoe@feministwiki.org&#039;&#039;), per-member and shared file storage, and more.  To become a member, all you need to do is contact an existing member and let them know about your commitment to the feminist cause.  You can also contact the project&#039;s technician at [mailto:admin@feministwiki.org admin@feministwiki.org] or [https://twitter.com/FeministWiki @FeministWiki] on Twitter.&lt;br /&gt;
&lt;br /&gt;
Once you are a member, you will be given a username and password with which you can log in to all FeministWiki services.  If you want more detailed information, you can read the [[FeministWiki:Membership|details about membership]] or [[FeministWiki:Services|details about the services]].  For an introduction to wiki editing, see [[FeministWiki:Help|our small help page]] or the bigger [https://www.mediawiki.org/wiki/Help:Contents MediaWiki help page].&lt;br /&gt;
&lt;br /&gt;
Heads up: &#039;&#039;&#039;the FeministWiki needs you&#039;&#039;&#039;.  All of the technical infrastructure of the FeministWiki is only useful if there&#039;s a community making use of it, and content on the wiki doesn&#039;t write itself!  Be bold, don&#039;t shy off of asking for membership, and let the community and the world benefit from your added knowledge.  You can become a member even if you have no intention to contribute to the actual wiki; feel free to chat away with other members, discuss matters important to you on the forum, or use the file storage to have a central place to store your favorite information-material on feminism.&lt;br /&gt;
&lt;br /&gt;
The project is mere months old and the community is yet in an infantile stage, but with your contribution, it will grow.&lt;br /&gt;
&lt;br /&gt;
== What is feminism? ==&lt;br /&gt;
&lt;br /&gt;
There are a variety of ideological groupings which call themselves feminism, and some of them are in contradiction with each other.  As such, a feminist community cannot possibly support all ideologies that have been labelled feminism.  The FeministWiki is for feminists who adhere to a relatively straightforward and classical interpretation of feminism: the liberation of female people from male supremacy.  This is sometimes also called &#039;&#039;radical feminism&#039;&#039; because male supremacy is a radical notion for many people.&lt;br /&gt;
&lt;br /&gt;
Male supremacy refers to social and political systems that use stereotypes, myths, discrimination, belittlement, violence, and other means to keep female people down, so male people can exploit them for domestic labor, sexual enjoyment, reproductive work, or even unearned emotional support.  While male supremacy primarily targets women and girls for exploitation, it also causes collateral damage to men and boys, because it requires them to uphold the myth of male superiority, punishing those who can&#039;t or won&#039;t fulfill their role.&lt;br /&gt;
&lt;br /&gt;
The FeministWiki promotes second-wave feminist literature:&lt;br /&gt;
&lt;br /&gt;
* [https://radfem.org/ Radical Feminist Archives]&lt;br /&gt;
&lt;br /&gt;
Further, the FeministWiki promotes and stands in solidarity with the following groups and organizations:&lt;br /&gt;
&lt;br /&gt;
* [http://womensliberationfront.org/ WoLF]: The Women&#039;s Liberation Front&lt;br /&gt;
* [https://feministcurrent.com/ Feminist Current]: Canadian feminist news, commentary, and podcasts&lt;br /&gt;
* [https://nordicmodelnow.org/ Nordic Model Now]: Educational movement for the abolition of prostitution&lt;br /&gt;
* [http://www.spaceintl.org/ SPACE International]: Survivors of Prostitution Abuse Calling for Enlightenment&lt;br /&gt;
* [https://womansplaceuk.org/ Women&#039;s Place UK]: Women&#039;s campaigning group scrutinizing gender self-identification&lt;br /&gt;
* [https://pussychurchofmodernwitchcraft.com/ The Pussy Church of Modern Witchcraft]: Lesbian-led Church for Women and Girls&lt;br /&gt;
&lt;br /&gt;
== Who&#039;s behind the project? ==&lt;br /&gt;
&lt;br /&gt;
The FeministWiki belongs to the community.  However, the technical infrastructure is managed by [[FeministWiki:Technician|the technician]].  The first technician, who set up the infrastructure, is a male computer programmer who goes by the pseudonym &amp;quot;Social Justice Wizard&amp;quot; (humor intended) on [https://twitter.com/socjuswiz Twitter] and [https://medium.com/@socjuswiz Medium].  The technician has no leadership role in the community.  She or he is solely responsible for managing the infrastructure, offering technical support, and receiving membership requests.  For now, he also pays the bills (a relatively small sum) needed to run the infrastructure.&lt;br /&gt;
&lt;br /&gt;
* [[FeministWiki:Todo|Project Todo]]&lt;br /&gt;
* [[FeministWiki:TechnicalDocumentation|Technical Documentation]]&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title=FeministWiki - A wiki and digital home for the feminist community&lt;br /&gt;
|keywords=feminist feminism wiki feministwiki feminismwiki&lt;br /&gt;
|description=Welcome to the FeministWiki, a wiki about feminism and a digital home for the feminist community&lt;br /&gt;
|twitter:card=summary&lt;br /&gt;
|twitter:site=@FeministWiki&lt;br /&gt;
|twitter:image:src=https://feministwiki.org/w/resources/assets/wiki.png&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>SocJusWiz</name></author>
	</entry>
	<entry>
		<id>https://feministwiki.org/w/index.php?title=Main_Page&amp;diff=116</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://feministwiki.org/w/index.php?title=Main_Page&amp;diff=116"/>
		<updated>2018-09-29T13:06:09Z</updated>

		<summary type="html">&lt;p&gt;SocJusWiz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float: right&amp;quot;&lt;br /&gt;
! Services&lt;br /&gt;
|-&lt;br /&gt;
| [https://chat.feministwiki.org/ FeministChat]&lt;br /&gt;
|-&lt;br /&gt;
| [https://forum.feministwiki.org/ FeministForum]&lt;br /&gt;
|-&lt;br /&gt;
| [https://mail.feministwiki.org/ FeministMail]&lt;br /&gt;
|-&lt;br /&gt;
| [https://files.feministwiki.org/ FeministFiles]&lt;br /&gt;
|-&lt;br /&gt;
| [[FeministWiki:Services#FeministIRC|FeministIRC]]&lt;br /&gt;
|-&lt;br /&gt;
| [https://add-member.feministwiki.org/ Add a member]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Welcome to &#039;&#039;&#039;FeministWiki&#039;&#039;&#039;, a wiki and digital home for the feminist community.&lt;br /&gt;
&lt;br /&gt;
A wiki is a knowledge-base like an encyclopedia, but managed by the public.  The FeministWiki specializes on feminism, and is managed by feminists and their supporters.  Further, the FeministWiki platform offers an integrated &amp;quot;digital home&amp;quot; for feminists, consisting of a chat, forum, email accounts (&#039;&#039;janedoe@feministwiki.org&#039;&#039;), per-member and shared file storage, and more.  To become a member, all you need to do is contact an existing member and let them know about your commitment to the feminist cause.  You can also contact the project&#039;s technician at [mailto:admin@feministwiki.org admin@feministwiki.org] or [https://twitter.com/FeministWiki @FeministWiki] on Twitter.&lt;br /&gt;
&lt;br /&gt;
Once you are a member, you will be given a username and password with which you can log in to all FeministWiki services.  You can read more about the details of membership [[FeministWiki:Membership|here]], and  more about the details of each service [[FeministWiki:Services|here]].  For an introduction to wiki editing, see [[FeministWiki:Help|our small help page]] or the bigger [https://www.mediawiki.org/wiki/Help:Contents MediaWiki help page].&lt;br /&gt;
&lt;br /&gt;
Heads up: &#039;&#039;&#039;the FeministWiki needs you&#039;&#039;&#039;.  All of the technical infrastructure of the FeministWiki is only useful if there&#039;s a community making use of it, and content on the wiki doesn&#039;t write itself!  Be bold, don&#039;t shy off of asking for membership, and let the community and the world benefit from your added knowledge.  You can become a member even if you have no intention to contribute to the actual wiki; feel free to chat away with other members, discuss matters important to you on the forum, or use the file storage to have a central place to store your favorite information-material on feminism.&lt;br /&gt;
&lt;br /&gt;
The project is mere months old and the community is yet in an infantile stage, but with your contribution, it will grow.&lt;br /&gt;
&lt;br /&gt;
== What is feminism? ==&lt;br /&gt;
&lt;br /&gt;
There are a variety of ideological groupings which call themselves feminism, and some of them are in contradiction with each other.  As such, a feminist community cannot possibly support all ideologies that have been labelled feminism.  The FeministWiki is for feminists who adhere to a relatively straightforward and classical interpretation of feminism: the liberation of female people from male supremacy.  This is sometimes also called &#039;&#039;radical feminism&#039;&#039; because male supremacy is a radical notion for many people.&lt;br /&gt;
&lt;br /&gt;
Male supremacy refers to social and political systems that use stereotypes, myths, discrimination, belittlement, violence, and other means to keep female people down, so male people can exploit them for domestic labor, sexual enjoyment, reproductive work, or even unearned emotional support.  While male supremacy primarily targets women and girls for exploitation, it also causes collateral damage to men and boys, because it requires them to uphold the myth of male superiority, punishing those who can&#039;t or won&#039;t fulfill their role.&lt;br /&gt;
&lt;br /&gt;
The FeministWiki promotes second-wave feminist literature:&lt;br /&gt;
&lt;br /&gt;
* [https://radfem.org/ Radical Feminist Archives]&lt;br /&gt;
&lt;br /&gt;
Further, the FeministWiki promotes and stands in solidarity with the following groups and organizations:&lt;br /&gt;
&lt;br /&gt;
* [http://womensliberationfront.org/ WoLF]: The Women&#039;s Liberation Front&lt;br /&gt;
* [https://feministcurrent.com/ Feminist Current]: Canadian feminist news, commentary, and podcasts&lt;br /&gt;
* [https://nordicmodelnow.org/ Nordic Model Now]: Educational movement for the abolition of prostitution&lt;br /&gt;
* [http://www.spaceintl.org/ SPACE International]: Survivors of Prostitution Abuse Calling for Enlightenment&lt;br /&gt;
* [https://womansplaceuk.org/ Women&#039;s Place UK]: Women&#039;s campaigning group scrutinizing gender self-identification&lt;br /&gt;
* [https://pussychurchofmodernwitchcraft.com/ The Pussy Church of Modern Witchcraft]: Lesbian-led Church for Women and Girls&lt;br /&gt;
&lt;br /&gt;
== Who&#039;s behind the project? ==&lt;br /&gt;
&lt;br /&gt;
The FeministWiki belongs to the community.  However, the technical infrastructure is managed by [[FeministWiki:Technician|the technician]].  The first technician, who set up the infrastructure, is a male computer programmer who goes by the pseudonym &amp;quot;Social Justice Wizard&amp;quot; (humor intended) on [https://twitter.com/socjuswiz Twitter] and [https://medium.com/@socjuswiz Medium].  The technician has no leadership role in the community.  She or he is solely responsible for managing the infrastructure, offering technical support, and receiving membership requests.  For now, he also pays the bills (a relatively small sum) needed to run the infrastructure.  See [[FeministWiki:Todo|here]] for the technician&#039;s personal Todo-list regarding the project, and [[FeministWiki:TechnicalDocumentation|here]] for technical documentation of the infrastructure.&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title=FeministWiki - A wiki and digital home for the feminist community&lt;br /&gt;
|keywords=feminist feminism wiki feministwiki feminismwiki&lt;br /&gt;
|description=Welcome to the FeministWiki, a wiki about feminism and a digital home for the feminist community&lt;br /&gt;
|twitter:card=summary&lt;br /&gt;
|twitter:site=@FeministWiki&lt;br /&gt;
|twitter:image:src=https://feministwiki.org/w/resources/assets/wiki.png&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>SocJusWiz</name></author>
	</entry>
	<entry>
		<id>https://feministwiki.org/w/index.php?title=Main_Page&amp;diff=115</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://feministwiki.org/w/index.php?title=Main_Page&amp;diff=115"/>
		<updated>2018-09-29T11:39:04Z</updated>

		<summary type="html">&lt;p&gt;SocJusWiz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to &#039;&#039;&#039;FeministWiki&#039;&#039;&#039;, a wiki and a digital home for the international Feminist community.&lt;br /&gt;
&lt;br /&gt;
Apart from this wiki, the FeministWiki offers the following services to its members:&lt;br /&gt;
&lt;br /&gt;
* [https://chat.feministwiki.org/ FeministChat]&lt;br /&gt;
* [https://forum.feministwiki.org/ FeministForum]&lt;br /&gt;
* [https://mail.feministwiki.org/ FeministMail]&lt;br /&gt;
* [https://files.feministwiki.org/ FeministFiles]&lt;br /&gt;
* [[FeministWiki:Services#FeministIRC|FeministIRC]]&lt;br /&gt;
* [https://add-member.feministwiki.org/ Add a member]&lt;br /&gt;
&lt;br /&gt;
For detailed information about each service, [[FeministWiki:Services|see here]].&lt;br /&gt;
&lt;br /&gt;
For an introduction to wiki editing, see [[FeministWiki:Help|our small help page]] or the bigger [https://www.mediawiki.org/wiki/Help:Contents MediaWiki help page].&lt;br /&gt;
&lt;br /&gt;
To become a [[FeministWiki:Membership|member]], you need to be added by an existing member.&lt;br /&gt;
&lt;br /&gt;
Alternatively, you can mail the [[FeministWiki:Technician|technician]] at [mailto:admin@feministwiki.org admin@feministwiki.org] and tell a little about what Feminism means to you.&lt;br /&gt;
&lt;br /&gt;
The FeministWiki promotes second-wave feminist literature:&lt;br /&gt;
&lt;br /&gt;
* [https://radfem.org/ Radical Feminist Archives]&lt;br /&gt;
&lt;br /&gt;
The FeministWiki promotes and stands in solidarity with the following groups and organizations:&lt;br /&gt;
&lt;br /&gt;
* [http://womensliberationfront.org/ WoLF]: The Women&#039;s Liberation Front&lt;br /&gt;
* [https://feministcurrent.com/ Feminist Current]: Canadian feminist news, commentary, and podcasts&lt;br /&gt;
* [https://nordicmodelnow.org/ Nordic Model Now]: Educational movement for the abolition of prostitution&lt;br /&gt;
* [http://www.spaceintl.org/ SPACE International]: Survivors of Prostitution Abuse Calling for Enlightenment&lt;br /&gt;
* [https://womansplaceuk.org/ Women&#039;s Place UK]: Women&#039;s campaigning group scrutinizing gender self-identification&lt;br /&gt;
* [https://pussychurchofmodernwitchcraft.com/ The Pussy Church of Modern Witchcraft]: Lesbian-led Church for Women and Girls&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Todo-list of the technician: [[FeministWiki:Todo]]&lt;br /&gt;
&lt;br /&gt;
Documentation of the infrastructure: [[FeministWiki:TechnicalDocumentation]]&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title=FeministWiki - A wiki and digital home for the feminist community&lt;br /&gt;
|keywords=feminist feminism wiki feministwiki feminismwiki&lt;br /&gt;
|description=Welcome to the FeministWiki, a wiki about feminism and a digital home for the feminist community&lt;br /&gt;
|twitter:card=summary&lt;br /&gt;
|twitter:site=@FeministWiki&lt;br /&gt;
|twitter:image:src=https://feministwiki.org/w/resources/assets/wiki.png&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>SocJusWiz</name></author>
	</entry>
	<entry>
		<id>https://feministwiki.org/w/index.php?title=FeministWiki:Technical_documentation&amp;diff=114</id>
		<title>FeministWiki:Technical documentation</title>
		<link rel="alternate" type="text/html" href="https://feministwiki.org/w/index.php?title=FeministWiki:Technical_documentation&amp;diff=114"/>
		<updated>2018-09-24T21:18:56Z</updated>

		<summary type="html">&lt;p&gt;SocJusWiz: /* Special DNS entries */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page documents the FeministWiki&#039;s technical infrastructure, the target audience being technicians.&lt;br /&gt;
&lt;br /&gt;
== Hosts ==&lt;br /&gt;
&lt;br /&gt;
The following table documents the basic DNS configuration, and can be used as part of the &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt; file on each server to obviate the need for DNS lookups when connecting to one another.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!IP            !! FQDN                        !! Host          !! Purpose&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||            feministwiki.org ||               || Wiki&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||        www.feministwiki.org || www           || Wiki&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       ldap.feministwiki.org || ldap          || LDAP&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       chat.feministwiki.org || chat          || Web-client for XMPP&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||      forum.feministwiki.org || forum         || BBS Forum&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       mail.feministwiki.org || mail          || Web-client for Mail&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||      files.feministwiki.org || files         || File storage&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       imap.feministwiki.org || imap          || IMAP&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       smtp.feministwiki.org || smtp          || SMTP&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       xmpp.feministwiki.org || xmpp          || XMPP&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||        irc.feministwiki.org || irc           || IRC&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||     social.feministwiki.org || social        || GNU social&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 || add-member.feministwiki.org || add-member    || Add a member&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
(As you can see, all services are on the same server for now.)&lt;br /&gt;
&lt;br /&gt;
== Special DNS entries ==&lt;br /&gt;
&lt;br /&gt;
For CAA:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Type !! Name !! Flag !! Tag   !! Value          &lt;br /&gt;
|-&lt;br /&gt;
|CAA  || @    || 0    || issue || letsencrypt.org&lt;br /&gt;
|-&lt;br /&gt;
|CAA  || @    || 0    || iodef || admin@feministwiki.org&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
For email:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Type !! Host            !! Data                                                                   !! Purpose&lt;br /&gt;
|-&lt;br /&gt;
|MX   || @               || smtp.feministwiki.org                                                  || Mail server&lt;br /&gt;
|-&lt;br /&gt;
|TXT  || @               || v=spf1 mx -all                                                         || SPF&lt;br /&gt;
|-&lt;br /&gt;
|TXT  || mail._domainkey || v=DKIM1; k=rsa; p=&amp;lt;pubkey&amp;gt;                                             || DKIM&lt;br /&gt;
|-&lt;br /&gt;
|TXT  || _dmarc          || v=DMARC1; p=reject; rua=&amp;lt;nowiki&amp;gt;mailto:admin&amp;lt;/nowiki&amp;gt;@feministwiki.org || DMARC&lt;br /&gt;
|-&lt;br /&gt;
|TXT  || @               || google-site-verification=&amp;lt;key&amp;gt;                                         || Google Site Verification&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
For XMPP:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Type !! Service      !! Protocol !! Name !! Destination           !! Port&lt;br /&gt;
|-&lt;br /&gt;
|SRV  || _xmpp-client || _tcp     || @    || xmpp.feministwiki.org || 5222&lt;br /&gt;
|-&lt;br /&gt;
|SRV  || _xmpp-server || _tcp     || @    || xmpp.feministwiki.org || 5269&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== SSH access ==&lt;br /&gt;
&lt;br /&gt;
FeministWiki hosts have ssh enabled for &amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt; access, but password login is disabled.  You must own a valid private key to log in.&lt;br /&gt;
&lt;br /&gt;
== Git repo of scripts and configuration ==&lt;br /&gt;
&lt;br /&gt;
The following GitHub account hosts repositories with scripts and configuration used by the FeministWiki:&lt;br /&gt;
&lt;br /&gt;
https://github.com/FeministWiki&lt;br /&gt;
&lt;br /&gt;
== Certs ==&lt;br /&gt;
&lt;br /&gt;
The FeministWiki uses LetsEncrypt to acquire digital certificates for encrypted communication.&lt;br /&gt;
&lt;br /&gt;
To ease use of the letsencrypt command, the file &amp;lt;code&amp;gt;/root/etc/domains&amp;lt;/code&amp;gt; contains all the FQDNs used by the FeministWiki, one per line.  Given that, the preferred way to populate the &amp;lt;code&amp;gt;/etc/letsencrypt/live/feministwiki.org&amp;lt;/code&amp;gt; directory with fresh certs is to run the following command while TCP port 80 is free (e.g. stop Apache first):&lt;br /&gt;
&lt;br /&gt;
 letsencrypt certonly --authenticator standalone -d &amp;quot;$(tr &#039;\n&#039; &#039;,&#039; &amp;lt; /root/etc/domains)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Additionally, for programs that require a cert file and its private key in a single combined &amp;lt;code&amp;gt;.pem&amp;lt;/code&amp;gt; file, run the following commands to generate such a file:&lt;br /&gt;
&lt;br /&gt;
 cd /etc/letsencrypt/live/feministwiki.org&lt;br /&gt;
 cat fullchain.pem privkey.pem &amp;gt; certbundle.pem&lt;br /&gt;
&lt;br /&gt;
The script &amp;lt;code&amp;gt;/root/bin/letsencrypt-refresh&amp;lt;/code&amp;gt; &#039;&#039;&#039;does all of the above&#039;&#039;&#039;, so in practice you just need to run the following commands to recreate the cert:&lt;br /&gt;
&lt;br /&gt;
 service apache2 stop  # Assuming Apache is running on the machine&lt;br /&gt;
 letsencrypt-refresh&lt;br /&gt;
 service apache2 start&lt;br /&gt;
&lt;br /&gt;
The above can be used not only to refresh a cert that&#039;s running out, but also to add a new domain to the cert.  Just add the domain to &amp;lt;code&amp;gt;/root/etc/domains&amp;lt;/code&amp;gt; and run the commands.&lt;br /&gt;
&lt;br /&gt;
Note that the letsencrypt command doesn&#039;t work well on a &amp;quot;dumb&amp;quot; terminal such as an Emacs shell buffer.  Make sure to run it from within a proper terminal emulator.&lt;br /&gt;
&lt;br /&gt;
=== Readability of the key files ===&lt;br /&gt;
&lt;br /&gt;
To ensure that processes running under unprivileged users can read key files, ensure that the users they run under are members of the &amp;lt;code&amp;gt;ssl-cert&amp;lt;/code&amp;gt; group, which should have read access to the files in &amp;lt;code&amp;gt;/etc/letsencrypt/live/feministwiki.org&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Services ==&lt;br /&gt;
&lt;br /&gt;
This section documents the individual services of the FeministWiki.  They should work regardless of what server they&#039;re on.  I.e. every service could in theory be hosted on its own server.&lt;br /&gt;
&lt;br /&gt;
=== LDAP ===&lt;br /&gt;
&lt;br /&gt;
Host: ldap.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: OpenLDAP&lt;br /&gt;
&lt;br /&gt;
The LDAP service contains the central database of FeministWiki members.  The structure looks like this:&lt;br /&gt;
&lt;br /&gt;
* dc=feministwiki,dc=org&lt;br /&gt;
** ou=members&lt;br /&gt;
*** cn=&#039;&#039;username&#039;&#039; &amp;lt;br/&amp;gt; objectClass: inetOrgPerson &amp;lt;br/&amp;gt; cn: &#039;&#039;username&#039;&#039; &amp;lt;br/&amp;gt; uid: &#039;&#039;username&#039;&#039; &amp;lt;br/&amp;gt; sn: - &amp;lt;br/&amp;gt; userPassword: {SSHA}&#039;&#039;saltedhash&#039;&#039; &amp;lt;br/&amp;gt; mail: &#039;&#039;username&#039;&#039;@feministwiki.org&lt;br /&gt;
*** cn=&#039;&#039;username2&#039;&#039; &amp;lt;br/&amp;gt; objectClass: inetOrgPerson &amp;lt;br/&amp;gt; cn: &#039;&#039;username2&#039;&#039; &amp;lt;br/&amp;gt; uid: &#039;&#039;username2&#039;&#039; &amp;lt;br/&amp;gt; sn: - &amp;lt;br/&amp;gt; userPassword: {SSHA}&#039;&#039;saltedhash2&#039;&#039; &amp;lt;br/&amp;gt; mail: &#039;&#039;username2&#039;&#039;@feministwiki.org &amp;lt;br/&amp;gt; manager: cn=&#039;&#039;username&#039;&#039;,ou=members,dc=feministwiki,dc=org&lt;br /&gt;
*** ...&lt;br /&gt;
** ou=groups&lt;br /&gt;
*** cn=members &amp;lt;br/&amp;gt; objectClass: groupOfNames &amp;lt;br/&amp;gt; cn: members &amp;lt;br/&amp;gt; member: &#039;&#039;username&#039;&#039; &amp;lt;br/&amp;gt; member: &#039;&#039;username2&#039;&#039; &amp;lt;br/&amp;gt; member: ...&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* The &amp;lt;code&amp;gt;cn&amp;lt;/code&amp;gt; (common name) and &amp;lt;code&amp;gt;uid&amp;lt;/code&amp;gt; (user ID) fields both contain the username.  This is because some software is preconfigured to look at &amp;lt;code&amp;gt;uid&amp;lt;/code&amp;gt;, while most look at &amp;lt;code&amp;gt;cn&amp;lt;/code&amp;gt;.&lt;br /&gt;
* The &amp;lt;code&amp;gt;sn&amp;lt;/code&amp;gt; (surname) field simply contains a minus character as a placeholder, because it&#039;s a mandatory field.&lt;br /&gt;
* The &amp;lt;code&amp;gt;manager&amp;lt;/code&amp;gt; field is optional and we use it to record the member who added the member in question.&lt;br /&gt;
&lt;br /&gt;
To make sure passwords are stored with the &amp;lt;code&amp;gt;{SSHA}&amp;lt;/code&amp;gt; scheme rather than plain text, the &amp;lt;code&amp;gt;ppolicy&amp;lt;/code&amp;gt; &amp;quot;password policy overlay&amp;quot; is used.  ZYTRAX has a very nice book about LDAP which documents how to enable this: http://www.zytrax.com/books/ldap/ch6/ppolicy.html&lt;br /&gt;
&lt;br /&gt;
In short, the steps go as follows (these commands &#039;&#039;should&#039;&#039; work verbatim):&lt;br /&gt;
&lt;br /&gt;
 # Add the ppolicy schema&lt;br /&gt;
 ldapadd -Y external -H ldapi:/// &amp;lt; /etc/ldap/schema/ppolicy.ldif&lt;br /&gt;
 &lt;br /&gt;
 # Enable the ppolicy dynamic module&lt;br /&gt;
 ldapmodify -Y external -H ldapi:/// &amp;lt;&amp;lt;EOF&lt;br /&gt;
 dn: cn=module{0},cn=config&lt;br /&gt;
 changetype: modify&lt;br /&gt;
 add: olcModuleLoad&lt;br /&gt;
 olcModuleLoad: ppolicy&lt;br /&gt;
 EOF&lt;br /&gt;
 &lt;br /&gt;
 # Add the ppolicy overlay with olcPPolicyHashCleartext set to TRUE&lt;br /&gt;
 ldapadd -Y external -H ldapi:/// &amp;lt;&amp;lt;EOF&lt;br /&gt;
 dn: olcOverlay=ppolicy,olcDatabase={1}mdb,cn=config&lt;br /&gt;
 objectClass: olcPPolicyConfig&lt;br /&gt;
 olcOverlay: ppolicy&lt;br /&gt;
 olcPPolicyHashCleartext: TRUE&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
=== Wiki ===&lt;br /&gt;
&lt;br /&gt;
Host: feministwiki.org, www.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: MediaWiki&lt;br /&gt;
&lt;br /&gt;
The wiki uses a [https://www.mediawiki.org/wiki/MediaWiki MediaWiki] installation located at &amp;lt;code&amp;gt;/var/www/wiki/w&amp;lt;/code&amp;gt; with the [https://www.mediawiki.org/wiki/Extension:LDAP_Authentication LDAP Authentication] plugin for login management and the &amp;quot;Short URL&amp;quot; feature enabled with help of Apache&#039;s vhost configuration, which is located at &amp;lt;code&amp;gt;/etc/apache2/sites-available/wiki.conf&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The wiki uses the SQL database called &amp;quot;feministwiki&amp;quot; and the SQL user of the same name.&lt;br /&gt;
&lt;br /&gt;
=== Chat (web interface) ===&lt;br /&gt;
&lt;br /&gt;
Host: chat.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: Converse.js&lt;br /&gt;
&lt;br /&gt;
The web-interface for the FeministChat uses the full-screen &amp;quot;Impress&amp;quot; variant of the [https://conversejs.org/ Converse.js] XMPP client.  The hosted HTML and JS files are located at &amp;lt;code&amp;gt;/var/www/chat&amp;lt;/code&amp;gt;, although they load Converse.js as an external script from upstream, which is why the self-hosted HTML and JS are very minimal.&lt;br /&gt;
&lt;br /&gt;
=== Forum ===&lt;br /&gt;
&lt;br /&gt;
Host: forum.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: phpBB&lt;br /&gt;
&lt;br /&gt;
The forum uses a [https://www.phpbb.com/ phpBB] installation located at &amp;lt;code&amp;gt;/var/www/forum&amp;lt;/code&amp;gt;.  Most configuration of phpBB, including LDAP authentication, is done through its administration panel.  The style used by the forum is essentially Basic Orange, though the logo is changed via an inheriting style called FeministWiki.&lt;br /&gt;
&lt;br /&gt;
The forum uses the SQL database called &amp;quot;feministforum&amp;quot; and the SQL user of the same name.&lt;br /&gt;
&lt;br /&gt;
=== Mail (web interface) ===&lt;br /&gt;
&lt;br /&gt;
Host: mail.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: Roundcube&lt;br /&gt;
&lt;br /&gt;
The web-interface for the FeministMail uses the [https://roundcube.net/ Roundcube] mail client, installed at &amp;lt;code&amp;gt;/var/www/mail&amp;lt;/code&amp;gt;.  It uses the standard &amp;quot;larry&amp;quot; style, but with some tweaks to logos and images.&lt;br /&gt;
&lt;br /&gt;
=== Files ===&lt;br /&gt;
&lt;br /&gt;
Host: files.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: Nextcloud&lt;br /&gt;
&lt;br /&gt;
FeministFiles is a [https://nextcloud.com/ Nextcloud] installation with some branding, and LDAP authentication, installed at &amp;lt;code&amp;gt;/var/www/files&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== IMAP ===&lt;br /&gt;
&lt;br /&gt;
Host: imap.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: Dovecot&lt;br /&gt;
&lt;br /&gt;
FeministMail uses the [https://www.dovecot.org/ Dovecot] IMAP server, configured for LDAP authentication and using virtual mail boxes under &amp;lt;code&amp;gt;/home/vmail&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== SMTP ===&lt;br /&gt;
&lt;br /&gt;
Host: smtp.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: Postfix, OpenDKIM&lt;br /&gt;
&lt;br /&gt;
FeministMail uses the [http://www.postfix.org/ Postfix] SMTP server, using SASL authentication through Dovecot, LDAP-based virtual mail boxes under &amp;lt;code&amp;gt;/home/vmail&amp;lt;/code&amp;gt;, and DKIM signing via OpenDKIM.  Send a mail to a Gmail account and use the &amp;quot;Show original&amp;quot; feature of Gmail to see if the mail passes SPF, DKIM, and DMARC tests.&lt;br /&gt;
&lt;br /&gt;
There are also various tools on the web to automatically test the DNS settings for correctness, to check if the domain/IP is on blacklists, etc., which you can find via Google.  All in all, FeministMail is probably the most complicated service of the FeministWiki, as far as technical background goes.&lt;br /&gt;
&lt;br /&gt;
=== XMPP ===&lt;br /&gt;
&lt;br /&gt;
Host: xmpp.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: ejabberd&lt;br /&gt;
&lt;br /&gt;
FeministChat uses the [https://www.ejabberd.im/ ejabberd] XMPP server, configured to use LDAP authentication and an LDAP-based shared roster group for all members.&lt;br /&gt;
&lt;br /&gt;
=== IRC ===&lt;br /&gt;
&lt;br /&gt;
Host: irc.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: InspIRCd&lt;br /&gt;
&lt;br /&gt;
FeministIRC uses the [http://www.inspircd.org/ InspIRCd] IRC server with the &amp;lt;code&amp;gt;ldapauth&amp;lt;/code&amp;gt; module for LDAP authentication.&lt;br /&gt;
&lt;br /&gt;
=== Add a member ===&lt;br /&gt;
&lt;br /&gt;
Host: add-member.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: custom&lt;br /&gt;
&lt;br /&gt;
The page to add a new member, hosted at &amp;lt;code&amp;gt;/var/www/add-member&amp;lt;/code&amp;gt;, uses a bit of self-written HTML, PHP, and a setuid-root C program to invoke the shell script located at &amp;lt;code&amp;gt;/root/bin/fw-adduser&amp;lt;/code&amp;gt; with root privileges.&lt;/div&gt;</summary>
		<author><name>SocJusWiz</name></author>
	</entry>
	<entry>
		<id>https://feministwiki.org/w/index.php?title=FeministWiki:Technical_documentation&amp;diff=113</id>
		<title>FeministWiki:Technical documentation</title>
		<link rel="alternate" type="text/html" href="https://feministwiki.org/w/index.php?title=FeministWiki:Technical_documentation&amp;diff=113"/>
		<updated>2018-09-24T21:16:49Z</updated>

		<summary type="html">&lt;p&gt;SocJusWiz: /* Special DNS entries */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page documents the FeministWiki&#039;s technical infrastructure, the target audience being technicians.&lt;br /&gt;
&lt;br /&gt;
== Hosts ==&lt;br /&gt;
&lt;br /&gt;
The following table documents the basic DNS configuration, and can be used as part of the &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt; file on each server to obviate the need for DNS lookups when connecting to one another.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!IP            !! FQDN                        !! Host          !! Purpose&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||            feministwiki.org ||               || Wiki&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||        www.feministwiki.org || www           || Wiki&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       ldap.feministwiki.org || ldap          || LDAP&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       chat.feministwiki.org || chat          || Web-client for XMPP&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||      forum.feministwiki.org || forum         || BBS Forum&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       mail.feministwiki.org || mail          || Web-client for Mail&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||      files.feministwiki.org || files         || File storage&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       imap.feministwiki.org || imap          || IMAP&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       smtp.feministwiki.org || smtp          || SMTP&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       xmpp.feministwiki.org || xmpp          || XMPP&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||        irc.feministwiki.org || irc           || IRC&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||     social.feministwiki.org || social        || GNU social&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 || add-member.feministwiki.org || add-member    || Add a member&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
(As you can see, all services are on the same server for now.)&lt;br /&gt;
&lt;br /&gt;
== Special DNS entries ==&lt;br /&gt;
&lt;br /&gt;
For CAA:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Name !! Flag !! Tag   !! Value          &lt;br /&gt;
|-&lt;br /&gt;
|@    || 0    || issue || letsencrypt.org&lt;br /&gt;
|-&lt;br /&gt;
|@    || 0    || iodef || admin@feministwiki.org&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
For email:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Type !! Host            !! Data                                                                   !! Purpose&lt;br /&gt;
|-&lt;br /&gt;
|MX   || @               || smtp.feministwiki.org                                                  || Mail server&lt;br /&gt;
|-&lt;br /&gt;
|TXT  || @               || v=spf1 mx -all                                                         || SPF&lt;br /&gt;
|-&lt;br /&gt;
|TXT  || mail._domainkey || v=DKIM1; k=rsa; p=&amp;lt;pubkey&amp;gt;                                             || DKIM&lt;br /&gt;
|-&lt;br /&gt;
|TXT  || _dmarc          || v=DMARC1; p=reject; rua=&amp;lt;nowiki&amp;gt;mailto:admin&amp;lt;/nowiki&amp;gt;@feministwiki.org || DMARC&lt;br /&gt;
|-&lt;br /&gt;
|TXT  || @               || google-site-verification=&amp;lt;key&amp;gt;                                         || Google Site Verification&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
For XMPP:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Service      !! Protocol !! Name !! Destination           !! Port&lt;br /&gt;
|-&lt;br /&gt;
|_xmpp-client || _tcp     || @    || xmpp.feministwiki.org || 5222&lt;br /&gt;
|-&lt;br /&gt;
|_xmpp-server || _tcp     || @    || xmpp.feministwiki.org || 5269&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== SSH access ==&lt;br /&gt;
&lt;br /&gt;
FeministWiki hosts have ssh enabled for &amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt; access, but password login is disabled.  You must own a valid private key to log in.&lt;br /&gt;
&lt;br /&gt;
== Git repo of scripts and configuration ==&lt;br /&gt;
&lt;br /&gt;
The following GitHub account hosts repositories with scripts and configuration used by the FeministWiki:&lt;br /&gt;
&lt;br /&gt;
https://github.com/FeministWiki&lt;br /&gt;
&lt;br /&gt;
== Certs ==&lt;br /&gt;
&lt;br /&gt;
The FeministWiki uses LetsEncrypt to acquire digital certificates for encrypted communication.&lt;br /&gt;
&lt;br /&gt;
To ease use of the letsencrypt command, the file &amp;lt;code&amp;gt;/root/etc/domains&amp;lt;/code&amp;gt; contains all the FQDNs used by the FeministWiki, one per line.  Given that, the preferred way to populate the &amp;lt;code&amp;gt;/etc/letsencrypt/live/feministwiki.org&amp;lt;/code&amp;gt; directory with fresh certs is to run the following command while TCP port 80 is free (e.g. stop Apache first):&lt;br /&gt;
&lt;br /&gt;
 letsencrypt certonly --authenticator standalone -d &amp;quot;$(tr &#039;\n&#039; &#039;,&#039; &amp;lt; /root/etc/domains)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Additionally, for programs that require a cert file and its private key in a single combined &amp;lt;code&amp;gt;.pem&amp;lt;/code&amp;gt; file, run the following commands to generate such a file:&lt;br /&gt;
&lt;br /&gt;
 cd /etc/letsencrypt/live/feministwiki.org&lt;br /&gt;
 cat fullchain.pem privkey.pem &amp;gt; certbundle.pem&lt;br /&gt;
&lt;br /&gt;
The script &amp;lt;code&amp;gt;/root/bin/letsencrypt-refresh&amp;lt;/code&amp;gt; &#039;&#039;&#039;does all of the above&#039;&#039;&#039;, so in practice you just need to run the following commands to recreate the cert:&lt;br /&gt;
&lt;br /&gt;
 service apache2 stop  # Assuming Apache is running on the machine&lt;br /&gt;
 letsencrypt-refresh&lt;br /&gt;
 service apache2 start&lt;br /&gt;
&lt;br /&gt;
The above can be used not only to refresh a cert that&#039;s running out, but also to add a new domain to the cert.  Just add the domain to &amp;lt;code&amp;gt;/root/etc/domains&amp;lt;/code&amp;gt; and run the commands.&lt;br /&gt;
&lt;br /&gt;
Note that the letsencrypt command doesn&#039;t work well on a &amp;quot;dumb&amp;quot; terminal such as an Emacs shell buffer.  Make sure to run it from within a proper terminal emulator.&lt;br /&gt;
&lt;br /&gt;
=== Readability of the key files ===&lt;br /&gt;
&lt;br /&gt;
To ensure that processes running under unprivileged users can read key files, ensure that the users they run under are members of the &amp;lt;code&amp;gt;ssl-cert&amp;lt;/code&amp;gt; group, which should have read access to the files in &amp;lt;code&amp;gt;/etc/letsencrypt/live/feministwiki.org&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Services ==&lt;br /&gt;
&lt;br /&gt;
This section documents the individual services of the FeministWiki.  They should work regardless of what server they&#039;re on.  I.e. every service could in theory be hosted on its own server.&lt;br /&gt;
&lt;br /&gt;
=== LDAP ===&lt;br /&gt;
&lt;br /&gt;
Host: ldap.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: OpenLDAP&lt;br /&gt;
&lt;br /&gt;
The LDAP service contains the central database of FeministWiki members.  The structure looks like this:&lt;br /&gt;
&lt;br /&gt;
* dc=feministwiki,dc=org&lt;br /&gt;
** ou=members&lt;br /&gt;
*** cn=&#039;&#039;username&#039;&#039; &amp;lt;br/&amp;gt; objectClass: inetOrgPerson &amp;lt;br/&amp;gt; cn: &#039;&#039;username&#039;&#039; &amp;lt;br/&amp;gt; uid: &#039;&#039;username&#039;&#039; &amp;lt;br/&amp;gt; sn: - &amp;lt;br/&amp;gt; userPassword: {SSHA}&#039;&#039;saltedhash&#039;&#039; &amp;lt;br/&amp;gt; mail: &#039;&#039;username&#039;&#039;@feministwiki.org&lt;br /&gt;
*** cn=&#039;&#039;username2&#039;&#039; &amp;lt;br/&amp;gt; objectClass: inetOrgPerson &amp;lt;br/&amp;gt; cn: &#039;&#039;username2&#039;&#039; &amp;lt;br/&amp;gt; uid: &#039;&#039;username2&#039;&#039; &amp;lt;br/&amp;gt; sn: - &amp;lt;br/&amp;gt; userPassword: {SSHA}&#039;&#039;saltedhash2&#039;&#039; &amp;lt;br/&amp;gt; mail: &#039;&#039;username2&#039;&#039;@feministwiki.org &amp;lt;br/&amp;gt; manager: cn=&#039;&#039;username&#039;&#039;,ou=members,dc=feministwiki,dc=org&lt;br /&gt;
*** ...&lt;br /&gt;
** ou=groups&lt;br /&gt;
*** cn=members &amp;lt;br/&amp;gt; objectClass: groupOfNames &amp;lt;br/&amp;gt; cn: members &amp;lt;br/&amp;gt; member: &#039;&#039;username&#039;&#039; &amp;lt;br/&amp;gt; member: &#039;&#039;username2&#039;&#039; &amp;lt;br/&amp;gt; member: ...&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* The &amp;lt;code&amp;gt;cn&amp;lt;/code&amp;gt; (common name) and &amp;lt;code&amp;gt;uid&amp;lt;/code&amp;gt; (user ID) fields both contain the username.  This is because some software is preconfigured to look at &amp;lt;code&amp;gt;uid&amp;lt;/code&amp;gt;, while most look at &amp;lt;code&amp;gt;cn&amp;lt;/code&amp;gt;.&lt;br /&gt;
* The &amp;lt;code&amp;gt;sn&amp;lt;/code&amp;gt; (surname) field simply contains a minus character as a placeholder, because it&#039;s a mandatory field.&lt;br /&gt;
* The &amp;lt;code&amp;gt;manager&amp;lt;/code&amp;gt; field is optional and we use it to record the member who added the member in question.&lt;br /&gt;
&lt;br /&gt;
To make sure passwords are stored with the &amp;lt;code&amp;gt;{SSHA}&amp;lt;/code&amp;gt; scheme rather than plain text, the &amp;lt;code&amp;gt;ppolicy&amp;lt;/code&amp;gt; &amp;quot;password policy overlay&amp;quot; is used.  ZYTRAX has a very nice book about LDAP which documents how to enable this: http://www.zytrax.com/books/ldap/ch6/ppolicy.html&lt;br /&gt;
&lt;br /&gt;
In short, the steps go as follows (these commands &#039;&#039;should&#039;&#039; work verbatim):&lt;br /&gt;
&lt;br /&gt;
 # Add the ppolicy schema&lt;br /&gt;
 ldapadd -Y external -H ldapi:/// &amp;lt; /etc/ldap/schema/ppolicy.ldif&lt;br /&gt;
 &lt;br /&gt;
 # Enable the ppolicy dynamic module&lt;br /&gt;
 ldapmodify -Y external -H ldapi:/// &amp;lt;&amp;lt;EOF&lt;br /&gt;
 dn: cn=module{0},cn=config&lt;br /&gt;
 changetype: modify&lt;br /&gt;
 add: olcModuleLoad&lt;br /&gt;
 olcModuleLoad: ppolicy&lt;br /&gt;
 EOF&lt;br /&gt;
 &lt;br /&gt;
 # Add the ppolicy overlay with olcPPolicyHashCleartext set to TRUE&lt;br /&gt;
 ldapadd -Y external -H ldapi:/// &amp;lt;&amp;lt;EOF&lt;br /&gt;
 dn: olcOverlay=ppolicy,olcDatabase={1}mdb,cn=config&lt;br /&gt;
 objectClass: olcPPolicyConfig&lt;br /&gt;
 olcOverlay: ppolicy&lt;br /&gt;
 olcPPolicyHashCleartext: TRUE&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
=== Wiki ===&lt;br /&gt;
&lt;br /&gt;
Host: feministwiki.org, www.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: MediaWiki&lt;br /&gt;
&lt;br /&gt;
The wiki uses a [https://www.mediawiki.org/wiki/MediaWiki MediaWiki] installation located at &amp;lt;code&amp;gt;/var/www/wiki/w&amp;lt;/code&amp;gt; with the [https://www.mediawiki.org/wiki/Extension:LDAP_Authentication LDAP Authentication] plugin for login management and the &amp;quot;Short URL&amp;quot; feature enabled with help of Apache&#039;s vhost configuration, which is located at &amp;lt;code&amp;gt;/etc/apache2/sites-available/wiki.conf&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The wiki uses the SQL database called &amp;quot;feministwiki&amp;quot; and the SQL user of the same name.&lt;br /&gt;
&lt;br /&gt;
=== Chat (web interface) ===&lt;br /&gt;
&lt;br /&gt;
Host: chat.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: Converse.js&lt;br /&gt;
&lt;br /&gt;
The web-interface for the FeministChat uses the full-screen &amp;quot;Impress&amp;quot; variant of the [https://conversejs.org/ Converse.js] XMPP client.  The hosted HTML and JS files are located at &amp;lt;code&amp;gt;/var/www/chat&amp;lt;/code&amp;gt;, although they load Converse.js as an external script from upstream, which is why the self-hosted HTML and JS are very minimal.&lt;br /&gt;
&lt;br /&gt;
=== Forum ===&lt;br /&gt;
&lt;br /&gt;
Host: forum.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: phpBB&lt;br /&gt;
&lt;br /&gt;
The forum uses a [https://www.phpbb.com/ phpBB] installation located at &amp;lt;code&amp;gt;/var/www/forum&amp;lt;/code&amp;gt;.  Most configuration of phpBB, including LDAP authentication, is done through its administration panel.  The style used by the forum is essentially Basic Orange, though the logo is changed via an inheriting style called FeministWiki.&lt;br /&gt;
&lt;br /&gt;
The forum uses the SQL database called &amp;quot;feministforum&amp;quot; and the SQL user of the same name.&lt;br /&gt;
&lt;br /&gt;
=== Mail (web interface) ===&lt;br /&gt;
&lt;br /&gt;
Host: mail.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: Roundcube&lt;br /&gt;
&lt;br /&gt;
The web-interface for the FeministMail uses the [https://roundcube.net/ Roundcube] mail client, installed at &amp;lt;code&amp;gt;/var/www/mail&amp;lt;/code&amp;gt;.  It uses the standard &amp;quot;larry&amp;quot; style, but with some tweaks to logos and images.&lt;br /&gt;
&lt;br /&gt;
=== Files ===&lt;br /&gt;
&lt;br /&gt;
Host: files.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: Nextcloud&lt;br /&gt;
&lt;br /&gt;
FeministFiles is a [https://nextcloud.com/ Nextcloud] installation with some branding, and LDAP authentication, installed at &amp;lt;code&amp;gt;/var/www/files&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== IMAP ===&lt;br /&gt;
&lt;br /&gt;
Host: imap.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: Dovecot&lt;br /&gt;
&lt;br /&gt;
FeministMail uses the [https://www.dovecot.org/ Dovecot] IMAP server, configured for LDAP authentication and using virtual mail boxes under &amp;lt;code&amp;gt;/home/vmail&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== SMTP ===&lt;br /&gt;
&lt;br /&gt;
Host: smtp.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: Postfix, OpenDKIM&lt;br /&gt;
&lt;br /&gt;
FeministMail uses the [http://www.postfix.org/ Postfix] SMTP server, using SASL authentication through Dovecot, LDAP-based virtual mail boxes under &amp;lt;code&amp;gt;/home/vmail&amp;lt;/code&amp;gt;, and DKIM signing via OpenDKIM.  Send a mail to a Gmail account and use the &amp;quot;Show original&amp;quot; feature of Gmail to see if the mail passes SPF, DKIM, and DMARC tests.&lt;br /&gt;
&lt;br /&gt;
There are also various tools on the web to automatically test the DNS settings for correctness, to check if the domain/IP is on blacklists, etc., which you can find via Google.  All in all, FeministMail is probably the most complicated service of the FeministWiki, as far as technical background goes.&lt;br /&gt;
&lt;br /&gt;
=== XMPP ===&lt;br /&gt;
&lt;br /&gt;
Host: xmpp.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: ejabberd&lt;br /&gt;
&lt;br /&gt;
FeministChat uses the [https://www.ejabberd.im/ ejabberd] XMPP server, configured to use LDAP authentication and an LDAP-based shared roster group for all members.&lt;br /&gt;
&lt;br /&gt;
=== IRC ===&lt;br /&gt;
&lt;br /&gt;
Host: irc.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: InspIRCd&lt;br /&gt;
&lt;br /&gt;
FeministIRC uses the [http://www.inspircd.org/ InspIRCd] IRC server with the &amp;lt;code&amp;gt;ldapauth&amp;lt;/code&amp;gt; module for LDAP authentication.&lt;br /&gt;
&lt;br /&gt;
=== Add a member ===&lt;br /&gt;
&lt;br /&gt;
Host: add-member.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: custom&lt;br /&gt;
&lt;br /&gt;
The page to add a new member, hosted at &amp;lt;code&amp;gt;/var/www/add-member&amp;lt;/code&amp;gt;, uses a bit of self-written HTML, PHP, and a setuid-root C program to invoke the shell script located at &amp;lt;code&amp;gt;/root/bin/fw-adduser&amp;lt;/code&amp;gt; with root privileges.&lt;/div&gt;</summary>
		<author><name>SocJusWiz</name></author>
	</entry>
	<entry>
		<id>https://feministwiki.org/w/index.php?title=Main_Page&amp;diff=112</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://feministwiki.org/w/index.php?title=Main_Page&amp;diff=112"/>
		<updated>2018-09-23T23:08:55Z</updated>

		<summary type="html">&lt;p&gt;SocJusWiz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to &#039;&#039;&#039;FeministWiki&#039;&#039;&#039;, a wiki and a digital home for the international Feminist community.&lt;br /&gt;
&lt;br /&gt;
Apart from this wiki, the FeministWiki offers the following services to its members:&lt;br /&gt;
&lt;br /&gt;
* [https://chat.feministwiki.org/ FeministChat]&lt;br /&gt;
* [https://forum.feministwiki.org/ FeministForum]&lt;br /&gt;
* [https://mail.feministwiki.org/ FeministMail]&lt;br /&gt;
* [https://files.feministwiki.org/ FeministFiles]&lt;br /&gt;
* [[FeministWiki:Services#FeministIRC|FeministIRC]]&lt;br /&gt;
* [https://add-member.feministwiki.org/ Add a member]&lt;br /&gt;
&lt;br /&gt;
For detailed information about each service, [[FeministWiki:Services|see here]].&lt;br /&gt;
&lt;br /&gt;
For an introduction to wiki editing, see [[FeministWiki:Help|our small help page]] or the bigger [https://www.mediawiki.org/wiki/Help:Contents MediaWiki help page].&lt;br /&gt;
&lt;br /&gt;
To become a [[FeministWiki:Membership|member]], you need to be added by an existing member.&lt;br /&gt;
&lt;br /&gt;
Alternatively, you can mail the [[FeministWiki:Technician|technician]] at [mailto:admin@feministwiki.org admin@feministwiki.org] and tell a little about what Feminism means to you.&lt;br /&gt;
&lt;br /&gt;
The FeministWiki promotes second-wave feminist literature:&lt;br /&gt;
&lt;br /&gt;
* [https://radfem.org/ Radical Feminist Archives]&lt;br /&gt;
&lt;br /&gt;
The FeministWiki promotes and stands in solidarity with the following groups and organizations:&lt;br /&gt;
&lt;br /&gt;
* [http://womensliberationfront.org/ WoLF]: The Women&#039;s Liberation Front&lt;br /&gt;
* [https://feministcurrent.com/ Feminist Current]: Canadian feminist news, commentary, and podcasts&lt;br /&gt;
* [https://nordicmodelnow.org/ Nordic Model Now]: Educational movement for the abolition of prostitution&lt;br /&gt;
* [http://www.spaceintl.org/ SPACE International]: Survivors of Prostitution Abuse Calling for Enlightenment&lt;br /&gt;
* [https://womansplaceuk.org/ Women&#039;s Place UK]: Women&#039;s campaigning group scrutinizing gender self-identification&lt;br /&gt;
* [https://pussychurchofmodernwitchcraft.com/ The Pussy Church of Modern Witchcraft]: Lesbian-led Church for Women and Girls&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Todo-list of the technician: [[FeministWiki:Todo]]&lt;br /&gt;
&lt;br /&gt;
Documentation of the infrastructure: [[FeministWiki:TechnicalDocumentation]]&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title=FeministWiki - A wiki and digital home for feminists&lt;br /&gt;
|keywords=feminist feminism wiki feministwiki&lt;br /&gt;
|description=Welcome to the FeministWiki, a wiki about feminism and a digital home for the feminist community&lt;br /&gt;
|twitter:card=summary&lt;br /&gt;
|twitter:site=@FeministWiki&lt;br /&gt;
|twitter:image:src=https://feministwiki.org/w/resources/assets/wiki.png&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>SocJusWiz</name></author>
	</entry>
	<entry>
		<id>https://feministwiki.org/w/index.php?title=Main_Page&amp;diff=111</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://feministwiki.org/w/index.php?title=Main_Page&amp;diff=111"/>
		<updated>2018-09-23T22:07:29Z</updated>

		<summary type="html">&lt;p&gt;SocJusWiz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to &#039;&#039;&#039;FeministWiki&#039;&#039;&#039;, a wiki and a digital home for the international Feminist community.&lt;br /&gt;
&lt;br /&gt;
Apart from this wiki, the FeministWiki offers the following services to its members:&lt;br /&gt;
&lt;br /&gt;
* [https://chat.feministwiki.org/ FeministChat]&lt;br /&gt;
* [https://forum.feministwiki.org/ FeministForum]&lt;br /&gt;
* [https://mail.feministwiki.org/ FeministMail]&lt;br /&gt;
* [https://files.feministwiki.org/ FeministFiles]&lt;br /&gt;
* [[FeministWiki:Services#FeministIRC|FeministIRC]]&lt;br /&gt;
* [https://add-member.feministwiki.org/ Add a member]&lt;br /&gt;
&lt;br /&gt;
For detailed information about each service, [[FeministWiki:Services|see here]].&lt;br /&gt;
&lt;br /&gt;
For an introduction to wiki editing, see [[FeministWiki:Help|our small help page]] or the bigger [https://www.mediawiki.org/wiki/Help:Contents MediaWiki help page].&lt;br /&gt;
&lt;br /&gt;
To become a [[FeministWiki:Membership|member]], you need to be added by an existing member.&lt;br /&gt;
&lt;br /&gt;
Alternatively, you can mail the [[FeministWiki:Technician|technician]] at [mailto:admin@feministwiki.org admin@feministwiki.org] and tell a little about what Feminism means to you.&lt;br /&gt;
&lt;br /&gt;
The FeministWiki promotes second-wave feminist literature:&lt;br /&gt;
&lt;br /&gt;
* [https://radfem.org/ Radical Feminist Archives]&lt;br /&gt;
&lt;br /&gt;
The FeministWiki promotes and stands in solidarity with the following groups and organizations:&lt;br /&gt;
&lt;br /&gt;
* [http://womensliberationfront.org/ WoLF]: The Women&#039;s Liberation Front&lt;br /&gt;
* [https://feministcurrent.com/ Feminist Current]: Canadian feminist news, commentary, and podcasts&lt;br /&gt;
* [https://nordicmodelnow.org/ Nordic Model Now]: Educational movement for the abolition of prostitution&lt;br /&gt;
* [http://www.spaceintl.org/ SPACE International]: Survivors of Prostitution Abuse Calling for Enlightenment&lt;br /&gt;
* [https://womansplaceuk.org/ Women&#039;s Place UK]: Women&#039;s campaigning group scrutinizing gender self-identification&lt;br /&gt;
* [https://pussychurchofmodernwitchcraft.com/ The Pussy Church of Modern Witchcraft]: Lesbian-led Church for Women and Girls&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Todo-list of the technician: [[FeministWiki:Todo]]&lt;br /&gt;
&lt;br /&gt;
Documentation of the infrastructure: [[FeministWiki:TechnicalDocumentation]]&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title=FeministWiki - A wiki and digital home for feminists&lt;br /&gt;
|keywords=feminist feminism wiki feministwiki&lt;br /&gt;
|description=Wiki and digital home for the feminist community&lt;br /&gt;
|twitter:card=summary&lt;br /&gt;
|twitter:site=@FeministWiki&lt;br /&gt;
|twitter:image:src=https://feministwiki.org/w/resources/assets/wiki.png&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>SocJusWiz</name></author>
	</entry>
	<entry>
		<id>https://feministwiki.org/w/index.php?title=FeministWiki:Todo&amp;diff=110</id>
		<title>FeministWiki:Todo</title>
		<link rel="alternate" type="text/html" href="https://feministwiki.org/w/index.php?title=FeministWiki:Todo&amp;diff=110"/>
		<updated>2018-09-23T17:05:08Z</updated>

		<summary type="html">&lt;p&gt;SocJusWiz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Implement single sign-on&lt;br /&gt;
* Add blogs (WP?)&lt;br /&gt;
* Add mailing lists&lt;br /&gt;
* Add Mastodon&lt;br /&gt;
* Add calendar&lt;br /&gt;
* Add Diaspora?&lt;br /&gt;
* Import Wikipedia features (infoboxes, citations)&lt;/div&gt;</summary>
		<author><name>SocJusWiz</name></author>
	</entry>
	<entry>
		<id>https://feministwiki.org/w/index.php?title=FeministWiki:Technical_documentation&amp;diff=109</id>
		<title>FeministWiki:Technical documentation</title>
		<link rel="alternate" type="text/html" href="https://feministwiki.org/w/index.php?title=FeministWiki:Technical_documentation&amp;diff=109"/>
		<updated>2018-09-23T17:03:36Z</updated>

		<summary type="html">&lt;p&gt;SocJusWiz: /* SMTP */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page documents the FeministWiki&#039;s technical infrastructure, the target audience being technicians.&lt;br /&gt;
&lt;br /&gt;
== Hosts ==&lt;br /&gt;
&lt;br /&gt;
The following table documents the basic DNS configuration, and can be used as part of the &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt; file on each server to obviate the need for DNS lookups when connecting to one another.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!IP            !! FQDN                        !! Host          !! Purpose&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||            feministwiki.org ||               || Wiki&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||        www.feministwiki.org || www           || Wiki&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       ldap.feministwiki.org || ldap          || LDAP&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       chat.feministwiki.org || chat          || Web-client for XMPP&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||      forum.feministwiki.org || forum         || BBS Forum&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       mail.feministwiki.org || mail          || Web-client for Mail&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||      files.feministwiki.org || files         || File storage&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       imap.feministwiki.org || imap          || IMAP&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       smtp.feministwiki.org || smtp          || SMTP&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       xmpp.feministwiki.org || xmpp          || XMPP&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||        irc.feministwiki.org || irc           || IRC&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||     social.feministwiki.org || social        || GNU social&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 || add-member.feministwiki.org || add-member    || Add a member&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
(As you can see, all services are on the same server for now.)&lt;br /&gt;
&lt;br /&gt;
== Special DNS entries ==&lt;br /&gt;
&lt;br /&gt;
The following entries are used for email:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Type !! Host            !! Data                                                                   !! Purpose&lt;br /&gt;
|-&lt;br /&gt;
|MX   || @               || smtp.feministwiki.org                                                  || Mail server&lt;br /&gt;
|-&lt;br /&gt;
|TXT  || @               || v=spf1 mx -all                                                         || SPF&lt;br /&gt;
|-&lt;br /&gt;
|TXT  || mail._domainkey || v=DKIM1; k=rsa; p=&amp;lt;pubkey&amp;gt;                                             || DKIM&lt;br /&gt;
|-&lt;br /&gt;
|TXT  || _dmarc          || v=DMARC1; p=reject; rua=&amp;lt;nowiki&amp;gt;mailto:admin&amp;lt;/nowiki&amp;gt;@feministwiki.org || DMARC&lt;br /&gt;
|-&lt;br /&gt;
|TXT  || @               || google-site-verification=&amp;lt;key&amp;gt;                                         || Google Site Verification&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
And the following SRV records for XMPP:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Service      !! Protocol !! Name !! Destination           !! Port&lt;br /&gt;
|-&lt;br /&gt;
|_xmpp-client || _tcp     || @    || xmpp.feministwiki.org || 5222&lt;br /&gt;
|-&lt;br /&gt;
|_xmpp-server || _tcp     || @    || xmpp.feministwiki.org || 5269&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== SSH access ==&lt;br /&gt;
&lt;br /&gt;
FeministWiki hosts have ssh enabled for &amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt; access, but password login is disabled.  You must own a valid private key to log in.&lt;br /&gt;
&lt;br /&gt;
== Git repo of scripts and configuration ==&lt;br /&gt;
&lt;br /&gt;
The following GitHub account hosts repositories with scripts and configuration used by the FeministWiki:&lt;br /&gt;
&lt;br /&gt;
https://github.com/FeministWiki&lt;br /&gt;
&lt;br /&gt;
== Certs ==&lt;br /&gt;
&lt;br /&gt;
The FeministWiki uses LetsEncrypt to acquire digital certificates for encrypted communication.&lt;br /&gt;
&lt;br /&gt;
To ease use of the letsencrypt command, the file &amp;lt;code&amp;gt;/root/etc/domains&amp;lt;/code&amp;gt; contains all the FQDNs used by the FeministWiki, one per line.  Given that, the preferred way to populate the &amp;lt;code&amp;gt;/etc/letsencrypt/live/feministwiki.org&amp;lt;/code&amp;gt; directory with fresh certs is to run the following command while TCP port 80 is free (e.g. stop Apache first):&lt;br /&gt;
&lt;br /&gt;
 letsencrypt certonly --authenticator standalone -d &amp;quot;$(tr &#039;\n&#039; &#039;,&#039; &amp;lt; /root/etc/domains)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Additionally, for programs that require a cert file and its private key in a single combined &amp;lt;code&amp;gt;.pem&amp;lt;/code&amp;gt; file, run the following commands to generate such a file:&lt;br /&gt;
&lt;br /&gt;
 cd /etc/letsencrypt/live/feministwiki.org&lt;br /&gt;
 cat fullchain.pem privkey.pem &amp;gt; certbundle.pem&lt;br /&gt;
&lt;br /&gt;
The script &amp;lt;code&amp;gt;/root/bin/letsencrypt-refresh&amp;lt;/code&amp;gt; &#039;&#039;&#039;does all of the above&#039;&#039;&#039;, so in practice you just need to run the following commands to recreate the cert:&lt;br /&gt;
&lt;br /&gt;
 service apache2 stop  # Assuming Apache is running on the machine&lt;br /&gt;
 letsencrypt-refresh&lt;br /&gt;
 service apache2 start&lt;br /&gt;
&lt;br /&gt;
The above can be used not only to refresh a cert that&#039;s running out, but also to add a new domain to the cert.  Just add the domain to &amp;lt;code&amp;gt;/root/etc/domains&amp;lt;/code&amp;gt; and run the commands.&lt;br /&gt;
&lt;br /&gt;
Note that the letsencrypt command doesn&#039;t work well on a &amp;quot;dumb&amp;quot; terminal such as an Emacs shell buffer.  Make sure to run it from within a proper terminal emulator.&lt;br /&gt;
&lt;br /&gt;
=== Readability of the key files ===&lt;br /&gt;
&lt;br /&gt;
To ensure that processes running under unprivileged users can read key files, ensure that the users they run under are members of the &amp;lt;code&amp;gt;ssl-cert&amp;lt;/code&amp;gt; group, which should have read access to the files in &amp;lt;code&amp;gt;/etc/letsencrypt/live/feministwiki.org&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Services ==&lt;br /&gt;
&lt;br /&gt;
This section documents the individual services of the FeministWiki.  They should work regardless of what server they&#039;re on.  I.e. every service could in theory be hosted on its own server.&lt;br /&gt;
&lt;br /&gt;
=== LDAP ===&lt;br /&gt;
&lt;br /&gt;
Host: ldap.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: OpenLDAP&lt;br /&gt;
&lt;br /&gt;
The LDAP service contains the central database of FeministWiki members.  The structure looks like this:&lt;br /&gt;
&lt;br /&gt;
* dc=feministwiki,dc=org&lt;br /&gt;
** ou=members&lt;br /&gt;
*** cn=&#039;&#039;username&#039;&#039; &amp;lt;br/&amp;gt; objectClass: inetOrgPerson &amp;lt;br/&amp;gt; cn: &#039;&#039;username&#039;&#039; &amp;lt;br/&amp;gt; uid: &#039;&#039;username&#039;&#039; &amp;lt;br/&amp;gt; sn: - &amp;lt;br/&amp;gt; userPassword: {SSHA}&#039;&#039;saltedhash&#039;&#039; &amp;lt;br/&amp;gt; mail: &#039;&#039;username&#039;&#039;@feministwiki.org&lt;br /&gt;
*** cn=&#039;&#039;username2&#039;&#039; &amp;lt;br/&amp;gt; objectClass: inetOrgPerson &amp;lt;br/&amp;gt; cn: &#039;&#039;username2&#039;&#039; &amp;lt;br/&amp;gt; uid: &#039;&#039;username2&#039;&#039; &amp;lt;br/&amp;gt; sn: - &amp;lt;br/&amp;gt; userPassword: {SSHA}&#039;&#039;saltedhash2&#039;&#039; &amp;lt;br/&amp;gt; mail: &#039;&#039;username2&#039;&#039;@feministwiki.org &amp;lt;br/&amp;gt; manager: cn=&#039;&#039;username&#039;&#039;,ou=members,dc=feministwiki,dc=org&lt;br /&gt;
*** ...&lt;br /&gt;
** ou=groups&lt;br /&gt;
*** cn=members &amp;lt;br/&amp;gt; objectClass: groupOfNames &amp;lt;br/&amp;gt; cn: members &amp;lt;br/&amp;gt; member: &#039;&#039;username&#039;&#039; &amp;lt;br/&amp;gt; member: &#039;&#039;username2&#039;&#039; &amp;lt;br/&amp;gt; member: ...&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* The &amp;lt;code&amp;gt;cn&amp;lt;/code&amp;gt; (common name) and &amp;lt;code&amp;gt;uid&amp;lt;/code&amp;gt; (user ID) fields both contain the username.  This is because some software is preconfigured to look at &amp;lt;code&amp;gt;uid&amp;lt;/code&amp;gt;, while most look at &amp;lt;code&amp;gt;cn&amp;lt;/code&amp;gt;.&lt;br /&gt;
* The &amp;lt;code&amp;gt;sn&amp;lt;/code&amp;gt; (surname) field simply contains a minus character as a placeholder, because it&#039;s a mandatory field.&lt;br /&gt;
* The &amp;lt;code&amp;gt;manager&amp;lt;/code&amp;gt; field is optional and we use it to record the member who added the member in question.&lt;br /&gt;
&lt;br /&gt;
To make sure passwords are stored with the &amp;lt;code&amp;gt;{SSHA}&amp;lt;/code&amp;gt; scheme rather than plain text, the &amp;lt;code&amp;gt;ppolicy&amp;lt;/code&amp;gt; &amp;quot;password policy overlay&amp;quot; is used.  ZYTRAX has a very nice book about LDAP which documents how to enable this: http://www.zytrax.com/books/ldap/ch6/ppolicy.html&lt;br /&gt;
&lt;br /&gt;
In short, the steps go as follows (these commands &#039;&#039;should&#039;&#039; work verbatim):&lt;br /&gt;
&lt;br /&gt;
 # Add the ppolicy schema&lt;br /&gt;
 ldapadd -Y external -H ldapi:/// &amp;lt; /etc/ldap/schema/ppolicy.ldif&lt;br /&gt;
 &lt;br /&gt;
 # Enable the ppolicy dynamic module&lt;br /&gt;
 ldapmodify -Y external -H ldapi:/// &amp;lt;&amp;lt;EOF&lt;br /&gt;
 dn: cn=module{0},cn=config&lt;br /&gt;
 changetype: modify&lt;br /&gt;
 add: olcModuleLoad&lt;br /&gt;
 olcModuleLoad: ppolicy&lt;br /&gt;
 EOF&lt;br /&gt;
 &lt;br /&gt;
 # Add the ppolicy overlay with olcPPolicyHashCleartext set to TRUE&lt;br /&gt;
 ldapadd -Y external -H ldapi:/// &amp;lt;&amp;lt;EOF&lt;br /&gt;
 dn: olcOverlay=ppolicy,olcDatabase={1}mdb,cn=config&lt;br /&gt;
 objectClass: olcPPolicyConfig&lt;br /&gt;
 olcOverlay: ppolicy&lt;br /&gt;
 olcPPolicyHashCleartext: TRUE&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
=== Wiki ===&lt;br /&gt;
&lt;br /&gt;
Host: feministwiki.org, www.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: MediaWiki&lt;br /&gt;
&lt;br /&gt;
The wiki uses a [https://www.mediawiki.org/wiki/MediaWiki MediaWiki] installation located at &amp;lt;code&amp;gt;/var/www/wiki/w&amp;lt;/code&amp;gt; with the [https://www.mediawiki.org/wiki/Extension:LDAP_Authentication LDAP Authentication] plugin for login management and the &amp;quot;Short URL&amp;quot; feature enabled with help of Apache&#039;s vhost configuration, which is located at &amp;lt;code&amp;gt;/etc/apache2/sites-available/wiki.conf&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The wiki uses the SQL database called &amp;quot;feministwiki&amp;quot; and the SQL user of the same name.&lt;br /&gt;
&lt;br /&gt;
=== Chat (web interface) ===&lt;br /&gt;
&lt;br /&gt;
Host: chat.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: Converse.js&lt;br /&gt;
&lt;br /&gt;
The web-interface for the FeministChat uses the full-screen &amp;quot;Impress&amp;quot; variant of the [https://conversejs.org/ Converse.js] XMPP client.  The hosted HTML and JS files are located at &amp;lt;code&amp;gt;/var/www/chat&amp;lt;/code&amp;gt;, although they load Converse.js as an external script from upstream, which is why the self-hosted HTML and JS are very minimal.&lt;br /&gt;
&lt;br /&gt;
=== Forum ===&lt;br /&gt;
&lt;br /&gt;
Host: forum.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: phpBB&lt;br /&gt;
&lt;br /&gt;
The forum uses a [https://www.phpbb.com/ phpBB] installation located at &amp;lt;code&amp;gt;/var/www/forum&amp;lt;/code&amp;gt;.  Most configuration of phpBB, including LDAP authentication, is done through its administration panel.  The style used by the forum is essentially Basic Orange, though the logo is changed via an inheriting style called FeministWiki.&lt;br /&gt;
&lt;br /&gt;
The forum uses the SQL database called &amp;quot;feministforum&amp;quot; and the SQL user of the same name.&lt;br /&gt;
&lt;br /&gt;
=== Mail (web interface) ===&lt;br /&gt;
&lt;br /&gt;
Host: mail.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: Roundcube&lt;br /&gt;
&lt;br /&gt;
The web-interface for the FeministMail uses the [https://roundcube.net/ Roundcube] mail client, installed at &amp;lt;code&amp;gt;/var/www/mail&amp;lt;/code&amp;gt;.  It uses the standard &amp;quot;larry&amp;quot; style, but with some tweaks to logos and images.&lt;br /&gt;
&lt;br /&gt;
=== Files ===&lt;br /&gt;
&lt;br /&gt;
Host: files.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: Nextcloud&lt;br /&gt;
&lt;br /&gt;
FeministFiles is a [https://nextcloud.com/ Nextcloud] installation with some branding, and LDAP authentication, installed at &amp;lt;code&amp;gt;/var/www/files&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== IMAP ===&lt;br /&gt;
&lt;br /&gt;
Host: imap.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: Dovecot&lt;br /&gt;
&lt;br /&gt;
FeministMail uses the [https://www.dovecot.org/ Dovecot] IMAP server, configured for LDAP authentication and using virtual mail boxes under &amp;lt;code&amp;gt;/home/vmail&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== SMTP ===&lt;br /&gt;
&lt;br /&gt;
Host: smtp.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: Postfix, OpenDKIM&lt;br /&gt;
&lt;br /&gt;
FeministMail uses the [http://www.postfix.org/ Postfix] SMTP server, using SASL authentication through Dovecot, LDAP-based virtual mail boxes under &amp;lt;code&amp;gt;/home/vmail&amp;lt;/code&amp;gt;, and DKIM signing via OpenDKIM.  Send a mail to a Gmail account and use the &amp;quot;Show original&amp;quot; feature of Gmail to see if the mail passes SPF, DKIM, and DMARC tests.&lt;br /&gt;
&lt;br /&gt;
There are also various tools on the web to automatically test the DNS settings for correctness, to check if the domain/IP is on blacklists, etc., which you can find via Google.  All in all, FeministMail is probably the most complicated service of the FeministWiki, as far as technical background goes.&lt;br /&gt;
&lt;br /&gt;
=== XMPP ===&lt;br /&gt;
&lt;br /&gt;
Host: xmpp.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: ejabberd&lt;br /&gt;
&lt;br /&gt;
FeministChat uses the [https://www.ejabberd.im/ ejabberd] XMPP server, configured to use LDAP authentication and an LDAP-based shared roster group for all members.&lt;br /&gt;
&lt;br /&gt;
=== IRC ===&lt;br /&gt;
&lt;br /&gt;
Host: irc.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: InspIRCd&lt;br /&gt;
&lt;br /&gt;
FeministIRC uses the [http://www.inspircd.org/ InspIRCd] IRC server with the &amp;lt;code&amp;gt;ldapauth&amp;lt;/code&amp;gt; module for LDAP authentication.&lt;br /&gt;
&lt;br /&gt;
=== Add a member ===&lt;br /&gt;
&lt;br /&gt;
Host: add-member.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: custom&lt;br /&gt;
&lt;br /&gt;
The page to add a new member, hosted at &amp;lt;code&amp;gt;/var/www/add-member&amp;lt;/code&amp;gt;, uses a bit of self-written HTML, PHP, and a setuid-root C program to invoke the shell script located at &amp;lt;code&amp;gt;/root/bin/fw-adduser&amp;lt;/code&amp;gt; with root privileges.&lt;/div&gt;</summary>
		<author><name>SocJusWiz</name></author>
	</entry>
	<entry>
		<id>https://feministwiki.org/w/index.php?title=FeministWiki:Technical_documentation&amp;diff=108</id>
		<title>FeministWiki:Technical documentation</title>
		<link rel="alternate" type="text/html" href="https://feministwiki.org/w/index.php?title=FeministWiki:Technical_documentation&amp;diff=108"/>
		<updated>2018-09-23T15:54:05Z</updated>

		<summary type="html">&lt;p&gt;SocJusWiz: /* SMTP */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page documents the FeministWiki&#039;s technical infrastructure, the target audience being technicians.&lt;br /&gt;
&lt;br /&gt;
== Hosts ==&lt;br /&gt;
&lt;br /&gt;
The following table documents the basic DNS configuration, and can be used as part of the &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt; file on each server to obviate the need for DNS lookups when connecting to one another.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!IP            !! FQDN                        !! Host          !! Purpose&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||            feministwiki.org ||               || Wiki&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||        www.feministwiki.org || www           || Wiki&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       ldap.feministwiki.org || ldap          || LDAP&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       chat.feministwiki.org || chat          || Web-client for XMPP&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||      forum.feministwiki.org || forum         || BBS Forum&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       mail.feministwiki.org || mail          || Web-client for Mail&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||      files.feministwiki.org || files         || File storage&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       imap.feministwiki.org || imap          || IMAP&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       smtp.feministwiki.org || smtp          || SMTP&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       xmpp.feministwiki.org || xmpp          || XMPP&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||        irc.feministwiki.org || irc           || IRC&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||     social.feministwiki.org || social        || GNU social&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 || add-member.feministwiki.org || add-member    || Add a member&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
(As you can see, all services are on the same server for now.)&lt;br /&gt;
&lt;br /&gt;
== Special DNS entries ==&lt;br /&gt;
&lt;br /&gt;
The following entries are used for email:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Type !! Host            !! Data                                                                   !! Purpose&lt;br /&gt;
|-&lt;br /&gt;
|MX   || @               || smtp.feministwiki.org                                                  || Mail server&lt;br /&gt;
|-&lt;br /&gt;
|TXT  || @               || v=spf1 mx -all                                                         || SPF&lt;br /&gt;
|-&lt;br /&gt;
|TXT  || mail._domainkey || v=DKIM1; k=rsa; p=&amp;lt;pubkey&amp;gt;                                             || DKIM&lt;br /&gt;
|-&lt;br /&gt;
|TXT  || _dmarc          || v=DMARC1; p=reject; rua=&amp;lt;nowiki&amp;gt;mailto:admin&amp;lt;/nowiki&amp;gt;@feministwiki.org || DMARC&lt;br /&gt;
|-&lt;br /&gt;
|TXT  || @               || google-site-verification=&amp;lt;key&amp;gt;                                         || Google Site Verification&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
And the following SRV records for XMPP:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Service      !! Protocol !! Name !! Destination           !! Port&lt;br /&gt;
|-&lt;br /&gt;
|_xmpp-client || _tcp     || @    || xmpp.feministwiki.org || 5222&lt;br /&gt;
|-&lt;br /&gt;
|_xmpp-server || _tcp     || @    || xmpp.feministwiki.org || 5269&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== SSH access ==&lt;br /&gt;
&lt;br /&gt;
FeministWiki hosts have ssh enabled for &amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt; access, but password login is disabled.  You must own a valid private key to log in.&lt;br /&gt;
&lt;br /&gt;
== Git repo of scripts and configuration ==&lt;br /&gt;
&lt;br /&gt;
The following GitHub account hosts repositories with scripts and configuration used by the FeministWiki:&lt;br /&gt;
&lt;br /&gt;
https://github.com/FeministWiki&lt;br /&gt;
&lt;br /&gt;
== Certs ==&lt;br /&gt;
&lt;br /&gt;
The FeministWiki uses LetsEncrypt to acquire digital certificates for encrypted communication.&lt;br /&gt;
&lt;br /&gt;
To ease use of the letsencrypt command, the file &amp;lt;code&amp;gt;/root/etc/domains&amp;lt;/code&amp;gt; contains all the FQDNs used by the FeministWiki, one per line.  Given that, the preferred way to populate the &amp;lt;code&amp;gt;/etc/letsencrypt/live/feministwiki.org&amp;lt;/code&amp;gt; directory with fresh certs is to run the following command while TCP port 80 is free (e.g. stop Apache first):&lt;br /&gt;
&lt;br /&gt;
 letsencrypt certonly --authenticator standalone -d &amp;quot;$(tr &#039;\n&#039; &#039;,&#039; &amp;lt; /root/etc/domains)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Additionally, for programs that require a cert file and its private key in a single combined &amp;lt;code&amp;gt;.pem&amp;lt;/code&amp;gt; file, run the following commands to generate such a file:&lt;br /&gt;
&lt;br /&gt;
 cd /etc/letsencrypt/live/feministwiki.org&lt;br /&gt;
 cat fullchain.pem privkey.pem &amp;gt; certbundle.pem&lt;br /&gt;
&lt;br /&gt;
The script &amp;lt;code&amp;gt;/root/bin/letsencrypt-refresh&amp;lt;/code&amp;gt; &#039;&#039;&#039;does all of the above&#039;&#039;&#039;, so in practice you just need to run the following commands to recreate the cert:&lt;br /&gt;
&lt;br /&gt;
 service apache2 stop  # Assuming Apache is running on the machine&lt;br /&gt;
 letsencrypt-refresh&lt;br /&gt;
 service apache2 start&lt;br /&gt;
&lt;br /&gt;
The above can be used not only to refresh a cert that&#039;s running out, but also to add a new domain to the cert.  Just add the domain to &amp;lt;code&amp;gt;/root/etc/domains&amp;lt;/code&amp;gt; and run the commands.&lt;br /&gt;
&lt;br /&gt;
Note that the letsencrypt command doesn&#039;t work well on a &amp;quot;dumb&amp;quot; terminal such as an Emacs shell buffer.  Make sure to run it from within a proper terminal emulator.&lt;br /&gt;
&lt;br /&gt;
=== Readability of the key files ===&lt;br /&gt;
&lt;br /&gt;
To ensure that processes running under unprivileged users can read key files, ensure that the users they run under are members of the &amp;lt;code&amp;gt;ssl-cert&amp;lt;/code&amp;gt; group, which should have read access to the files in &amp;lt;code&amp;gt;/etc/letsencrypt/live/feministwiki.org&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Services ==&lt;br /&gt;
&lt;br /&gt;
This section documents the individual services of the FeministWiki.  They should work regardless of what server they&#039;re on.  I.e. every service could in theory be hosted on its own server.&lt;br /&gt;
&lt;br /&gt;
=== LDAP ===&lt;br /&gt;
&lt;br /&gt;
Host: ldap.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: OpenLDAP&lt;br /&gt;
&lt;br /&gt;
The LDAP service contains the central database of FeministWiki members.  The structure looks like this:&lt;br /&gt;
&lt;br /&gt;
* dc=feministwiki,dc=org&lt;br /&gt;
** ou=members&lt;br /&gt;
*** cn=&#039;&#039;username&#039;&#039; &amp;lt;br/&amp;gt; objectClass: inetOrgPerson &amp;lt;br/&amp;gt; cn: &#039;&#039;username&#039;&#039; &amp;lt;br/&amp;gt; uid: &#039;&#039;username&#039;&#039; &amp;lt;br/&amp;gt; sn: - &amp;lt;br/&amp;gt; userPassword: {SSHA}&#039;&#039;saltedhash&#039;&#039; &amp;lt;br/&amp;gt; mail: &#039;&#039;username&#039;&#039;@feministwiki.org&lt;br /&gt;
*** cn=&#039;&#039;username2&#039;&#039; &amp;lt;br/&amp;gt; objectClass: inetOrgPerson &amp;lt;br/&amp;gt; cn: &#039;&#039;username2&#039;&#039; &amp;lt;br/&amp;gt; uid: &#039;&#039;username2&#039;&#039; &amp;lt;br/&amp;gt; sn: - &amp;lt;br/&amp;gt; userPassword: {SSHA}&#039;&#039;saltedhash2&#039;&#039; &amp;lt;br/&amp;gt; mail: &#039;&#039;username2&#039;&#039;@feministwiki.org &amp;lt;br/&amp;gt; manager: cn=&#039;&#039;username&#039;&#039;,ou=members,dc=feministwiki,dc=org&lt;br /&gt;
*** ...&lt;br /&gt;
** ou=groups&lt;br /&gt;
*** cn=members &amp;lt;br/&amp;gt; objectClass: groupOfNames &amp;lt;br/&amp;gt; cn: members &amp;lt;br/&amp;gt; member: &#039;&#039;username&#039;&#039; &amp;lt;br/&amp;gt; member: &#039;&#039;username2&#039;&#039; &amp;lt;br/&amp;gt; member: ...&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* The &amp;lt;code&amp;gt;cn&amp;lt;/code&amp;gt; (common name) and &amp;lt;code&amp;gt;uid&amp;lt;/code&amp;gt; (user ID) fields both contain the username.  This is because some software is preconfigured to look at &amp;lt;code&amp;gt;uid&amp;lt;/code&amp;gt;, while most look at &amp;lt;code&amp;gt;cn&amp;lt;/code&amp;gt;.&lt;br /&gt;
* The &amp;lt;code&amp;gt;sn&amp;lt;/code&amp;gt; (surname) field simply contains a minus character as a placeholder, because it&#039;s a mandatory field.&lt;br /&gt;
* The &amp;lt;code&amp;gt;manager&amp;lt;/code&amp;gt; field is optional and we use it to record the member who added the member in question.&lt;br /&gt;
&lt;br /&gt;
To make sure passwords are stored with the &amp;lt;code&amp;gt;{SSHA}&amp;lt;/code&amp;gt; scheme rather than plain text, the &amp;lt;code&amp;gt;ppolicy&amp;lt;/code&amp;gt; &amp;quot;password policy overlay&amp;quot; is used.  ZYTRAX has a very nice book about LDAP which documents how to enable this: http://www.zytrax.com/books/ldap/ch6/ppolicy.html&lt;br /&gt;
&lt;br /&gt;
In short, the steps go as follows (these commands &#039;&#039;should&#039;&#039; work verbatim):&lt;br /&gt;
&lt;br /&gt;
 # Add the ppolicy schema&lt;br /&gt;
 ldapadd -Y external -H ldapi:/// &amp;lt; /etc/ldap/schema/ppolicy.ldif&lt;br /&gt;
 &lt;br /&gt;
 # Enable the ppolicy dynamic module&lt;br /&gt;
 ldapmodify -Y external -H ldapi:/// &amp;lt;&amp;lt;EOF&lt;br /&gt;
 dn: cn=module{0},cn=config&lt;br /&gt;
 changetype: modify&lt;br /&gt;
 add: olcModuleLoad&lt;br /&gt;
 olcModuleLoad: ppolicy&lt;br /&gt;
 EOF&lt;br /&gt;
 &lt;br /&gt;
 # Add the ppolicy overlay with olcPPolicyHashCleartext set to TRUE&lt;br /&gt;
 ldapadd -Y external -H ldapi:/// &amp;lt;&amp;lt;EOF&lt;br /&gt;
 dn: olcOverlay=ppolicy,olcDatabase={1}mdb,cn=config&lt;br /&gt;
 objectClass: olcPPolicyConfig&lt;br /&gt;
 olcOverlay: ppolicy&lt;br /&gt;
 olcPPolicyHashCleartext: TRUE&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
=== Wiki ===&lt;br /&gt;
&lt;br /&gt;
Host: feministwiki.org, www.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: MediaWiki&lt;br /&gt;
&lt;br /&gt;
The wiki uses a [https://www.mediawiki.org/wiki/MediaWiki MediaWiki] installation located at &amp;lt;code&amp;gt;/var/www/wiki/w&amp;lt;/code&amp;gt; with the [https://www.mediawiki.org/wiki/Extension:LDAP_Authentication LDAP Authentication] plugin for login management and the &amp;quot;Short URL&amp;quot; feature enabled with help of Apache&#039;s vhost configuration, which is located at &amp;lt;code&amp;gt;/etc/apache2/sites-available/wiki.conf&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The wiki uses the SQL database called &amp;quot;feministwiki&amp;quot; and the SQL user of the same name.&lt;br /&gt;
&lt;br /&gt;
=== Chat (web interface) ===&lt;br /&gt;
&lt;br /&gt;
Host: chat.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: Converse.js&lt;br /&gt;
&lt;br /&gt;
The web-interface for the FeministChat uses the full-screen &amp;quot;Impress&amp;quot; variant of the [https://conversejs.org/ Converse.js] XMPP client.  The hosted HTML and JS files are located at &amp;lt;code&amp;gt;/var/www/chat&amp;lt;/code&amp;gt;, although they load Converse.js as an external script from upstream, which is why the self-hosted HTML and JS are very minimal.&lt;br /&gt;
&lt;br /&gt;
=== Forum ===&lt;br /&gt;
&lt;br /&gt;
Host: forum.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: phpBB&lt;br /&gt;
&lt;br /&gt;
The forum uses a [https://www.phpbb.com/ phpBB] installation located at &amp;lt;code&amp;gt;/var/www/forum&amp;lt;/code&amp;gt;.  Most configuration of phpBB, including LDAP authentication, is done through its administration panel.  The style used by the forum is essentially Basic Orange, though the logo is changed via an inheriting style called FeministWiki.&lt;br /&gt;
&lt;br /&gt;
The forum uses the SQL database called &amp;quot;feministforum&amp;quot; and the SQL user of the same name.&lt;br /&gt;
&lt;br /&gt;
=== Mail (web interface) ===&lt;br /&gt;
&lt;br /&gt;
Host: mail.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: Roundcube&lt;br /&gt;
&lt;br /&gt;
The web-interface for the FeministMail uses the [https://roundcube.net/ Roundcube] mail client, installed at &amp;lt;code&amp;gt;/var/www/mail&amp;lt;/code&amp;gt;.  It uses the standard &amp;quot;larry&amp;quot; style, but with some tweaks to logos and images.&lt;br /&gt;
&lt;br /&gt;
=== Files ===&lt;br /&gt;
&lt;br /&gt;
Host: files.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: Nextcloud&lt;br /&gt;
&lt;br /&gt;
FeministFiles is a [https://nextcloud.com/ Nextcloud] installation with some branding, and LDAP authentication, installed at &amp;lt;code&amp;gt;/var/www/files&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== IMAP ===&lt;br /&gt;
&lt;br /&gt;
Host: imap.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: Dovecot&lt;br /&gt;
&lt;br /&gt;
FeministMail uses the [https://www.dovecot.org/ Dovecot] IMAP server, configured for LDAP authentication and using virtual mail boxes under &amp;lt;code&amp;gt;/home/vmail&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== SMTP ===&lt;br /&gt;
&lt;br /&gt;
Host: smtp.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: Postfix, OpenDKIM&lt;br /&gt;
&lt;br /&gt;
FeministMail uses the [http://www.postfix.org/ Postfix] SMTP server, using SASL authentication through Dovecot and LDAP-based virtual mail boxes under &amp;lt;code&amp;gt;/home/vmail&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Postfix is configured to use OpenDKIM to sign outgoing mail.  If using a Unix socket to make the processes communicate, make sure the &amp;lt;code&amp;gt;postfix&amp;lt;/code&amp;gt; user has permissions to open the socket.&lt;br /&gt;
&lt;br /&gt;
=== XMPP ===&lt;br /&gt;
&lt;br /&gt;
Host: xmpp.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: ejabberd&lt;br /&gt;
&lt;br /&gt;
FeministChat uses the [https://www.ejabberd.im/ ejabberd] XMPP server, configured to use LDAP authentication and an LDAP-based shared roster group for all members.&lt;br /&gt;
&lt;br /&gt;
=== IRC ===&lt;br /&gt;
&lt;br /&gt;
Host: irc.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: InspIRCd&lt;br /&gt;
&lt;br /&gt;
FeministIRC uses the [http://www.inspircd.org/ InspIRCd] IRC server with the &amp;lt;code&amp;gt;ldapauth&amp;lt;/code&amp;gt; module for LDAP authentication.&lt;br /&gt;
&lt;br /&gt;
=== Add a member ===&lt;br /&gt;
&lt;br /&gt;
Host: add-member.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: custom&lt;br /&gt;
&lt;br /&gt;
The page to add a new member, hosted at &amp;lt;code&amp;gt;/var/www/add-member&amp;lt;/code&amp;gt;, uses a bit of self-written HTML, PHP, and a setuid-root C program to invoke the shell script located at &amp;lt;code&amp;gt;/root/bin/fw-adduser&amp;lt;/code&amp;gt; with root privileges.&lt;/div&gt;</summary>
		<author><name>SocJusWiz</name></author>
	</entry>
	<entry>
		<id>https://feministwiki.org/w/index.php?title=FeministWiki:Technical_documentation&amp;diff=107</id>
		<title>FeministWiki:Technical documentation</title>
		<link rel="alternate" type="text/html" href="https://feministwiki.org/w/index.php?title=FeministWiki:Technical_documentation&amp;diff=107"/>
		<updated>2018-09-23T15:51:27Z</updated>

		<summary type="html">&lt;p&gt;SocJusWiz: /* Certs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page documents the FeministWiki&#039;s technical infrastructure, the target audience being technicians.&lt;br /&gt;
&lt;br /&gt;
== Hosts ==&lt;br /&gt;
&lt;br /&gt;
The following table documents the basic DNS configuration, and can be used as part of the &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt; file on each server to obviate the need for DNS lookups when connecting to one another.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!IP            !! FQDN                        !! Host          !! Purpose&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||            feministwiki.org ||               || Wiki&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||        www.feministwiki.org || www           || Wiki&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       ldap.feministwiki.org || ldap          || LDAP&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       chat.feministwiki.org || chat          || Web-client for XMPP&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||      forum.feministwiki.org || forum         || BBS Forum&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       mail.feministwiki.org || mail          || Web-client for Mail&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||      files.feministwiki.org || files         || File storage&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       imap.feministwiki.org || imap          || IMAP&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       smtp.feministwiki.org || smtp          || SMTP&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       xmpp.feministwiki.org || xmpp          || XMPP&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||        irc.feministwiki.org || irc           || IRC&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||     social.feministwiki.org || social        || GNU social&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 || add-member.feministwiki.org || add-member    || Add a member&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
(As you can see, all services are on the same server for now.)&lt;br /&gt;
&lt;br /&gt;
== Special DNS entries ==&lt;br /&gt;
&lt;br /&gt;
The following entries are used for email:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Type !! Host            !! Data                                                                   !! Purpose&lt;br /&gt;
|-&lt;br /&gt;
|MX   || @               || smtp.feministwiki.org                                                  || Mail server&lt;br /&gt;
|-&lt;br /&gt;
|TXT  || @               || v=spf1 mx -all                                                         || SPF&lt;br /&gt;
|-&lt;br /&gt;
|TXT  || mail._domainkey || v=DKIM1; k=rsa; p=&amp;lt;pubkey&amp;gt;                                             || DKIM&lt;br /&gt;
|-&lt;br /&gt;
|TXT  || _dmarc          || v=DMARC1; p=reject; rua=&amp;lt;nowiki&amp;gt;mailto:admin&amp;lt;/nowiki&amp;gt;@feministwiki.org || DMARC&lt;br /&gt;
|-&lt;br /&gt;
|TXT  || @               || google-site-verification=&amp;lt;key&amp;gt;                                         || Google Site Verification&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
And the following SRV records for XMPP:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Service      !! Protocol !! Name !! Destination           !! Port&lt;br /&gt;
|-&lt;br /&gt;
|_xmpp-client || _tcp     || @    || xmpp.feministwiki.org || 5222&lt;br /&gt;
|-&lt;br /&gt;
|_xmpp-server || _tcp     || @    || xmpp.feministwiki.org || 5269&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== SSH access ==&lt;br /&gt;
&lt;br /&gt;
FeministWiki hosts have ssh enabled for &amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt; access, but password login is disabled.  You must own a valid private key to log in.&lt;br /&gt;
&lt;br /&gt;
== Git repo of scripts and configuration ==&lt;br /&gt;
&lt;br /&gt;
The following GitHub account hosts repositories with scripts and configuration used by the FeministWiki:&lt;br /&gt;
&lt;br /&gt;
https://github.com/FeministWiki&lt;br /&gt;
&lt;br /&gt;
== Certs ==&lt;br /&gt;
&lt;br /&gt;
The FeministWiki uses LetsEncrypt to acquire digital certificates for encrypted communication.&lt;br /&gt;
&lt;br /&gt;
To ease use of the letsencrypt command, the file &amp;lt;code&amp;gt;/root/etc/domains&amp;lt;/code&amp;gt; contains all the FQDNs used by the FeministWiki, one per line.  Given that, the preferred way to populate the &amp;lt;code&amp;gt;/etc/letsencrypt/live/feministwiki.org&amp;lt;/code&amp;gt; directory with fresh certs is to run the following command while TCP port 80 is free (e.g. stop Apache first):&lt;br /&gt;
&lt;br /&gt;
 letsencrypt certonly --authenticator standalone -d &amp;quot;$(tr &#039;\n&#039; &#039;,&#039; &amp;lt; /root/etc/domains)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Additionally, for programs that require a cert file and its private key in a single combined &amp;lt;code&amp;gt;.pem&amp;lt;/code&amp;gt; file, run the following commands to generate such a file:&lt;br /&gt;
&lt;br /&gt;
 cd /etc/letsencrypt/live/feministwiki.org&lt;br /&gt;
 cat fullchain.pem privkey.pem &amp;gt; certbundle.pem&lt;br /&gt;
&lt;br /&gt;
The script &amp;lt;code&amp;gt;/root/bin/letsencrypt-refresh&amp;lt;/code&amp;gt; &#039;&#039;&#039;does all of the above&#039;&#039;&#039;, so in practice you just need to run the following commands to recreate the cert:&lt;br /&gt;
&lt;br /&gt;
 service apache2 stop  # Assuming Apache is running on the machine&lt;br /&gt;
 letsencrypt-refresh&lt;br /&gt;
 service apache2 start&lt;br /&gt;
&lt;br /&gt;
The above can be used not only to refresh a cert that&#039;s running out, but also to add a new domain to the cert.  Just add the domain to &amp;lt;code&amp;gt;/root/etc/domains&amp;lt;/code&amp;gt; and run the commands.&lt;br /&gt;
&lt;br /&gt;
Note that the letsencrypt command doesn&#039;t work well on a &amp;quot;dumb&amp;quot; terminal such as an Emacs shell buffer.  Make sure to run it from within a proper terminal emulator.&lt;br /&gt;
&lt;br /&gt;
=== Readability of the key files ===&lt;br /&gt;
&lt;br /&gt;
To ensure that processes running under unprivileged users can read key files, ensure that the users they run under are members of the &amp;lt;code&amp;gt;ssl-cert&amp;lt;/code&amp;gt; group, which should have read access to the files in &amp;lt;code&amp;gt;/etc/letsencrypt/live/feministwiki.org&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Services ==&lt;br /&gt;
&lt;br /&gt;
This section documents the individual services of the FeministWiki.  They should work regardless of what server they&#039;re on.  I.e. every service could in theory be hosted on its own server.&lt;br /&gt;
&lt;br /&gt;
=== LDAP ===&lt;br /&gt;
&lt;br /&gt;
Host: ldap.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: OpenLDAP&lt;br /&gt;
&lt;br /&gt;
The LDAP service contains the central database of FeministWiki members.  The structure looks like this:&lt;br /&gt;
&lt;br /&gt;
* dc=feministwiki,dc=org&lt;br /&gt;
** ou=members&lt;br /&gt;
*** cn=&#039;&#039;username&#039;&#039; &amp;lt;br/&amp;gt; objectClass: inetOrgPerson &amp;lt;br/&amp;gt; cn: &#039;&#039;username&#039;&#039; &amp;lt;br/&amp;gt; uid: &#039;&#039;username&#039;&#039; &amp;lt;br/&amp;gt; sn: - &amp;lt;br/&amp;gt; userPassword: {SSHA}&#039;&#039;saltedhash&#039;&#039; &amp;lt;br/&amp;gt; mail: &#039;&#039;username&#039;&#039;@feministwiki.org&lt;br /&gt;
*** cn=&#039;&#039;username2&#039;&#039; &amp;lt;br/&amp;gt; objectClass: inetOrgPerson &amp;lt;br/&amp;gt; cn: &#039;&#039;username2&#039;&#039; &amp;lt;br/&amp;gt; uid: &#039;&#039;username2&#039;&#039; &amp;lt;br/&amp;gt; sn: - &amp;lt;br/&amp;gt; userPassword: {SSHA}&#039;&#039;saltedhash2&#039;&#039; &amp;lt;br/&amp;gt; mail: &#039;&#039;username2&#039;&#039;@feministwiki.org &amp;lt;br/&amp;gt; manager: cn=&#039;&#039;username&#039;&#039;,ou=members,dc=feministwiki,dc=org&lt;br /&gt;
*** ...&lt;br /&gt;
** ou=groups&lt;br /&gt;
*** cn=members &amp;lt;br/&amp;gt; objectClass: groupOfNames &amp;lt;br/&amp;gt; cn: members &amp;lt;br/&amp;gt; member: &#039;&#039;username&#039;&#039; &amp;lt;br/&amp;gt; member: &#039;&#039;username2&#039;&#039; &amp;lt;br/&amp;gt; member: ...&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* The &amp;lt;code&amp;gt;cn&amp;lt;/code&amp;gt; (common name) and &amp;lt;code&amp;gt;uid&amp;lt;/code&amp;gt; (user ID) fields both contain the username.  This is because some software is preconfigured to look at &amp;lt;code&amp;gt;uid&amp;lt;/code&amp;gt;, while most look at &amp;lt;code&amp;gt;cn&amp;lt;/code&amp;gt;.&lt;br /&gt;
* The &amp;lt;code&amp;gt;sn&amp;lt;/code&amp;gt; (surname) field simply contains a minus character as a placeholder, because it&#039;s a mandatory field.&lt;br /&gt;
* The &amp;lt;code&amp;gt;manager&amp;lt;/code&amp;gt; field is optional and we use it to record the member who added the member in question.&lt;br /&gt;
&lt;br /&gt;
To make sure passwords are stored with the &amp;lt;code&amp;gt;{SSHA}&amp;lt;/code&amp;gt; scheme rather than plain text, the &amp;lt;code&amp;gt;ppolicy&amp;lt;/code&amp;gt; &amp;quot;password policy overlay&amp;quot; is used.  ZYTRAX has a very nice book about LDAP which documents how to enable this: http://www.zytrax.com/books/ldap/ch6/ppolicy.html&lt;br /&gt;
&lt;br /&gt;
In short, the steps go as follows (these commands &#039;&#039;should&#039;&#039; work verbatim):&lt;br /&gt;
&lt;br /&gt;
 # Add the ppolicy schema&lt;br /&gt;
 ldapadd -Y external -H ldapi:/// &amp;lt; /etc/ldap/schema/ppolicy.ldif&lt;br /&gt;
 &lt;br /&gt;
 # Enable the ppolicy dynamic module&lt;br /&gt;
 ldapmodify -Y external -H ldapi:/// &amp;lt;&amp;lt;EOF&lt;br /&gt;
 dn: cn=module{0},cn=config&lt;br /&gt;
 changetype: modify&lt;br /&gt;
 add: olcModuleLoad&lt;br /&gt;
 olcModuleLoad: ppolicy&lt;br /&gt;
 EOF&lt;br /&gt;
 &lt;br /&gt;
 # Add the ppolicy overlay with olcPPolicyHashCleartext set to TRUE&lt;br /&gt;
 ldapadd -Y external -H ldapi:/// &amp;lt;&amp;lt;EOF&lt;br /&gt;
 dn: olcOverlay=ppolicy,olcDatabase={1}mdb,cn=config&lt;br /&gt;
 objectClass: olcPPolicyConfig&lt;br /&gt;
 olcOverlay: ppolicy&lt;br /&gt;
 olcPPolicyHashCleartext: TRUE&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
=== Wiki ===&lt;br /&gt;
&lt;br /&gt;
Host: feministwiki.org, www.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: MediaWiki&lt;br /&gt;
&lt;br /&gt;
The wiki uses a [https://www.mediawiki.org/wiki/MediaWiki MediaWiki] installation located at &amp;lt;code&amp;gt;/var/www/wiki/w&amp;lt;/code&amp;gt; with the [https://www.mediawiki.org/wiki/Extension:LDAP_Authentication LDAP Authentication] plugin for login management and the &amp;quot;Short URL&amp;quot; feature enabled with help of Apache&#039;s vhost configuration, which is located at &amp;lt;code&amp;gt;/etc/apache2/sites-available/wiki.conf&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The wiki uses the SQL database called &amp;quot;feministwiki&amp;quot; and the SQL user of the same name.&lt;br /&gt;
&lt;br /&gt;
=== Chat (web interface) ===&lt;br /&gt;
&lt;br /&gt;
Host: chat.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: Converse.js&lt;br /&gt;
&lt;br /&gt;
The web-interface for the FeministChat uses the full-screen &amp;quot;Impress&amp;quot; variant of the [https://conversejs.org/ Converse.js] XMPP client.  The hosted HTML and JS files are located at &amp;lt;code&amp;gt;/var/www/chat&amp;lt;/code&amp;gt;, although they load Converse.js as an external script from upstream, which is why the self-hosted HTML and JS are very minimal.&lt;br /&gt;
&lt;br /&gt;
=== Forum ===&lt;br /&gt;
&lt;br /&gt;
Host: forum.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: phpBB&lt;br /&gt;
&lt;br /&gt;
The forum uses a [https://www.phpbb.com/ phpBB] installation located at &amp;lt;code&amp;gt;/var/www/forum&amp;lt;/code&amp;gt;.  Most configuration of phpBB, including LDAP authentication, is done through its administration panel.  The style used by the forum is essentially Basic Orange, though the logo is changed via an inheriting style called FeministWiki.&lt;br /&gt;
&lt;br /&gt;
The forum uses the SQL database called &amp;quot;feministforum&amp;quot; and the SQL user of the same name.&lt;br /&gt;
&lt;br /&gt;
=== Mail (web interface) ===&lt;br /&gt;
&lt;br /&gt;
Host: mail.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: Roundcube&lt;br /&gt;
&lt;br /&gt;
The web-interface for the FeministMail uses the [https://roundcube.net/ Roundcube] mail client, installed at &amp;lt;code&amp;gt;/var/www/mail&amp;lt;/code&amp;gt;.  It uses the standard &amp;quot;larry&amp;quot; style, but with some tweaks to logos and images.&lt;br /&gt;
&lt;br /&gt;
=== Files ===&lt;br /&gt;
&lt;br /&gt;
Host: files.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: Nextcloud&lt;br /&gt;
&lt;br /&gt;
FeministFiles is a [https://nextcloud.com/ Nextcloud] installation with some branding, and LDAP authentication, installed at &amp;lt;code&amp;gt;/var/www/files&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== IMAP ===&lt;br /&gt;
&lt;br /&gt;
Host: imap.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: Dovecot&lt;br /&gt;
&lt;br /&gt;
FeministMail uses the [https://www.dovecot.org/ Dovecot] IMAP server, configured for LDAP authentication and using virtual mail boxes under &amp;lt;code&amp;gt;/home/vmail&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== SMTP ===&lt;br /&gt;
&lt;br /&gt;
Host: smtp.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: Postfix&lt;br /&gt;
&lt;br /&gt;
FeministMail uses the [http://www.postfix.org/ Postfix] SMTP server, using SASL authentication through Dovecot and LDAP-based virtual mail boxes under &amp;lt;code&amp;gt;/home/vmail&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== XMPP ===&lt;br /&gt;
&lt;br /&gt;
Host: xmpp.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: ejabberd&lt;br /&gt;
&lt;br /&gt;
FeministChat uses the [https://www.ejabberd.im/ ejabberd] XMPP server, configured to use LDAP authentication and an LDAP-based shared roster group for all members.&lt;br /&gt;
&lt;br /&gt;
=== IRC ===&lt;br /&gt;
&lt;br /&gt;
Host: irc.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: InspIRCd&lt;br /&gt;
&lt;br /&gt;
FeministIRC uses the [http://www.inspircd.org/ InspIRCd] IRC server with the &amp;lt;code&amp;gt;ldapauth&amp;lt;/code&amp;gt; module for LDAP authentication.&lt;br /&gt;
&lt;br /&gt;
=== Add a member ===&lt;br /&gt;
&lt;br /&gt;
Host: add-member.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: custom&lt;br /&gt;
&lt;br /&gt;
The page to add a new member, hosted at &amp;lt;code&amp;gt;/var/www/add-member&amp;lt;/code&amp;gt;, uses a bit of self-written HTML, PHP, and a setuid-root C program to invoke the shell script located at &amp;lt;code&amp;gt;/root/bin/fw-adduser&amp;lt;/code&amp;gt; with root privileges.&lt;/div&gt;</summary>
		<author><name>SocJusWiz</name></author>
	</entry>
	<entry>
		<id>https://feministwiki.org/w/index.php?title=FeministWiki:Technical_documentation&amp;diff=106</id>
		<title>FeministWiki:Technical documentation</title>
		<link rel="alternate" type="text/html" href="https://feministwiki.org/w/index.php?title=FeministWiki:Technical_documentation&amp;diff=106"/>
		<updated>2018-09-23T15:26:08Z</updated>

		<summary type="html">&lt;p&gt;SocJusWiz: /* Special DNS entries */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page documents the FeministWiki&#039;s technical infrastructure, the target audience being technicians.&lt;br /&gt;
&lt;br /&gt;
== Hosts ==&lt;br /&gt;
&lt;br /&gt;
The following table documents the basic DNS configuration, and can be used as part of the &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt; file on each server to obviate the need for DNS lookups when connecting to one another.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!IP            !! FQDN                        !! Host          !! Purpose&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||            feministwiki.org ||               || Wiki&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||        www.feministwiki.org || www           || Wiki&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       ldap.feministwiki.org || ldap          || LDAP&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       chat.feministwiki.org || chat          || Web-client for XMPP&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||      forum.feministwiki.org || forum         || BBS Forum&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       mail.feministwiki.org || mail          || Web-client for Mail&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||      files.feministwiki.org || files         || File storage&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       imap.feministwiki.org || imap          || IMAP&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       smtp.feministwiki.org || smtp          || SMTP&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       xmpp.feministwiki.org || xmpp          || XMPP&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||        irc.feministwiki.org || irc           || IRC&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||     social.feministwiki.org || social        || GNU social&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 || add-member.feministwiki.org || add-member    || Add a member&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
(As you can see, all services are on the same server for now.)&lt;br /&gt;
&lt;br /&gt;
== Special DNS entries ==&lt;br /&gt;
&lt;br /&gt;
The following entries are used for email:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Type !! Host            !! Data                                                                   !! Purpose&lt;br /&gt;
|-&lt;br /&gt;
|MX   || @               || smtp.feministwiki.org                                                  || Mail server&lt;br /&gt;
|-&lt;br /&gt;
|TXT  || @               || v=spf1 mx -all                                                         || SPF&lt;br /&gt;
|-&lt;br /&gt;
|TXT  || mail._domainkey || v=DKIM1; k=rsa; p=&amp;lt;pubkey&amp;gt;                                             || DKIM&lt;br /&gt;
|-&lt;br /&gt;
|TXT  || _dmarc          || v=DMARC1; p=reject; rua=&amp;lt;nowiki&amp;gt;mailto:admin&amp;lt;/nowiki&amp;gt;@feministwiki.org || DMARC&lt;br /&gt;
|-&lt;br /&gt;
|TXT  || @               || google-site-verification=&amp;lt;key&amp;gt;                                         || Google Site Verification&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
And the following SRV records for XMPP:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Service      !! Protocol !! Name !! Destination           !! Port&lt;br /&gt;
|-&lt;br /&gt;
|_xmpp-client || _tcp     || @    || xmpp.feministwiki.org || 5222&lt;br /&gt;
|-&lt;br /&gt;
|_xmpp-server || _tcp     || @    || xmpp.feministwiki.org || 5269&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== SSH access ==&lt;br /&gt;
&lt;br /&gt;
FeministWiki hosts have ssh enabled for &amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt; access, but password login is disabled.  You must own a valid private key to log in.&lt;br /&gt;
&lt;br /&gt;
== Git repo of scripts and configuration ==&lt;br /&gt;
&lt;br /&gt;
The following GitHub account hosts repositories with scripts and configuration used by the FeministWiki:&lt;br /&gt;
&lt;br /&gt;
https://github.com/FeministWiki&lt;br /&gt;
&lt;br /&gt;
== Certs ==&lt;br /&gt;
&lt;br /&gt;
The FeministWiki uses LetsEncrypt to acquire digital certificates for encrypted communication.&lt;br /&gt;
&lt;br /&gt;
To ease use of the letsencrypt command, the file &amp;lt;code&amp;gt;/root/etc/domains&amp;lt;/code&amp;gt; contains all the FQDNs used by the FeministWiki, one per line.  Given that, the preferred way to populate the &amp;lt;code&amp;gt;/etc/letsencrypt/live/feministwiki.org&amp;lt;/code&amp;gt; directory with fresh certs is to run the following command while TCP port 80 is free (e.g. stop Apache first):&lt;br /&gt;
&lt;br /&gt;
 letsencrypt certonly --authenticator standalone -d &amp;quot;$(tr &#039;\n&#039; &#039;,&#039; &amp;lt; /root/etc/domains)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Additionally, for programs that require a cert file and its private key in a single combined &amp;lt;code&amp;gt;.pem&amp;lt;/code&amp;gt; file, run the following commands to generate such a file:&lt;br /&gt;
&lt;br /&gt;
 cd /etc/letsencrypt/live/feministwiki.org&lt;br /&gt;
 cat fullchain.pem privkey.pem &amp;gt; certbundle.pem&lt;br /&gt;
&lt;br /&gt;
The script &amp;lt;code&amp;gt;/root/bin/letsencrypt-refresh&amp;lt;/code&amp;gt; &#039;&#039;&#039;does all of the above&#039;&#039;&#039;, so in practice you just need to run the following commands to recreate the cert:&lt;br /&gt;
&lt;br /&gt;
 service apache2 stop  # Assuming Apache is running on the machine&lt;br /&gt;
 letsencrypt-refresh&lt;br /&gt;
 service apache2 start&lt;br /&gt;
&lt;br /&gt;
The above can be used not only to refresh a cert that&#039;s running out, but also to add a new domain to the cert.  Just add the domain to &amp;lt;code&amp;gt;/root/etc/domains&amp;lt;/code&amp;gt; and run the commands.&lt;br /&gt;
&lt;br /&gt;
Note that the letsencrypt command doesn&#039;t work well on a &amp;quot;dumb&amp;quot; terminal such as an Emacs shell buffer.  Make sure to run it from within a proper terminal emulator.&lt;br /&gt;
&lt;br /&gt;
== Services ==&lt;br /&gt;
&lt;br /&gt;
This section documents the individual services of the FeministWiki.  They should work regardless of what server they&#039;re on.  I.e. every service could in theory be hosted on its own server.&lt;br /&gt;
&lt;br /&gt;
=== LDAP ===&lt;br /&gt;
&lt;br /&gt;
Host: ldap.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: OpenLDAP&lt;br /&gt;
&lt;br /&gt;
The LDAP service contains the central database of FeministWiki members.  The structure looks like this:&lt;br /&gt;
&lt;br /&gt;
* dc=feministwiki,dc=org&lt;br /&gt;
** ou=members&lt;br /&gt;
*** cn=&#039;&#039;username&#039;&#039; &amp;lt;br/&amp;gt; objectClass: inetOrgPerson &amp;lt;br/&amp;gt; cn: &#039;&#039;username&#039;&#039; &amp;lt;br/&amp;gt; uid: &#039;&#039;username&#039;&#039; &amp;lt;br/&amp;gt; sn: - &amp;lt;br/&amp;gt; userPassword: {SSHA}&#039;&#039;saltedhash&#039;&#039; &amp;lt;br/&amp;gt; mail: &#039;&#039;username&#039;&#039;@feministwiki.org&lt;br /&gt;
*** cn=&#039;&#039;username2&#039;&#039; &amp;lt;br/&amp;gt; objectClass: inetOrgPerson &amp;lt;br/&amp;gt; cn: &#039;&#039;username2&#039;&#039; &amp;lt;br/&amp;gt; uid: &#039;&#039;username2&#039;&#039; &amp;lt;br/&amp;gt; sn: - &amp;lt;br/&amp;gt; userPassword: {SSHA}&#039;&#039;saltedhash2&#039;&#039; &amp;lt;br/&amp;gt; mail: &#039;&#039;username2&#039;&#039;@feministwiki.org &amp;lt;br/&amp;gt; manager: cn=&#039;&#039;username&#039;&#039;,ou=members,dc=feministwiki,dc=org&lt;br /&gt;
*** ...&lt;br /&gt;
** ou=groups&lt;br /&gt;
*** cn=members &amp;lt;br/&amp;gt; objectClass: groupOfNames &amp;lt;br/&amp;gt; cn: members &amp;lt;br/&amp;gt; member: &#039;&#039;username&#039;&#039; &amp;lt;br/&amp;gt; member: &#039;&#039;username2&#039;&#039; &amp;lt;br/&amp;gt; member: ...&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* The &amp;lt;code&amp;gt;cn&amp;lt;/code&amp;gt; (common name) and &amp;lt;code&amp;gt;uid&amp;lt;/code&amp;gt; (user ID) fields both contain the username.  This is because some software is preconfigured to look at &amp;lt;code&amp;gt;uid&amp;lt;/code&amp;gt;, while most look at &amp;lt;code&amp;gt;cn&amp;lt;/code&amp;gt;.&lt;br /&gt;
* The &amp;lt;code&amp;gt;sn&amp;lt;/code&amp;gt; (surname) field simply contains a minus character as a placeholder, because it&#039;s a mandatory field.&lt;br /&gt;
* The &amp;lt;code&amp;gt;manager&amp;lt;/code&amp;gt; field is optional and we use it to record the member who added the member in question.&lt;br /&gt;
&lt;br /&gt;
To make sure passwords are stored with the &amp;lt;code&amp;gt;{SSHA}&amp;lt;/code&amp;gt; scheme rather than plain text, the &amp;lt;code&amp;gt;ppolicy&amp;lt;/code&amp;gt; &amp;quot;password policy overlay&amp;quot; is used.  ZYTRAX has a very nice book about LDAP which documents how to enable this: http://www.zytrax.com/books/ldap/ch6/ppolicy.html&lt;br /&gt;
&lt;br /&gt;
In short, the steps go as follows (these commands &#039;&#039;should&#039;&#039; work verbatim):&lt;br /&gt;
&lt;br /&gt;
 # Add the ppolicy schema&lt;br /&gt;
 ldapadd -Y external -H ldapi:/// &amp;lt; /etc/ldap/schema/ppolicy.ldif&lt;br /&gt;
 &lt;br /&gt;
 # Enable the ppolicy dynamic module&lt;br /&gt;
 ldapmodify -Y external -H ldapi:/// &amp;lt;&amp;lt;EOF&lt;br /&gt;
 dn: cn=module{0},cn=config&lt;br /&gt;
 changetype: modify&lt;br /&gt;
 add: olcModuleLoad&lt;br /&gt;
 olcModuleLoad: ppolicy&lt;br /&gt;
 EOF&lt;br /&gt;
 &lt;br /&gt;
 # Add the ppolicy overlay with olcPPolicyHashCleartext set to TRUE&lt;br /&gt;
 ldapadd -Y external -H ldapi:/// &amp;lt;&amp;lt;EOF&lt;br /&gt;
 dn: olcOverlay=ppolicy,olcDatabase={1}mdb,cn=config&lt;br /&gt;
 objectClass: olcPPolicyConfig&lt;br /&gt;
 olcOverlay: ppolicy&lt;br /&gt;
 olcPPolicyHashCleartext: TRUE&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
=== Wiki ===&lt;br /&gt;
&lt;br /&gt;
Host: feministwiki.org, www.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: MediaWiki&lt;br /&gt;
&lt;br /&gt;
The wiki uses a [https://www.mediawiki.org/wiki/MediaWiki MediaWiki] installation located at &amp;lt;code&amp;gt;/var/www/wiki/w&amp;lt;/code&amp;gt; with the [https://www.mediawiki.org/wiki/Extension:LDAP_Authentication LDAP Authentication] plugin for login management and the &amp;quot;Short URL&amp;quot; feature enabled with help of Apache&#039;s vhost configuration, which is located at &amp;lt;code&amp;gt;/etc/apache2/sites-available/wiki.conf&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The wiki uses the SQL database called &amp;quot;feministwiki&amp;quot; and the SQL user of the same name.&lt;br /&gt;
&lt;br /&gt;
=== Chat (web interface) ===&lt;br /&gt;
&lt;br /&gt;
Host: chat.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: Converse.js&lt;br /&gt;
&lt;br /&gt;
The web-interface for the FeministChat uses the full-screen &amp;quot;Impress&amp;quot; variant of the [https://conversejs.org/ Converse.js] XMPP client.  The hosted HTML and JS files are located at &amp;lt;code&amp;gt;/var/www/chat&amp;lt;/code&amp;gt;, although they load Converse.js as an external script from upstream, which is why the self-hosted HTML and JS are very minimal.&lt;br /&gt;
&lt;br /&gt;
=== Forum ===&lt;br /&gt;
&lt;br /&gt;
Host: forum.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: phpBB&lt;br /&gt;
&lt;br /&gt;
The forum uses a [https://www.phpbb.com/ phpBB] installation located at &amp;lt;code&amp;gt;/var/www/forum&amp;lt;/code&amp;gt;.  Most configuration of phpBB, including LDAP authentication, is done through its administration panel.  The style used by the forum is essentially Basic Orange, though the logo is changed via an inheriting style called FeministWiki.&lt;br /&gt;
&lt;br /&gt;
The forum uses the SQL database called &amp;quot;feministforum&amp;quot; and the SQL user of the same name.&lt;br /&gt;
&lt;br /&gt;
=== Mail (web interface) ===&lt;br /&gt;
&lt;br /&gt;
Host: mail.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: Roundcube&lt;br /&gt;
&lt;br /&gt;
The web-interface for the FeministMail uses the [https://roundcube.net/ Roundcube] mail client, installed at &amp;lt;code&amp;gt;/var/www/mail&amp;lt;/code&amp;gt;.  It uses the standard &amp;quot;larry&amp;quot; style, but with some tweaks to logos and images.&lt;br /&gt;
&lt;br /&gt;
=== Files ===&lt;br /&gt;
&lt;br /&gt;
Host: files.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: Nextcloud&lt;br /&gt;
&lt;br /&gt;
FeministFiles is a [https://nextcloud.com/ Nextcloud] installation with some branding, and LDAP authentication, installed at &amp;lt;code&amp;gt;/var/www/files&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== IMAP ===&lt;br /&gt;
&lt;br /&gt;
Host: imap.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: Dovecot&lt;br /&gt;
&lt;br /&gt;
FeministMail uses the [https://www.dovecot.org/ Dovecot] IMAP server, configured for LDAP authentication and using virtual mail boxes under &amp;lt;code&amp;gt;/home/vmail&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== SMTP ===&lt;br /&gt;
&lt;br /&gt;
Host: smtp.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: Postfix&lt;br /&gt;
&lt;br /&gt;
FeministMail uses the [http://www.postfix.org/ Postfix] SMTP server, using SASL authentication through Dovecot and LDAP-based virtual mail boxes under &amp;lt;code&amp;gt;/home/vmail&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== XMPP ===&lt;br /&gt;
&lt;br /&gt;
Host: xmpp.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: ejabberd&lt;br /&gt;
&lt;br /&gt;
FeministChat uses the [https://www.ejabberd.im/ ejabberd] XMPP server, configured to use LDAP authentication and an LDAP-based shared roster group for all members.&lt;br /&gt;
&lt;br /&gt;
=== IRC ===&lt;br /&gt;
&lt;br /&gt;
Host: irc.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: InspIRCd&lt;br /&gt;
&lt;br /&gt;
FeministIRC uses the [http://www.inspircd.org/ InspIRCd] IRC server with the &amp;lt;code&amp;gt;ldapauth&amp;lt;/code&amp;gt; module for LDAP authentication.&lt;br /&gt;
&lt;br /&gt;
=== Add a member ===&lt;br /&gt;
&lt;br /&gt;
Host: add-member.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: custom&lt;br /&gt;
&lt;br /&gt;
The page to add a new member, hosted at &amp;lt;code&amp;gt;/var/www/add-member&amp;lt;/code&amp;gt;, uses a bit of self-written HTML, PHP, and a setuid-root C program to invoke the shell script located at &amp;lt;code&amp;gt;/root/bin/fw-adduser&amp;lt;/code&amp;gt; with root privileges.&lt;/div&gt;</summary>
		<author><name>SocJusWiz</name></author>
	</entry>
	<entry>
		<id>https://feministwiki.org/w/index.php?title=FeministWiki:Technical_documentation&amp;diff=105</id>
		<title>FeministWiki:Technical documentation</title>
		<link rel="alternate" type="text/html" href="https://feministwiki.org/w/index.php?title=FeministWiki:Technical_documentation&amp;diff=105"/>
		<updated>2018-09-23T15:21:40Z</updated>

		<summary type="html">&lt;p&gt;SocJusWiz: /* Special DNS entries */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page documents the FeministWiki&#039;s technical infrastructure, the target audience being technicians.&lt;br /&gt;
&lt;br /&gt;
== Hosts ==&lt;br /&gt;
&lt;br /&gt;
The following table documents the basic DNS configuration, and can be used as part of the &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt; file on each server to obviate the need for DNS lookups when connecting to one another.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!IP            !! FQDN                        !! Host          !! Purpose&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||            feministwiki.org ||               || Wiki&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||        www.feministwiki.org || www           || Wiki&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       ldap.feministwiki.org || ldap          || LDAP&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       chat.feministwiki.org || chat          || Web-client for XMPP&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||      forum.feministwiki.org || forum         || BBS Forum&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       mail.feministwiki.org || mail          || Web-client for Mail&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||      files.feministwiki.org || files         || File storage&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       imap.feministwiki.org || imap          || IMAP&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       smtp.feministwiki.org || smtp          || SMTP&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       xmpp.feministwiki.org || xmpp          || XMPP&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||        irc.feministwiki.org || irc           || IRC&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||     social.feministwiki.org || social        || GNU social&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 || add-member.feministwiki.org || add-member    || Add a member&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
(As you can see, all services are on the same server for now.)&lt;br /&gt;
&lt;br /&gt;
== Special DNS entries ==&lt;br /&gt;
&lt;br /&gt;
The following entries are used for email:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Type !! Host            !! Data                                                  !! Purpose&lt;br /&gt;
|-&lt;br /&gt;
|MX   || @               || smtp.feministwiki.org                                 || Mail server&lt;br /&gt;
|-&lt;br /&gt;
|TXT  || @               || v=spf1 mx -all                                        || SPF&lt;br /&gt;
|-&lt;br /&gt;
|TXT  || mail._domainkey || v=DKIM1; k=rsa; p=&amp;lt;pubkey&amp;gt;                            || DKIM&lt;br /&gt;
|-&lt;br /&gt;
|TXT  || _dmarc          || v=DMARC1; p=reject; rua=mailto:admin@feministwiki.org || DMARC&lt;br /&gt;
|-&lt;br /&gt;
|TXT  || @               || google-site-verification=&amp;lt;key&amp;gt;                        || Google Site Verification&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
And the following SRV records for XMPP:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Service      !! Protocol !! Name !! Destination           !! Port&lt;br /&gt;
|-&lt;br /&gt;
|_xmpp-client || _tcp     || @    || xmpp.feministwiki.org || 5222&lt;br /&gt;
|-&lt;br /&gt;
|_xmpp-server || _tcp     || @    || xmpp.feministwiki.org || 5269&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== SSH access ==&lt;br /&gt;
&lt;br /&gt;
FeministWiki hosts have ssh enabled for &amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt; access, but password login is disabled.  You must own a valid private key to log in.&lt;br /&gt;
&lt;br /&gt;
== Git repo of scripts and configuration ==&lt;br /&gt;
&lt;br /&gt;
The following GitHub account hosts repositories with scripts and configuration used by the FeministWiki:&lt;br /&gt;
&lt;br /&gt;
https://github.com/FeministWiki&lt;br /&gt;
&lt;br /&gt;
== Certs ==&lt;br /&gt;
&lt;br /&gt;
The FeministWiki uses LetsEncrypt to acquire digital certificates for encrypted communication.&lt;br /&gt;
&lt;br /&gt;
To ease use of the letsencrypt command, the file &amp;lt;code&amp;gt;/root/etc/domains&amp;lt;/code&amp;gt; contains all the FQDNs used by the FeministWiki, one per line.  Given that, the preferred way to populate the &amp;lt;code&amp;gt;/etc/letsencrypt/live/feministwiki.org&amp;lt;/code&amp;gt; directory with fresh certs is to run the following command while TCP port 80 is free (e.g. stop Apache first):&lt;br /&gt;
&lt;br /&gt;
 letsencrypt certonly --authenticator standalone -d &amp;quot;$(tr &#039;\n&#039; &#039;,&#039; &amp;lt; /root/etc/domains)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Additionally, for programs that require a cert file and its private key in a single combined &amp;lt;code&amp;gt;.pem&amp;lt;/code&amp;gt; file, run the following commands to generate such a file:&lt;br /&gt;
&lt;br /&gt;
 cd /etc/letsencrypt/live/feministwiki.org&lt;br /&gt;
 cat fullchain.pem privkey.pem &amp;gt; certbundle.pem&lt;br /&gt;
&lt;br /&gt;
The script &amp;lt;code&amp;gt;/root/bin/letsencrypt-refresh&amp;lt;/code&amp;gt; &#039;&#039;&#039;does all of the above&#039;&#039;&#039;, so in practice you just need to run the following commands to recreate the cert:&lt;br /&gt;
&lt;br /&gt;
 service apache2 stop  # Assuming Apache is running on the machine&lt;br /&gt;
 letsencrypt-refresh&lt;br /&gt;
 service apache2 start&lt;br /&gt;
&lt;br /&gt;
The above can be used not only to refresh a cert that&#039;s running out, but also to add a new domain to the cert.  Just add the domain to &amp;lt;code&amp;gt;/root/etc/domains&amp;lt;/code&amp;gt; and run the commands.&lt;br /&gt;
&lt;br /&gt;
Note that the letsencrypt command doesn&#039;t work well on a &amp;quot;dumb&amp;quot; terminal such as an Emacs shell buffer.  Make sure to run it from within a proper terminal emulator.&lt;br /&gt;
&lt;br /&gt;
== Services ==&lt;br /&gt;
&lt;br /&gt;
This section documents the individual services of the FeministWiki.  They should work regardless of what server they&#039;re on.  I.e. every service could in theory be hosted on its own server.&lt;br /&gt;
&lt;br /&gt;
=== LDAP ===&lt;br /&gt;
&lt;br /&gt;
Host: ldap.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: OpenLDAP&lt;br /&gt;
&lt;br /&gt;
The LDAP service contains the central database of FeministWiki members.  The structure looks like this:&lt;br /&gt;
&lt;br /&gt;
* dc=feministwiki,dc=org&lt;br /&gt;
** ou=members&lt;br /&gt;
*** cn=&#039;&#039;username&#039;&#039; &amp;lt;br/&amp;gt; objectClass: inetOrgPerson &amp;lt;br/&amp;gt; cn: &#039;&#039;username&#039;&#039; &amp;lt;br/&amp;gt; uid: &#039;&#039;username&#039;&#039; &amp;lt;br/&amp;gt; sn: - &amp;lt;br/&amp;gt; userPassword: {SSHA}&#039;&#039;saltedhash&#039;&#039; &amp;lt;br/&amp;gt; mail: &#039;&#039;username&#039;&#039;@feministwiki.org&lt;br /&gt;
*** cn=&#039;&#039;username2&#039;&#039; &amp;lt;br/&amp;gt; objectClass: inetOrgPerson &amp;lt;br/&amp;gt; cn: &#039;&#039;username2&#039;&#039; &amp;lt;br/&amp;gt; uid: &#039;&#039;username2&#039;&#039; &amp;lt;br/&amp;gt; sn: - &amp;lt;br/&amp;gt; userPassword: {SSHA}&#039;&#039;saltedhash2&#039;&#039; &amp;lt;br/&amp;gt; mail: &#039;&#039;username2&#039;&#039;@feministwiki.org &amp;lt;br/&amp;gt; manager: cn=&#039;&#039;username&#039;&#039;,ou=members,dc=feministwiki,dc=org&lt;br /&gt;
*** ...&lt;br /&gt;
** ou=groups&lt;br /&gt;
*** cn=members &amp;lt;br/&amp;gt; objectClass: groupOfNames &amp;lt;br/&amp;gt; cn: members &amp;lt;br/&amp;gt; member: &#039;&#039;username&#039;&#039; &amp;lt;br/&amp;gt; member: &#039;&#039;username2&#039;&#039; &amp;lt;br/&amp;gt; member: ...&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* The &amp;lt;code&amp;gt;cn&amp;lt;/code&amp;gt; (common name) and &amp;lt;code&amp;gt;uid&amp;lt;/code&amp;gt; (user ID) fields both contain the username.  This is because some software is preconfigured to look at &amp;lt;code&amp;gt;uid&amp;lt;/code&amp;gt;, while most look at &amp;lt;code&amp;gt;cn&amp;lt;/code&amp;gt;.&lt;br /&gt;
* The &amp;lt;code&amp;gt;sn&amp;lt;/code&amp;gt; (surname) field simply contains a minus character as a placeholder, because it&#039;s a mandatory field.&lt;br /&gt;
* The &amp;lt;code&amp;gt;manager&amp;lt;/code&amp;gt; field is optional and we use it to record the member who added the member in question.&lt;br /&gt;
&lt;br /&gt;
To make sure passwords are stored with the &amp;lt;code&amp;gt;{SSHA}&amp;lt;/code&amp;gt; scheme rather than plain text, the &amp;lt;code&amp;gt;ppolicy&amp;lt;/code&amp;gt; &amp;quot;password policy overlay&amp;quot; is used.  ZYTRAX has a very nice book about LDAP which documents how to enable this: http://www.zytrax.com/books/ldap/ch6/ppolicy.html&lt;br /&gt;
&lt;br /&gt;
In short, the steps go as follows (these commands &#039;&#039;should&#039;&#039; work verbatim):&lt;br /&gt;
&lt;br /&gt;
 # Add the ppolicy schema&lt;br /&gt;
 ldapadd -Y external -H ldapi:/// &amp;lt; /etc/ldap/schema/ppolicy.ldif&lt;br /&gt;
 &lt;br /&gt;
 # Enable the ppolicy dynamic module&lt;br /&gt;
 ldapmodify -Y external -H ldapi:/// &amp;lt;&amp;lt;EOF&lt;br /&gt;
 dn: cn=module{0},cn=config&lt;br /&gt;
 changetype: modify&lt;br /&gt;
 add: olcModuleLoad&lt;br /&gt;
 olcModuleLoad: ppolicy&lt;br /&gt;
 EOF&lt;br /&gt;
 &lt;br /&gt;
 # Add the ppolicy overlay with olcPPolicyHashCleartext set to TRUE&lt;br /&gt;
 ldapadd -Y external -H ldapi:/// &amp;lt;&amp;lt;EOF&lt;br /&gt;
 dn: olcOverlay=ppolicy,olcDatabase={1}mdb,cn=config&lt;br /&gt;
 objectClass: olcPPolicyConfig&lt;br /&gt;
 olcOverlay: ppolicy&lt;br /&gt;
 olcPPolicyHashCleartext: TRUE&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
=== Wiki ===&lt;br /&gt;
&lt;br /&gt;
Host: feministwiki.org, www.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: MediaWiki&lt;br /&gt;
&lt;br /&gt;
The wiki uses a [https://www.mediawiki.org/wiki/MediaWiki MediaWiki] installation located at &amp;lt;code&amp;gt;/var/www/wiki/w&amp;lt;/code&amp;gt; with the [https://www.mediawiki.org/wiki/Extension:LDAP_Authentication LDAP Authentication] plugin for login management and the &amp;quot;Short URL&amp;quot; feature enabled with help of Apache&#039;s vhost configuration, which is located at &amp;lt;code&amp;gt;/etc/apache2/sites-available/wiki.conf&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The wiki uses the SQL database called &amp;quot;feministwiki&amp;quot; and the SQL user of the same name.&lt;br /&gt;
&lt;br /&gt;
=== Chat (web interface) ===&lt;br /&gt;
&lt;br /&gt;
Host: chat.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: Converse.js&lt;br /&gt;
&lt;br /&gt;
The web-interface for the FeministChat uses the full-screen &amp;quot;Impress&amp;quot; variant of the [https://conversejs.org/ Converse.js] XMPP client.  The hosted HTML and JS files are located at &amp;lt;code&amp;gt;/var/www/chat&amp;lt;/code&amp;gt;, although they load Converse.js as an external script from upstream, which is why the self-hosted HTML and JS are very minimal.&lt;br /&gt;
&lt;br /&gt;
=== Forum ===&lt;br /&gt;
&lt;br /&gt;
Host: forum.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: phpBB&lt;br /&gt;
&lt;br /&gt;
The forum uses a [https://www.phpbb.com/ phpBB] installation located at &amp;lt;code&amp;gt;/var/www/forum&amp;lt;/code&amp;gt;.  Most configuration of phpBB, including LDAP authentication, is done through its administration panel.  The style used by the forum is essentially Basic Orange, though the logo is changed via an inheriting style called FeministWiki.&lt;br /&gt;
&lt;br /&gt;
The forum uses the SQL database called &amp;quot;feministforum&amp;quot; and the SQL user of the same name.&lt;br /&gt;
&lt;br /&gt;
=== Mail (web interface) ===&lt;br /&gt;
&lt;br /&gt;
Host: mail.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: Roundcube&lt;br /&gt;
&lt;br /&gt;
The web-interface for the FeministMail uses the [https://roundcube.net/ Roundcube] mail client, installed at &amp;lt;code&amp;gt;/var/www/mail&amp;lt;/code&amp;gt;.  It uses the standard &amp;quot;larry&amp;quot; style, but with some tweaks to logos and images.&lt;br /&gt;
&lt;br /&gt;
=== Files ===&lt;br /&gt;
&lt;br /&gt;
Host: files.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: Nextcloud&lt;br /&gt;
&lt;br /&gt;
FeministFiles is a [https://nextcloud.com/ Nextcloud] installation with some branding, and LDAP authentication, installed at &amp;lt;code&amp;gt;/var/www/files&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== IMAP ===&lt;br /&gt;
&lt;br /&gt;
Host: imap.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: Dovecot&lt;br /&gt;
&lt;br /&gt;
FeministMail uses the [https://www.dovecot.org/ Dovecot] IMAP server, configured for LDAP authentication and using virtual mail boxes under &amp;lt;code&amp;gt;/home/vmail&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== SMTP ===&lt;br /&gt;
&lt;br /&gt;
Host: smtp.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: Postfix&lt;br /&gt;
&lt;br /&gt;
FeministMail uses the [http://www.postfix.org/ Postfix] SMTP server, using SASL authentication through Dovecot and LDAP-based virtual mail boxes under &amp;lt;code&amp;gt;/home/vmail&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== XMPP ===&lt;br /&gt;
&lt;br /&gt;
Host: xmpp.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: ejabberd&lt;br /&gt;
&lt;br /&gt;
FeministChat uses the [https://www.ejabberd.im/ ejabberd] XMPP server, configured to use LDAP authentication and an LDAP-based shared roster group for all members.&lt;br /&gt;
&lt;br /&gt;
=== IRC ===&lt;br /&gt;
&lt;br /&gt;
Host: irc.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: InspIRCd&lt;br /&gt;
&lt;br /&gt;
FeministIRC uses the [http://www.inspircd.org/ InspIRCd] IRC server with the &amp;lt;code&amp;gt;ldapauth&amp;lt;/code&amp;gt; module for LDAP authentication.&lt;br /&gt;
&lt;br /&gt;
=== Add a member ===&lt;br /&gt;
&lt;br /&gt;
Host: add-member.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: custom&lt;br /&gt;
&lt;br /&gt;
The page to add a new member, hosted at &amp;lt;code&amp;gt;/var/www/add-member&amp;lt;/code&amp;gt;, uses a bit of self-written HTML, PHP, and a setuid-root C program to invoke the shell script located at &amp;lt;code&amp;gt;/root/bin/fw-adduser&amp;lt;/code&amp;gt; with root privileges.&lt;/div&gt;</summary>
		<author><name>SocJusWiz</name></author>
	</entry>
	<entry>
		<id>https://feministwiki.org/w/index.php?title=FeministWiki:Technical_documentation&amp;diff=104</id>
		<title>FeministWiki:Technical documentation</title>
		<link rel="alternate" type="text/html" href="https://feministwiki.org/w/index.php?title=FeministWiki:Technical_documentation&amp;diff=104"/>
		<updated>2018-09-23T13:24:18Z</updated>

		<summary type="html">&lt;p&gt;SocJusWiz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page documents the FeministWiki&#039;s technical infrastructure, the target audience being technicians.&lt;br /&gt;
&lt;br /&gt;
== Hosts ==&lt;br /&gt;
&lt;br /&gt;
The following table documents the basic DNS configuration, and can be used as part of the &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt; file on each server to obviate the need for DNS lookups when connecting to one another.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!IP            !! FQDN                        !! Host          !! Purpose&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||            feministwiki.org ||               || Wiki&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||        www.feministwiki.org || www           || Wiki&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       ldap.feministwiki.org || ldap          || LDAP&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       chat.feministwiki.org || chat          || Web-client for XMPP&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||      forum.feministwiki.org || forum         || BBS Forum&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       mail.feministwiki.org || mail          || Web-client for Mail&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||      files.feministwiki.org || files         || File storage&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       imap.feministwiki.org || imap          || IMAP&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       smtp.feministwiki.org || smtp          || SMTP&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       xmpp.feministwiki.org || xmpp          || XMPP&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||        irc.feministwiki.org || irc           || IRC&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||     social.feministwiki.org || social        || GNU social&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 || add-member.feministwiki.org || add-member    || Add a member&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
(As you can see, all services are on the same server for now.)&lt;br /&gt;
&lt;br /&gt;
== Special DNS entries ==&lt;br /&gt;
&lt;br /&gt;
The following entries are used for email:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Type !! Host !! Data                    !! Purpose&lt;br /&gt;
|-&lt;br /&gt;
|MX   || @    || smtp.feministwiki.org   || Mail server&lt;br /&gt;
|-&lt;br /&gt;
|TXT  || @    || v=spf1 mx -all          || Sender Policy Framework&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
And the following SRV records for XMPP:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Service      !! Protocol !! Name !! Destination           !! Port&lt;br /&gt;
|-&lt;br /&gt;
|_xmpp-client || _tcp     || @    || xmpp.feministwiki.org || 5222&lt;br /&gt;
|-&lt;br /&gt;
|_xmpp-server || _tcp     || @    || xmpp.feministwiki.org || 5269&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== SSH access ==&lt;br /&gt;
&lt;br /&gt;
FeministWiki hosts have ssh enabled for &amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt; access, but password login is disabled.  You must own a valid private key to log in.&lt;br /&gt;
&lt;br /&gt;
== Git repo of scripts and configuration ==&lt;br /&gt;
&lt;br /&gt;
The following GitHub account hosts repositories with scripts and configuration used by the FeministWiki:&lt;br /&gt;
&lt;br /&gt;
https://github.com/FeministWiki&lt;br /&gt;
&lt;br /&gt;
== Certs ==&lt;br /&gt;
&lt;br /&gt;
The FeministWiki uses LetsEncrypt to acquire digital certificates for encrypted communication.&lt;br /&gt;
&lt;br /&gt;
To ease use of the letsencrypt command, the file &amp;lt;code&amp;gt;/root/etc/domains&amp;lt;/code&amp;gt; contains all the FQDNs used by the FeministWiki, one per line.  Given that, the preferred way to populate the &amp;lt;code&amp;gt;/etc/letsencrypt/live/feministwiki.org&amp;lt;/code&amp;gt; directory with fresh certs is to run the following command while TCP port 80 is free (e.g. stop Apache first):&lt;br /&gt;
&lt;br /&gt;
 letsencrypt certonly --authenticator standalone -d &amp;quot;$(tr &#039;\n&#039; &#039;,&#039; &amp;lt; /root/etc/domains)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Additionally, for programs that require a cert file and its private key in a single combined &amp;lt;code&amp;gt;.pem&amp;lt;/code&amp;gt; file, run the following commands to generate such a file:&lt;br /&gt;
&lt;br /&gt;
 cd /etc/letsencrypt/live/feministwiki.org&lt;br /&gt;
 cat fullchain.pem privkey.pem &amp;gt; certbundle.pem&lt;br /&gt;
&lt;br /&gt;
The script &amp;lt;code&amp;gt;/root/bin/letsencrypt-refresh&amp;lt;/code&amp;gt; &#039;&#039;&#039;does all of the above&#039;&#039;&#039;, so in practice you just need to run the following commands to recreate the cert:&lt;br /&gt;
&lt;br /&gt;
 service apache2 stop  # Assuming Apache is running on the machine&lt;br /&gt;
 letsencrypt-refresh&lt;br /&gt;
 service apache2 start&lt;br /&gt;
&lt;br /&gt;
The above can be used not only to refresh a cert that&#039;s running out, but also to add a new domain to the cert.  Just add the domain to &amp;lt;code&amp;gt;/root/etc/domains&amp;lt;/code&amp;gt; and run the commands.&lt;br /&gt;
&lt;br /&gt;
Note that the letsencrypt command doesn&#039;t work well on a &amp;quot;dumb&amp;quot; terminal such as an Emacs shell buffer.  Make sure to run it from within a proper terminal emulator.&lt;br /&gt;
&lt;br /&gt;
== Services ==&lt;br /&gt;
&lt;br /&gt;
This section documents the individual services of the FeministWiki.  They should work regardless of what server they&#039;re on.  I.e. every service could in theory be hosted on its own server.&lt;br /&gt;
&lt;br /&gt;
=== LDAP ===&lt;br /&gt;
&lt;br /&gt;
Host: ldap.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: OpenLDAP&lt;br /&gt;
&lt;br /&gt;
The LDAP service contains the central database of FeministWiki members.  The structure looks like this:&lt;br /&gt;
&lt;br /&gt;
* dc=feministwiki,dc=org&lt;br /&gt;
** ou=members&lt;br /&gt;
*** cn=&#039;&#039;username&#039;&#039; &amp;lt;br/&amp;gt; objectClass: inetOrgPerson &amp;lt;br/&amp;gt; cn: &#039;&#039;username&#039;&#039; &amp;lt;br/&amp;gt; uid: &#039;&#039;username&#039;&#039; &amp;lt;br/&amp;gt; sn: - &amp;lt;br/&amp;gt; userPassword: {SSHA}&#039;&#039;saltedhash&#039;&#039; &amp;lt;br/&amp;gt; mail: &#039;&#039;username&#039;&#039;@feministwiki.org&lt;br /&gt;
*** cn=&#039;&#039;username2&#039;&#039; &amp;lt;br/&amp;gt; objectClass: inetOrgPerson &amp;lt;br/&amp;gt; cn: &#039;&#039;username2&#039;&#039; &amp;lt;br/&amp;gt; uid: &#039;&#039;username2&#039;&#039; &amp;lt;br/&amp;gt; sn: - &amp;lt;br/&amp;gt; userPassword: {SSHA}&#039;&#039;saltedhash2&#039;&#039; &amp;lt;br/&amp;gt; mail: &#039;&#039;username2&#039;&#039;@feministwiki.org &amp;lt;br/&amp;gt; manager: cn=&#039;&#039;username&#039;&#039;,ou=members,dc=feministwiki,dc=org&lt;br /&gt;
*** ...&lt;br /&gt;
** ou=groups&lt;br /&gt;
*** cn=members &amp;lt;br/&amp;gt; objectClass: groupOfNames &amp;lt;br/&amp;gt; cn: members &amp;lt;br/&amp;gt; member: &#039;&#039;username&#039;&#039; &amp;lt;br/&amp;gt; member: &#039;&#039;username2&#039;&#039; &amp;lt;br/&amp;gt; member: ...&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* The &amp;lt;code&amp;gt;cn&amp;lt;/code&amp;gt; (common name) and &amp;lt;code&amp;gt;uid&amp;lt;/code&amp;gt; (user ID) fields both contain the username.  This is because some software is preconfigured to look at &amp;lt;code&amp;gt;uid&amp;lt;/code&amp;gt;, while most look at &amp;lt;code&amp;gt;cn&amp;lt;/code&amp;gt;.&lt;br /&gt;
* The &amp;lt;code&amp;gt;sn&amp;lt;/code&amp;gt; (surname) field simply contains a minus character as a placeholder, because it&#039;s a mandatory field.&lt;br /&gt;
* The &amp;lt;code&amp;gt;manager&amp;lt;/code&amp;gt; field is optional and we use it to record the member who added the member in question.&lt;br /&gt;
&lt;br /&gt;
To make sure passwords are stored with the &amp;lt;code&amp;gt;{SSHA}&amp;lt;/code&amp;gt; scheme rather than plain text, the &amp;lt;code&amp;gt;ppolicy&amp;lt;/code&amp;gt; &amp;quot;password policy overlay&amp;quot; is used.  ZYTRAX has a very nice book about LDAP which documents how to enable this: http://www.zytrax.com/books/ldap/ch6/ppolicy.html&lt;br /&gt;
&lt;br /&gt;
In short, the steps go as follows (these commands &#039;&#039;should&#039;&#039; work verbatim):&lt;br /&gt;
&lt;br /&gt;
 # Add the ppolicy schema&lt;br /&gt;
 ldapadd -Y external -H ldapi:/// &amp;lt; /etc/ldap/schema/ppolicy.ldif&lt;br /&gt;
 &lt;br /&gt;
 # Enable the ppolicy dynamic module&lt;br /&gt;
 ldapmodify -Y external -H ldapi:/// &amp;lt;&amp;lt;EOF&lt;br /&gt;
 dn: cn=module{0},cn=config&lt;br /&gt;
 changetype: modify&lt;br /&gt;
 add: olcModuleLoad&lt;br /&gt;
 olcModuleLoad: ppolicy&lt;br /&gt;
 EOF&lt;br /&gt;
 &lt;br /&gt;
 # Add the ppolicy overlay with olcPPolicyHashCleartext set to TRUE&lt;br /&gt;
 ldapadd -Y external -H ldapi:/// &amp;lt;&amp;lt;EOF&lt;br /&gt;
 dn: olcOverlay=ppolicy,olcDatabase={1}mdb,cn=config&lt;br /&gt;
 objectClass: olcPPolicyConfig&lt;br /&gt;
 olcOverlay: ppolicy&lt;br /&gt;
 olcPPolicyHashCleartext: TRUE&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
=== Wiki ===&lt;br /&gt;
&lt;br /&gt;
Host: feministwiki.org, www.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: MediaWiki&lt;br /&gt;
&lt;br /&gt;
The wiki uses a [https://www.mediawiki.org/wiki/MediaWiki MediaWiki] installation located at &amp;lt;code&amp;gt;/var/www/wiki/w&amp;lt;/code&amp;gt; with the [https://www.mediawiki.org/wiki/Extension:LDAP_Authentication LDAP Authentication] plugin for login management and the &amp;quot;Short URL&amp;quot; feature enabled with help of Apache&#039;s vhost configuration, which is located at &amp;lt;code&amp;gt;/etc/apache2/sites-available/wiki.conf&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The wiki uses the SQL database called &amp;quot;feministwiki&amp;quot; and the SQL user of the same name.&lt;br /&gt;
&lt;br /&gt;
=== Chat (web interface) ===&lt;br /&gt;
&lt;br /&gt;
Host: chat.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: Converse.js&lt;br /&gt;
&lt;br /&gt;
The web-interface for the FeministChat uses the full-screen &amp;quot;Impress&amp;quot; variant of the [https://conversejs.org/ Converse.js] XMPP client.  The hosted HTML and JS files are located at &amp;lt;code&amp;gt;/var/www/chat&amp;lt;/code&amp;gt;, although they load Converse.js as an external script from upstream, which is why the self-hosted HTML and JS are very minimal.&lt;br /&gt;
&lt;br /&gt;
=== Forum ===&lt;br /&gt;
&lt;br /&gt;
Host: forum.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: phpBB&lt;br /&gt;
&lt;br /&gt;
The forum uses a [https://www.phpbb.com/ phpBB] installation located at &amp;lt;code&amp;gt;/var/www/forum&amp;lt;/code&amp;gt;.  Most configuration of phpBB, including LDAP authentication, is done through its administration panel.  The style used by the forum is essentially Basic Orange, though the logo is changed via an inheriting style called FeministWiki.&lt;br /&gt;
&lt;br /&gt;
The forum uses the SQL database called &amp;quot;feministforum&amp;quot; and the SQL user of the same name.&lt;br /&gt;
&lt;br /&gt;
=== Mail (web interface) ===&lt;br /&gt;
&lt;br /&gt;
Host: mail.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: Roundcube&lt;br /&gt;
&lt;br /&gt;
The web-interface for the FeministMail uses the [https://roundcube.net/ Roundcube] mail client, installed at &amp;lt;code&amp;gt;/var/www/mail&amp;lt;/code&amp;gt;.  It uses the standard &amp;quot;larry&amp;quot; style, but with some tweaks to logos and images.&lt;br /&gt;
&lt;br /&gt;
=== Files ===&lt;br /&gt;
&lt;br /&gt;
Host: files.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: Nextcloud&lt;br /&gt;
&lt;br /&gt;
FeministFiles is a [https://nextcloud.com/ Nextcloud] installation with some branding, and LDAP authentication, installed at &amp;lt;code&amp;gt;/var/www/files&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== IMAP ===&lt;br /&gt;
&lt;br /&gt;
Host: imap.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: Dovecot&lt;br /&gt;
&lt;br /&gt;
FeministMail uses the [https://www.dovecot.org/ Dovecot] IMAP server, configured for LDAP authentication and using virtual mail boxes under &amp;lt;code&amp;gt;/home/vmail&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== SMTP ===&lt;br /&gt;
&lt;br /&gt;
Host: smtp.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: Postfix&lt;br /&gt;
&lt;br /&gt;
FeministMail uses the [http://www.postfix.org/ Postfix] SMTP server, using SASL authentication through Dovecot and LDAP-based virtual mail boxes under &amp;lt;code&amp;gt;/home/vmail&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== XMPP ===&lt;br /&gt;
&lt;br /&gt;
Host: xmpp.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: ejabberd&lt;br /&gt;
&lt;br /&gt;
FeministChat uses the [https://www.ejabberd.im/ ejabberd] XMPP server, configured to use LDAP authentication and an LDAP-based shared roster group for all members.&lt;br /&gt;
&lt;br /&gt;
=== IRC ===&lt;br /&gt;
&lt;br /&gt;
Host: irc.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: InspIRCd&lt;br /&gt;
&lt;br /&gt;
FeministIRC uses the [http://www.inspircd.org/ InspIRCd] IRC server with the &amp;lt;code&amp;gt;ldapauth&amp;lt;/code&amp;gt; module for LDAP authentication.&lt;br /&gt;
&lt;br /&gt;
=== Add a member ===&lt;br /&gt;
&lt;br /&gt;
Host: add-member.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: custom&lt;br /&gt;
&lt;br /&gt;
The page to add a new member, hosted at &amp;lt;code&amp;gt;/var/www/add-member&amp;lt;/code&amp;gt;, uses a bit of self-written HTML, PHP, and a setuid-root C program to invoke the shell script located at &amp;lt;code&amp;gt;/root/bin/fw-adduser&amp;lt;/code&amp;gt; with root privileges.&lt;/div&gt;</summary>
		<author><name>SocJusWiz</name></author>
	</entry>
	<entry>
		<id>https://feministwiki.org/w/index.php?title=FeministWiki:Technical_documentation&amp;diff=103</id>
		<title>FeministWiki:Technical documentation</title>
		<link rel="alternate" type="text/html" href="https://feministwiki.org/w/index.php?title=FeministWiki:Technical_documentation&amp;diff=103"/>
		<updated>2018-09-23T13:10:02Z</updated>

		<summary type="html">&lt;p&gt;SocJusWiz: /* Hosts */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page documents the FeministWiki&#039;s technical infrastructure, the target audience being technicians.&lt;br /&gt;
&lt;br /&gt;
== Hosts ==&lt;br /&gt;
&lt;br /&gt;
The following table documents the basic DNS configuration, and can be used as part of the &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt; file on each server to obviate the need for DNS lookups when connecting to one another.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!IP            !! FQDN                        !! Host          !! Purpose&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||            feministwiki.org ||               || Wiki&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||        www.feministwiki.org || www           || Wiki&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       ldap.feministwiki.org || ldap          || LDAP&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       chat.feministwiki.org || chat          || Web-client for XMPP&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||      forum.feministwiki.org || forum         || BBS Forum&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       mail.feministwiki.org || mail          || Web-client for Mail&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||      files.feministwiki.org || files         || File storage&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       imap.feministwiki.org || imap          || IMAP&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       smtp.feministwiki.org || smtp          || SMTP&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       xmpp.feministwiki.org || xmpp          || XMPP&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||        irc.feministwiki.org || irc           || IRC&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||     social.feministwiki.org || social        || GNU social&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 || add-member.feministwiki.org || add-member    || Add a member&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
(As you can see, all services are on the same server for now.)&lt;br /&gt;
&lt;br /&gt;
== SSH access ==&lt;br /&gt;
&lt;br /&gt;
FeministWiki hosts have ssh enabled for &amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt; access, but password login is disabled.  You must own a valid private key to log in.&lt;br /&gt;
&lt;br /&gt;
== Git repo of scripts and configuration ==&lt;br /&gt;
&lt;br /&gt;
The following GitHub account hosts repositories with scripts and configuration used by the FeministWiki:&lt;br /&gt;
&lt;br /&gt;
https://github.com/FeministWiki&lt;br /&gt;
&lt;br /&gt;
== Certs ==&lt;br /&gt;
&lt;br /&gt;
The FeministWiki uses LetsEncrypt to acquire digital certificates for encrypted communication.&lt;br /&gt;
&lt;br /&gt;
To ease use of the letsencrypt command, the file &amp;lt;code&amp;gt;/root/etc/domains&amp;lt;/code&amp;gt; contains all the FQDNs used by the FeministWiki, one per line.  Given that, the preferred way to populate the &amp;lt;code&amp;gt;/etc/letsencrypt/live/feministwiki.org&amp;lt;/code&amp;gt; directory with fresh certs is to run the following command while TCP port 80 is free (e.g. stop Apache first):&lt;br /&gt;
&lt;br /&gt;
 letsencrypt certonly --authenticator standalone -d &amp;quot;$(tr &#039;\n&#039; &#039;,&#039; &amp;lt; /root/etc/domains)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Additionally, for programs that require a cert file and its private key in a single combined &amp;lt;code&amp;gt;.pem&amp;lt;/code&amp;gt; file, run the following commands to generate such a file:&lt;br /&gt;
&lt;br /&gt;
 cd /etc/letsencrypt/live/feministwiki.org&lt;br /&gt;
 cat fullchain.pem privkey.pem &amp;gt; certbundle.pem&lt;br /&gt;
&lt;br /&gt;
The script &amp;lt;code&amp;gt;/root/bin/letsencrypt-refresh&amp;lt;/code&amp;gt; &#039;&#039;&#039;does all of the above&#039;&#039;&#039;, so in practice you just need to run the following commands to recreate the cert:&lt;br /&gt;
&lt;br /&gt;
 service apache2 stop  # Assuming Apache is running on the machine&lt;br /&gt;
 letsencrypt-refresh&lt;br /&gt;
 service apache2 start&lt;br /&gt;
&lt;br /&gt;
The above can be used not only to refresh a cert that&#039;s running out, but also to add a new domain to the cert.  Just add the domain to &amp;lt;code&amp;gt;/root/etc/domains&amp;lt;/code&amp;gt; and run the commands.&lt;br /&gt;
&lt;br /&gt;
Note that the letsencrypt command doesn&#039;t work well on a &amp;quot;dumb&amp;quot; terminal such as an Emacs shell buffer.  Make sure to run it from within a proper terminal emulator.&lt;br /&gt;
&lt;br /&gt;
== Services ==&lt;br /&gt;
&lt;br /&gt;
This section documents the individual services of the FeministWiki.  They should work regardless of what server they&#039;re on.  I.e. every service could in theory be hosted on its own server.&lt;br /&gt;
&lt;br /&gt;
=== LDAP ===&lt;br /&gt;
&lt;br /&gt;
Host: ldap.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: OpenLDAP&lt;br /&gt;
&lt;br /&gt;
The LDAP service contains the central database of FeministWiki members.  The structure looks like this:&lt;br /&gt;
&lt;br /&gt;
* dc=feministwiki,dc=org&lt;br /&gt;
** ou=members&lt;br /&gt;
*** cn=&#039;&#039;username&#039;&#039; &amp;lt;br/&amp;gt; objectClass: inetOrgPerson &amp;lt;br/&amp;gt; cn: &#039;&#039;username&#039;&#039; &amp;lt;br/&amp;gt; uid: &#039;&#039;username&#039;&#039; &amp;lt;br/&amp;gt; sn: - &amp;lt;br/&amp;gt; userPassword: {SSHA}&#039;&#039;saltedhash&#039;&#039; &amp;lt;br/&amp;gt; mail: &#039;&#039;username&#039;&#039;@feministwiki.org&lt;br /&gt;
*** cn=&#039;&#039;username2&#039;&#039; &amp;lt;br/&amp;gt; objectClass: inetOrgPerson &amp;lt;br/&amp;gt; cn: &#039;&#039;username2&#039;&#039; &amp;lt;br/&amp;gt; uid: &#039;&#039;username2&#039;&#039; &amp;lt;br/&amp;gt; sn: - &amp;lt;br/&amp;gt; userPassword: {SSHA}&#039;&#039;saltedhash2&#039;&#039; &amp;lt;br/&amp;gt; mail: &#039;&#039;username2&#039;&#039;@feministwiki.org &amp;lt;br/&amp;gt; manager: cn=&#039;&#039;username&#039;&#039;,ou=members,dc=feministwiki,dc=org&lt;br /&gt;
*** ...&lt;br /&gt;
** ou=groups&lt;br /&gt;
*** cn=members &amp;lt;br/&amp;gt; objectClass: groupOfNames &amp;lt;br/&amp;gt; cn: members &amp;lt;br/&amp;gt; member: &#039;&#039;username&#039;&#039; &amp;lt;br/&amp;gt; member: &#039;&#039;username2&#039;&#039; &amp;lt;br/&amp;gt; member: ...&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* The &amp;lt;code&amp;gt;cn&amp;lt;/code&amp;gt; (common name) and &amp;lt;code&amp;gt;uid&amp;lt;/code&amp;gt; (user ID) fields both contain the username.  This is because some software is preconfigured to look at &amp;lt;code&amp;gt;uid&amp;lt;/code&amp;gt;, while most look at &amp;lt;code&amp;gt;cn&amp;lt;/code&amp;gt;.&lt;br /&gt;
* The &amp;lt;code&amp;gt;sn&amp;lt;/code&amp;gt; (surname) field simply contains a minus character as a placeholder, because it&#039;s a mandatory field.&lt;br /&gt;
* The &amp;lt;code&amp;gt;manager&amp;lt;/code&amp;gt; field is optional and we use it to record the member who added the member in question.&lt;br /&gt;
&lt;br /&gt;
To make sure passwords are stored with the &amp;lt;code&amp;gt;{SSHA}&amp;lt;/code&amp;gt; scheme rather than plain text, the &amp;lt;code&amp;gt;ppolicy&amp;lt;/code&amp;gt; &amp;quot;password policy overlay&amp;quot; is used.  ZYTRAX has a very nice book about LDAP which documents how to enable this: http://www.zytrax.com/books/ldap/ch6/ppolicy.html&lt;br /&gt;
&lt;br /&gt;
In short, the steps go as follows (these commands &#039;&#039;should&#039;&#039; work verbatim):&lt;br /&gt;
&lt;br /&gt;
 # Add the ppolicy schema&lt;br /&gt;
 ldapadd -Y external -H ldapi:/// &amp;lt; /etc/ldap/schema/ppolicy.ldif&lt;br /&gt;
 &lt;br /&gt;
 # Enable the ppolicy dynamic module&lt;br /&gt;
 ldapmodify -Y external -H ldapi:/// &amp;lt;&amp;lt;EOF&lt;br /&gt;
 dn: cn=module{0},cn=config&lt;br /&gt;
 changetype: modify&lt;br /&gt;
 add: olcModuleLoad&lt;br /&gt;
 olcModuleLoad: ppolicy&lt;br /&gt;
 EOF&lt;br /&gt;
 &lt;br /&gt;
 # Add the ppolicy overlay with olcPPolicyHashCleartext set to TRUE&lt;br /&gt;
 ldapadd -Y external -H ldapi:/// &amp;lt;&amp;lt;EOF&lt;br /&gt;
 dn: olcOverlay=ppolicy,olcDatabase={1}mdb,cn=config&lt;br /&gt;
 objectClass: olcPPolicyConfig&lt;br /&gt;
 olcOverlay: ppolicy&lt;br /&gt;
 olcPPolicyHashCleartext: TRUE&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
=== Wiki ===&lt;br /&gt;
&lt;br /&gt;
Host: feministwiki.org, www.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: MediaWiki&lt;br /&gt;
&lt;br /&gt;
The wiki uses a [https://www.mediawiki.org/wiki/MediaWiki MediaWiki] installation located at &amp;lt;code&amp;gt;/var/www/wiki/w&amp;lt;/code&amp;gt; with the [https://www.mediawiki.org/wiki/Extension:LDAP_Authentication LDAP Authentication] plugin for login management and the &amp;quot;Short URL&amp;quot; feature enabled with help of Apache&#039;s vhost configuration, which is located at &amp;lt;code&amp;gt;/etc/apache2/sites-available/wiki.conf&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The wiki uses the SQL database called &amp;quot;feministwiki&amp;quot; and the SQL user of the same name.&lt;br /&gt;
&lt;br /&gt;
=== Chat (web interface) ===&lt;br /&gt;
&lt;br /&gt;
Host: chat.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: Converse.js&lt;br /&gt;
&lt;br /&gt;
The web-interface for the FeministChat uses the full-screen &amp;quot;Impress&amp;quot; variant of the [https://conversejs.org/ Converse.js] XMPP client.  The hosted HTML and JS files are located at &amp;lt;code&amp;gt;/var/www/chat&amp;lt;/code&amp;gt;, although they load Converse.js as an external script from upstream, which is why the self-hosted HTML and JS are very minimal.&lt;br /&gt;
&lt;br /&gt;
=== Forum ===&lt;br /&gt;
&lt;br /&gt;
Host: forum.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: phpBB&lt;br /&gt;
&lt;br /&gt;
The forum uses a [https://www.phpbb.com/ phpBB] installation located at &amp;lt;code&amp;gt;/var/www/forum&amp;lt;/code&amp;gt;.  Most configuration of phpBB, including LDAP authentication, is done through its administration panel.  The style used by the forum is essentially Basic Orange, though the logo is changed via an inheriting style called FeministWiki.&lt;br /&gt;
&lt;br /&gt;
The forum uses the SQL database called &amp;quot;feministforum&amp;quot; and the SQL user of the same name.&lt;br /&gt;
&lt;br /&gt;
=== Mail (web interface) ===&lt;br /&gt;
&lt;br /&gt;
Host: mail.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: Roundcube&lt;br /&gt;
&lt;br /&gt;
The web-interface for the FeministMail uses the [https://roundcube.net/ Roundcube] mail client, installed at &amp;lt;code&amp;gt;/var/www/mail&amp;lt;/code&amp;gt;.  It uses the standard &amp;quot;larry&amp;quot; style, but with some tweaks to logos and images.&lt;br /&gt;
&lt;br /&gt;
=== Files ===&lt;br /&gt;
&lt;br /&gt;
Host: files.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: Nextcloud&lt;br /&gt;
&lt;br /&gt;
FeministFiles is a [https://nextcloud.com/ Nextcloud] installation with some branding, and LDAP authentication, installed at &amp;lt;code&amp;gt;/var/www/files&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== IMAP ===&lt;br /&gt;
&lt;br /&gt;
Host: imap.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: Dovecot&lt;br /&gt;
&lt;br /&gt;
FeministMail uses the [https://www.dovecot.org/ Dovecot] IMAP server, configured for LDAP authentication and using virtual mail boxes under &amp;lt;code&amp;gt;/home/vmail&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== SMTP ===&lt;br /&gt;
&lt;br /&gt;
Host: smtp.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: Postfix&lt;br /&gt;
&lt;br /&gt;
FeministMail uses the [http://www.postfix.org/ Postfix] SMTP server, using SASL authentication through Dovecot and LDAP-based virtual mail boxes under &amp;lt;code&amp;gt;/home/vmail&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== XMPP ===&lt;br /&gt;
&lt;br /&gt;
Host: xmpp.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: ejabberd&lt;br /&gt;
&lt;br /&gt;
FeministChat uses the [https://www.ejabberd.im/ ejabberd] XMPP server, configured to use LDAP authentication and an LDAP-based shared roster group for all members.&lt;br /&gt;
&lt;br /&gt;
=== IRC ===&lt;br /&gt;
&lt;br /&gt;
Host: irc.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: InspIRCd&lt;br /&gt;
&lt;br /&gt;
FeministIRC uses the [http://www.inspircd.org/ InspIRCd] IRC server with the &amp;lt;code&amp;gt;ldapauth&amp;lt;/code&amp;gt; module for LDAP authentication.&lt;br /&gt;
&lt;br /&gt;
=== Add a member ===&lt;br /&gt;
&lt;br /&gt;
Host: add-member.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: custom&lt;br /&gt;
&lt;br /&gt;
The page to add a new member, hosted at &amp;lt;code&amp;gt;/var/www/add-member&amp;lt;/code&amp;gt;, uses a bit of self-written HTML, PHP, and a setuid-root C program to invoke the shell script located at &amp;lt;code&amp;gt;/root/bin/fw-adduser&amp;lt;/code&amp;gt; with root privileges.&lt;/div&gt;</summary>
		<author><name>SocJusWiz</name></author>
	</entry>
	<entry>
		<id>https://feministwiki.org/w/index.php?title=FeministWiki:Todo&amp;diff=102</id>
		<title>FeministWiki:Todo</title>
		<link rel="alternate" type="text/html" href="https://feministwiki.org/w/index.php?title=FeministWiki:Todo&amp;diff=102"/>
		<updated>2018-09-22T23:28:32Z</updated>

		<summary type="html">&lt;p&gt;SocJusWiz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Use DKIM and DMARC&lt;br /&gt;
* Improve technical documentation: DNS stuff&lt;br /&gt;
* Implement single sign-on&lt;br /&gt;
* Add blogs (WP?)&lt;br /&gt;
* Add mailing lists&lt;br /&gt;
* Add Mastodon&lt;br /&gt;
* Add calendar&lt;br /&gt;
* Add Diaspora?&lt;br /&gt;
* Import Wikipedia features (infoboxes, citations)&lt;/div&gt;</summary>
		<author><name>SocJusWiz</name></author>
	</entry>
	<entry>
		<id>https://feministwiki.org/w/index.php?title=Main_Page&amp;diff=101</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://feministwiki.org/w/index.php?title=Main_Page&amp;diff=101"/>
		<updated>2018-09-22T16:04:30Z</updated>

		<summary type="html">&lt;p&gt;SocJusWiz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to &#039;&#039;&#039;FeministWiki&#039;&#039;&#039;, a wiki and a digital home for the international Feminist community.&lt;br /&gt;
&lt;br /&gt;
Apart from this wiki, the FeministWiki offers the following services to its members:&lt;br /&gt;
&lt;br /&gt;
* [https://chat.feministwiki.org/ FeministChat]&lt;br /&gt;
* [https://forum.feministwiki.org/ FeministForum]&lt;br /&gt;
* [https://mail.feministwiki.org/ FeministMail]&lt;br /&gt;
* [https://files.feministwiki.org/ FeministFiles]&lt;br /&gt;
* [[FeministWiki:Services#FeministIRC|FeministIRC]]&lt;br /&gt;
* [https://add-member.feministwiki.org/ Add a member]&lt;br /&gt;
&lt;br /&gt;
For detailed information about each service, [[FeministWiki:Services|see here]].&lt;br /&gt;
&lt;br /&gt;
For an introduction to wiki editing, see [[FeministWiki:Help|our small help page]] or the bigger [https://www.mediawiki.org/wiki/Help:Contents MediaWiki help page].&lt;br /&gt;
&lt;br /&gt;
To become a [[FeministWiki:Membership|member]], you need to be added by an existing member.&lt;br /&gt;
&lt;br /&gt;
Alternatively, you can mail the [[FeministWiki:Technician|technician]] at [mailto:admin@feministwiki.org admin@feministwiki.org] and tell a little about what Feminism means to you.&lt;br /&gt;
&lt;br /&gt;
The FeministWiki promotes second-wave feminist literature:&lt;br /&gt;
&lt;br /&gt;
* [https://radfem.org/ Radical Feminist Archives]&lt;br /&gt;
&lt;br /&gt;
The FeministWiki promotes and stands in solidarity with the following groups and organizations:&lt;br /&gt;
&lt;br /&gt;
* [http://womensliberationfront.org/ WoLF]: The Women&#039;s Liberation Front&lt;br /&gt;
* [https://feministcurrent.com/ Feminist Current]: Canadian feminist news, commentary, and podcasts&lt;br /&gt;
* [https://nordicmodelnow.org/ Nordic Model Now]: Educational movement for the abolition of prostitution&lt;br /&gt;
* [http://www.spaceintl.org/ SPACE International]: Survivors of Prostitution Abuse Calling for Enlightenment&lt;br /&gt;
* [https://womansplaceuk.org/ Women&#039;s Place UK]: Women&#039;s campaigning group scrutinizing gender self-identification&lt;br /&gt;
* [https://pussychurchofmodernwitchcraft.com/ The Pussy Church of Modern Witchcraft]: Lesbian-led Church for Women and Girls&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Todo-list of the technician: [[FeministWiki:Todo]]&lt;br /&gt;
&lt;br /&gt;
Documentation of the infrastructure: [[FeministWiki:TechnicalDocumentation]]&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title=FeministWiki&lt;br /&gt;
|keywords=feminist feminism wiki feministwiki&lt;br /&gt;
|description=Wiki and digital home for the feminist community&lt;br /&gt;
|twitter:card=summary&lt;br /&gt;
|twitter:site=@FeministWiki&lt;br /&gt;
|twitter:image:src=https://feministwiki.org/w/resources/assets/wiki.png&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>SocJusWiz</name></author>
	</entry>
	<entry>
		<id>https://feministwiki.org/w/index.php?title=Main_Page&amp;diff=100</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://feministwiki.org/w/index.php?title=Main_Page&amp;diff=100"/>
		<updated>2018-09-22T15:53:13Z</updated>

		<summary type="html">&lt;p&gt;SocJusWiz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to &#039;&#039;&#039;FeministWiki&#039;&#039;&#039;, a wiki and a digital home for the international Feminist community.&lt;br /&gt;
&lt;br /&gt;
Apart from this wiki, the FeministWiki offers the following services to its members:&lt;br /&gt;
&lt;br /&gt;
* [https://chat.feministwiki.org/ FeministChat]&lt;br /&gt;
* [https://forum.feministwiki.org/ FeministForum]&lt;br /&gt;
* [https://mail.feministwiki.org/ FeministMail]&lt;br /&gt;
* [https://files.feministwiki.org/ FeministFiles]&lt;br /&gt;
* [[FeministWiki:Services#FeministIRC|FeministIRC]]&lt;br /&gt;
* [https://add-member.feministwiki.org/ Add a member]&lt;br /&gt;
&lt;br /&gt;
For detailed information about each service, [[FeministWiki:Services|see here]].&lt;br /&gt;
&lt;br /&gt;
For an introduction to wiki editing, see [[FeministWiki:Help|our small help page]] or the bigger [https://www.mediawiki.org/wiki/Help:Contents MediaWiki help page].&lt;br /&gt;
&lt;br /&gt;
To become a [[FeministWiki:Membership|member]], you need to be added by an existing member.&lt;br /&gt;
&lt;br /&gt;
Alternatively, you can mail the [[FeministWiki:Technician|technician]] at [mailto:admin@feministwiki.org admin@feministwiki.org] and tell a little about what Feminism means to you.&lt;br /&gt;
&lt;br /&gt;
The FeministWiki promotes second-wave feminist literature:&lt;br /&gt;
&lt;br /&gt;
* [https://radfem.org/ Radical Feminist Archives]&lt;br /&gt;
&lt;br /&gt;
The FeministWiki promotes and stands in solidarity with the following groups and organizations:&lt;br /&gt;
&lt;br /&gt;
* [http://womensliberationfront.org/ WoLF]: The Women&#039;s Liberation Front&lt;br /&gt;
* [https://feministcurrent.com/ Feminist Current]: Canadian feminist news, commentary, and podcasts&lt;br /&gt;
* [https://nordicmodelnow.org/ Nordic Model Now]: Educational movement for the abolition of prostitution&lt;br /&gt;
* [http://www.spaceintl.org/ SPACE International]: Survivors of Prostitution Abuse Calling for Enlightenment&lt;br /&gt;
* [https://womansplaceuk.org/ Women&#039;s Place UK]: Women&#039;s campaigning group scrutinizing gender self-identification&lt;br /&gt;
* [https://pussychurchofmodernwitchcraft.com/ The Pussy Church of Modern Witchcraft]: Lesbian-led Church for Women and Girls&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Todo-list of the technician: [[FeministWiki:Todo]]&lt;br /&gt;
&lt;br /&gt;
Documentation of the infrastructure: [[FeministWiki:TechnicalDocumentation]]&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title=FeministWiki&lt;br /&gt;
|keywords=feminist feminism wiki feministwiki&lt;br /&gt;
|description=Wiki and digital home for the feminist community&lt;br /&gt;
|twitter:card=summary&lt;br /&gt;
|twitter:site=@FeministWiki&lt;br /&gt;
|twitter:image=https://feministwiki.org/w/resources/assets/wiki.png&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>SocJusWiz</name></author>
	</entry>
	<entry>
		<id>https://feministwiki.org/w/index.php?title=Main_Page&amp;diff=99</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://feministwiki.org/w/index.php?title=Main_Page&amp;diff=99"/>
		<updated>2018-09-22T15:50:13Z</updated>

		<summary type="html">&lt;p&gt;SocJusWiz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to &#039;&#039;&#039;FeministWiki&#039;&#039;&#039;, a wiki and a digital home for the international Feminist community.&lt;br /&gt;
&lt;br /&gt;
Apart from this wiki, the FeministWiki offers the following services to its members:&lt;br /&gt;
&lt;br /&gt;
* [https://chat.feministwiki.org/ FeministChat]&lt;br /&gt;
* [https://forum.feministwiki.org/ FeministForum]&lt;br /&gt;
* [https://mail.feministwiki.org/ FeministMail]&lt;br /&gt;
* [https://files.feministwiki.org/ FeministFiles]&lt;br /&gt;
* [[FeministWiki:Services#FeministIRC|FeministIRC]]&lt;br /&gt;
* [https://add-member.feministwiki.org/ Add a member]&lt;br /&gt;
&lt;br /&gt;
For detailed information about each service, [[FeministWiki:Services|see here]].&lt;br /&gt;
&lt;br /&gt;
For an introduction to wiki editing, see [[FeministWiki:Help|our small help page]] or the bigger [https://www.mediawiki.org/wiki/Help:Contents MediaWiki help page].&lt;br /&gt;
&lt;br /&gt;
To become a [[FeministWiki:Membership|member]], you need to be added by an existing member.&lt;br /&gt;
&lt;br /&gt;
Alternatively, you can mail the [[FeministWiki:Technician|technician]] at [mailto:admin@feministwiki.org admin@feministwiki.org] and tell a little about what Feminism means to you.&lt;br /&gt;
&lt;br /&gt;
The FeministWiki promotes second-wave feminist literature:&lt;br /&gt;
&lt;br /&gt;
* [https://radfem.org/ Radical Feminist Archives]&lt;br /&gt;
&lt;br /&gt;
The FeministWiki promotes and stands in solidarity with the following groups and organizations:&lt;br /&gt;
&lt;br /&gt;
* [http://womensliberationfront.org/ WoLF]: The Women&#039;s Liberation Front&lt;br /&gt;
* [https://feministcurrent.com/ Feminist Current]: Canadian feminist news, commentary, and podcasts&lt;br /&gt;
* [https://nordicmodelnow.org/ Nordic Model Now]: Educational movement for the abolition of prostitution&lt;br /&gt;
* [http://www.spaceintl.org/ SPACE International]: Survivors of Prostitution Abuse Calling for Enlightenment&lt;br /&gt;
* [https://womansplaceuk.org/ Women&#039;s Place UK]: Women&#039;s campaigning group scrutinizing gender self-identification&lt;br /&gt;
* [https://pussychurchofmodernwitchcraft.com/ The Pussy Church of Modern Witchcraft]: Lesbian-led Church for Women and Girls&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Todo-list of the technician: [[FeministWiki:Todo]]&lt;br /&gt;
&lt;br /&gt;
Documentation of the infrastructure: [[FeministWiki:TechnicalDocumentation]]&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title=FeministWiki&lt;br /&gt;
|keywords=feminist feminism wiki feministwiki&lt;br /&gt;
|description=Wiki and digital home for the feminist community&lt;br /&gt;
|twitter:card=summary&lt;br /&gt;
|twitter:site=@FeministWiki&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>SocJusWiz</name></author>
	</entry>
	<entry>
		<id>https://feministwiki.org/w/index.php?title=Main_Page&amp;diff=98</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://feministwiki.org/w/index.php?title=Main_Page&amp;diff=98"/>
		<updated>2018-09-22T15:46:27Z</updated>

		<summary type="html">&lt;p&gt;SocJusWiz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to &#039;&#039;&#039;FeministWiki&#039;&#039;&#039;, a wiki and a digital home for the international Feminist community.&lt;br /&gt;
&lt;br /&gt;
Apart from this wiki, the FeministWiki offers the following services to its members:&lt;br /&gt;
&lt;br /&gt;
* [https://chat.feministwiki.org/ FeministChat]&lt;br /&gt;
* [https://forum.feministwiki.org/ FeministForum]&lt;br /&gt;
* [https://mail.feministwiki.org/ FeministMail]&lt;br /&gt;
* [https://files.feministwiki.org/ FeministFiles]&lt;br /&gt;
* [[FeministWiki:Services#FeministIRC|FeministIRC]]&lt;br /&gt;
* [https://add-member.feministwiki.org/ Add a member]&lt;br /&gt;
&lt;br /&gt;
For detailed information about each service, [[FeministWiki:Services|see here]].&lt;br /&gt;
&lt;br /&gt;
For an introduction to wiki editing, see [[FeministWiki:Help|our small help page]] or the bigger [https://www.mediawiki.org/wiki/Help:Contents MediaWiki help page].&lt;br /&gt;
&lt;br /&gt;
To become a [[FeministWiki:Membership|member]], you need to be added by an existing member.&lt;br /&gt;
&lt;br /&gt;
Alternatively, you can mail the [[FeministWiki:Technician|technician]] at [mailto:admin@feministwiki.org admin@feministwiki.org] and tell a little about what Feminism means to you.&lt;br /&gt;
&lt;br /&gt;
The FeministWiki promotes second-wave feminist literature:&lt;br /&gt;
&lt;br /&gt;
* [https://radfem.org/ Radical Feminist Archives]&lt;br /&gt;
&lt;br /&gt;
The FeministWiki promotes and stands in solidarity with the following groups and organizations:&lt;br /&gt;
&lt;br /&gt;
* [http://womensliberationfront.org/ WoLF]: The Women&#039;s Liberation Front&lt;br /&gt;
* [https://feministcurrent.com/ Feminist Current]: Canadian feminist news, commentary, and podcasts&lt;br /&gt;
* [https://nordicmodelnow.org/ Nordic Model Now]: Educational movement for the abolition of prostitution&lt;br /&gt;
* [http://www.spaceintl.org/ SPACE International]: Survivors of Prostitution Abuse Calling for Enlightenment&lt;br /&gt;
* [https://womansplaceuk.org/ Women&#039;s Place UK]: Women&#039;s campaigning group scrutinizing gender self-identification&lt;br /&gt;
* [https://pussychurchofmodernwitchcraft.com/ The Pussy Church of Modern Witchcraft]: Lesbian-led Church for Women and Girls&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Todo-list of the technician: [[FeministWiki:Todo]]&lt;br /&gt;
&lt;br /&gt;
Documentation of the infrastructure: [[FeministWiki:TechnicalDocumentation]]&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title=FeministWiki&lt;br /&gt;
|keywords=feminist feminism wiki feministwiki&lt;br /&gt;
|description=Wiki and digital home for the feminist community&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>SocJusWiz</name></author>
	</entry>
	<entry>
		<id>https://feministwiki.org/w/index.php?title=FeministWiki:Technical_documentation&amp;diff=97</id>
		<title>FeministWiki:Technical documentation</title>
		<link rel="alternate" type="text/html" href="https://feministwiki.org/w/index.php?title=FeministWiki:Technical_documentation&amp;diff=97"/>
		<updated>2018-09-22T14:41:35Z</updated>

		<summary type="html">&lt;p&gt;SocJusWiz: /* Forum */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page documents the FeministWiki&#039;s technical infrastructure, the target audience being technicians.&lt;br /&gt;
&lt;br /&gt;
== Hosts ==&lt;br /&gt;
&lt;br /&gt;
The following table documents the DNS configuration, and can be used as part of the &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt; file on each server to obviate the need for DNS lookups when connecting to one another.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!IP            !! FQDN                        !! Host          !! Purpose&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||            feministwiki.org ||               || Wiki&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||        www.feministwiki.org || www           || Wiki&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       ldap.feministwiki.org || ldap          || LDAP&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       chat.feministwiki.org || chat          || Web-client for XMPP&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||      forum.feministwiki.org || forum         || BBS Forum&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       mail.feministwiki.org || mail          || Web-client for Mail&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||      files.feministwiki.org || files         || File storage&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       imap.feministwiki.org || imap          || IMAP&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       smtp.feministwiki.org || smtp          || SMTP&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       xmpp.feministwiki.org || xmpp          || XMPP&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||        irc.feministwiki.org || irc           || IRC&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||     social.feministwiki.org || social        || GNU social&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 || add-member.feministwiki.org || add-member    || Add a member&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
(As you can see, all services are on the same server for now.)&lt;br /&gt;
&lt;br /&gt;
== SSH access ==&lt;br /&gt;
&lt;br /&gt;
FeministWiki hosts have ssh enabled for &amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt; access, but password login is disabled.  You must own a valid private key to log in.&lt;br /&gt;
&lt;br /&gt;
== Git repo of scripts and configuration ==&lt;br /&gt;
&lt;br /&gt;
The following GitHub account hosts repositories with scripts and configuration used by the FeministWiki:&lt;br /&gt;
&lt;br /&gt;
https://github.com/FeministWiki&lt;br /&gt;
&lt;br /&gt;
== Certs ==&lt;br /&gt;
&lt;br /&gt;
The FeministWiki uses LetsEncrypt to acquire digital certificates for encrypted communication.&lt;br /&gt;
&lt;br /&gt;
To ease use of the letsencrypt command, the file &amp;lt;code&amp;gt;/root/etc/domains&amp;lt;/code&amp;gt; contains all the FQDNs used by the FeministWiki, one per line.  Given that, the preferred way to populate the &amp;lt;code&amp;gt;/etc/letsencrypt/live/feministwiki.org&amp;lt;/code&amp;gt; directory with fresh certs is to run the following command while TCP port 80 is free (e.g. stop Apache first):&lt;br /&gt;
&lt;br /&gt;
 letsencrypt certonly --authenticator standalone -d &amp;quot;$(tr &#039;\n&#039; &#039;,&#039; &amp;lt; /root/etc/domains)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Additionally, for programs that require a cert file and its private key in a single combined &amp;lt;code&amp;gt;.pem&amp;lt;/code&amp;gt; file, run the following commands to generate such a file:&lt;br /&gt;
&lt;br /&gt;
 cd /etc/letsencrypt/live/feministwiki.org&lt;br /&gt;
 cat fullchain.pem privkey.pem &amp;gt; certbundle.pem&lt;br /&gt;
&lt;br /&gt;
The script &amp;lt;code&amp;gt;/root/bin/letsencrypt-refresh&amp;lt;/code&amp;gt; &#039;&#039;&#039;does all of the above&#039;&#039;&#039;, so in practice you just need to run the following commands to recreate the cert:&lt;br /&gt;
&lt;br /&gt;
 service apache2 stop  # Assuming Apache is running on the machine&lt;br /&gt;
 letsencrypt-refresh&lt;br /&gt;
 service apache2 start&lt;br /&gt;
&lt;br /&gt;
The above can be used not only to refresh a cert that&#039;s running out, but also to add a new domain to the cert.  Just add the domain to &amp;lt;code&amp;gt;/root/etc/domains&amp;lt;/code&amp;gt; and run the commands.&lt;br /&gt;
&lt;br /&gt;
Note that the letsencrypt command doesn&#039;t work well on a &amp;quot;dumb&amp;quot; terminal such as an Emacs shell buffer.  Make sure to run it from within a proper terminal emulator.&lt;br /&gt;
&lt;br /&gt;
== Services ==&lt;br /&gt;
&lt;br /&gt;
This section documents the individual services of the FeministWiki.  They should work regardless of what server they&#039;re on.  I.e. every service could in theory be hosted on its own server.&lt;br /&gt;
&lt;br /&gt;
=== LDAP ===&lt;br /&gt;
&lt;br /&gt;
Host: ldap.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: OpenLDAP&lt;br /&gt;
&lt;br /&gt;
The LDAP service contains the central database of FeministWiki members.  The structure looks like this:&lt;br /&gt;
&lt;br /&gt;
* dc=feministwiki,dc=org&lt;br /&gt;
** ou=members&lt;br /&gt;
*** cn=&#039;&#039;username&#039;&#039; &amp;lt;br/&amp;gt; objectClass: inetOrgPerson &amp;lt;br/&amp;gt; cn: &#039;&#039;username&#039;&#039; &amp;lt;br/&amp;gt; uid: &#039;&#039;username&#039;&#039; &amp;lt;br/&amp;gt; sn: - &amp;lt;br/&amp;gt; userPassword: {SSHA}&#039;&#039;saltedhash&#039;&#039; &amp;lt;br/&amp;gt; mail: &#039;&#039;username&#039;&#039;@feministwiki.org&lt;br /&gt;
*** cn=&#039;&#039;username2&#039;&#039; &amp;lt;br/&amp;gt; objectClass: inetOrgPerson &amp;lt;br/&amp;gt; cn: &#039;&#039;username2&#039;&#039; &amp;lt;br/&amp;gt; uid: &#039;&#039;username2&#039;&#039; &amp;lt;br/&amp;gt; sn: - &amp;lt;br/&amp;gt; userPassword: {SSHA}&#039;&#039;saltedhash2&#039;&#039; &amp;lt;br/&amp;gt; mail: &#039;&#039;username2&#039;&#039;@feministwiki.org &amp;lt;br/&amp;gt; manager: cn=&#039;&#039;username&#039;&#039;,ou=members,dc=feministwiki,dc=org&lt;br /&gt;
*** ...&lt;br /&gt;
** ou=groups&lt;br /&gt;
*** cn=members &amp;lt;br/&amp;gt; objectClass: groupOfNames &amp;lt;br/&amp;gt; cn: members &amp;lt;br/&amp;gt; member: &#039;&#039;username&#039;&#039; &amp;lt;br/&amp;gt; member: &#039;&#039;username2&#039;&#039; &amp;lt;br/&amp;gt; member: ...&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* The &amp;lt;code&amp;gt;cn&amp;lt;/code&amp;gt; (common name) and &amp;lt;code&amp;gt;uid&amp;lt;/code&amp;gt; (user ID) fields both contain the username.  This is because some software is preconfigured to look at &amp;lt;code&amp;gt;uid&amp;lt;/code&amp;gt;, while most look at &amp;lt;code&amp;gt;cn&amp;lt;/code&amp;gt;.&lt;br /&gt;
* The &amp;lt;code&amp;gt;sn&amp;lt;/code&amp;gt; (surname) field simply contains a minus character as a placeholder, because it&#039;s a mandatory field.&lt;br /&gt;
* The &amp;lt;code&amp;gt;manager&amp;lt;/code&amp;gt; field is optional and we use it to record the member who added the member in question.&lt;br /&gt;
&lt;br /&gt;
To make sure passwords are stored with the &amp;lt;code&amp;gt;{SSHA}&amp;lt;/code&amp;gt; scheme rather than plain text, the &amp;lt;code&amp;gt;ppolicy&amp;lt;/code&amp;gt; &amp;quot;password policy overlay&amp;quot; is used.  ZYTRAX has a very nice book about LDAP which documents how to enable this: http://www.zytrax.com/books/ldap/ch6/ppolicy.html&lt;br /&gt;
&lt;br /&gt;
In short, the steps go as follows (these commands &#039;&#039;should&#039;&#039; work verbatim):&lt;br /&gt;
&lt;br /&gt;
 # Add the ppolicy schema&lt;br /&gt;
 ldapadd -Y external -H ldapi:/// &amp;lt; /etc/ldap/schema/ppolicy.ldif&lt;br /&gt;
 &lt;br /&gt;
 # Enable the ppolicy dynamic module&lt;br /&gt;
 ldapmodify -Y external -H ldapi:/// &amp;lt;&amp;lt;EOF&lt;br /&gt;
 dn: cn=module{0},cn=config&lt;br /&gt;
 changetype: modify&lt;br /&gt;
 add: olcModuleLoad&lt;br /&gt;
 olcModuleLoad: ppolicy&lt;br /&gt;
 EOF&lt;br /&gt;
 &lt;br /&gt;
 # Add the ppolicy overlay with olcPPolicyHashCleartext set to TRUE&lt;br /&gt;
 ldapadd -Y external -H ldapi:/// &amp;lt;&amp;lt;EOF&lt;br /&gt;
 dn: olcOverlay=ppolicy,olcDatabase={1}mdb,cn=config&lt;br /&gt;
 objectClass: olcPPolicyConfig&lt;br /&gt;
 olcOverlay: ppolicy&lt;br /&gt;
 olcPPolicyHashCleartext: TRUE&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
=== Wiki ===&lt;br /&gt;
&lt;br /&gt;
Host: feministwiki.org, www.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: MediaWiki&lt;br /&gt;
&lt;br /&gt;
The wiki uses a [https://www.mediawiki.org/wiki/MediaWiki MediaWiki] installation located at &amp;lt;code&amp;gt;/var/www/wiki/w&amp;lt;/code&amp;gt; with the [https://www.mediawiki.org/wiki/Extension:LDAP_Authentication LDAP Authentication] plugin for login management and the &amp;quot;Short URL&amp;quot; feature enabled with help of Apache&#039;s vhost configuration, which is located at &amp;lt;code&amp;gt;/etc/apache2/sites-available/wiki.conf&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The wiki uses the SQL database called &amp;quot;feministwiki&amp;quot; and the SQL user of the same name.&lt;br /&gt;
&lt;br /&gt;
=== Chat (web interface) ===&lt;br /&gt;
&lt;br /&gt;
Host: chat.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: Converse.js&lt;br /&gt;
&lt;br /&gt;
The web-interface for the FeministChat uses the full-screen &amp;quot;Impress&amp;quot; variant of the [https://conversejs.org/ Converse.js] XMPP client.  The hosted HTML and JS files are located at &amp;lt;code&amp;gt;/var/www/chat&amp;lt;/code&amp;gt;, although they load Converse.js as an external script from upstream, which is why the self-hosted HTML and JS are very minimal.&lt;br /&gt;
&lt;br /&gt;
=== Forum ===&lt;br /&gt;
&lt;br /&gt;
Host: forum.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: phpBB&lt;br /&gt;
&lt;br /&gt;
The forum uses a [https://www.phpbb.com/ phpBB] installation located at &amp;lt;code&amp;gt;/var/www/forum&amp;lt;/code&amp;gt;.  Most configuration of phpBB, including LDAP authentication, is done through its administration panel.  The style used by the forum is essentially Basic Orange, though the logo is changed via an inheriting style called FeministWiki.&lt;br /&gt;
&lt;br /&gt;
The forum uses the SQL database called &amp;quot;feministforum&amp;quot; and the SQL user of the same name.&lt;br /&gt;
&lt;br /&gt;
=== Mail (web interface) ===&lt;br /&gt;
&lt;br /&gt;
Host: mail.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: Roundcube&lt;br /&gt;
&lt;br /&gt;
The web-interface for the FeministMail uses the [https://roundcube.net/ Roundcube] mail client, installed at &amp;lt;code&amp;gt;/var/www/mail&amp;lt;/code&amp;gt;.  It uses the standard &amp;quot;larry&amp;quot; style, but with some tweaks to logos and images.&lt;br /&gt;
&lt;br /&gt;
=== Files ===&lt;br /&gt;
&lt;br /&gt;
Host: files.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: Nextcloud&lt;br /&gt;
&lt;br /&gt;
FeministFiles is a [https://nextcloud.com/ Nextcloud] installation with some branding, and LDAP authentication, installed at &amp;lt;code&amp;gt;/var/www/files&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== IMAP ===&lt;br /&gt;
&lt;br /&gt;
Host: imap.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: Dovecot&lt;br /&gt;
&lt;br /&gt;
FeministMail uses the [https://www.dovecot.org/ Dovecot] IMAP server, configured for LDAP authentication and using virtual mail boxes under &amp;lt;code&amp;gt;/home/vmail&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== SMTP ===&lt;br /&gt;
&lt;br /&gt;
Host: smtp.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: Postfix&lt;br /&gt;
&lt;br /&gt;
FeministMail uses the [http://www.postfix.org/ Postfix] SMTP server, using SASL authentication through Dovecot and LDAP-based virtual mail boxes under &amp;lt;code&amp;gt;/home/vmail&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== XMPP ===&lt;br /&gt;
&lt;br /&gt;
Host: xmpp.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: ejabberd&lt;br /&gt;
&lt;br /&gt;
FeministChat uses the [https://www.ejabberd.im/ ejabberd] XMPP server, configured to use LDAP authentication and an LDAP-based shared roster group for all members.&lt;br /&gt;
&lt;br /&gt;
=== IRC ===&lt;br /&gt;
&lt;br /&gt;
Host: irc.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: InspIRCd&lt;br /&gt;
&lt;br /&gt;
FeministIRC uses the [http://www.inspircd.org/ InspIRCd] IRC server with the &amp;lt;code&amp;gt;ldapauth&amp;lt;/code&amp;gt; module for LDAP authentication.&lt;br /&gt;
&lt;br /&gt;
=== Add a member ===&lt;br /&gt;
&lt;br /&gt;
Host: add-member.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: custom&lt;br /&gt;
&lt;br /&gt;
The page to add a new member, hosted at &amp;lt;code&amp;gt;/var/www/add-member&amp;lt;/code&amp;gt;, uses a bit of self-written HTML, PHP, and a setuid-root C program to invoke the shell script located at &amp;lt;code&amp;gt;/root/bin/fw-adduser&amp;lt;/code&amp;gt; with root privileges.&lt;/div&gt;</summary>
		<author><name>SocJusWiz</name></author>
	</entry>
	<entry>
		<id>https://feministwiki.org/w/index.php?title=FeministWiki:Technical_documentation&amp;diff=96</id>
		<title>FeministWiki:Technical documentation</title>
		<link rel="alternate" type="text/html" href="https://feministwiki.org/w/index.php?title=FeministWiki:Technical_documentation&amp;diff=96"/>
		<updated>2018-09-22T13:46:21Z</updated>

		<summary type="html">&lt;p&gt;SocJusWiz: /* Services */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page documents the FeministWiki&#039;s technical infrastructure, the target audience being technicians.&lt;br /&gt;
&lt;br /&gt;
== Hosts ==&lt;br /&gt;
&lt;br /&gt;
The following table documents the DNS configuration, and can be used as part of the &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt; file on each server to obviate the need for DNS lookups when connecting to one another.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!IP            !! FQDN                        !! Host          !! Purpose&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||            feministwiki.org ||               || Wiki&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||        www.feministwiki.org || www           || Wiki&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       ldap.feministwiki.org || ldap          || LDAP&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       chat.feministwiki.org || chat          || Web-client for XMPP&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||      forum.feministwiki.org || forum         || BBS Forum&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       mail.feministwiki.org || mail          || Web-client for Mail&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||      files.feministwiki.org || files         || File storage&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       imap.feministwiki.org || imap          || IMAP&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       smtp.feministwiki.org || smtp          || SMTP&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       xmpp.feministwiki.org || xmpp          || XMPP&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||        irc.feministwiki.org || irc           || IRC&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||     social.feministwiki.org || social        || GNU social&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 || add-member.feministwiki.org || add-member    || Add a member&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
(As you can see, all services are on the same server for now.)&lt;br /&gt;
&lt;br /&gt;
== SSH access ==&lt;br /&gt;
&lt;br /&gt;
FeministWiki hosts have ssh enabled for &amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt; access, but password login is disabled.  You must own a valid private key to log in.&lt;br /&gt;
&lt;br /&gt;
== Git repo of scripts and configuration ==&lt;br /&gt;
&lt;br /&gt;
The following GitHub account hosts repositories with scripts and configuration used by the FeministWiki:&lt;br /&gt;
&lt;br /&gt;
https://github.com/FeministWiki&lt;br /&gt;
&lt;br /&gt;
== Certs ==&lt;br /&gt;
&lt;br /&gt;
The FeministWiki uses LetsEncrypt to acquire digital certificates for encrypted communication.&lt;br /&gt;
&lt;br /&gt;
To ease use of the letsencrypt command, the file &amp;lt;code&amp;gt;/root/etc/domains&amp;lt;/code&amp;gt; contains all the FQDNs used by the FeministWiki, one per line.  Given that, the preferred way to populate the &amp;lt;code&amp;gt;/etc/letsencrypt/live/feministwiki.org&amp;lt;/code&amp;gt; directory with fresh certs is to run the following command while TCP port 80 is free (e.g. stop Apache first):&lt;br /&gt;
&lt;br /&gt;
 letsencrypt certonly --authenticator standalone -d &amp;quot;$(tr &#039;\n&#039; &#039;,&#039; &amp;lt; /root/etc/domains)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Additionally, for programs that require a cert file and its private key in a single combined &amp;lt;code&amp;gt;.pem&amp;lt;/code&amp;gt; file, run the following commands to generate such a file:&lt;br /&gt;
&lt;br /&gt;
 cd /etc/letsencrypt/live/feministwiki.org&lt;br /&gt;
 cat fullchain.pem privkey.pem &amp;gt; certbundle.pem&lt;br /&gt;
&lt;br /&gt;
The script &amp;lt;code&amp;gt;/root/bin/letsencrypt-refresh&amp;lt;/code&amp;gt; &#039;&#039;&#039;does all of the above&#039;&#039;&#039;, so in practice you just need to run the following commands to recreate the cert:&lt;br /&gt;
&lt;br /&gt;
 service apache2 stop  # Assuming Apache is running on the machine&lt;br /&gt;
 letsencrypt-refresh&lt;br /&gt;
 service apache2 start&lt;br /&gt;
&lt;br /&gt;
The above can be used not only to refresh a cert that&#039;s running out, but also to add a new domain to the cert.  Just add the domain to &amp;lt;code&amp;gt;/root/etc/domains&amp;lt;/code&amp;gt; and run the commands.&lt;br /&gt;
&lt;br /&gt;
Note that the letsencrypt command doesn&#039;t work well on a &amp;quot;dumb&amp;quot; terminal such as an Emacs shell buffer.  Make sure to run it from within a proper terminal emulator.&lt;br /&gt;
&lt;br /&gt;
== Services ==&lt;br /&gt;
&lt;br /&gt;
This section documents the individual services of the FeministWiki.  They should work regardless of what server they&#039;re on.  I.e. every service could in theory be hosted on its own server.&lt;br /&gt;
&lt;br /&gt;
=== LDAP ===&lt;br /&gt;
&lt;br /&gt;
Host: ldap.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: OpenLDAP&lt;br /&gt;
&lt;br /&gt;
The LDAP service contains the central database of FeministWiki members.  The structure looks like this:&lt;br /&gt;
&lt;br /&gt;
* dc=feministwiki,dc=org&lt;br /&gt;
** ou=members&lt;br /&gt;
*** cn=&#039;&#039;username&#039;&#039; &amp;lt;br/&amp;gt; objectClass: inetOrgPerson &amp;lt;br/&amp;gt; cn: &#039;&#039;username&#039;&#039; &amp;lt;br/&amp;gt; uid: &#039;&#039;username&#039;&#039; &amp;lt;br/&amp;gt; sn: - &amp;lt;br/&amp;gt; userPassword: {SSHA}&#039;&#039;saltedhash&#039;&#039; &amp;lt;br/&amp;gt; mail: &#039;&#039;username&#039;&#039;@feministwiki.org&lt;br /&gt;
*** cn=&#039;&#039;username2&#039;&#039; &amp;lt;br/&amp;gt; objectClass: inetOrgPerson &amp;lt;br/&amp;gt; cn: &#039;&#039;username2&#039;&#039; &amp;lt;br/&amp;gt; uid: &#039;&#039;username2&#039;&#039; &amp;lt;br/&amp;gt; sn: - &amp;lt;br/&amp;gt; userPassword: {SSHA}&#039;&#039;saltedhash2&#039;&#039; &amp;lt;br/&amp;gt; mail: &#039;&#039;username2&#039;&#039;@feministwiki.org &amp;lt;br/&amp;gt; manager: cn=&#039;&#039;username&#039;&#039;,ou=members,dc=feministwiki,dc=org&lt;br /&gt;
*** ...&lt;br /&gt;
** ou=groups&lt;br /&gt;
*** cn=members &amp;lt;br/&amp;gt; objectClass: groupOfNames &amp;lt;br/&amp;gt; cn: members &amp;lt;br/&amp;gt; member: &#039;&#039;username&#039;&#039; &amp;lt;br/&amp;gt; member: &#039;&#039;username2&#039;&#039; &amp;lt;br/&amp;gt; member: ...&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* The &amp;lt;code&amp;gt;cn&amp;lt;/code&amp;gt; (common name) and &amp;lt;code&amp;gt;uid&amp;lt;/code&amp;gt; (user ID) fields both contain the username.  This is because some software is preconfigured to look at &amp;lt;code&amp;gt;uid&amp;lt;/code&amp;gt;, while most look at &amp;lt;code&amp;gt;cn&amp;lt;/code&amp;gt;.&lt;br /&gt;
* The &amp;lt;code&amp;gt;sn&amp;lt;/code&amp;gt; (surname) field simply contains a minus character as a placeholder, because it&#039;s a mandatory field.&lt;br /&gt;
* The &amp;lt;code&amp;gt;manager&amp;lt;/code&amp;gt; field is optional and we use it to record the member who added the member in question.&lt;br /&gt;
&lt;br /&gt;
To make sure passwords are stored with the &amp;lt;code&amp;gt;{SSHA}&amp;lt;/code&amp;gt; scheme rather than plain text, the &amp;lt;code&amp;gt;ppolicy&amp;lt;/code&amp;gt; &amp;quot;password policy overlay&amp;quot; is used.  ZYTRAX has a very nice book about LDAP which documents how to enable this: http://www.zytrax.com/books/ldap/ch6/ppolicy.html&lt;br /&gt;
&lt;br /&gt;
In short, the steps go as follows (these commands &#039;&#039;should&#039;&#039; work verbatim):&lt;br /&gt;
&lt;br /&gt;
 # Add the ppolicy schema&lt;br /&gt;
 ldapadd -Y external -H ldapi:/// &amp;lt; /etc/ldap/schema/ppolicy.ldif&lt;br /&gt;
 &lt;br /&gt;
 # Enable the ppolicy dynamic module&lt;br /&gt;
 ldapmodify -Y external -H ldapi:/// &amp;lt;&amp;lt;EOF&lt;br /&gt;
 dn: cn=module{0},cn=config&lt;br /&gt;
 changetype: modify&lt;br /&gt;
 add: olcModuleLoad&lt;br /&gt;
 olcModuleLoad: ppolicy&lt;br /&gt;
 EOF&lt;br /&gt;
 &lt;br /&gt;
 # Add the ppolicy overlay with olcPPolicyHashCleartext set to TRUE&lt;br /&gt;
 ldapadd -Y external -H ldapi:/// &amp;lt;&amp;lt;EOF&lt;br /&gt;
 dn: olcOverlay=ppolicy,olcDatabase={1}mdb,cn=config&lt;br /&gt;
 objectClass: olcPPolicyConfig&lt;br /&gt;
 olcOverlay: ppolicy&lt;br /&gt;
 olcPPolicyHashCleartext: TRUE&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
=== Wiki ===&lt;br /&gt;
&lt;br /&gt;
Host: feministwiki.org, www.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: MediaWiki&lt;br /&gt;
&lt;br /&gt;
The wiki uses a [https://www.mediawiki.org/wiki/MediaWiki MediaWiki] installation located at &amp;lt;code&amp;gt;/var/www/wiki/w&amp;lt;/code&amp;gt; with the [https://www.mediawiki.org/wiki/Extension:LDAP_Authentication LDAP Authentication] plugin for login management and the &amp;quot;Short URL&amp;quot; feature enabled with help of Apache&#039;s vhost configuration, which is located at &amp;lt;code&amp;gt;/etc/apache2/sites-available/wiki.conf&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The wiki uses the SQL database called &amp;quot;feministwiki&amp;quot; and the SQL user of the same name.&lt;br /&gt;
&lt;br /&gt;
=== Chat (web interface) ===&lt;br /&gt;
&lt;br /&gt;
Host: chat.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: Converse.js&lt;br /&gt;
&lt;br /&gt;
The web-interface for the FeministChat uses the full-screen &amp;quot;Impress&amp;quot; variant of the [https://conversejs.org/ Converse.js] XMPP client.  The hosted HTML and JS files are located at &amp;lt;code&amp;gt;/var/www/chat&amp;lt;/code&amp;gt;, although they load Converse.js as an external script from upstream, which is why the self-hosted HTML and JS are very minimal.&lt;br /&gt;
&lt;br /&gt;
=== Forum ===&lt;br /&gt;
&lt;br /&gt;
Host: forum.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: phpBB&lt;br /&gt;
&lt;br /&gt;
The forum uses a [https://www.phpbb.com/ phpBB] installation located at &amp;lt;code&amp;gt;/var/www/forum&amp;lt;/code&amp;gt;.  The style is a copy of the &amp;quot;orange&amp;quot; variant of the &amp;quot;basic&amp;quot; style, with only the logo swapped.&lt;br /&gt;
&lt;br /&gt;
Most configuration of phpBB, including LDAP authentication, is done through its administration panel.&lt;br /&gt;
&lt;br /&gt;
The forum uses the SQL database called &amp;quot;feministforum&amp;quot; and the SQL user of the same name.&lt;br /&gt;
&lt;br /&gt;
=== Mail (web interface) ===&lt;br /&gt;
&lt;br /&gt;
Host: mail.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: Roundcube&lt;br /&gt;
&lt;br /&gt;
The web-interface for the FeministMail uses the [https://roundcube.net/ Roundcube] mail client, installed at &amp;lt;code&amp;gt;/var/www/mail&amp;lt;/code&amp;gt;.  It uses the standard &amp;quot;larry&amp;quot; style, but with some tweaks to logos and images.&lt;br /&gt;
&lt;br /&gt;
=== Files ===&lt;br /&gt;
&lt;br /&gt;
Host: files.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: Nextcloud&lt;br /&gt;
&lt;br /&gt;
FeministFiles is a [https://nextcloud.com/ Nextcloud] installation with some branding, and LDAP authentication, installed at &amp;lt;code&amp;gt;/var/www/files&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== IMAP ===&lt;br /&gt;
&lt;br /&gt;
Host: imap.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: Dovecot&lt;br /&gt;
&lt;br /&gt;
FeministMail uses the [https://www.dovecot.org/ Dovecot] IMAP server, configured for LDAP authentication and using virtual mail boxes under &amp;lt;code&amp;gt;/home/vmail&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== SMTP ===&lt;br /&gt;
&lt;br /&gt;
Host: smtp.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: Postfix&lt;br /&gt;
&lt;br /&gt;
FeministMail uses the [http://www.postfix.org/ Postfix] SMTP server, using SASL authentication through Dovecot and LDAP-based virtual mail boxes under &amp;lt;code&amp;gt;/home/vmail&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== XMPP ===&lt;br /&gt;
&lt;br /&gt;
Host: xmpp.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: ejabberd&lt;br /&gt;
&lt;br /&gt;
FeministChat uses the [https://www.ejabberd.im/ ejabberd] XMPP server, configured to use LDAP authentication and an LDAP-based shared roster group for all members.&lt;br /&gt;
&lt;br /&gt;
=== IRC ===&lt;br /&gt;
&lt;br /&gt;
Host: irc.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: InspIRCd&lt;br /&gt;
&lt;br /&gt;
FeministIRC uses the [http://www.inspircd.org/ InspIRCd] IRC server with the &amp;lt;code&amp;gt;ldapauth&amp;lt;/code&amp;gt; module for LDAP authentication.&lt;br /&gt;
&lt;br /&gt;
=== Add a member ===&lt;br /&gt;
&lt;br /&gt;
Host: add-member.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: custom&lt;br /&gt;
&lt;br /&gt;
The page to add a new member, hosted at &amp;lt;code&amp;gt;/var/www/add-member&amp;lt;/code&amp;gt;, uses a bit of self-written HTML, PHP, and a setuid-root C program to invoke the shell script located at &amp;lt;code&amp;gt;/root/bin/fw-adduser&amp;lt;/code&amp;gt; with root privileges.&lt;/div&gt;</summary>
		<author><name>SocJusWiz</name></author>
	</entry>
	<entry>
		<id>https://feministwiki.org/w/index.php?title=FeministWiki:Technical_documentation&amp;diff=95</id>
		<title>FeministWiki:Technical documentation</title>
		<link rel="alternate" type="text/html" href="https://feministwiki.org/w/index.php?title=FeministWiki:Technical_documentation&amp;diff=95"/>
		<updated>2018-09-22T12:57:14Z</updated>

		<summary type="html">&lt;p&gt;SocJusWiz: /* Services */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page documents the FeministWiki&#039;s technical infrastructure, the target audience being technicians.&lt;br /&gt;
&lt;br /&gt;
== Hosts ==&lt;br /&gt;
&lt;br /&gt;
The following table documents the DNS configuration, and can be used as part of the &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt; file on each server to obviate the need for DNS lookups when connecting to one another.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!IP            !! FQDN                        !! Host          !! Purpose&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||            feministwiki.org ||               || Wiki&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||        www.feministwiki.org || www           || Wiki&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       ldap.feministwiki.org || ldap          || LDAP&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       chat.feministwiki.org || chat          || Web-client for XMPP&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||      forum.feministwiki.org || forum         || BBS Forum&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       mail.feministwiki.org || mail          || Web-client for Mail&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||      files.feministwiki.org || files         || File storage&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       imap.feministwiki.org || imap          || IMAP&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       smtp.feministwiki.org || smtp          || SMTP&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       xmpp.feministwiki.org || xmpp          || XMPP&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||        irc.feministwiki.org || irc           || IRC&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||     social.feministwiki.org || social        || GNU social&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 || add-member.feministwiki.org || add-member    || Add a member&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
(As you can see, all services are on the same server for now.)&lt;br /&gt;
&lt;br /&gt;
== SSH access ==&lt;br /&gt;
&lt;br /&gt;
FeministWiki hosts have ssh enabled for &amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt; access, but password login is disabled.  You must own a valid private key to log in.&lt;br /&gt;
&lt;br /&gt;
== Git repo of scripts and configuration ==&lt;br /&gt;
&lt;br /&gt;
The following GitHub account hosts repositories with scripts and configuration used by the FeministWiki:&lt;br /&gt;
&lt;br /&gt;
https://github.com/FeministWiki&lt;br /&gt;
&lt;br /&gt;
== Certs ==&lt;br /&gt;
&lt;br /&gt;
The FeministWiki uses LetsEncrypt to acquire digital certificates for encrypted communication.&lt;br /&gt;
&lt;br /&gt;
To ease use of the letsencrypt command, the file &amp;lt;code&amp;gt;/root/etc/domains&amp;lt;/code&amp;gt; contains all the FQDNs used by the FeministWiki, one per line.  Given that, the preferred way to populate the &amp;lt;code&amp;gt;/etc/letsencrypt/live/feministwiki.org&amp;lt;/code&amp;gt; directory with fresh certs is to run the following command while TCP port 80 is free (e.g. stop Apache first):&lt;br /&gt;
&lt;br /&gt;
 letsencrypt certonly --authenticator standalone -d &amp;quot;$(tr &#039;\n&#039; &#039;,&#039; &amp;lt; /root/etc/domains)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Additionally, for programs that require a cert file and its private key in a single combined &amp;lt;code&amp;gt;.pem&amp;lt;/code&amp;gt; file, run the following commands to generate such a file:&lt;br /&gt;
&lt;br /&gt;
 cd /etc/letsencrypt/live/feministwiki.org&lt;br /&gt;
 cat fullchain.pem privkey.pem &amp;gt; certbundle.pem&lt;br /&gt;
&lt;br /&gt;
The script &amp;lt;code&amp;gt;/root/bin/letsencrypt-refresh&amp;lt;/code&amp;gt; &#039;&#039;&#039;does all of the above&#039;&#039;&#039;, so in practice you just need to run the following commands to recreate the cert:&lt;br /&gt;
&lt;br /&gt;
 service apache2 stop  # Assuming Apache is running on the machine&lt;br /&gt;
 letsencrypt-refresh&lt;br /&gt;
 service apache2 start&lt;br /&gt;
&lt;br /&gt;
The above can be used not only to refresh a cert that&#039;s running out, but also to add a new domain to the cert.  Just add the domain to &amp;lt;code&amp;gt;/root/etc/domains&amp;lt;/code&amp;gt; and run the commands.&lt;br /&gt;
&lt;br /&gt;
Note that the letsencrypt command doesn&#039;t work well on a &amp;quot;dumb&amp;quot; terminal such as an Emacs shell buffer.  Make sure to run it from within a proper terminal emulator.&lt;br /&gt;
&lt;br /&gt;
== Services ==&lt;br /&gt;
&lt;br /&gt;
This section documents the individual services of the FeministWiki.  They should work regardless of what server they&#039;re on.  I.e. every service could in theory be hosted on its own server.&lt;br /&gt;
&lt;br /&gt;
=== LDAP ===&lt;br /&gt;
&lt;br /&gt;
Host: ldap.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: OpenLDAP&lt;br /&gt;
&lt;br /&gt;
The LDAP service contains the central database of FeministWiki members.  The structure looks like this:&lt;br /&gt;
&lt;br /&gt;
* dc=feministwiki,dc=org&lt;br /&gt;
** ou=members&lt;br /&gt;
*** cn=&#039;&#039;username&#039;&#039; &amp;lt;br/&amp;gt; objectClass: inetOrgPerson &amp;lt;br/&amp;gt; cn: &#039;&#039;username&#039;&#039; &amp;lt;br/&amp;gt; uid: &#039;&#039;username&#039;&#039; &amp;lt;br/&amp;gt; sn: - &amp;lt;br/&amp;gt; userPassword: {SSHA}&#039;&#039;saltedhash&#039;&#039; &amp;lt;br/&amp;gt; mail: &#039;&#039;username&#039;&#039;@feministwiki.org&lt;br /&gt;
*** cn=&#039;&#039;username2&#039;&#039; &amp;lt;br/&amp;gt; objectClass: inetOrgPerson &amp;lt;br/&amp;gt; cn: &#039;&#039;username2&#039;&#039; &amp;lt;br/&amp;gt; uid: &#039;&#039;username2&#039;&#039; &amp;lt;br/&amp;gt; sn: - &amp;lt;br/&amp;gt; userPassword: {SSHA}&#039;&#039;saltedhash2&#039;&#039; &amp;lt;br/&amp;gt; mail: &#039;&#039;username2&#039;&#039;@feministwiki.org &amp;lt;br/&amp;gt; manager: cn=&#039;&#039;username&#039;&#039;,ou=members,dc=feministwiki,dc=org&lt;br /&gt;
*** ...&lt;br /&gt;
** ou=groups&lt;br /&gt;
*** cn=members &amp;lt;br/&amp;gt; objectClass: groupOfNames &amp;lt;br/&amp;gt; cn: members &amp;lt;br/&amp;gt; member: &#039;&#039;username&#039;&#039; &amp;lt;br/&amp;gt; member: &#039;&#039;username2&#039;&#039; &amp;lt;br/&amp;gt; member: ...&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* The &amp;lt;code&amp;gt;cn&amp;lt;/code&amp;gt; (common name) and &amp;lt;code&amp;gt;uid&amp;lt;/code&amp;gt; (user ID) fields both contain the username.  This is because some software is preconfigured to look at &amp;lt;code&amp;gt;uid&amp;lt;/code&amp;gt;, while most look at &amp;lt;code&amp;gt;cn&amp;lt;/code&amp;gt;.&lt;br /&gt;
* The &amp;lt;code&amp;gt;sn&amp;lt;/code&amp;gt; (surname) field simply contains a minus character as a placeholder, because it&#039;s a mandatory field.&lt;br /&gt;
* The &amp;lt;code&amp;gt;manager&amp;lt;/code&amp;gt; field is optional and we use it to record the member who added the member in question.&lt;br /&gt;
&lt;br /&gt;
To make sure passwords are stored with the &amp;lt;code&amp;gt;{SSHA}&amp;lt;/code&amp;gt; scheme rather than plain text, the &amp;lt;code&amp;gt;ppolicy&amp;lt;/code&amp;gt; &amp;quot;password policy overlay&amp;quot; is used.  ZYTRAX has a very nice book about LDAP which documents how to enable this: http://www.zytrax.com/books/ldap/ch6/ppolicy.html&lt;br /&gt;
&lt;br /&gt;
In short, the steps go as follows (these commands &#039;&#039;should&#039;&#039; work verbatim):&lt;br /&gt;
&lt;br /&gt;
 # Add the ppolicy schema&lt;br /&gt;
 ldapadd -Y external -H ldapi:/// &amp;lt; /etc/ldap/schema/ppolicy.ldif&lt;br /&gt;
 &lt;br /&gt;
 # Enable the ppolicy dynamic module&lt;br /&gt;
 ldapmodify -Y external -H ldapi:/// &amp;lt;&amp;lt;EOF&lt;br /&gt;
 dn: cn=module{0},cn=config&lt;br /&gt;
 changetype: modify&lt;br /&gt;
 add: olcModuleLoad&lt;br /&gt;
 olcModuleLoad: ppolicy&lt;br /&gt;
 EOF&lt;br /&gt;
 &lt;br /&gt;
 # Add the ppolicy overlay with olcPPolicyHashCleartext set to TRUE&lt;br /&gt;
 ldapadd -Y external -H ldapi:/// &amp;lt;&amp;lt;EOF&lt;br /&gt;
 dn: olcOverlay=ppolicy,olcDatabase={1}mdb,cn=config&lt;br /&gt;
 objectClass: olcPPolicyConfig&lt;br /&gt;
 olcOverlay: ppolicy&lt;br /&gt;
 olcPPolicyHashCleartext: TRUE&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
=== Wiki ===&lt;br /&gt;
&lt;br /&gt;
Host: feministwiki.org, www.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: MediaWiki&lt;br /&gt;
&lt;br /&gt;
The wiki uses a [https://www.mediawiki.org/wiki/MediaWiki MediaWiki] installation located at &amp;lt;code&amp;gt;/var/www/wiki/w&amp;lt;/code&amp;gt; with the [https://www.mediawiki.org/wiki/Extension:LDAP_Authentication LDAP Authentication] plugin for login management and the &amp;quot;Short URL&amp;quot; feature enabled with help of Apache&#039;s vhost configuration, which is located at &amp;lt;code&amp;gt;/etc/apache2/sites-available/wiki.conf&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The wiki uses the SQL database called &amp;quot;feministwiki&amp;quot; and the SQL user of the same name.&lt;br /&gt;
&lt;br /&gt;
=== Chat (web interface) ===&lt;br /&gt;
&lt;br /&gt;
Host: chat.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: Converse.js&lt;br /&gt;
&lt;br /&gt;
The web-interface for the FeministChat uses the full-screen &amp;quot;Impress&amp;quot; variant of the [https://conversejs.org/ Converse.js] XMPP client.  The hosted HTML and JS files are located at &amp;lt;code&amp;gt;/var/www/chat&amp;lt;/code&amp;gt;, although they load Converse.js as an external script from upstream, which is why the self-hosted HTML and JS are very minimal.&lt;br /&gt;
&lt;br /&gt;
=== Forum ===&lt;br /&gt;
&lt;br /&gt;
Host: forum.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: phpBB&lt;br /&gt;
&lt;br /&gt;
The forum uses a [https://www.phpbb.com/ phpBB] installation located at &amp;lt;code&amp;gt;/var/www/forum&amp;lt;/code&amp;gt;.  The style is a copy of the &amp;quot;orange&amp;quot; variant of the &amp;quot;basic&amp;quot; style, with only the logo swapped.&lt;br /&gt;
&lt;br /&gt;
Most configuration of phpBB, including LDAP authentication, is done through its administration panel.&lt;br /&gt;
&lt;br /&gt;
The forum uses the SQL database called &amp;quot;feministforum&amp;quot; and the SQL user of the same name.&lt;br /&gt;
&lt;br /&gt;
=== Mail (web interface) ===&lt;br /&gt;
&lt;br /&gt;
Host: mail.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: Roundcube&lt;br /&gt;
&lt;br /&gt;
The web-interface for the FeministMail uses the [https://roundcube.net/ Roundcube] mail client, installed at &amp;lt;code&amp;gt;/var/www/mail&amp;lt;/code&amp;gt;.  It uses the standard &amp;quot;larry&amp;quot; style, but with some tweaks to logos and images.&lt;br /&gt;
&lt;br /&gt;
=== Files ===&lt;br /&gt;
&lt;br /&gt;
Host: files.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: Nextcloud&lt;br /&gt;
&lt;br /&gt;
FeministFiles is a [https://nextcloud.com/ Nextcloud] installation with some branding, and LDAP authentication, installed at &amp;lt;code&amp;gt;/var/www/files&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== IMAP ===&lt;br /&gt;
&lt;br /&gt;
Host: imap.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: Dovecot&lt;br /&gt;
&lt;br /&gt;
FeministMail uses the [https://www.dovecot.org/ Dovecot] IMAP server, configured for LDAP authentication and using virtual mail boxes under &amp;lt;code&amp;gt;/home/vmail&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== SMTP ===&lt;br /&gt;
&lt;br /&gt;
Host: smtp.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: Postfix&lt;br /&gt;
&lt;br /&gt;
FeministMail uses the [http://www.postfix.org/ Postfix] SMTP server, using SASL authentication through Dovecot.&lt;br /&gt;
&lt;br /&gt;
=== XMPP ===&lt;br /&gt;
&lt;br /&gt;
Host: xmpp.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: ejabberd&lt;br /&gt;
&lt;br /&gt;
FeministChat uses the [https://www.ejabberd.im/ ejabberd] XMPP server, configured to use LDAP authentication and an LDAP-based shared roster group for all members.&lt;br /&gt;
&lt;br /&gt;
=== IRC ===&lt;br /&gt;
&lt;br /&gt;
Host: irc.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: InspIRCd&lt;br /&gt;
&lt;br /&gt;
FeministIRC uses the [http://www.inspircd.org/ InspIRCd] IRC server with the &amp;lt;code&amp;gt;ldapauth&amp;lt;/code&amp;gt; module for LDAP authentication.&lt;br /&gt;
&lt;br /&gt;
=== Add a member ===&lt;br /&gt;
&lt;br /&gt;
Host: add-member.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: custom&lt;br /&gt;
&lt;br /&gt;
The page to add a new member, hosted at &amp;lt;code&amp;gt;/var/www/add-member&amp;lt;/code&amp;gt;, uses a bit of self-written HTML, PHP, and a setuid-root C program to invoke the shell script located at &amp;lt;code&amp;gt;/root/bin/fw-adduser&amp;lt;/code&amp;gt; with root privileges.&lt;/div&gt;</summary>
		<author><name>SocJusWiz</name></author>
	</entry>
	<entry>
		<id>https://feministwiki.org/w/index.php?title=FeministWiki:Technical_documentation&amp;diff=94</id>
		<title>FeministWiki:Technical documentation</title>
		<link rel="alternate" type="text/html" href="https://feministwiki.org/w/index.php?title=FeministWiki:Technical_documentation&amp;diff=94"/>
		<updated>2018-09-22T12:30:16Z</updated>

		<summary type="html">&lt;p&gt;SocJusWiz: /* Services */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page documents the FeministWiki&#039;s technical infrastructure, the target audience being technicians.&lt;br /&gt;
&lt;br /&gt;
== Hosts ==&lt;br /&gt;
&lt;br /&gt;
The following table documents the DNS configuration, and can be used as part of the &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt; file on each server to obviate the need for DNS lookups when connecting to one another.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!IP            !! FQDN                        !! Host          !! Purpose&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||            feministwiki.org ||               || Wiki&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||        www.feministwiki.org || www           || Wiki&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       ldap.feministwiki.org || ldap          || LDAP&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       chat.feministwiki.org || chat          || Web-client for XMPP&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||      forum.feministwiki.org || forum         || BBS Forum&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       mail.feministwiki.org || mail          || Web-client for Mail&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||      files.feministwiki.org || files         || File storage&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       imap.feministwiki.org || imap          || IMAP&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       smtp.feministwiki.org || smtp          || SMTP&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       xmpp.feministwiki.org || xmpp          || XMPP&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||        irc.feministwiki.org || irc           || IRC&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||     social.feministwiki.org || social        || GNU social&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 || add-member.feministwiki.org || add-member    || Add a member&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
(As you can see, all services are on the same server for now.)&lt;br /&gt;
&lt;br /&gt;
== SSH access ==&lt;br /&gt;
&lt;br /&gt;
FeministWiki hosts have ssh enabled for &amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt; access, but password login is disabled.  You must own a valid private key to log in.&lt;br /&gt;
&lt;br /&gt;
== Git repo of scripts and configuration ==&lt;br /&gt;
&lt;br /&gt;
The following GitHub account hosts repositories with scripts and configuration used by the FeministWiki:&lt;br /&gt;
&lt;br /&gt;
https://github.com/FeministWiki&lt;br /&gt;
&lt;br /&gt;
== Certs ==&lt;br /&gt;
&lt;br /&gt;
The FeministWiki uses LetsEncrypt to acquire digital certificates for encrypted communication.&lt;br /&gt;
&lt;br /&gt;
To ease use of the letsencrypt command, the file &amp;lt;code&amp;gt;/root/etc/domains&amp;lt;/code&amp;gt; contains all the FQDNs used by the FeministWiki, one per line.  Given that, the preferred way to populate the &amp;lt;code&amp;gt;/etc/letsencrypt/live/feministwiki.org&amp;lt;/code&amp;gt; directory with fresh certs is to run the following command while TCP port 80 is free (e.g. stop Apache first):&lt;br /&gt;
&lt;br /&gt;
 letsencrypt certonly --authenticator standalone -d &amp;quot;$(tr &#039;\n&#039; &#039;,&#039; &amp;lt; /root/etc/domains)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Additionally, for programs that require a cert file and its private key in a single combined &amp;lt;code&amp;gt;.pem&amp;lt;/code&amp;gt; file, run the following commands to generate such a file:&lt;br /&gt;
&lt;br /&gt;
 cd /etc/letsencrypt/live/feministwiki.org&lt;br /&gt;
 cat fullchain.pem privkey.pem &amp;gt; certbundle.pem&lt;br /&gt;
&lt;br /&gt;
The script &amp;lt;code&amp;gt;/root/bin/letsencrypt-refresh&amp;lt;/code&amp;gt; &#039;&#039;&#039;does all of the above&#039;&#039;&#039;, so in practice you just need to run the following commands to recreate the cert:&lt;br /&gt;
&lt;br /&gt;
 service apache2 stop  # Assuming Apache is running on the machine&lt;br /&gt;
 letsencrypt-refresh&lt;br /&gt;
 service apache2 start&lt;br /&gt;
&lt;br /&gt;
The above can be used not only to refresh a cert that&#039;s running out, but also to add a new domain to the cert.  Just add the domain to &amp;lt;code&amp;gt;/root/etc/domains&amp;lt;/code&amp;gt; and run the commands.&lt;br /&gt;
&lt;br /&gt;
Note that the letsencrypt command doesn&#039;t work well on a &amp;quot;dumb&amp;quot; terminal such as an Emacs shell buffer.  Make sure to run it from within a proper terminal emulator.&lt;br /&gt;
&lt;br /&gt;
== Services ==&lt;br /&gt;
&lt;br /&gt;
This section documents the individual services of the FeministWiki.  They should work regardless of what server they&#039;re on.  I.e. every service could in theory be hosted on its own server.&lt;br /&gt;
&lt;br /&gt;
=== LDAP ===&lt;br /&gt;
&lt;br /&gt;
Host: ldap.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: OpenLDAP&lt;br /&gt;
&lt;br /&gt;
The LDAP service contains the central database of FeministWiki members.  The structure looks like this:&lt;br /&gt;
&lt;br /&gt;
* dc=feministwiki,dc=org&lt;br /&gt;
** ou=members&lt;br /&gt;
*** cn=&#039;&#039;username&#039;&#039; &amp;lt;br/&amp;gt; objectClass: inetOrgPerson &amp;lt;br/&amp;gt; cn: &#039;&#039;username&#039;&#039; &amp;lt;br/&amp;gt; uid: &#039;&#039;username&#039;&#039; &amp;lt;br/&amp;gt; sn: - &amp;lt;br/&amp;gt; userPassword: {SSHA}&#039;&#039;saltedhash&#039;&#039; &amp;lt;br/&amp;gt; mail: &#039;&#039;username&#039;&#039;@feministwiki.org&lt;br /&gt;
*** cn=&#039;&#039;username2&#039;&#039; &amp;lt;br/&amp;gt; objectClass: inetOrgPerson &amp;lt;br/&amp;gt; cn: &#039;&#039;username2&#039;&#039; &amp;lt;br/&amp;gt; uid: &#039;&#039;username2&#039;&#039; &amp;lt;br/&amp;gt; sn: - &amp;lt;br/&amp;gt; userPassword: {SSHA}&#039;&#039;saltedhash2&#039;&#039; &amp;lt;br/&amp;gt; mail: &#039;&#039;username2&#039;&#039;@feministwiki.org &amp;lt;br/&amp;gt; manager: cn=&#039;&#039;username&#039;&#039;,ou=members,dc=feministwiki,dc=org&lt;br /&gt;
*** ...&lt;br /&gt;
** ou=groups&lt;br /&gt;
*** cn=members &amp;lt;br/&amp;gt; objectClass: groupOfNames &amp;lt;br/&amp;gt; cn: members &amp;lt;br/&amp;gt; member: &#039;&#039;username&#039;&#039; &amp;lt;br/&amp;gt; member: &#039;&#039;username2&#039;&#039; &amp;lt;br/&amp;gt; member: ...&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* The &amp;lt;code&amp;gt;cn&amp;lt;/code&amp;gt; (common name) and &amp;lt;code&amp;gt;uid&amp;lt;/code&amp;gt; (user ID) fields both contain the username.  This is because some software is preconfigured to look at &amp;lt;code&amp;gt;uid&amp;lt;/code&amp;gt;, while most look at &amp;lt;code&amp;gt;cn&amp;lt;/code&amp;gt;.&lt;br /&gt;
* The &amp;lt;code&amp;gt;sn&amp;lt;/code&amp;gt; (surname) field simply contains a minus character as a placeholder, because it&#039;s a mandatory field.&lt;br /&gt;
* The &amp;lt;code&amp;gt;manager&amp;lt;/code&amp;gt; field is optional and we use it to record the member who added the member in question.&lt;br /&gt;
&lt;br /&gt;
To make sure passwords are stored with the &amp;lt;code&amp;gt;{SSHA}&amp;lt;/code&amp;gt; scheme rather than plain text, the &amp;lt;code&amp;gt;ppolicy&amp;lt;/code&amp;gt; &amp;quot;password policy overlay&amp;quot; is used.  ZYTRAX has a very nice book about LDAP which documents how to enable this: http://www.zytrax.com/books/ldap/ch6/ppolicy.html&lt;br /&gt;
&lt;br /&gt;
In short, the steps go as follows (these commands &#039;&#039;should&#039;&#039; work verbatim):&lt;br /&gt;
&lt;br /&gt;
 # Add the ppolicy schema&lt;br /&gt;
 ldapadd -Y external -H ldapi:/// &amp;lt; /etc/ldap/schema/ppolicy.ldif&lt;br /&gt;
 &lt;br /&gt;
 # Enable the ppolicy dynamic module&lt;br /&gt;
 ldapmodify -Y external -H ldapi:/// &amp;lt;&amp;lt;EOF&lt;br /&gt;
 dn: cn=module{0},cn=config&lt;br /&gt;
 changetype: modify&lt;br /&gt;
 add: olcModuleLoad&lt;br /&gt;
 olcModuleLoad: ppolicy&lt;br /&gt;
 EOF&lt;br /&gt;
 &lt;br /&gt;
 # Add the ppolicy overlay with olcPPolicyHashCleartext set to TRUE&lt;br /&gt;
 ldapadd -Y external -H ldapi:/// &amp;lt;&amp;lt;EOF&lt;br /&gt;
 dn: olcOverlay=ppolicy,olcDatabase={1}mdb,cn=config&lt;br /&gt;
 objectClass: olcPPolicyConfig&lt;br /&gt;
 olcOverlay: ppolicy&lt;br /&gt;
 olcPPolicyHashCleartext: TRUE&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
=== Wiki ===&lt;br /&gt;
&lt;br /&gt;
Host: feministwiki.org, www.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: MediaWiki&lt;br /&gt;
&lt;br /&gt;
The wiki uses a [https://www.mediawiki.org/wiki/MediaWiki MediaWiki] installation located at &amp;lt;code&amp;gt;/var/www/wiki/w&amp;lt;/code&amp;gt; with the [https://www.mediawiki.org/wiki/Extension:LDAP_Authentication LDAP Authentication] plugin for login management and the &amp;quot;Short URL&amp;quot; feature enabled with help of Apache&#039;s vhost configuration, which is located at &amp;lt;code&amp;gt;/etc/apache2/sites-available/wiki.conf&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The wiki uses the SQL database called &amp;quot;feministwiki&amp;quot; and the SQL user of the same name.&lt;br /&gt;
&lt;br /&gt;
=== Chat (web interface) ===&lt;br /&gt;
&lt;br /&gt;
Host: chat.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: Converse.js&lt;br /&gt;
&lt;br /&gt;
The web-interface for the FeministChat uses the full-screen &amp;quot;Impress&amp;quot; variant of the [https://conversejs.org/ Converse.js] XMPP client.  The hosted HTML and JS files are located at &amp;lt;code&amp;gt;/var/www/chat&amp;lt;/code&amp;gt;, although they load Converse.js as an external script from upstream, which is why the self-hosted HTML and JS are very minimal.&lt;br /&gt;
&lt;br /&gt;
=== Forum ===&lt;br /&gt;
&lt;br /&gt;
Host: forum.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: phpBB&lt;br /&gt;
&lt;br /&gt;
The forum uses a [https://www.phpbb.com/ phpBB] installation located at &amp;lt;code&amp;gt;/var/www/forum&amp;lt;/code&amp;gt;.  The style is a copy of the &amp;quot;orange&amp;quot; variant of the &amp;quot;basic&amp;quot; style, with only the logo swapped.&lt;br /&gt;
&lt;br /&gt;
Most configuration of phpBB, including LDAP authentication, is done through its administration panel.&lt;br /&gt;
&lt;br /&gt;
The forum uses the SQL database called &amp;quot;feministforum&amp;quot; and the SQL user of the same name.&lt;br /&gt;
&lt;br /&gt;
=== Mail (web interface) ===&lt;br /&gt;
&lt;br /&gt;
Host: mail.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: Roundcube&lt;br /&gt;
&lt;br /&gt;
The web-interface for the FeministMail uses the [https://roundcube.net/ Roundcube] mail client, installed at &amp;lt;code&amp;gt;/var/www/mail&amp;lt;/code&amp;gt;.  It uses the standard &amp;quot;larry&amp;quot; style, but with some tweaks to logos and images.&lt;br /&gt;
&lt;br /&gt;
=== Files ===&lt;br /&gt;
&lt;br /&gt;
Host: files.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: Nextcloud&lt;br /&gt;
&lt;br /&gt;
FeministFiles is a [https://nextcloud.com/ Nextcloud] installation with some branding, and LDAP authentication, installed at &amp;lt;code&amp;gt;/var/www/files&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== IMAP ===&lt;br /&gt;
&lt;br /&gt;
Host: imap.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: Dovecot&lt;br /&gt;
&lt;br /&gt;
FeministMail uses the [https://www.dovecot.org/ Dovecot] IMAP server, configured for LDAP authentication and using virtual mail boxes under &amp;lt;code&amp;gt;/home/vmail&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== SMTP ===&lt;br /&gt;
&lt;br /&gt;
Host: smtp.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: Postfix&lt;br /&gt;
&lt;br /&gt;
FeministMail uses the [http://www.postfix.org/ Postfix] SMTP server, using SASL authentication through Dovecot.&lt;/div&gt;</summary>
		<author><name>SocJusWiz</name></author>
	</entry>
	<entry>
		<id>https://feministwiki.org/w/index.php?title=FeministWiki:Technical_documentation&amp;diff=93</id>
		<title>FeministWiki:Technical documentation</title>
		<link rel="alternate" type="text/html" href="https://feministwiki.org/w/index.php?title=FeministWiki:Technical_documentation&amp;diff=93"/>
		<updated>2018-09-22T12:09:02Z</updated>

		<summary type="html">&lt;p&gt;SocJusWiz: /* Forum */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page documents the FeministWiki&#039;s technical infrastructure, the target audience being technicians.&lt;br /&gt;
&lt;br /&gt;
== Hosts ==&lt;br /&gt;
&lt;br /&gt;
The following table documents the DNS configuration, and can be used as part of the &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt; file on each server to obviate the need for DNS lookups when connecting to one another.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!IP            !! FQDN                        !! Host          !! Purpose&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||            feministwiki.org ||               || Wiki&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||        www.feministwiki.org || www           || Wiki&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       ldap.feministwiki.org || ldap          || LDAP&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       chat.feministwiki.org || chat          || Web-client for XMPP&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||      forum.feministwiki.org || forum         || BBS Forum&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       mail.feministwiki.org || mail          || Web-client for Mail&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||      files.feministwiki.org || files         || File storage&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       imap.feministwiki.org || imap          || IMAP&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       smtp.feministwiki.org || smtp          || SMTP&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       xmpp.feministwiki.org || xmpp          || XMPP&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||        irc.feministwiki.org || irc           || IRC&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||     social.feministwiki.org || social        || GNU social&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 || add-member.feministwiki.org || add-member    || Add a member&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
(As you can see, all services are on the same server for now.)&lt;br /&gt;
&lt;br /&gt;
== SSH access ==&lt;br /&gt;
&lt;br /&gt;
FeministWiki hosts have ssh enabled for &amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt; access, but password login is disabled.  You must own a valid private key to log in.&lt;br /&gt;
&lt;br /&gt;
== Git repo of scripts and configuration ==&lt;br /&gt;
&lt;br /&gt;
The following GitHub account hosts repositories with scripts and configuration used by the FeministWiki:&lt;br /&gt;
&lt;br /&gt;
https://github.com/FeministWiki&lt;br /&gt;
&lt;br /&gt;
== Certs ==&lt;br /&gt;
&lt;br /&gt;
The FeministWiki uses LetsEncrypt to acquire digital certificates for encrypted communication.&lt;br /&gt;
&lt;br /&gt;
To ease use of the letsencrypt command, the file &amp;lt;code&amp;gt;/root/etc/domains&amp;lt;/code&amp;gt; contains all the FQDNs used by the FeministWiki, one per line.  Given that, the preferred way to populate the &amp;lt;code&amp;gt;/etc/letsencrypt/live/feministwiki.org&amp;lt;/code&amp;gt; directory with fresh certs is to run the following command while TCP port 80 is free (e.g. stop Apache first):&lt;br /&gt;
&lt;br /&gt;
 letsencrypt certonly --authenticator standalone -d &amp;quot;$(tr &#039;\n&#039; &#039;,&#039; &amp;lt; /root/etc/domains)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Additionally, for programs that require a cert file and its private key in a single combined &amp;lt;code&amp;gt;.pem&amp;lt;/code&amp;gt; file, run the following commands to generate such a file:&lt;br /&gt;
&lt;br /&gt;
 cd /etc/letsencrypt/live/feministwiki.org&lt;br /&gt;
 cat fullchain.pem privkey.pem &amp;gt; certbundle.pem&lt;br /&gt;
&lt;br /&gt;
The script &amp;lt;code&amp;gt;/root/bin/letsencrypt-refresh&amp;lt;/code&amp;gt; &#039;&#039;&#039;does all of the above&#039;&#039;&#039;, so in practice you just need to run the following commands to recreate the cert:&lt;br /&gt;
&lt;br /&gt;
 service apache2 stop  # Assuming Apache is running on the machine&lt;br /&gt;
 letsencrypt-refresh&lt;br /&gt;
 service apache2 start&lt;br /&gt;
&lt;br /&gt;
The above can be used not only to refresh a cert that&#039;s running out, but also to add a new domain to the cert.  Just add the domain to &amp;lt;code&amp;gt;/root/etc/domains&amp;lt;/code&amp;gt; and run the commands.&lt;br /&gt;
&lt;br /&gt;
Note that the letsencrypt command doesn&#039;t work well on a &amp;quot;dumb&amp;quot; terminal such as an Emacs shell buffer.  Make sure to run it from within a proper terminal emulator.&lt;br /&gt;
&lt;br /&gt;
== Services ==&lt;br /&gt;
&lt;br /&gt;
This section documents the individual services of the FeministWiki.  They should work regardless of what server they&#039;re on.  I.e. every service could in theory be hosted on its own server.&lt;br /&gt;
&lt;br /&gt;
=== LDAP ===&lt;br /&gt;
&lt;br /&gt;
Host: ldap.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: OpenLDAP&lt;br /&gt;
&lt;br /&gt;
The LDAP service contains the central database of FeministWiki members.  The structure looks like this:&lt;br /&gt;
&lt;br /&gt;
* dc=feministwiki,dc=org&lt;br /&gt;
** ou=members&lt;br /&gt;
*** cn=&#039;&#039;username&#039;&#039; &amp;lt;br/&amp;gt; objectClass: inetOrgPerson &amp;lt;br/&amp;gt; cn: &#039;&#039;username&#039;&#039; &amp;lt;br/&amp;gt; uid: &#039;&#039;username&#039;&#039; &amp;lt;br/&amp;gt; sn: - &amp;lt;br/&amp;gt; userPassword: {SSHA}&#039;&#039;saltedhash&#039;&#039; &amp;lt;br/&amp;gt; mail: &#039;&#039;username&#039;&#039;@feministwiki.org&lt;br /&gt;
*** cn=&#039;&#039;username2&#039;&#039; &amp;lt;br/&amp;gt; objectClass: inetOrgPerson &amp;lt;br/&amp;gt; cn: &#039;&#039;username2&#039;&#039; &amp;lt;br/&amp;gt; uid: &#039;&#039;username2&#039;&#039; &amp;lt;br/&amp;gt; sn: - &amp;lt;br/&amp;gt; userPassword: {SSHA}&#039;&#039;saltedhash2&#039;&#039; &amp;lt;br/&amp;gt; mail: &#039;&#039;username2&#039;&#039;@feministwiki.org &amp;lt;br/&amp;gt; manager: cn=&#039;&#039;username&#039;&#039;,ou=members,dc=feministwiki,dc=org&lt;br /&gt;
*** ...&lt;br /&gt;
** ou=groups&lt;br /&gt;
*** cn=members &amp;lt;br/&amp;gt; objectClass: groupOfNames &amp;lt;br/&amp;gt; cn: members &amp;lt;br/&amp;gt; member: &#039;&#039;username&#039;&#039; &amp;lt;br/&amp;gt; member: &#039;&#039;username2&#039;&#039; &amp;lt;br/&amp;gt; member: ...&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* The &amp;lt;code&amp;gt;cn&amp;lt;/code&amp;gt; (common name) and &amp;lt;code&amp;gt;uid&amp;lt;/code&amp;gt; (user ID) fields both contain the username.  This is because some software is preconfigured to look at &amp;lt;code&amp;gt;uid&amp;lt;/code&amp;gt;, while most look at &amp;lt;code&amp;gt;cn&amp;lt;/code&amp;gt;.&lt;br /&gt;
* The &amp;lt;code&amp;gt;sn&amp;lt;/code&amp;gt; (surname) field simply contains a minus character as a placeholder, because it&#039;s a mandatory field.&lt;br /&gt;
* The &amp;lt;code&amp;gt;manager&amp;lt;/code&amp;gt; field is optional and we use it to record the member who added the member in question.&lt;br /&gt;
&lt;br /&gt;
To make sure passwords are stored with the &amp;lt;code&amp;gt;{SSHA}&amp;lt;/code&amp;gt; scheme rather than plain text, the &amp;lt;code&amp;gt;ppolicy&amp;lt;/code&amp;gt; &amp;quot;password policy overlay&amp;quot; is used.  ZYTRAX has a very nice book about LDAP which documents how to enable this: http://www.zytrax.com/books/ldap/ch6/ppolicy.html&lt;br /&gt;
&lt;br /&gt;
In short, the steps go as follows (these commands &#039;&#039;should&#039;&#039; work verbatim):&lt;br /&gt;
&lt;br /&gt;
 # Add the ppolicy schema&lt;br /&gt;
 ldapadd -Y external -H ldapi:/// &amp;lt; /etc/ldap/schema/ppolicy.ldif&lt;br /&gt;
 &lt;br /&gt;
 # Enable the ppolicy dynamic module&lt;br /&gt;
 ldapmodify -Y external -H ldapi:/// &amp;lt;&amp;lt;EOF&lt;br /&gt;
 dn: cn=module{0},cn=config&lt;br /&gt;
 changetype: modify&lt;br /&gt;
 add: olcModuleLoad&lt;br /&gt;
 olcModuleLoad: ppolicy&lt;br /&gt;
 EOF&lt;br /&gt;
 &lt;br /&gt;
 # Add the ppolicy overlay with olcPPolicyHashCleartext set to TRUE&lt;br /&gt;
 ldapadd -Y external -H ldapi:/// &amp;lt;&amp;lt;EOF&lt;br /&gt;
 dn: olcOverlay=ppolicy,olcDatabase={1}mdb,cn=config&lt;br /&gt;
 objectClass: olcPPolicyConfig&lt;br /&gt;
 olcOverlay: ppolicy&lt;br /&gt;
 olcPPolicyHashCleartext: TRUE&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
=== Wiki ===&lt;br /&gt;
&lt;br /&gt;
Host: feministwiki.org, www.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: MediaWiki&lt;br /&gt;
&lt;br /&gt;
The wiki uses a [https://www.mediawiki.org/wiki/MediaWiki MediaWiki] installation located at &amp;lt;code&amp;gt;/var/www/wiki/w&amp;lt;/code&amp;gt; with the [https://www.mediawiki.org/wiki/Extension:LDAP_Authentication LDAP Authentication] plugin for login management and the &amp;quot;Short URL&amp;quot; feature enabled with help of Apache&#039;s vhost configuration, which is located at &amp;lt;code&amp;gt;/etc/apache2/sites-available/wiki.conf&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The wiki uses the SQL database called &amp;quot;feministwiki&amp;quot; and the SQL user of the same name.&lt;br /&gt;
&lt;br /&gt;
=== Chat (web interface) ===&lt;br /&gt;
&lt;br /&gt;
Host: chat.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: Converse.js&lt;br /&gt;
&lt;br /&gt;
The web-interface for the FeministChat uses the full-screen &amp;quot;Impress&amp;quot; variant of the [https://conversejs.org/ Converse.js] XMPP client.  The hosted HTML and JS files are located at &amp;lt;code&amp;gt;/var/www/chat&amp;lt;/code&amp;gt;, although they load Converse.js as an external script from upstream, which is why the self-hosted HTML and JS are very minimal.&lt;br /&gt;
&lt;br /&gt;
=== Forum ===&lt;br /&gt;
&lt;br /&gt;
Host: forum.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: phpBB&lt;br /&gt;
&lt;br /&gt;
The forum uses a [https://www.phpbb.com/ phpBB] installation located at &amp;lt;code&amp;gt;/var/www/forum&amp;lt;/code&amp;gt;.  The style is a copy of the &amp;quot;orange&amp;quot; variant of the &amp;quot;basic&amp;quot; style, with only the logo swapped.&lt;br /&gt;
&lt;br /&gt;
Most configuration of phpBB, including LDAP authentication, is done through its administration panel.&lt;br /&gt;
&lt;br /&gt;
The forum uses the SQL database called &amp;quot;feministforum&amp;quot; and the SQL user of the same name.&lt;br /&gt;
&lt;br /&gt;
=== Mail (web interface) ===&lt;br /&gt;
&lt;br /&gt;
Host: mail.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: Roundcube&lt;br /&gt;
&lt;br /&gt;
The web-interface for the FeministMail uses the [https://roundcube.net/ Roundcube] mail client, installed at &amp;lt;code&amp;gt;/var/www/mail&amp;lt;/code&amp;gt;.  It uses the standard &amp;quot;larry&amp;quot; style, but with some tweaks to logos and images.&lt;br /&gt;
&lt;br /&gt;
=== Files ===&lt;br /&gt;
&lt;br /&gt;
Host: files.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: Nextcloud&lt;br /&gt;
&lt;br /&gt;
FeministFiles is a [https://nextcloud.com/ Nextcloud] installation with some branding, and LDAP authentication.&lt;/div&gt;</summary>
		<author><name>SocJusWiz</name></author>
	</entry>
	<entry>
		<id>https://feministwiki.org/w/index.php?title=FeministWiki:Technical_documentation&amp;diff=92</id>
		<title>FeministWiki:Technical documentation</title>
		<link rel="alternate" type="text/html" href="https://feministwiki.org/w/index.php?title=FeministWiki:Technical_documentation&amp;diff=92"/>
		<updated>2018-09-22T12:07:01Z</updated>

		<summary type="html">&lt;p&gt;SocJusWiz: /* Services */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page documents the FeministWiki&#039;s technical infrastructure, the target audience being technicians.&lt;br /&gt;
&lt;br /&gt;
== Hosts ==&lt;br /&gt;
&lt;br /&gt;
The following table documents the DNS configuration, and can be used as part of the &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt; file on each server to obviate the need for DNS lookups when connecting to one another.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!IP            !! FQDN                        !! Host          !! Purpose&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||            feministwiki.org ||               || Wiki&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||        www.feministwiki.org || www           || Wiki&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       ldap.feministwiki.org || ldap          || LDAP&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       chat.feministwiki.org || chat          || Web-client for XMPP&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||      forum.feministwiki.org || forum         || BBS Forum&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       mail.feministwiki.org || mail          || Web-client for Mail&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||      files.feministwiki.org || files         || File storage&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       imap.feministwiki.org || imap          || IMAP&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       smtp.feministwiki.org || smtp          || SMTP&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       xmpp.feministwiki.org || xmpp          || XMPP&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||        irc.feministwiki.org || irc           || IRC&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||     social.feministwiki.org || social        || GNU social&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 || add-member.feministwiki.org || add-member    || Add a member&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
(As you can see, all services are on the same server for now.)&lt;br /&gt;
&lt;br /&gt;
== SSH access ==&lt;br /&gt;
&lt;br /&gt;
FeministWiki hosts have ssh enabled for &amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt; access, but password login is disabled.  You must own a valid private key to log in.&lt;br /&gt;
&lt;br /&gt;
== Git repo of scripts and configuration ==&lt;br /&gt;
&lt;br /&gt;
The following GitHub account hosts repositories with scripts and configuration used by the FeministWiki:&lt;br /&gt;
&lt;br /&gt;
https://github.com/FeministWiki&lt;br /&gt;
&lt;br /&gt;
== Certs ==&lt;br /&gt;
&lt;br /&gt;
The FeministWiki uses LetsEncrypt to acquire digital certificates for encrypted communication.&lt;br /&gt;
&lt;br /&gt;
To ease use of the letsencrypt command, the file &amp;lt;code&amp;gt;/root/etc/domains&amp;lt;/code&amp;gt; contains all the FQDNs used by the FeministWiki, one per line.  Given that, the preferred way to populate the &amp;lt;code&amp;gt;/etc/letsencrypt/live/feministwiki.org&amp;lt;/code&amp;gt; directory with fresh certs is to run the following command while TCP port 80 is free (e.g. stop Apache first):&lt;br /&gt;
&lt;br /&gt;
 letsencrypt certonly --authenticator standalone -d &amp;quot;$(tr &#039;\n&#039; &#039;,&#039; &amp;lt; /root/etc/domains)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Additionally, for programs that require a cert file and its private key in a single combined &amp;lt;code&amp;gt;.pem&amp;lt;/code&amp;gt; file, run the following commands to generate such a file:&lt;br /&gt;
&lt;br /&gt;
 cd /etc/letsencrypt/live/feministwiki.org&lt;br /&gt;
 cat fullchain.pem privkey.pem &amp;gt; certbundle.pem&lt;br /&gt;
&lt;br /&gt;
The script &amp;lt;code&amp;gt;/root/bin/letsencrypt-refresh&amp;lt;/code&amp;gt; &#039;&#039;&#039;does all of the above&#039;&#039;&#039;, so in practice you just need to run the following commands to recreate the cert:&lt;br /&gt;
&lt;br /&gt;
 service apache2 stop  # Assuming Apache is running on the machine&lt;br /&gt;
 letsencrypt-refresh&lt;br /&gt;
 service apache2 start&lt;br /&gt;
&lt;br /&gt;
The above can be used not only to refresh a cert that&#039;s running out, but also to add a new domain to the cert.  Just add the domain to &amp;lt;code&amp;gt;/root/etc/domains&amp;lt;/code&amp;gt; and run the commands.&lt;br /&gt;
&lt;br /&gt;
Note that the letsencrypt command doesn&#039;t work well on a &amp;quot;dumb&amp;quot; terminal such as an Emacs shell buffer.  Make sure to run it from within a proper terminal emulator.&lt;br /&gt;
&lt;br /&gt;
== Services ==&lt;br /&gt;
&lt;br /&gt;
This section documents the individual services of the FeministWiki.  They should work regardless of what server they&#039;re on.  I.e. every service could in theory be hosted on its own server.&lt;br /&gt;
&lt;br /&gt;
=== LDAP ===&lt;br /&gt;
&lt;br /&gt;
Host: ldap.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: OpenLDAP&lt;br /&gt;
&lt;br /&gt;
The LDAP service contains the central database of FeministWiki members.  The structure looks like this:&lt;br /&gt;
&lt;br /&gt;
* dc=feministwiki,dc=org&lt;br /&gt;
** ou=members&lt;br /&gt;
*** cn=&#039;&#039;username&#039;&#039; &amp;lt;br/&amp;gt; objectClass: inetOrgPerson &amp;lt;br/&amp;gt; cn: &#039;&#039;username&#039;&#039; &amp;lt;br/&amp;gt; uid: &#039;&#039;username&#039;&#039; &amp;lt;br/&amp;gt; sn: - &amp;lt;br/&amp;gt; userPassword: {SSHA}&#039;&#039;saltedhash&#039;&#039; &amp;lt;br/&amp;gt; mail: &#039;&#039;username&#039;&#039;@feministwiki.org&lt;br /&gt;
*** cn=&#039;&#039;username2&#039;&#039; &amp;lt;br/&amp;gt; objectClass: inetOrgPerson &amp;lt;br/&amp;gt; cn: &#039;&#039;username2&#039;&#039; &amp;lt;br/&amp;gt; uid: &#039;&#039;username2&#039;&#039; &amp;lt;br/&amp;gt; sn: - &amp;lt;br/&amp;gt; userPassword: {SSHA}&#039;&#039;saltedhash2&#039;&#039; &amp;lt;br/&amp;gt; mail: &#039;&#039;username2&#039;&#039;@feministwiki.org &amp;lt;br/&amp;gt; manager: cn=&#039;&#039;username&#039;&#039;,ou=members,dc=feministwiki,dc=org&lt;br /&gt;
*** ...&lt;br /&gt;
** ou=groups&lt;br /&gt;
*** cn=members &amp;lt;br/&amp;gt; objectClass: groupOfNames &amp;lt;br/&amp;gt; cn: members &amp;lt;br/&amp;gt; member: &#039;&#039;username&#039;&#039; &amp;lt;br/&amp;gt; member: &#039;&#039;username2&#039;&#039; &amp;lt;br/&amp;gt; member: ...&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* The &amp;lt;code&amp;gt;cn&amp;lt;/code&amp;gt; (common name) and &amp;lt;code&amp;gt;uid&amp;lt;/code&amp;gt; (user ID) fields both contain the username.  This is because some software is preconfigured to look at &amp;lt;code&amp;gt;uid&amp;lt;/code&amp;gt;, while most look at &amp;lt;code&amp;gt;cn&amp;lt;/code&amp;gt;.&lt;br /&gt;
* The &amp;lt;code&amp;gt;sn&amp;lt;/code&amp;gt; (surname) field simply contains a minus character as a placeholder, because it&#039;s a mandatory field.&lt;br /&gt;
* The &amp;lt;code&amp;gt;manager&amp;lt;/code&amp;gt; field is optional and we use it to record the member who added the member in question.&lt;br /&gt;
&lt;br /&gt;
To make sure passwords are stored with the &amp;lt;code&amp;gt;{SSHA}&amp;lt;/code&amp;gt; scheme rather than plain text, the &amp;lt;code&amp;gt;ppolicy&amp;lt;/code&amp;gt; &amp;quot;password policy overlay&amp;quot; is used.  ZYTRAX has a very nice book about LDAP which documents how to enable this: http://www.zytrax.com/books/ldap/ch6/ppolicy.html&lt;br /&gt;
&lt;br /&gt;
In short, the steps go as follows (these commands &#039;&#039;should&#039;&#039; work verbatim):&lt;br /&gt;
&lt;br /&gt;
 # Add the ppolicy schema&lt;br /&gt;
 ldapadd -Y external -H ldapi:/// &amp;lt; /etc/ldap/schema/ppolicy.ldif&lt;br /&gt;
 &lt;br /&gt;
 # Enable the ppolicy dynamic module&lt;br /&gt;
 ldapmodify -Y external -H ldapi:/// &amp;lt;&amp;lt;EOF&lt;br /&gt;
 dn: cn=module{0},cn=config&lt;br /&gt;
 changetype: modify&lt;br /&gt;
 add: olcModuleLoad&lt;br /&gt;
 olcModuleLoad: ppolicy&lt;br /&gt;
 EOF&lt;br /&gt;
 &lt;br /&gt;
 # Add the ppolicy overlay with olcPPolicyHashCleartext set to TRUE&lt;br /&gt;
 ldapadd -Y external -H ldapi:/// &amp;lt;&amp;lt;EOF&lt;br /&gt;
 dn: olcOverlay=ppolicy,olcDatabase={1}mdb,cn=config&lt;br /&gt;
 objectClass: olcPPolicyConfig&lt;br /&gt;
 olcOverlay: ppolicy&lt;br /&gt;
 olcPPolicyHashCleartext: TRUE&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
=== Wiki ===&lt;br /&gt;
&lt;br /&gt;
Host: feministwiki.org, www.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: MediaWiki&lt;br /&gt;
&lt;br /&gt;
The wiki uses a [https://www.mediawiki.org/wiki/MediaWiki MediaWiki] installation located at &amp;lt;code&amp;gt;/var/www/wiki/w&amp;lt;/code&amp;gt; with the [https://www.mediawiki.org/wiki/Extension:LDAP_Authentication LDAP Authentication] plugin for login management and the &amp;quot;Short URL&amp;quot; feature enabled with help of Apache&#039;s vhost configuration, which is located at &amp;lt;code&amp;gt;/etc/apache2/sites-available/wiki.conf&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The wiki uses the SQL database called &amp;quot;feministwiki&amp;quot; and the SQL user of the same name.&lt;br /&gt;
&lt;br /&gt;
=== Chat (web interface) ===&lt;br /&gt;
&lt;br /&gt;
Host: chat.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: Converse.js&lt;br /&gt;
&lt;br /&gt;
The web-interface for the FeministChat uses the full-screen &amp;quot;Impress&amp;quot; variant of the [https://conversejs.org/ Converse.js] XMPP client.  The hosted HTML and JS files are located at &amp;lt;code&amp;gt;/var/www/chat&amp;lt;/code&amp;gt;, although they load Converse.js as an external script from upstream, which is why the self-hosted HTML and JS are very minimal.&lt;br /&gt;
&lt;br /&gt;
=== Forum ===&lt;br /&gt;
&lt;br /&gt;
Host: forum.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: phpBB&lt;br /&gt;
&lt;br /&gt;
The forum uses a [https://www.phpbb.com/ phpBB] installation located at &amp;lt;code&amp;gt;/var/www/forum&amp;lt;/code&amp;gt;.  The style is a copy of the &amp;quot;orange&amp;quot; variant of the &amp;quot;basic&amp;quot; style, with only the logo swapped.&lt;br /&gt;
&lt;br /&gt;
The forum uses the SQL database called &amp;quot;feministforum&amp;quot; and the SQL user of the same name.&lt;br /&gt;
&lt;br /&gt;
=== Mail (web interface) ===&lt;br /&gt;
&lt;br /&gt;
Host: mail.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: Roundcube&lt;br /&gt;
&lt;br /&gt;
The web-interface for the FeministMail uses the [https://roundcube.net/ Roundcube] mail client, installed at &amp;lt;code&amp;gt;/var/www/mail&amp;lt;/code&amp;gt;.  It uses the standard &amp;quot;larry&amp;quot; style, but with some tweaks to logos and images.&lt;br /&gt;
&lt;br /&gt;
=== Files ===&lt;br /&gt;
&lt;br /&gt;
Host: files.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: Nextcloud&lt;br /&gt;
&lt;br /&gt;
FeministFiles is a [https://nextcloud.com/ Nextcloud] installation with some branding, and LDAP authentication.&lt;/div&gt;</summary>
		<author><name>SocJusWiz</name></author>
	</entry>
	<entry>
		<id>https://feministwiki.org/w/index.php?title=FeministWiki:Technical_documentation&amp;diff=91</id>
		<title>FeministWiki:Technical documentation</title>
		<link rel="alternate" type="text/html" href="https://feministwiki.org/w/index.php?title=FeministWiki:Technical_documentation&amp;diff=91"/>
		<updated>2018-09-22T12:05:06Z</updated>

		<summary type="html">&lt;p&gt;SocJusWiz: /* Services */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page documents the FeministWiki&#039;s technical infrastructure, the target audience being technicians.&lt;br /&gt;
&lt;br /&gt;
== Hosts ==&lt;br /&gt;
&lt;br /&gt;
The following table documents the DNS configuration, and can be used as part of the &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt; file on each server to obviate the need for DNS lookups when connecting to one another.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!IP            !! FQDN                        !! Host          !! Purpose&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||            feministwiki.org ||               || Wiki&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||        www.feministwiki.org || www           || Wiki&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       ldap.feministwiki.org || ldap          || LDAP&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       chat.feministwiki.org || chat          || Web-client for XMPP&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||      forum.feministwiki.org || forum         || BBS Forum&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       mail.feministwiki.org || mail          || Web-client for Mail&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||      files.feministwiki.org || files         || File storage&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       imap.feministwiki.org || imap          || IMAP&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       smtp.feministwiki.org || smtp          || SMTP&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       xmpp.feministwiki.org || xmpp          || XMPP&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||        irc.feministwiki.org || irc           || IRC&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||     social.feministwiki.org || social        || GNU social&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 || add-member.feministwiki.org || add-member    || Add a member&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
(As you can see, all services are on the same server for now.)&lt;br /&gt;
&lt;br /&gt;
== SSH access ==&lt;br /&gt;
&lt;br /&gt;
FeministWiki hosts have ssh enabled for &amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt; access, but password login is disabled.  You must own a valid private key to log in.&lt;br /&gt;
&lt;br /&gt;
== Git repo of scripts and configuration ==&lt;br /&gt;
&lt;br /&gt;
The following GitHub account hosts repositories with scripts and configuration used by the FeministWiki:&lt;br /&gt;
&lt;br /&gt;
https://github.com/FeministWiki&lt;br /&gt;
&lt;br /&gt;
== Certs ==&lt;br /&gt;
&lt;br /&gt;
The FeministWiki uses LetsEncrypt to acquire digital certificates for encrypted communication.&lt;br /&gt;
&lt;br /&gt;
To ease use of the letsencrypt command, the file &amp;lt;code&amp;gt;/root/etc/domains&amp;lt;/code&amp;gt; contains all the FQDNs used by the FeministWiki, one per line.  Given that, the preferred way to populate the &amp;lt;code&amp;gt;/etc/letsencrypt/live/feministwiki.org&amp;lt;/code&amp;gt; directory with fresh certs is to run the following command while TCP port 80 is free (e.g. stop Apache first):&lt;br /&gt;
&lt;br /&gt;
 letsencrypt certonly --authenticator standalone -d &amp;quot;$(tr &#039;\n&#039; &#039;,&#039; &amp;lt; /root/etc/domains)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Additionally, for programs that require a cert file and its private key in a single combined &amp;lt;code&amp;gt;.pem&amp;lt;/code&amp;gt; file, run the following commands to generate such a file:&lt;br /&gt;
&lt;br /&gt;
 cd /etc/letsencrypt/live/feministwiki.org&lt;br /&gt;
 cat fullchain.pem privkey.pem &amp;gt; certbundle.pem&lt;br /&gt;
&lt;br /&gt;
The script &amp;lt;code&amp;gt;/root/bin/letsencrypt-refresh&amp;lt;/code&amp;gt; &#039;&#039;&#039;does all of the above&#039;&#039;&#039;, so in practice you just need to run the following commands to recreate the cert:&lt;br /&gt;
&lt;br /&gt;
 service apache2 stop  # Assuming Apache is running on the machine&lt;br /&gt;
 letsencrypt-refresh&lt;br /&gt;
 service apache2 start&lt;br /&gt;
&lt;br /&gt;
The above can be used not only to refresh a cert that&#039;s running out, but also to add a new domain to the cert.  Just add the domain to &amp;lt;code&amp;gt;/root/etc/domains&amp;lt;/code&amp;gt; and run the commands.&lt;br /&gt;
&lt;br /&gt;
Note that the letsencrypt command doesn&#039;t work well on a &amp;quot;dumb&amp;quot; terminal such as an Emacs shell buffer.  Make sure to run it from within a proper terminal emulator.&lt;br /&gt;
&lt;br /&gt;
== Services ==&lt;br /&gt;
&lt;br /&gt;
This section documents the individual services of the FeministWiki.  They should work regardless of what server they&#039;re on.  I.e. every service could in theory be hosted on its own server.&lt;br /&gt;
&lt;br /&gt;
=== LDAP ===&lt;br /&gt;
&lt;br /&gt;
Host: ldap.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: OpenLDAP&lt;br /&gt;
&lt;br /&gt;
The LDAP service contains the central database of FeministWiki members.  The structure looks like this:&lt;br /&gt;
&lt;br /&gt;
* dc=feministwiki,dc=org&lt;br /&gt;
** ou=members&lt;br /&gt;
*** cn=&#039;&#039;username&#039;&#039; &amp;lt;br/&amp;gt; objectClass: inetOrgPerson &amp;lt;br/&amp;gt; cn: &#039;&#039;username&#039;&#039; &amp;lt;br/&amp;gt; uid: &#039;&#039;username&#039;&#039; &amp;lt;br/&amp;gt; sn: - &amp;lt;br/&amp;gt; userPassword: {SSHA}&#039;&#039;saltedhash&#039;&#039; &amp;lt;br/&amp;gt; mail: &#039;&#039;username&#039;&#039;@feministwiki.org&lt;br /&gt;
*** cn=&#039;&#039;username2&#039;&#039; &amp;lt;br/&amp;gt; objectClass: inetOrgPerson &amp;lt;br/&amp;gt; cn: &#039;&#039;username2&#039;&#039; &amp;lt;br/&amp;gt; uid: &#039;&#039;username2&#039;&#039; &amp;lt;br/&amp;gt; sn: - &amp;lt;br/&amp;gt; userPassword: {SSHA}&#039;&#039;saltedhash2&#039;&#039; &amp;lt;br/&amp;gt; mail: &#039;&#039;username2&#039;&#039;@feministwiki.org &amp;lt;br/&amp;gt; manager: cn=&#039;&#039;username&#039;&#039;,ou=members,dc=feministwiki,dc=org&lt;br /&gt;
*** ...&lt;br /&gt;
** ou=groups&lt;br /&gt;
*** cn=members &amp;lt;br/&amp;gt; objectClass: groupOfNames &amp;lt;br/&amp;gt; cn: members &amp;lt;br/&amp;gt; member: &#039;&#039;username&#039;&#039; &amp;lt;br/&amp;gt; member: &#039;&#039;username2&#039;&#039; &amp;lt;br/&amp;gt; member: ...&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* The &amp;lt;code&amp;gt;cn&amp;lt;/code&amp;gt; (common name) and &amp;lt;code&amp;gt;uid&amp;lt;/code&amp;gt; (user ID) fields both contain the username.  This is because some software is preconfigured to look at &amp;lt;code&amp;gt;uid&amp;lt;/code&amp;gt;, while most look at &amp;lt;code&amp;gt;cn&amp;lt;/code&amp;gt;.&lt;br /&gt;
* The &amp;lt;code&amp;gt;sn&amp;lt;/code&amp;gt; (surname) field simply contains a minus character as a placeholder, because it&#039;s a mandatory field.&lt;br /&gt;
* The &amp;lt;code&amp;gt;manager&amp;lt;/code&amp;gt; field is optional and we use it to record the member who added the member in question.&lt;br /&gt;
&lt;br /&gt;
To make sure passwords are stored with the &amp;lt;code&amp;gt;{SSHA}&amp;lt;/code&amp;gt; scheme rather than plain text, the &amp;lt;code&amp;gt;ppolicy&amp;lt;/code&amp;gt; &amp;quot;password policy overlay&amp;quot; is used.  ZYTRAX has a very nice book about LDAP which documents how to enable this: http://www.zytrax.com/books/ldap/ch6/ppolicy.html&lt;br /&gt;
&lt;br /&gt;
In short, the steps go as follows (these commands &#039;&#039;should&#039;&#039; work verbatim):&lt;br /&gt;
&lt;br /&gt;
 # Add the ppolicy schema&lt;br /&gt;
 ldapadd -Y external -H ldapi:/// &amp;lt; /etc/ldap/schema/ppolicy.ldif&lt;br /&gt;
 &lt;br /&gt;
 # Enable the ppolicy dynamic module&lt;br /&gt;
 ldapmodify -Y external -H ldapi:/// &amp;lt;&amp;lt;EOF&lt;br /&gt;
 dn: cn=module{0},cn=config&lt;br /&gt;
 changetype: modify&lt;br /&gt;
 add: olcModuleLoad&lt;br /&gt;
 olcModuleLoad: ppolicy&lt;br /&gt;
 EOF&lt;br /&gt;
 &lt;br /&gt;
 # Add the ppolicy overlay with olcPPolicyHashCleartext set to TRUE&lt;br /&gt;
 ldapadd -Y external -H ldapi:/// &amp;lt;&amp;lt;EOF&lt;br /&gt;
 dn: olcOverlay=ppolicy,olcDatabase={1}mdb,cn=config&lt;br /&gt;
 objectClass: olcPPolicyConfig&lt;br /&gt;
 olcOverlay: ppolicy&lt;br /&gt;
 olcPPolicyHashCleartext: TRUE&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
=== Wiki ===&lt;br /&gt;
&lt;br /&gt;
Host: feministwiki.org, www.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: MediaWiki&lt;br /&gt;
&lt;br /&gt;
The wiki uses a [https://www.mediawiki.org/wiki/MediaWiki MediaWiki] installation located at &amp;lt;code&amp;gt;/var/www/wiki/w&amp;lt;/code&amp;gt; with the [https://www.mediawiki.org/wiki/Extension:LDAP_Authentication LDAP Authentication] plugin for login management and the &amp;quot;Short URL&amp;quot; feature enabled with help of Apache&#039;s vhost configuration, which is located at &amp;lt;code&amp;gt;/etc/apache2/sites-available/wiki.conf&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The wiki uses the SQL database called &amp;quot;feministwiki&amp;quot; and the SQL user of the same name.&lt;br /&gt;
&lt;br /&gt;
=== Chat (web interface) ===&lt;br /&gt;
&lt;br /&gt;
Host: chat.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: Converse.js&lt;br /&gt;
&lt;br /&gt;
The web-interface for the FeministChat uses the full-screen &amp;quot;Impress&amp;quot; variant of the [https://conversejs.org/ Converse.js] XMPP client.  The hosted HTML and JS files are located at &amp;lt;code&amp;gt;/var/www/chat&amp;lt;/code&amp;gt;, although they load Converse.js as an external script from upstream, which is why the self-hosted HTML and JS are very minimal.&lt;br /&gt;
&lt;br /&gt;
=== Forum ===&lt;br /&gt;
&lt;br /&gt;
Host: forum.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: phpBB&lt;br /&gt;
&lt;br /&gt;
The forum uses a [https://www.phpbb.com/ phpBB] installation located at &amp;lt;code&amp;gt;/var/www/forum&amp;lt;/code&amp;gt;.  The style is a copy of the &amp;quot;orange&amp;quot; variant of the &amp;quot;basic&amp;quot; style, with only the logo swapped.&lt;br /&gt;
&lt;br /&gt;
The forum uses the SQL database called &amp;quot;feministforum&amp;quot; and the SQL user of the same name.&lt;br /&gt;
&lt;br /&gt;
=== Mail (web interface) ===&lt;br /&gt;
&lt;br /&gt;
Host: mail.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: Roundcube&lt;br /&gt;
&lt;br /&gt;
The web-interface for the FeministMail uses the [https://roundcube.net/ Roundcube] mail client, installed at &amp;lt;code&amp;gt;/var/www/mail&amp;lt;/code&amp;gt;.  It uses the standard &amp;quot;larry&amp;quot; style, but with some tweaks to logos and images.&lt;/div&gt;</summary>
		<author><name>SocJusWiz</name></author>
	</entry>
	<entry>
		<id>https://feministwiki.org/w/index.php?title=FeministWiki:Technical_documentation&amp;diff=90</id>
		<title>FeministWiki:Technical documentation</title>
		<link rel="alternate" type="text/html" href="https://feministwiki.org/w/index.php?title=FeministWiki:Technical_documentation&amp;diff=90"/>
		<updated>2018-09-22T12:03:13Z</updated>

		<summary type="html">&lt;p&gt;SocJusWiz: /* Services */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page documents the FeministWiki&#039;s technical infrastructure, the target audience being technicians.&lt;br /&gt;
&lt;br /&gt;
== Hosts ==&lt;br /&gt;
&lt;br /&gt;
The following table documents the DNS configuration, and can be used as part of the &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt; file on each server to obviate the need for DNS lookups when connecting to one another.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!IP            !! FQDN                        !! Host          !! Purpose&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||            feministwiki.org ||               || Wiki&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||        www.feministwiki.org || www           || Wiki&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       ldap.feministwiki.org || ldap          || LDAP&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       chat.feministwiki.org || chat          || Web-client for XMPP&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||      forum.feministwiki.org || forum         || BBS Forum&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       mail.feministwiki.org || mail          || Web-client for Mail&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||      files.feministwiki.org || files         || File storage&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       imap.feministwiki.org || imap          || IMAP&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       smtp.feministwiki.org || smtp          || SMTP&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       xmpp.feministwiki.org || xmpp          || XMPP&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||        irc.feministwiki.org || irc           || IRC&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||     social.feministwiki.org || social        || GNU social&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 || add-member.feministwiki.org || add-member    || Add a member&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
(As you can see, all services are on the same server for now.)&lt;br /&gt;
&lt;br /&gt;
== SSH access ==&lt;br /&gt;
&lt;br /&gt;
FeministWiki hosts have ssh enabled for &amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt; access, but password login is disabled.  You must own a valid private key to log in.&lt;br /&gt;
&lt;br /&gt;
== Git repo of scripts and configuration ==&lt;br /&gt;
&lt;br /&gt;
The following GitHub account hosts repositories with scripts and configuration used by the FeministWiki:&lt;br /&gt;
&lt;br /&gt;
https://github.com/FeministWiki&lt;br /&gt;
&lt;br /&gt;
== Certs ==&lt;br /&gt;
&lt;br /&gt;
The FeministWiki uses LetsEncrypt to acquire digital certificates for encrypted communication.&lt;br /&gt;
&lt;br /&gt;
To ease use of the letsencrypt command, the file &amp;lt;code&amp;gt;/root/etc/domains&amp;lt;/code&amp;gt; contains all the FQDNs used by the FeministWiki, one per line.  Given that, the preferred way to populate the &amp;lt;code&amp;gt;/etc/letsencrypt/live/feministwiki.org&amp;lt;/code&amp;gt; directory with fresh certs is to run the following command while TCP port 80 is free (e.g. stop Apache first):&lt;br /&gt;
&lt;br /&gt;
 letsencrypt certonly --authenticator standalone -d &amp;quot;$(tr &#039;\n&#039; &#039;,&#039; &amp;lt; /root/etc/domains)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Additionally, for programs that require a cert file and its private key in a single combined &amp;lt;code&amp;gt;.pem&amp;lt;/code&amp;gt; file, run the following commands to generate such a file:&lt;br /&gt;
&lt;br /&gt;
 cd /etc/letsencrypt/live/feministwiki.org&lt;br /&gt;
 cat fullchain.pem privkey.pem &amp;gt; certbundle.pem&lt;br /&gt;
&lt;br /&gt;
The script &amp;lt;code&amp;gt;/root/bin/letsencrypt-refresh&amp;lt;/code&amp;gt; &#039;&#039;&#039;does all of the above&#039;&#039;&#039;, so in practice you just need to run the following commands to recreate the cert:&lt;br /&gt;
&lt;br /&gt;
 service apache2 stop  # Assuming Apache is running on the machine&lt;br /&gt;
 letsencrypt-refresh&lt;br /&gt;
 service apache2 start&lt;br /&gt;
&lt;br /&gt;
The above can be used not only to refresh a cert that&#039;s running out, but also to add a new domain to the cert.  Just add the domain to &amp;lt;code&amp;gt;/root/etc/domains&amp;lt;/code&amp;gt; and run the commands.&lt;br /&gt;
&lt;br /&gt;
Note that the letsencrypt command doesn&#039;t work well on a &amp;quot;dumb&amp;quot; terminal such as an Emacs shell buffer.  Make sure to run it from within a proper terminal emulator.&lt;br /&gt;
&lt;br /&gt;
== Services ==&lt;br /&gt;
&lt;br /&gt;
This section documents the individual services of the FeministWiki.  They should work regardless of what server they&#039;re on.  I.e. every service could in theory be hosted on its own server.&lt;br /&gt;
&lt;br /&gt;
=== LDAP ===&lt;br /&gt;
&lt;br /&gt;
Host: ldap.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: OpenLDAP&lt;br /&gt;
&lt;br /&gt;
The LDAP service contains the central database of FeministWiki members.  The structure looks like this:&lt;br /&gt;
&lt;br /&gt;
* dc=feministwiki,dc=org&lt;br /&gt;
** ou=members&lt;br /&gt;
*** cn=&#039;&#039;username&#039;&#039; &amp;lt;br/&amp;gt; objectClass: inetOrgPerson &amp;lt;br/&amp;gt; cn: &#039;&#039;username&#039;&#039; &amp;lt;br/&amp;gt; uid: &#039;&#039;username&#039;&#039; &amp;lt;br/&amp;gt; sn: - &amp;lt;br/&amp;gt; userPassword: {SSHA}&#039;&#039;saltedhash&#039;&#039; &amp;lt;br/&amp;gt; mail: &#039;&#039;username&#039;&#039;@feministwiki.org&lt;br /&gt;
*** cn=&#039;&#039;username2&#039;&#039; &amp;lt;br/&amp;gt; objectClass: inetOrgPerson &amp;lt;br/&amp;gt; cn: &#039;&#039;username2&#039;&#039; &amp;lt;br/&amp;gt; uid: &#039;&#039;username2&#039;&#039; &amp;lt;br/&amp;gt; sn: - &amp;lt;br/&amp;gt; userPassword: {SSHA}&#039;&#039;saltedhash2&#039;&#039; &amp;lt;br/&amp;gt; mail: &#039;&#039;username2&#039;&#039;@feministwiki.org &amp;lt;br/&amp;gt; manager: cn=&#039;&#039;username&#039;&#039;,ou=members,dc=feministwiki,dc=org&lt;br /&gt;
*** ...&lt;br /&gt;
** ou=groups&lt;br /&gt;
*** cn=members &amp;lt;br/&amp;gt; objectClass: groupOfNames &amp;lt;br/&amp;gt; cn: members &amp;lt;br/&amp;gt; member: &#039;&#039;username&#039;&#039; &amp;lt;br/&amp;gt; member: &#039;&#039;username2&#039;&#039; &amp;lt;br/&amp;gt; member: ...&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* The &amp;lt;code&amp;gt;cn&amp;lt;/code&amp;gt; (common name) and &amp;lt;code&amp;gt;uid&amp;lt;/code&amp;gt; (user ID) fields both contain the username.  This is because some software is preconfigured to look at &amp;lt;code&amp;gt;uid&amp;lt;/code&amp;gt;, while most look at &amp;lt;code&amp;gt;cn&amp;lt;/code&amp;gt;.&lt;br /&gt;
* The &amp;lt;code&amp;gt;sn&amp;lt;/code&amp;gt; (surname) field simply contains a minus character as a placeholder, because it&#039;s a mandatory field.&lt;br /&gt;
* The &amp;lt;code&amp;gt;manager&amp;lt;/code&amp;gt; field is optional and we use it to record the member who added the member in question.&lt;br /&gt;
&lt;br /&gt;
To make sure passwords are stored with the &amp;lt;code&amp;gt;{SSHA}&amp;lt;/code&amp;gt; scheme rather than plain text, the &amp;lt;code&amp;gt;ppolicy&amp;lt;/code&amp;gt; &amp;quot;password policy overlay&amp;quot; is used.  ZYTRAX has a very nice book about LDAP which documents how to enable this: http://www.zytrax.com/books/ldap/ch6/ppolicy.html&lt;br /&gt;
&lt;br /&gt;
In short, the steps go as follows (these commands &#039;&#039;should&#039;&#039; work verbatim):&lt;br /&gt;
&lt;br /&gt;
 # Add the ppolicy schema&lt;br /&gt;
 ldapadd -Y external -H ldapi:/// &amp;lt; /etc/ldap/schema/ppolicy.ldif&lt;br /&gt;
 &lt;br /&gt;
 # Enable the ppolicy dynamic module&lt;br /&gt;
 ldapmodify -Y external -H ldapi:/// &amp;lt;&amp;lt;EOF&lt;br /&gt;
 dn: cn=module{0},cn=config&lt;br /&gt;
 changetype: modify&lt;br /&gt;
 add: olcModuleLoad&lt;br /&gt;
 olcModuleLoad: ppolicy&lt;br /&gt;
 EOF&lt;br /&gt;
 &lt;br /&gt;
 # Add the ppolicy overlay with olcPPolicyHashCleartext set to TRUE&lt;br /&gt;
 ldapadd -Y external -H ldapi:/// &amp;lt;&amp;lt;EOF&lt;br /&gt;
 dn: olcOverlay=ppolicy,olcDatabase={1}mdb,cn=config&lt;br /&gt;
 objectClass: olcPPolicyConfig&lt;br /&gt;
 olcOverlay: ppolicy&lt;br /&gt;
 olcPPolicyHashCleartext: TRUE&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
=== Wiki ===&lt;br /&gt;
&lt;br /&gt;
Host: feministwiki.org, www.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: MediaWiki&lt;br /&gt;
&lt;br /&gt;
The wiki uses a [https://www.mediawiki.org/wiki/MediaWiki MediaWiki] installation located at &amp;lt;code&amp;gt;/var/www/wiki/w&amp;lt;/code&amp;gt; with the [https://www.mediawiki.org/wiki/Extension:LDAP_Authentication LDAP Authentication] plugin for login management and the &amp;quot;Short URL&amp;quot; feature enabled with help of Apache&#039;s vhost configuration, which is located at &amp;lt;code&amp;gt;/etc/apache2/sites-available/wiki.conf&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The wiki uses the SQL database called &amp;quot;feministwiki&amp;quot; and the SQL user of the same name.&lt;br /&gt;
&lt;br /&gt;
=== Forum ===&lt;br /&gt;
&lt;br /&gt;
Host: forum.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: phpBB&lt;br /&gt;
&lt;br /&gt;
The forum uses a [https://www.phpbb.com/ phpBB] installation located at &amp;lt;code&amp;gt;/var/www/forum&amp;lt;/code&amp;gt;.  The style is a copy of the &amp;quot;orange&amp;quot; variant of the &amp;quot;basic&amp;quot; style, with only the logo swapped.&lt;br /&gt;
&lt;br /&gt;
The forum uses the SQL database called &amp;quot;feministforum&amp;quot; and the SQL user of the same name.&lt;br /&gt;
&lt;br /&gt;
=== Chat (web interface) ===&lt;br /&gt;
&lt;br /&gt;
Host: chat.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: Converse.js&lt;br /&gt;
&lt;br /&gt;
The web-interface for the FeministChat uses the full-screen &amp;quot;Impress&amp;quot; variant of the [https://conversejs.org/ Converse.js] XMPP client.  The hosted HTML and JS files are located at &amp;lt;code&amp;gt;/var/www/chat&amp;lt;/code&amp;gt;, although they load Converse.js as an external script from upstream, which is why the self-hosted HTML and JS are very minimal.&lt;br /&gt;
&lt;br /&gt;
=== Mail (web interface) ===&lt;br /&gt;
&lt;br /&gt;
Host: mail.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: Roundcube&lt;br /&gt;
&lt;br /&gt;
The web-interface for the FeministMail uses the [https://roundcube.net/ Roundcube] mail client, installed at &amp;lt;code&amp;gt;/var/www/mail&amp;lt;/code&amp;gt;.  It uses the standard &amp;quot;larry&amp;quot; style, but with some tweaks to logos and images.&lt;/div&gt;</summary>
		<author><name>SocJusWiz</name></author>
	</entry>
	<entry>
		<id>https://feministwiki.org/w/index.php?title=FeministWiki:Technical_documentation&amp;diff=89</id>
		<title>FeministWiki:Technical documentation</title>
		<link rel="alternate" type="text/html" href="https://feministwiki.org/w/index.php?title=FeministWiki:Technical_documentation&amp;diff=89"/>
		<updated>2018-09-22T11:47:58Z</updated>

		<summary type="html">&lt;p&gt;SocJusWiz: /* Wiki */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page documents the FeministWiki&#039;s technical infrastructure, the target audience being technicians.&lt;br /&gt;
&lt;br /&gt;
== Hosts ==&lt;br /&gt;
&lt;br /&gt;
The following table documents the DNS configuration, and can be used as part of the &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt; file on each server to obviate the need for DNS lookups when connecting to one another.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!IP            !! FQDN                        !! Host          !! Purpose&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||            feministwiki.org ||               || Wiki&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||        www.feministwiki.org || www           || Wiki&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       ldap.feministwiki.org || ldap          || LDAP&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       chat.feministwiki.org || chat          || Web-client for XMPP&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||      forum.feministwiki.org || forum         || BBS Forum&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       mail.feministwiki.org || mail          || Web-client for Mail&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||      files.feministwiki.org || files         || File storage&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       imap.feministwiki.org || imap          || IMAP&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       smtp.feministwiki.org || smtp          || SMTP&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       xmpp.feministwiki.org || xmpp          || XMPP&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||        irc.feministwiki.org || irc           || IRC&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||     social.feministwiki.org || social        || GNU social&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 || add-member.feministwiki.org || add-member    || Add a member&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
(As you can see, all services are on the same server for now.)&lt;br /&gt;
&lt;br /&gt;
== SSH access ==&lt;br /&gt;
&lt;br /&gt;
FeministWiki hosts have ssh enabled for &amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt; access, but password login is disabled.  You must own a valid private key to log in.&lt;br /&gt;
&lt;br /&gt;
== Git repo of scripts and configuration ==&lt;br /&gt;
&lt;br /&gt;
The following GitHub account hosts repositories with scripts and configuration used by the FeministWiki:&lt;br /&gt;
&lt;br /&gt;
https://github.com/FeministWiki&lt;br /&gt;
&lt;br /&gt;
== Certs ==&lt;br /&gt;
&lt;br /&gt;
The FeministWiki uses LetsEncrypt to acquire digital certificates for encrypted communication.&lt;br /&gt;
&lt;br /&gt;
To ease use of the letsencrypt command, the file &amp;lt;code&amp;gt;/root/etc/domains&amp;lt;/code&amp;gt; contains all the FQDNs used by the FeministWiki, one per line.  Given that, the preferred way to populate the &amp;lt;code&amp;gt;/etc/letsencrypt/live/feministwiki.org&amp;lt;/code&amp;gt; directory with fresh certs is to run the following command while TCP port 80 is free (e.g. stop Apache first):&lt;br /&gt;
&lt;br /&gt;
 letsencrypt certonly --authenticator standalone -d &amp;quot;$(tr &#039;\n&#039; &#039;,&#039; &amp;lt; /root/etc/domains)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Additionally, for programs that require a cert file and its private key in a single combined &amp;lt;code&amp;gt;.pem&amp;lt;/code&amp;gt; file, run the following commands to generate such a file:&lt;br /&gt;
&lt;br /&gt;
 cd /etc/letsencrypt/live/feministwiki.org&lt;br /&gt;
 cat fullchain.pem privkey.pem &amp;gt; certbundle.pem&lt;br /&gt;
&lt;br /&gt;
The script &amp;lt;code&amp;gt;/root/bin/letsencrypt-refresh&amp;lt;/code&amp;gt; &#039;&#039;&#039;does all of the above&#039;&#039;&#039;, so in practice you just need to run the following commands to recreate the cert:&lt;br /&gt;
&lt;br /&gt;
 service apache2 stop  # Assuming Apache is running on the machine&lt;br /&gt;
 letsencrypt-refresh&lt;br /&gt;
 service apache2 start&lt;br /&gt;
&lt;br /&gt;
The above can be used not only to refresh a cert that&#039;s running out, but also to add a new domain to the cert.  Just add the domain to &amp;lt;code&amp;gt;/root/etc/domains&amp;lt;/code&amp;gt; and run the commands.&lt;br /&gt;
&lt;br /&gt;
Note that the letsencrypt command doesn&#039;t work well on a &amp;quot;dumb&amp;quot; terminal such as an Emacs shell buffer.  Make sure to run it from within a proper terminal emulator.&lt;br /&gt;
&lt;br /&gt;
== Services ==&lt;br /&gt;
&lt;br /&gt;
This section documents the individual services of the FeministWiki.  They should work regardless of what server they&#039;re on.  I.e. every service could in theory be hosted on its own server.&lt;br /&gt;
&lt;br /&gt;
=== LDAP ===&lt;br /&gt;
&lt;br /&gt;
Host: ldap.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: OpenLDAP&lt;br /&gt;
&lt;br /&gt;
The LDAP service contains the central database of FeministWiki members.  The structure looks like this:&lt;br /&gt;
&lt;br /&gt;
* dc=feministwiki,dc=org&lt;br /&gt;
** ou=members&lt;br /&gt;
*** cn=&#039;&#039;username&#039;&#039; &amp;lt;br/&amp;gt; objectClass: inetOrgPerson &amp;lt;br/&amp;gt; cn: &#039;&#039;username&#039;&#039; &amp;lt;br/&amp;gt; uid: &#039;&#039;username&#039;&#039; &amp;lt;br/&amp;gt; sn: - &amp;lt;br/&amp;gt; userPassword: {SSHA}&#039;&#039;saltedhash&#039;&#039; &amp;lt;br/&amp;gt; mail: &#039;&#039;username&#039;&#039;@feministwiki.org&lt;br /&gt;
*** cn=&#039;&#039;username2&#039;&#039; &amp;lt;br/&amp;gt; objectClass: inetOrgPerson &amp;lt;br/&amp;gt; cn: &#039;&#039;username2&#039;&#039; &amp;lt;br/&amp;gt; uid: &#039;&#039;username2&#039;&#039; &amp;lt;br/&amp;gt; sn: - &amp;lt;br/&amp;gt; userPassword: {SSHA}&#039;&#039;saltedhash2&#039;&#039; &amp;lt;br/&amp;gt; mail: &#039;&#039;username2&#039;&#039;@feministwiki.org &amp;lt;br/&amp;gt; manager: cn=&#039;&#039;username&#039;&#039;,ou=members,dc=feministwiki,dc=org&lt;br /&gt;
*** ...&lt;br /&gt;
** ou=groups&lt;br /&gt;
*** cn=members &amp;lt;br/&amp;gt; objectClass: groupOfNames &amp;lt;br/&amp;gt; cn: members &amp;lt;br/&amp;gt; member: &#039;&#039;username&#039;&#039; &amp;lt;br/&amp;gt; member: &#039;&#039;username2&#039;&#039; &amp;lt;br/&amp;gt; member: ...&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* The &amp;lt;code&amp;gt;cn&amp;lt;/code&amp;gt; (common name) and &amp;lt;code&amp;gt;uid&amp;lt;/code&amp;gt; (user ID) fields both contain the username.  This is because some software is preconfigured to look at &amp;lt;code&amp;gt;uid&amp;lt;/code&amp;gt;, while most look at &amp;lt;code&amp;gt;cn&amp;lt;/code&amp;gt;.&lt;br /&gt;
* The &amp;lt;code&amp;gt;sn&amp;lt;/code&amp;gt; (surname) field simply contains a minus character as a placeholder, because it&#039;s a mandatory field.&lt;br /&gt;
* The &amp;lt;code&amp;gt;manager&amp;lt;/code&amp;gt; field is optional and we use it to record the member who added the member in question.&lt;br /&gt;
&lt;br /&gt;
To make sure passwords are stored with the &amp;lt;code&amp;gt;{SSHA}&amp;lt;/code&amp;gt; scheme rather than plain text, the &amp;lt;code&amp;gt;ppolicy&amp;lt;/code&amp;gt; &amp;quot;password policy overlay&amp;quot; is used.  ZYTRAX has a very nice book about LDAP which documents how to enable this: http://www.zytrax.com/books/ldap/ch6/ppolicy.html&lt;br /&gt;
&lt;br /&gt;
In short, the steps go as follows (these commands &#039;&#039;should&#039;&#039; work verbatim):&lt;br /&gt;
&lt;br /&gt;
 # Add the ppolicy schema&lt;br /&gt;
 ldapadd -Y external -H ldapi:/// &amp;lt; /etc/ldap/schema/ppolicy.ldif&lt;br /&gt;
 &lt;br /&gt;
 # Enable the ppolicy dynamic module&lt;br /&gt;
 ldapmodify -Y external -H ldapi:/// &amp;lt;&amp;lt;EOF&lt;br /&gt;
 dn: cn=module{0},cn=config&lt;br /&gt;
 changetype: modify&lt;br /&gt;
 add: olcModuleLoad&lt;br /&gt;
 olcModuleLoad: ppolicy&lt;br /&gt;
 EOF&lt;br /&gt;
 &lt;br /&gt;
 # Add the ppolicy overlay with olcPPolicyHashCleartext set to TRUE&lt;br /&gt;
 ldapadd -Y external -H ldapi:/// &amp;lt;&amp;lt;EOF&lt;br /&gt;
 dn: olcOverlay=ppolicy,olcDatabase={1}mdb,cn=config&lt;br /&gt;
 objectClass: olcPPolicyConfig&lt;br /&gt;
 olcOverlay: ppolicy&lt;br /&gt;
 olcPPolicyHashCleartext: TRUE&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
=== Wiki ===&lt;br /&gt;
&lt;br /&gt;
Host: feministwiki.org, www.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: MediaWiki&lt;br /&gt;
&lt;br /&gt;
The wiki uses a [https://www.mediawiki.org/wiki/MediaWiki MediaWiki] installation located at &amp;lt;code&amp;gt;/var/www/wiki/w&amp;lt;/code&amp;gt; with the [https://www.mediawiki.org/wiki/Extension:LDAP_Authentication LDAP Authentication] plugin for login management and the &amp;quot;Short URL&amp;quot; feature enabled with help of Apache&#039;s vhost configuration, which is located at &amp;lt;code&amp;gt;/etc/apache2/sites-available/wiki.conf&amp;lt;/code&amp;gt;.&lt;/div&gt;</summary>
		<author><name>SocJusWiz</name></author>
	</entry>
	<entry>
		<id>https://feministwiki.org/w/index.php?title=FeministWiki:Technical_documentation&amp;diff=85</id>
		<title>FeministWiki:Technical documentation</title>
		<link rel="alternate" type="text/html" href="https://feministwiki.org/w/index.php?title=FeministWiki:Technical_documentation&amp;diff=85"/>
		<updated>2018-09-09T17:34:57Z</updated>

		<summary type="html">&lt;p&gt;SocJusWiz: /* LDAP */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page documents the FeministWiki&#039;s technical infrastructure, the target audience being technicians.&lt;br /&gt;
&lt;br /&gt;
== Hosts ==&lt;br /&gt;
&lt;br /&gt;
The following table documents the DNS configuration, and can be used as part of the &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt; file on each server to obviate the need for DNS lookups when connecting to one another.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!IP            !! FQDN                        !! Host          !! Purpose&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||            feministwiki.org ||               || Wiki&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||        www.feministwiki.org || www           || Wiki&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       ldap.feministwiki.org || ldap          || LDAP&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       chat.feministwiki.org || chat          || Web-client for XMPP&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||      forum.feministwiki.org || forum         || BBS Forum&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       mail.feministwiki.org || mail          || Web-client for Mail&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||      files.feministwiki.org || files         || File storage&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       imap.feministwiki.org || imap          || IMAP&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       smtp.feministwiki.org || smtp          || SMTP&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||       xmpp.feministwiki.org || xmpp          || XMPP&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||        irc.feministwiki.org || irc           || IRC&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 ||     social.feministwiki.org || social        || GNU social&lt;br /&gt;
|-&lt;br /&gt;
|85.214.101.34 || add-member.feministwiki.org || add-member    || Add a member&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
(As you can see, all services are on the same server for now.)&lt;br /&gt;
&lt;br /&gt;
== SSH access ==&lt;br /&gt;
&lt;br /&gt;
FeministWiki hosts have ssh enabled for &amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt; access, but password login is disabled.  You must own a valid private key to log in.&lt;br /&gt;
&lt;br /&gt;
== Git repo of scripts and configuration ==&lt;br /&gt;
&lt;br /&gt;
The following GitHub account hosts repositories with scripts and configuration used by the FeministWiki:&lt;br /&gt;
&lt;br /&gt;
https://github.com/FeministWiki&lt;br /&gt;
&lt;br /&gt;
== Certs ==&lt;br /&gt;
&lt;br /&gt;
The FeministWiki uses LetsEncrypt to acquire digital certificates for encrypted communication.&lt;br /&gt;
&lt;br /&gt;
To ease use of the letsencrypt command, the file &amp;lt;code&amp;gt;/root/etc/domains&amp;lt;/code&amp;gt; contains all the FQDNs used by the FeministWiki, one per line.  Given that, the preferred way to populate the &amp;lt;code&amp;gt;/etc/letsencrypt/live/feministwiki.org&amp;lt;/code&amp;gt; directory with fresh certs is to run the following command while TCP port 80 is free (e.g. stop Apache first):&lt;br /&gt;
&lt;br /&gt;
 letsencrypt certonly --authenticator standalone -d &amp;quot;$(tr &#039;\n&#039; &#039;,&#039; &amp;lt; /root/etc/domains)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Additionally, for programs that require a cert file and its private key in a single combined &amp;lt;code&amp;gt;.pem&amp;lt;/code&amp;gt; file, run the following commands to generate such a file:&lt;br /&gt;
&lt;br /&gt;
 cd /etc/letsencrypt/live/feministwiki.org&lt;br /&gt;
 cat fullchain.pem privkey.pem &amp;gt; certbundle.pem&lt;br /&gt;
&lt;br /&gt;
The script &amp;lt;code&amp;gt;/root/bin/letsencrypt-refresh&amp;lt;/code&amp;gt; &#039;&#039;&#039;does all of the above&#039;&#039;&#039;, so in practice you just need to run the following commands to recreate the cert:&lt;br /&gt;
&lt;br /&gt;
 service apache2 stop  # Assuming Apache is running on the machine&lt;br /&gt;
 letsencrypt-refresh&lt;br /&gt;
 service apache2 start&lt;br /&gt;
&lt;br /&gt;
The above can be used not only to refresh a cert that&#039;s running out, but also to add a new domain to the cert.  Just add the domain to &amp;lt;code&amp;gt;/root/etc/domains&amp;lt;/code&amp;gt; and run the commands.&lt;br /&gt;
&lt;br /&gt;
Note that the letsencrypt command doesn&#039;t work well on a &amp;quot;dumb&amp;quot; terminal such as an Emacs shell buffer.  Make sure to run it from within a proper terminal emulator.&lt;br /&gt;
&lt;br /&gt;
== Services ==&lt;br /&gt;
&lt;br /&gt;
This section documents the individual services of the FeministWiki.  They should work regardless of what server they&#039;re on.  I.e. every service could in theory be hosted on its own server.&lt;br /&gt;
&lt;br /&gt;
=== LDAP ===&lt;br /&gt;
&lt;br /&gt;
Host: ldap.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: OpenLDAP&lt;br /&gt;
&lt;br /&gt;
The LDAP service contains the central database of FeministWiki members.  The structure looks like this:&lt;br /&gt;
&lt;br /&gt;
* dc=feministwiki,dc=org&lt;br /&gt;
** ou=members&lt;br /&gt;
*** cn=&#039;&#039;username&#039;&#039; &amp;lt;br/&amp;gt; objectClass: inetOrgPerson &amp;lt;br/&amp;gt; cn: &#039;&#039;username&#039;&#039; &amp;lt;br/&amp;gt; uid: &#039;&#039;username&#039;&#039; &amp;lt;br/&amp;gt; sn: - &amp;lt;br/&amp;gt; userPassword: {SSHA}&#039;&#039;saltedhash&#039;&#039; &amp;lt;br/&amp;gt; mail: &#039;&#039;username&#039;&#039;@feministwiki.org&lt;br /&gt;
*** cn=&#039;&#039;username2&#039;&#039; &amp;lt;br/&amp;gt; objectClass: inetOrgPerson &amp;lt;br/&amp;gt; cn: &#039;&#039;username2&#039;&#039; &amp;lt;br/&amp;gt; uid: &#039;&#039;username2&#039;&#039; &amp;lt;br/&amp;gt; sn: - &amp;lt;br/&amp;gt; userPassword: {SSHA}&#039;&#039;saltedhash2&#039;&#039; &amp;lt;br/&amp;gt; mail: &#039;&#039;username2&#039;&#039;@feministwiki.org &amp;lt;br/&amp;gt; manager: cn=&#039;&#039;username&#039;&#039;,ou=members,dc=feministwiki,dc=org&lt;br /&gt;
*** ...&lt;br /&gt;
** ou=groups&lt;br /&gt;
*** cn=members &amp;lt;br/&amp;gt; objectClass: groupOfNames &amp;lt;br/&amp;gt; cn: members &amp;lt;br/&amp;gt; member: &#039;&#039;username&#039;&#039; &amp;lt;br/&amp;gt; member: &#039;&#039;username2&#039;&#039; &amp;lt;br/&amp;gt; member: ...&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* The &amp;lt;code&amp;gt;cn&amp;lt;/code&amp;gt; (common name) and &amp;lt;code&amp;gt;uid&amp;lt;/code&amp;gt; (user ID) fields both contain the username.  This is because some software is preconfigured to look at &amp;lt;code&amp;gt;uid&amp;lt;/code&amp;gt;, while most look at &amp;lt;code&amp;gt;cn&amp;lt;/code&amp;gt;.&lt;br /&gt;
* The &amp;lt;code&amp;gt;sn&amp;lt;/code&amp;gt; (surname) field simply contains a minus character as a placeholder, because it&#039;s a mandatory field.&lt;br /&gt;
* The &amp;lt;code&amp;gt;manager&amp;lt;/code&amp;gt; field is optional and we use it to record the member who added the member in question.&lt;br /&gt;
&lt;br /&gt;
To make sure passwords are stored with the &amp;lt;code&amp;gt;{SSHA}&amp;lt;/code&amp;gt; scheme rather than plain text, the &amp;lt;code&amp;gt;ppolicy&amp;lt;/code&amp;gt; &amp;quot;password policy overlay&amp;quot; is used.  ZYTRAX has a very nice book about LDAP which documents how to enable this: http://www.zytrax.com/books/ldap/ch6/ppolicy.html&lt;br /&gt;
&lt;br /&gt;
In short, the steps go as follows (these commands &#039;&#039;should&#039;&#039; work verbatim):&lt;br /&gt;
&lt;br /&gt;
 # Add the ppolicy schema&lt;br /&gt;
 ldapadd -Y external -H ldapi:/// &amp;lt; /etc/ldap/schema/ppolicy.ldif&lt;br /&gt;
 &lt;br /&gt;
 # Enable the ppolicy dynamic module&lt;br /&gt;
 ldapmodify -Y external -H ldapi:/// &amp;lt;&amp;lt;EOF&lt;br /&gt;
 dn: cn=module{0},cn=config&lt;br /&gt;
 changetype: modify&lt;br /&gt;
 add: olcModuleLoad&lt;br /&gt;
 olcModuleLoad: ppolicy&lt;br /&gt;
 EOF&lt;br /&gt;
 &lt;br /&gt;
 # Add the ppolicy overlay with olcPPolicyHashCleartext set to TRUE&lt;br /&gt;
 ldapadd -Y external -H ldapi:/// &amp;lt;&amp;lt;EOF&lt;br /&gt;
 dn: olcOverlay=ppolicy,olcDatabase={1}mdb,cn=config&lt;br /&gt;
 objectClass: olcPPolicyConfig&lt;br /&gt;
 olcOverlay: ppolicy&lt;br /&gt;
 olcPPolicyHashCleartext: TRUE&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
=== Wiki ===&lt;br /&gt;
&lt;br /&gt;
Host: feministwiki.org, www.feministwiki.org &amp;lt;br/&amp;gt;&lt;br /&gt;
Software: MediaWiki&lt;br /&gt;
&lt;br /&gt;
(continue here)&lt;/div&gt;</summary>
		<author><name>SocJusWiz</name></author>
	</entry>
</feed>