<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.alpinelinux.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jhjacobs81</id>
	<title>Alpine Linux - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.alpinelinux.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jhjacobs81"/>
	<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/wiki/Special:Contributions/Jhjacobs81"/>
	<updated>2026-04-30T03:50:04Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.40.0</generator>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Remote_Desktop_Server&amp;diff=30679</id>
		<title>Remote Desktop Server</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Remote_Desktop_Server&amp;diff=30679"/>
		<updated>2025-08-10T11:22:02Z</updated>

		<summary type="html">&lt;p&gt;Jhjacobs81: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Remote Desktop Server Based on XRDP and xorgxrdp ==&lt;br /&gt;
&lt;br /&gt;
This was tested and works for v 3.17.2 with [[Xfce]] as the desktop.&lt;br /&gt;
&lt;br /&gt;
First ensure the desktop is working without remote access (if feasible)&lt;br /&gt;
&lt;br /&gt;
Install XRDP and xorgxrdp&lt;br /&gt;
&lt;br /&gt;
{{Cmd|&amp;amp;#35; apk add xrdp xorgxrdp}}&lt;br /&gt;
&lt;br /&gt;
Start the necessary services:&lt;br /&gt;
&lt;br /&gt;
{{Cmd|&amp;amp;#35; rc-service xrdp start&lt;br /&gt;
&amp;amp;#35; rc-service xrdp-sesman start}}&lt;br /&gt;
&lt;br /&gt;
After testing this works you may set the services to start automatically:&lt;br /&gt;
&lt;br /&gt;
{{Cmd|&amp;amp;#35; rc-update add xrdp&lt;br /&gt;
&amp;amp;#35; rc-update add xrdp-sesman}}&lt;br /&gt;
&lt;br /&gt;
That should be all that is needed to connect from a Windows client with its default &amp;quot;Remote Desktop&amp;quot; client, the xrdp configuration file though will contain several services that will not work, so to remove them edit /etc/xrdp/xrdp.ini and remove all lines from and including from [Xvnc] to the end. &lt;br /&gt;
&lt;br /&gt;
Note: If you are using KDE, please add the following link so that there is no screen after logging in &lt;br /&gt;
&amp;quot;ln -s /usr/bin/startplasma-x11 ~/.xinitrc&amp;quot;&lt;br /&gt;
&lt;br /&gt;
{{Cmd|&amp;amp;#35; ln -s /usr/bin/startplasma-x11 ~/.xinitrc}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; From v3.22 upwards, xrdp is broken in combination with KDE, because only Wayland is supported with KDE [[https://wiki.alpinelinux.org/wiki/Release_Notes_for_Alpine_3.22.0|since v3.22]]&lt;br /&gt;
&lt;br /&gt;
== Remote Desktop Server based on Vino and XRDP ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;THIS DOES NOT WORK on 3.17.2 with Xfce Not Yet Deleted Yet in Case it helps others&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
First of all make sure you have a Desktop environment properly installed (See: [[Desktop environments and Window managers]])&lt;br /&gt;
&lt;br /&gt;
Next, install Vino and XRDP with the following command:&lt;br /&gt;
&lt;br /&gt;
{{Cmd|&amp;amp;#35; apk add vino@community xrdp}}&lt;br /&gt;
&lt;br /&gt;
Replace the file &amp;lt;code&amp;gt;/etc/xrdp/xrdp.ini&amp;lt;/code&amp;gt; content with:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Cat|/etc/xrdp/xrdp.ini|&amp;lt;nowiki&amp;gt;[globals]&lt;br /&gt;
bitmap_cache=yes&lt;br /&gt;
bitmap_compression=yes&lt;br /&gt;
port=3389&lt;br /&gt;
crypt_level=low&lt;br /&gt;
channel_code=1&lt;br /&gt;
max_bpp=24&lt;br /&gt;
&lt;br /&gt;
[xrdp1]&lt;br /&gt;
name=Vino&lt;br /&gt;
lib=libvnc.so&lt;br /&gt;
ip=127.0.0.1&lt;br /&gt;
port=5900&lt;br /&gt;
username=ask&lt;br /&gt;
password=ask&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
If you want the XRDP service starts automatically, add the services to the default runlevel:&lt;br /&gt;
&lt;br /&gt;
{{Cmd|# rc-update add xrdp&lt;br /&gt;
&amp;amp;#35; rc-update add xrdp-sesman&lt;br /&gt;
&amp;amp;#35; rc-update add vino}}&lt;br /&gt;
&lt;br /&gt;
To start:&lt;br /&gt;
&lt;br /&gt;
{{Cmd|# rc-service xrdp start&lt;br /&gt;
&amp;amp;#35; rc-service xrdp-sesman start&lt;br /&gt;
&amp;amp;#35; rc-service vino start}}&lt;br /&gt;
&lt;br /&gt;
=== Remmina as client ===&lt;br /&gt;
&lt;br /&gt;
{{Draft}}&lt;br /&gt;
&lt;br /&gt;
=== Misc ===&lt;br /&gt;
&lt;br /&gt;
==== Disabling XRDP Notification and Confirmation ====&lt;br /&gt;
&lt;br /&gt;
If you do not want the client confirmation before the session being accepted:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;export DISPLAY=:0.0&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Cmd|gsettings set org.gnome.Vino notify-on-connect false&lt;br /&gt;
gsettings set org.gnome.Vino prompt-enabled false&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Category:System Administration]]&lt;br /&gt;
[[Category:Security]]&lt;/div&gt;</summary>
		<author><name>Jhjacobs81</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Remote_Desktop_Server&amp;diff=30678</id>
		<title>Remote Desktop Server</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Remote_Desktop_Server&amp;diff=30678"/>
		<updated>2025-08-10T10:55:55Z</updated>

		<summary type="html">&lt;p&gt;Jhjacobs81: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Remote Desktop Server Based on XRDP and xorgxrdp ==&lt;br /&gt;
&lt;br /&gt;
This was tested and works for v 3.17.2 with [[Xfce]] as the desktop.&lt;br /&gt;
&lt;br /&gt;
First ensure the desktop is working without remote access (if feasible)&lt;br /&gt;
&lt;br /&gt;
Install XRDP and xorgxrdp&lt;br /&gt;
&lt;br /&gt;
{{Cmd|&amp;amp;#35; apk add xrdp xorgxrdp}}&lt;br /&gt;
&lt;br /&gt;
Start the necessary services:&lt;br /&gt;
&lt;br /&gt;
{{Cmd|&amp;amp;#35; rc-service xrdp start&lt;br /&gt;
&amp;amp;#35; rc-service xrdp-sesman start}}&lt;br /&gt;
&lt;br /&gt;
After testing this works you may set the services to start automatically:&lt;br /&gt;
&lt;br /&gt;
{{Cmd|&amp;amp;#35; rc-update add xrdp&lt;br /&gt;
&amp;amp;#35; rc-update add xrdp-sesman}}&lt;br /&gt;
&lt;br /&gt;
That should be all that is needed to connect from a Windows client with its default &amp;quot;Remote Desktop&amp;quot; client, the xrdp configuration file though will contain several services that will not work, so to remove them edit /etc/xrdp/xrdp.ini and remove all lines from and including from [Xvnc] to the end. &lt;br /&gt;
&lt;br /&gt;
Note: If you are using KDE, please add the following link so that there is no screen after logging in &lt;br /&gt;
&amp;quot;ln -s /usr/bin/startplasma-x11 ~/.xinitrc&amp;quot;&lt;br /&gt;
&lt;br /&gt;
{{Cmd|&amp;amp;#35; ln -s /usr/bin/startplasma-x11 ~/.xinitrc}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; In Alpine Linux v3.22 and Edge xrdp is broken in combination with KDE, because only Wayland is supported with KDE [[https://wiki.alpinelinux.org/wiki/Release_Notes_for_Alpine_3.22.0|since v3.22]]&lt;br /&gt;
&lt;br /&gt;
== Remote Desktop Server based on Vino and XRDP ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;THIS DOES NOT WORK on 3.17.2 with Xfce Not Yet Deleted Yet in Case it helps others&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
First of all make sure you have a Desktop environment properly installed (See: [[Desktop environments and Window managers]])&lt;br /&gt;
&lt;br /&gt;
Next, install Vino and XRDP with the following command:&lt;br /&gt;
&lt;br /&gt;
{{Cmd|&amp;amp;#35; apk add vino@community xrdp}}&lt;br /&gt;
&lt;br /&gt;
Replace the file &amp;lt;code&amp;gt;/etc/xrdp/xrdp.ini&amp;lt;/code&amp;gt; content with:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Cat|/etc/xrdp/xrdp.ini|&amp;lt;nowiki&amp;gt;[globals]&lt;br /&gt;
bitmap_cache=yes&lt;br /&gt;
bitmap_compression=yes&lt;br /&gt;
port=3389&lt;br /&gt;
crypt_level=low&lt;br /&gt;
channel_code=1&lt;br /&gt;
max_bpp=24&lt;br /&gt;
&lt;br /&gt;
[xrdp1]&lt;br /&gt;
name=Vino&lt;br /&gt;
lib=libvnc.so&lt;br /&gt;
ip=127.0.0.1&lt;br /&gt;
port=5900&lt;br /&gt;
username=ask&lt;br /&gt;
password=ask&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
If you want the XRDP service starts automatically, add the services to the default runlevel:&lt;br /&gt;
&lt;br /&gt;
{{Cmd|# rc-update add xrdp&lt;br /&gt;
&amp;amp;#35; rc-update add xrdp-sesman&lt;br /&gt;
&amp;amp;#35; rc-update add vino}}&lt;br /&gt;
&lt;br /&gt;
To start:&lt;br /&gt;
&lt;br /&gt;
{{Cmd|# rc-service xrdp start&lt;br /&gt;
&amp;amp;#35; rc-service xrdp-sesman start&lt;br /&gt;
&amp;amp;#35; rc-service vino start}}&lt;br /&gt;
&lt;br /&gt;
=== Remmina as client ===&lt;br /&gt;
&lt;br /&gt;
{{Draft}}&lt;br /&gt;
&lt;br /&gt;
=== Misc ===&lt;br /&gt;
&lt;br /&gt;
==== Disabling XRDP Notification and Confirmation ====&lt;br /&gt;
&lt;br /&gt;
If you do not want the client confirmation before the session being accepted:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;export DISPLAY=:0.0&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Cmd|gsettings set org.gnome.Vino notify-on-connect false&lt;br /&gt;
gsettings set org.gnome.Vino prompt-enabled false&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Category:System Administration]]&lt;br /&gt;
[[Category:Security]]&lt;/div&gt;</summary>
		<author><name>Jhjacobs81</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Remote_Desktop_Server&amp;diff=30677</id>
		<title>Remote Desktop Server</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Remote_Desktop_Server&amp;diff=30677"/>
		<updated>2025-08-10T10:55:27Z</updated>

		<summary type="html">&lt;p&gt;Jhjacobs81: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Remote Desktop Server Based on XRDP and xorgxrdp ==&lt;br /&gt;
&lt;br /&gt;
This was tested and works for v 3.17.2 with [[Xfce]] as the desktop.&lt;br /&gt;
&lt;br /&gt;
First ensure the desktop is working without remote access (if feasible)&lt;br /&gt;
&lt;br /&gt;
Install XRDP and xorgxrdp&lt;br /&gt;
&lt;br /&gt;
{{Cmd|&amp;amp;#35; apk add xrdp xorgxrdp}}&lt;br /&gt;
&lt;br /&gt;
Start the necessary services:&lt;br /&gt;
&lt;br /&gt;
{{Cmd|&amp;amp;#35; rc-service xrdp start&lt;br /&gt;
&amp;amp;#35; rc-service xrdp-sesman start}}&lt;br /&gt;
&lt;br /&gt;
After testing this works you may set the services to start automatically:&lt;br /&gt;
&lt;br /&gt;
{{Cmd|&amp;amp;#35; rc-update add xrdp&lt;br /&gt;
&amp;amp;#35; rc-update add xrdp-sesman}}&lt;br /&gt;
&lt;br /&gt;
That should be all that is needed to connect from a Windows client with its default &amp;quot;Remote Desktop&amp;quot; client, the xrdp configuration file though will contain several services that will not work, so to remove them edit /etc/xrdp/xrdp.ini and remove all lines from and including from [Xvnc] to the end. &lt;br /&gt;
&lt;br /&gt;
Note: If you are using KDE, please add the following link so that there is no screen after logging in &lt;br /&gt;
&amp;quot;ln -s /usr/bin/startplasma-x11 ~/.xinitrc&amp;quot;&lt;br /&gt;
&lt;br /&gt;
{{Cmd|&amp;amp;#35; ln -s /usr/bin/startplasma-x11 ~/.xinitrc}}&lt;br /&gt;
&lt;br /&gt;
Note: In Alpine Linux v3.22 and Edge xrdp is broken in combination with KDE, because only Wayland is supported with KDE [[https://wiki.alpinelinux.org/wiki/Release_Notes_for_Alpine_3.22.0|since v3.22]]&lt;br /&gt;
&lt;br /&gt;
== Remote Desktop Server based on Vino and XRDP ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;THIS DOES NOT WORK on 3.17.2 with Xfce Not Yet Deleted Yet in Case it helps others&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
First of all make sure you have a Desktop environment properly installed (See: [[Desktop environments and Window managers]])&lt;br /&gt;
&lt;br /&gt;
Next, install Vino and XRDP with the following command:&lt;br /&gt;
&lt;br /&gt;
{{Cmd|&amp;amp;#35; apk add vino@community xrdp}}&lt;br /&gt;
&lt;br /&gt;
Replace the file &amp;lt;code&amp;gt;/etc/xrdp/xrdp.ini&amp;lt;/code&amp;gt; content with:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Cat|/etc/xrdp/xrdp.ini|&amp;lt;nowiki&amp;gt;[globals]&lt;br /&gt;
bitmap_cache=yes&lt;br /&gt;
bitmap_compression=yes&lt;br /&gt;
port=3389&lt;br /&gt;
crypt_level=low&lt;br /&gt;
channel_code=1&lt;br /&gt;
max_bpp=24&lt;br /&gt;
&lt;br /&gt;
[xrdp1]&lt;br /&gt;
name=Vino&lt;br /&gt;
lib=libvnc.so&lt;br /&gt;
ip=127.0.0.1&lt;br /&gt;
port=5900&lt;br /&gt;
username=ask&lt;br /&gt;
password=ask&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
If you want the XRDP service starts automatically, add the services to the default runlevel:&lt;br /&gt;
&lt;br /&gt;
{{Cmd|# rc-update add xrdp&lt;br /&gt;
&amp;amp;#35; rc-update add xrdp-sesman&lt;br /&gt;
&amp;amp;#35; rc-update add vino}}&lt;br /&gt;
&lt;br /&gt;
To start:&lt;br /&gt;
&lt;br /&gt;
{{Cmd|# rc-service xrdp start&lt;br /&gt;
&amp;amp;#35; rc-service xrdp-sesman start&lt;br /&gt;
&amp;amp;#35; rc-service vino start}}&lt;br /&gt;
&lt;br /&gt;
=== Remmina as client ===&lt;br /&gt;
&lt;br /&gt;
{{Draft}}&lt;br /&gt;
&lt;br /&gt;
=== Misc ===&lt;br /&gt;
&lt;br /&gt;
==== Disabling XRDP Notification and Confirmation ====&lt;br /&gt;
&lt;br /&gt;
If you do not want the client confirmation before the session being accepted:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;export DISPLAY=:0.0&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Cmd|gsettings set org.gnome.Vino notify-on-connect false&lt;br /&gt;
gsettings set org.gnome.Vino prompt-enabled false&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Category:System Administration]]&lt;br /&gt;
[[Category:Security]]&lt;/div&gt;</summary>
		<author><name>Jhjacobs81</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Remote_Desktop_Server&amp;diff=30676</id>
		<title>Remote Desktop Server</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Remote_Desktop_Server&amp;diff=30676"/>
		<updated>2025-08-10T10:50:49Z</updated>

		<summary type="html">&lt;p&gt;Jhjacobs81: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Remote Desktop Server Based on XRDP and xorgxrdp ==&lt;br /&gt;
&lt;br /&gt;
This was tested and works for v 3.17.2 with [[Xfce]] as the desktop.&lt;br /&gt;
&lt;br /&gt;
First ensure the desktop is working without remote access (if feasible)&lt;br /&gt;
&lt;br /&gt;
Install XRDP and xorgxrdp&lt;br /&gt;
&lt;br /&gt;
{{Cmd|&amp;amp;#35; apk add xrdp xorgxrdp}}&lt;br /&gt;
&lt;br /&gt;
Start the necessary services:&lt;br /&gt;
&lt;br /&gt;
{{Cmd|&amp;amp;#35; rc-service xrdp start&lt;br /&gt;
&amp;amp;#35; rc-service xrdp-sesman start}}&lt;br /&gt;
&lt;br /&gt;
After testing this works you may set the services to start automatically:&lt;br /&gt;
&lt;br /&gt;
{{Cmd|&amp;amp;#35; rc-update add xrdp&lt;br /&gt;
&amp;amp;#35; rc-update add xrdp-sesman}}&lt;br /&gt;
&lt;br /&gt;
That should be all that is needed to connect from a Windows client with its default &amp;quot;Remote Desktop&amp;quot; client, the xrdp configuration file though will contain several services that will not work, so to remove them edit /etc/xrdp/xrdp.ini and remove all lines from and including from [Xvnc] to the end. &lt;br /&gt;
&lt;br /&gt;
Note: If you are using KDE, please add the following link so that there is no screen after logging in &lt;br /&gt;
&amp;quot;ln -s /usr/bin/startplasma-x11 ~/.xinitrc&amp;quot;&lt;br /&gt;
&lt;br /&gt;
{{Cmd|&amp;amp;#35; ln -s /usr/bin/startplasma-x11 ~/.xinitrc}}&lt;br /&gt;
&lt;br /&gt;
Note: In Alpine Linux v3.22 and Edge xrdp is broken in combination with KDE, because only Wayland is supported with KDE since v3.22&lt;br /&gt;
&lt;br /&gt;
== Remote Desktop Server based on Vino and XRDP ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;THIS DOES NOT WORK on 3.17.2 with Xfce Not Yet Deleted Yet in Case it helps others&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
First of all make sure you have a Desktop environment properly installed (See: [[Desktop environments and Window managers]])&lt;br /&gt;
&lt;br /&gt;
Next, install Vino and XRDP with the following command:&lt;br /&gt;
&lt;br /&gt;
{{Cmd|&amp;amp;#35; apk add vino@community xrdp}}&lt;br /&gt;
&lt;br /&gt;
Replace the file &amp;lt;code&amp;gt;/etc/xrdp/xrdp.ini&amp;lt;/code&amp;gt; content with:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Cat|/etc/xrdp/xrdp.ini|&amp;lt;nowiki&amp;gt;[globals]&lt;br /&gt;
bitmap_cache=yes&lt;br /&gt;
bitmap_compression=yes&lt;br /&gt;
port=3389&lt;br /&gt;
crypt_level=low&lt;br /&gt;
channel_code=1&lt;br /&gt;
max_bpp=24&lt;br /&gt;
&lt;br /&gt;
[xrdp1]&lt;br /&gt;
name=Vino&lt;br /&gt;
lib=libvnc.so&lt;br /&gt;
ip=127.0.0.1&lt;br /&gt;
port=5900&lt;br /&gt;
username=ask&lt;br /&gt;
password=ask&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
If you want the XRDP service starts automatically, add the services to the default runlevel:&lt;br /&gt;
&lt;br /&gt;
{{Cmd|# rc-update add xrdp&lt;br /&gt;
&amp;amp;#35; rc-update add xrdp-sesman&lt;br /&gt;
&amp;amp;#35; rc-update add vino}}&lt;br /&gt;
&lt;br /&gt;
To start:&lt;br /&gt;
&lt;br /&gt;
{{Cmd|# rc-service xrdp start&lt;br /&gt;
&amp;amp;#35; rc-service xrdp-sesman start&lt;br /&gt;
&amp;amp;#35; rc-service vino start}}&lt;br /&gt;
&lt;br /&gt;
=== Remmina as client ===&lt;br /&gt;
&lt;br /&gt;
{{Draft}}&lt;br /&gt;
&lt;br /&gt;
=== Misc ===&lt;br /&gt;
&lt;br /&gt;
==== Disabling XRDP Notification and Confirmation ====&lt;br /&gt;
&lt;br /&gt;
If you do not want the client confirmation before the session being accepted:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;export DISPLAY=:0.0&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Cmd|gsettings set org.gnome.Vino notify-on-connect false&lt;br /&gt;
gsettings set org.gnome.Vino prompt-enabled false&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Category:System Administration]]&lt;br /&gt;
[[Category:Security]]&lt;/div&gt;</summary>
		<author><name>Jhjacobs81</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Talk:Remote_Desktop_Server&amp;diff=30675</id>
		<title>Talk:Remote Desktop Server</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Talk:Remote_Desktop_Server&amp;diff=30675"/>
		<updated>2025-08-09T20:13:04Z</updated>

		<summary type="html">&lt;p&gt;Jhjacobs81: /* As of now (08-08-2025) this doesn&amp;#039;t work on Edge */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Performances ? ==&lt;br /&gt;
&lt;br /&gt;
What about the performances of such solution versus, for instance, ssh -X ?&lt;br /&gt;
&lt;br /&gt;
[[User:Jch|Jch]] ([[User talk:Jch|talk]]) 13:35, 9 March 2016 (UTC)&lt;br /&gt;
&lt;br /&gt;
== not working here ==&lt;br /&gt;
&lt;br /&gt;
the article did not mention any client, such as Remmina, so I knew immediately what would be going to happen: It - of course - did not work. --[[User:Yyyy|Yyyy]] ([[User talk:Yyyy|talk]]) 13:55, 27 August 2019 (UTC)&lt;br /&gt;
&lt;br /&gt;
== As of now (08-08-2025) this doesn&#039;t work on Edge ==&lt;br /&gt;
&lt;br /&gt;
I have successfully setup XRDP on Alpine v3.21, but after upgrading to edge it breaks. &lt;br /&gt;
I noticed there;s no more /usr/bin/startplasma-x11 but there&#039;s /usr/bin/startplasma-wayland. However setting .xinitrc to that doesn&#039;t work either.&lt;/div&gt;</summary>
		<author><name>Jhjacobs81</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Talk:Remote_Desktop_Server&amp;diff=30674</id>
		<title>Talk:Remote Desktop Server</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Talk:Remote_Desktop_Server&amp;diff=30674"/>
		<updated>2025-08-09T20:12:27Z</updated>

		<summary type="html">&lt;p&gt;Jhjacobs81: /* As of now this doesn&amp;#039;t work on Edge */ new section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Performances ? ==&lt;br /&gt;
&lt;br /&gt;
What about the performances of such solution versus, for instance, ssh -X ?&lt;br /&gt;
&lt;br /&gt;
[[User:Jch|Jch]] ([[User talk:Jch|talk]]) 13:35, 9 March 2016 (UTC)&lt;br /&gt;
&lt;br /&gt;
== not working here ==&lt;br /&gt;
&lt;br /&gt;
the article did not mention any client, such as Remmina, so I knew immediately what would be going to happen: It - of course - did not work. --[[User:Yyyy|Yyyy]] ([[User talk:Yyyy|talk]]) 13:55, 27 August 2019 (UTC)&lt;br /&gt;
&lt;br /&gt;
== As of now this doesn&#039;t work on Edge ==&lt;br /&gt;
&lt;br /&gt;
I have successfully setup XRDP on Alpine v3.21, but after upgrading to edge it breaks. &lt;br /&gt;
I noticed there;s no more /usr/bin/startplasma-x11 but there&#039;s /usr/bin/startplasma-wayland. However setting .xinitrc to that doesn&#039;t work either.&lt;/div&gt;</summary>
		<author><name>Jhjacobs81</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Matrix&amp;diff=27457</id>
		<title>Matrix</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Matrix&amp;diff=27457"/>
		<updated>2024-10-03T18:09:49Z</updated>

		<summary type="html">&lt;p&gt;Jhjacobs81: /* Configuration and Setup */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[https://matrix.org/ Matrix] is an ambitious new ecosystem and protocol for open federated instant messaging and VoIP. It consists of servers, [https://matrix.org/clients/ various clients] and [https://matrix.org/bridges/ bridge] software to connect to existing messaging solutions such as IRC (Internet Relay Chat).&lt;br /&gt;
&lt;br /&gt;
The [[Alpine Linux:IRC|Alpine Linux IRC chatrooms]] are bridged to Matrix. The General Alpine Linux room can be found on Matrix here [https://matrix.to/#/#_oftc_#alpine-linux:matrix.org #_oftc_#alpine-linux:matrix.org]. If you want to access any of the other Alpine Linux chats from Matrix, then substitute the IRC channel name accordingly.&lt;br /&gt;
&lt;br /&gt;
= Installation =&lt;br /&gt;
The Matrix Protocol has multiple server implementations which are available on Alpine Linux.&lt;br /&gt;
&lt;br /&gt;
The reference server implementation Synapse, which is the most commonly used server, is available as the {{pkg|synapse}} package. It has been available since Alpine 3.11.&lt;br /&gt;
&lt;br /&gt;
There is also a second-generation Matrix homeserver written in Go, which is available as the {{pkg|dendrite}} package. It intends to provide an efficient, reliable and scalable alternative to Synapse, but it is not as feature complete as Synapse is at this time. It has been available since Alpine 3.15.&lt;br /&gt;
&lt;br /&gt;
There is also another Matrix homeserver, written in Rust, which is available as the {{pkg|conduit}} package and is only currently available in the Alpine Edge at this time.&lt;br /&gt;
&lt;br /&gt;
Before you start installing anything, make sure you have the latest packages available.&lt;br /&gt;
{{tip|Detailed information is found in [[Include:Upgrading_to_latest_release|this]] doc.}}&lt;br /&gt;
&lt;br /&gt;
= Matrix Synapse server =&lt;br /&gt;
&lt;br /&gt;
This Wiki will cover the installation, configuration, and setup of the &#039;&#039;&#039;Matrix Synapse server&#039;&#039;&#039;, as this is the most commonly used and feature complete Matrix Protocol server at this time.&lt;br /&gt;
&lt;br /&gt;
== Install Matrix Synapse server ==&lt;br /&gt;
&lt;br /&gt;
Synapse package is available in the Alpine Linux repositories. To install it run:&lt;br /&gt;
&lt;br /&gt;
{{Cmd|apk update&lt;br /&gt;
apk add synapse}}&lt;br /&gt;
&lt;br /&gt;
When installing the Alpine Linux synapse package, it will create a user called &#039;&#039;synapse&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Configuration and Setup ==&lt;br /&gt;
&lt;br /&gt;
During installation, the Alpine Linux synapse package will create a default synapse configuration file which will be located at {{path|/etc/synapse/homeserver.conf}}.&lt;br /&gt;
&lt;br /&gt;
You will want to refer to the [https://element-hq.github.io/synapse/latest/usage/configuration/config_documentation.html Matrix Synapse Configuration Manual] to configure the various options.&lt;br /&gt;
Make sure the synapse user can read/edit the configuration directory:&lt;br /&gt;
{{Cmd| chown -R synapse:synapse/etc/synapse}}&lt;br /&gt;
&lt;br /&gt;
Add synapse to the default runlevel to have it started at boot:&lt;br /&gt;
{{Cmd| rc-update add synapse}}&lt;br /&gt;
&lt;br /&gt;
=== Reverse Proxy ===&lt;br /&gt;
&lt;br /&gt;
If you want your Matrix Synapse server to be accessed over the internet, then it is highly recommended to configure a [https://element-hq.github.io/synapse/latest/reverse_proxy.html reverse proxy] to do that. One advantage of doing this is that you can expose the default HTTPS port (443) to Matrix clients [https://github.com/element-hq/synapse?tab=readme-ov-file#using-a-reverse-proxy-with-synapse without needing to run Synapse with root privileges].&lt;br /&gt;
&lt;br /&gt;
The Matrix developers have provided [https://element-hq.github.io/synapse/latest/reverse_proxy.html#reverse-proxy-configuration-examples very good documentation with reverse proxy examples]. I prefer [[Nginx]], as I am most familiar with it, but you can also choose [[Apache]], [[Caddy]], or [[HAProxy]] to have in front of Synapse.&lt;br /&gt;
&lt;br /&gt;
=== Database ===&lt;br /&gt;
&lt;br /&gt;
Once synapse is installed, you will need to select which database to use with it. By default, Synapse uses a SQLite database, which is only acceptable for testing purposes &amp;amp; should not be used in a production environment.&lt;br /&gt;
&lt;br /&gt;
The Matrix Synapse developers recommend using PostgresSQL as your database backend. For more details on installing PostgresSQL, refer to the [[Postgresql|PostgreSQL article]]. It is recommended that you install the latest PostgreSQL release available, which at this time is PostgreSQL 16.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [https://wiki.archlinux.org/title/Matrix Matrix - Archwiki]&lt;br /&gt;
* [https://element-hq.github.io/synapse/ Matrix Synapse Documentation]&lt;br /&gt;
* [https://github.com/element-hq/synapse Matrix Synapse Github]&lt;br /&gt;
* [https://github.com/matrix-org/dendrite Matrix Dendrite Github]&lt;br /&gt;
* [https://conduit.rs/ Matrix Conduit Website]&lt;br /&gt;
&lt;br /&gt;
[[Category:Server]]&lt;/div&gt;</summary>
		<author><name>Jhjacobs81</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Setting_up_a_LLDAP_server&amp;diff=27456</id>
		<title>Setting up a LLDAP server</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Setting_up_a_LLDAP_server&amp;diff=27456"/>
		<updated>2024-10-03T07:54:38Z</updated>

		<summary type="html">&lt;p&gt;Jhjacobs81: /* Configure */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= General =&lt;br /&gt;
LLDAP is a small LDAP server designed for directory services without the overhead of a full blown OpenLDAP server. LLDAP server is designed for easy management using a simple web gui. It lacks some of the features found in other directory servers, because its specificly designed for easy use.&lt;br /&gt;
&lt;br /&gt;
= Install =&lt;br /&gt;
Installing LLDAP is fairly simple and can be done in less then 5 minutes. start by logging in as root:&lt;br /&gt;
{{Cmd|doas su -}}&lt;br /&gt;
Then we make sure the system is up to date and install wget:&lt;br /&gt;
{{Cmd|apk update &amp;amp;&amp;amp; apk upgrade &amp;amp;&amp;amp; apk add wget}}&lt;br /&gt;
Then we make the directory for LLDAP to live in and install the software:&lt;br /&gt;
{{Cmd|mkdir /opt/lldap &amp;amp;&amp;amp; cd /opt/lldap}}&lt;br /&gt;
{{Cmd|wget https://github.com/lldap/lldap/releases/download/v0.5.0/amd64-lldap.tar.gz &amp;amp;&amp;amp; tar xzf amd64-lldap.tar.gz &amp;amp;&amp;amp; mv amd64-lldap/* . &amp;amp;&amp;amp; rm -rf amd64-lldap}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Configure =&lt;br /&gt;
To configure LLDAP we have to create a config file, and an rc file to start it automaticly upon boot. First we generate 2 random strings to use in the configuration as jwt_secret and key_seed:&lt;br /&gt;
{{Cmd| openssl rand -base64 15 &amp;amp;&amp;amp; openssl rand -base64 15}}&lt;br /&gt;
&lt;br /&gt;
Then we paste the following configuration into /opt/lldap/lldap_config.toml and replace the jwt_secret and key_seed with the random generated value&#039;s:&lt;br /&gt;
{{Cmd|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
ldap_port = 3890&lt;br /&gt;
http_port = 17170&lt;br /&gt;
http_url = &amp;quot;https://domain.tld&amp;quot;&lt;br /&gt;
jwt_secret = &amp;quot;very-long-string&amp;quot;&lt;br /&gt;
ldap_base_dn = &amp;quot;dc=domain,dc=tld&amp;quot;&lt;br /&gt;
ldap_user_dn = &amp;quot;admin&amp;quot;&lt;br /&gt;
ldap_user_email = &amp;quot;admin@domain.tld&amp;quot;&lt;br /&gt;
ldap_user_pass = &amp;quot;very-strong-password&amp;quot;&lt;br /&gt;
database_url = &amp;quot;sqlite:///opt/lldap/users.db?mode=rwc&amp;quot;&lt;br /&gt;
key_seed = &amp;quot;random-string-again&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[smtp_options]&lt;br /&gt;
#enable_password_reset=true&lt;br /&gt;
#server=&amp;quot;smtp.gmail.com&amp;quot;&lt;br /&gt;
#port=587&lt;br /&gt;
#smtp_encryption = &amp;quot;TLS&amp;quot;&lt;br /&gt;
#user=&amp;quot;sender@gmail.com&amp;quot;&lt;br /&gt;
#password=&amp;quot;password&amp;quot;&lt;br /&gt;
#from=&amp;quot;LLDAP Admin &amp;lt;sender@gmail.com&amp;gt;&amp;quot;&lt;br /&gt;
#reply_to=&amp;quot;Do not reply &amp;lt;noreply@localhost&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[ldaps_options]&lt;br /&gt;
#enabled=true&lt;br /&gt;
#port=6360&lt;br /&gt;
## Certificate file.&lt;br /&gt;
#cert_file=&amp;quot;/data/cert.pem&amp;quot;&lt;br /&gt;
## Certificate key file.&lt;br /&gt;
#key_file=&amp;quot;/data/key.pem&amp;quot;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
Replace domain.tld with your chose domain name.&lt;br /&gt;
Next we need to create an openrc file so we can automaticly start lldap:&lt;br /&gt;
&lt;br /&gt;
{{Cmd|&amp;lt;nowiki&amp;gt;cat &amp;lt;&amp;lt;EOF &amp;gt; /etc/init.d/lldap&lt;br /&gt;
#!/sbin/openrc-run&lt;br /&gt;
&lt;br /&gt;
name=lldap&lt;br /&gt;
command=&amp;quot;/opt/lldap/lldap&amp;quot;&lt;br /&gt;
command_args=&amp;quot;run&amp;quot;&lt;br /&gt;
command_background=&amp;quot;yes&amp;quot;&lt;br /&gt;
pidfile=&amp;quot;/run/lldap.pid&amp;quot;&lt;br /&gt;
&lt;br /&gt;
depend() {&lt;br /&gt;
        need net&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
start_pre()&lt;br /&gt;
{&lt;br /&gt;
        cd /opt/lldap&lt;br /&gt;
}&lt;br /&gt;
EOF&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
This is not an extensive file, but it gets you running and ensures lldap starts and works correctly.&lt;br /&gt;
Now we need to add it to the default runlevel and start the service&lt;br /&gt;
{{Cmd|chmod +x /etc/init.d/lldap &amp;amp;&amp;amp; rc-update add lldap}}&lt;br /&gt;
&lt;br /&gt;
= Use =&lt;br /&gt;
To use LLDAP we can browse to http://&amp;lt;ip&amp;gt;:17170 and login with the credentials we specified in the config file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This is a basic configuration. You can now connect other services that support ldap logins to LLDAP.&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
* Some troubleshooting information&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Resources =&lt;br /&gt;
* https://github.com/lldap/lldap&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Server]]&lt;/div&gt;</summary>
		<author><name>Jhjacobs81</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Setting_up_a_LLDAP_server&amp;diff=27443</id>
		<title>Setting up a LLDAP server</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Setting_up_a_LLDAP_server&amp;diff=27443"/>
		<updated>2024-10-01T16:17:47Z</updated>

		<summary type="html">&lt;p&gt;Jhjacobs81: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= General =&lt;br /&gt;
LLDAP is a small LDAP server designed for directory services without the overhead of a full blown OpenLDAP server. LLDAP server is designed for easy management using a simple web gui. It lacks some of the features found in other directory servers, because its specificly designed for easy use.&lt;br /&gt;
&lt;br /&gt;
= Install =&lt;br /&gt;
Installing LLDAP is fairly simple and can be done in less then 5 minutes. start by logging in as root:&lt;br /&gt;
{{Cmd|doas su -}}&lt;br /&gt;
Then we make sure the system is up to date and install wget:&lt;br /&gt;
{{Cmd|apk update &amp;amp;&amp;amp; apk upgrade &amp;amp;&amp;amp; apk add wget}}&lt;br /&gt;
Then we make the directory for LLDAP to live in and install the software:&lt;br /&gt;
{{Cmd|mkdir /opt/lldap &amp;amp;&amp;amp; cd /opt/lldap}}&lt;br /&gt;
{{Cmd|wget https://github.com/lldap/lldap/releases/download/v0.5.0/amd64-lldap.tar.gz &amp;amp;&amp;amp; tar xzf amd64-lldap.tar.gz &amp;amp;&amp;amp; mv amd64-lldap/* . &amp;amp;&amp;amp; rm -rf amd64-lldap}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Configure =&lt;br /&gt;
To configure LLDAP we have to create a config file, and an rc file to start it automaticly upon boot:&lt;br /&gt;
{{Cmd|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
cat &amp;lt;&amp;lt;EOF &amp;gt; /opt/lldap/lldap_config.toml&lt;br /&gt;
ldap_port = 3890&lt;br /&gt;
http_port = 17170&lt;br /&gt;
http_url = &amp;quot;https://domain.tld&amp;quot;&lt;br /&gt;
jwt_secret = &amp;quot;very-long-string&amp;quot;&lt;br /&gt;
ldap_base_dn = &amp;quot;dc=domain,dc=tld&amp;quot;&lt;br /&gt;
ldap_user_dn = &amp;quot;admin&amp;quot;&lt;br /&gt;
ldap_user_email = &amp;quot;admin@domain.tld&amp;quot;&lt;br /&gt;
ldap_user_pass = &amp;quot;very-strong-password&amp;quot;&lt;br /&gt;
database_url = &amp;quot;sqlite:///opt/lldap/users.db?mode=rwc&amp;quot;&lt;br /&gt;
key_seed = &amp;quot;random-string-again&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[smtp_options]&lt;br /&gt;
#enable_password_reset=true&lt;br /&gt;
#server=&amp;quot;smtp.gmail.com&amp;quot;&lt;br /&gt;
#port=587&lt;br /&gt;
#smtp_encryption = &amp;quot;TLS&amp;quot;&lt;br /&gt;
#user=&amp;quot;sender@gmail.com&amp;quot;&lt;br /&gt;
#password=&amp;quot;password&amp;quot;&lt;br /&gt;
#from=&amp;quot;LLDAP Admin &amp;lt;sender@gmail.com&amp;gt;&amp;quot;&lt;br /&gt;
#reply_to=&amp;quot;Do not reply &amp;lt;noreply@localhost&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[ldaps_options]&lt;br /&gt;
#enabled=true&lt;br /&gt;
#port=6360&lt;br /&gt;
## Certificate file.&lt;br /&gt;
#cert_file=&amp;quot;/data/cert.pem&amp;quot;&lt;br /&gt;
## Certificate key file.&lt;br /&gt;
#key_file=&amp;quot;/data/key.pem&amp;quot;&lt;br /&gt;
EOF&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
Replace domain.tld with your chose domain name.&lt;br /&gt;
Next we need to create an openrc file so we can automaticly start lldap:&lt;br /&gt;
&lt;br /&gt;
{{Cmd|&amp;lt;nowiki&amp;gt;cat &amp;lt;&amp;lt;EOF &amp;gt; /etc/init.d/lldap&lt;br /&gt;
#!/sbin/openrc-run&lt;br /&gt;
&lt;br /&gt;
name=lldap&lt;br /&gt;
command=&amp;quot;/opt/lldap/lldap&amp;quot;&lt;br /&gt;
command_args=&amp;quot;run&amp;quot;&lt;br /&gt;
command_background=&amp;quot;yes&amp;quot;&lt;br /&gt;
pidfile=&amp;quot;/run/lldap.pid&amp;quot;&lt;br /&gt;
&lt;br /&gt;
depend() {&lt;br /&gt;
        need net&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
start_pre()&lt;br /&gt;
{&lt;br /&gt;
        cd /opt/lldap&lt;br /&gt;
}&lt;br /&gt;
EOF&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
This is not an extensive file, but it gets you running and ensures lldap starts and works correctly.&lt;br /&gt;
Now we need to add it to the default runlevel and start the service&lt;br /&gt;
{{Cmd|chmod +x /etc/init.d/lldap &amp;amp;&amp;amp; rc-update add lldap}}&lt;br /&gt;
&lt;br /&gt;
= Use =&lt;br /&gt;
To use LLDAP we can browse to http://&amp;lt;ip&amp;gt;:17170 and login with the credentials we specified in the config file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This is a basic configuration. You can now connect other services that support ldap logins to LLDAP.&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
* Some troubleshooting information&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Resources =&lt;br /&gt;
* https://github.com/lldap/lldap&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Server]]&lt;/div&gt;</summary>
		<author><name>Jhjacobs81</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Setting_up_a_LLDAP_server&amp;diff=27442</id>
		<title>Setting up a LLDAP server</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Setting_up_a_LLDAP_server&amp;diff=27442"/>
		<updated>2024-10-01T16:15:43Z</updated>

		<summary type="html">&lt;p&gt;Jhjacobs81: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= General =&lt;br /&gt;
LLDAP is a small LDAP server designed for directory services without the overhead of a full blown OpenLDAP server. LLDAP server is designed for easy management using a simple web gui. It lacks some of the features found in other directory servers, because its specificly designed for easy use.&lt;br /&gt;
&lt;br /&gt;
= Install =&lt;br /&gt;
Installing LLDAP is fairly simple and can be done in less then 5 minutes. start by logging in as root:&lt;br /&gt;
{{Cmd|doas su -}}&lt;br /&gt;
Then we make sure the system is up to date and install wget:&lt;br /&gt;
{{Cmd|apk update &amp;amp;&amp;amp; apk upgrade &amp;amp;&amp;amp; apk add wget}}&lt;br /&gt;
Then we make the directory for LLDAP to live in and install the software:&lt;br /&gt;
{{Cmd|mkdir /opt/lldap &amp;amp;&amp;amp; cd /opt/lldap}}&lt;br /&gt;
{{Cmd|wget https://github.com/lldap/lldap/releases/download/v0.5.0/amd64-lldap.tar.gz &amp;amp;&amp;amp; tar xzf amd64-lldap.tar.gz &amp;amp;&amp;amp; mv amd64-lldap/* . &amp;amp;&amp;amp; rm -rf amd64-lldap}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Configure =&lt;br /&gt;
To configure LLDAP we have to create a config file, and an rc file to start it automaticly upon boot:&lt;br /&gt;
{{Cmd|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
cat &amp;lt;&amp;lt;EOF &amp;gt; /opt/lldap/lldap_config.toml&lt;br /&gt;
ldap_port = 3890&lt;br /&gt;
http_port = 17170&lt;br /&gt;
http_url = &amp;quot;https://domain.tld&amp;quot;&lt;br /&gt;
jwt_secret = &amp;quot;very-long-string&amp;quot;&lt;br /&gt;
ldap_base_dn = &amp;quot;dc=domain,dc=tld&amp;quot;&lt;br /&gt;
ldap_user_dn = &amp;quot;admin&amp;quot;&lt;br /&gt;
ldap_user_email = &amp;quot;admin@domain.tld&amp;quot;&lt;br /&gt;
ldap_user_pass = &amp;quot;very-strong-password&amp;quot;&lt;br /&gt;
database_url = &amp;quot;sqlite:///opt/lldap/users.db?mode=rwc&amp;quot;&lt;br /&gt;
key_seed = &amp;quot;random-string-again&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[smtp_options]&lt;br /&gt;
#enable_password_reset=true&lt;br /&gt;
#server=&amp;quot;smtp.gmail.com&amp;quot;&lt;br /&gt;
#port=587&lt;br /&gt;
#smtp_encryption = &amp;quot;TLS&amp;quot;&lt;br /&gt;
#user=&amp;quot;sender@gmail.com&amp;quot;&lt;br /&gt;
#password=&amp;quot;password&amp;quot;&lt;br /&gt;
#from=&amp;quot;LLDAP Admin &amp;lt;sender@gmail.com&amp;gt;&amp;quot;&lt;br /&gt;
#reply_to=&amp;quot;Do not reply &amp;lt;noreply@localhost&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[ldaps_options]&lt;br /&gt;
#enabled=true&lt;br /&gt;
#port=6360&lt;br /&gt;
## Certificate file.&lt;br /&gt;
#cert_file=&amp;quot;/data/cert.pem&amp;quot;&lt;br /&gt;
## Certificate key file.&lt;br /&gt;
#key_file=&amp;quot;/data/key.pem&amp;quot;&lt;br /&gt;
EOF&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
Replace domain.tld with your chose domain name.&lt;br /&gt;
Next we need to create an openrc file so we can automaticly start lldap:&lt;br /&gt;
&lt;br /&gt;
{{Cmd|&amp;lt;nowiki&amp;gt;cat &amp;lt;&amp;lt;EOF &amp;gt; /etc/init.d/lldap&lt;br /&gt;
#!/sbin/openrc-run&lt;br /&gt;
&lt;br /&gt;
name=lldap&lt;br /&gt;
command=&amp;quot;/opt/lldap/lldap&amp;quot;&lt;br /&gt;
command_args=&amp;quot;run&amp;quot;&lt;br /&gt;
command_background=&amp;quot;yes&amp;quot;&lt;br /&gt;
pidfile=&amp;quot;/run/lldap.pid&amp;quot;&lt;br /&gt;
&lt;br /&gt;
depend() {&lt;br /&gt;
        need net&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
start_pre()&lt;br /&gt;
{&lt;br /&gt;
        cd /opt/lldap&lt;br /&gt;
}&lt;br /&gt;
EOF&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
This is not an extensive file, but it gets you running and ensures lldap starts and works correctly.&lt;br /&gt;
Now we need to add it to the default runlevel and start the service&lt;br /&gt;
{{Cmd|chmod +x /etc/init.d/lldap &amp;amp;&amp;amp; rc-update add lldap}}&lt;br /&gt;
&lt;br /&gt;
= Use =&lt;br /&gt;
To use LLDAP we can browse to http://&amp;lt;ip&amp;gt;:17170 and login with the credentials we specified in the config file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This is a basic configuration. You can now connect other services that support ldap logins to LLDAP.&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
* Some troubleshooting information&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Resources =&lt;br /&gt;
* https://github.com/lldap/lldap&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Server]]&lt;/div&gt;</summary>
		<author><name>Jhjacobs81</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Setting_up_a_LLDAP_server&amp;diff=27441</id>
		<title>Setting up a LLDAP server</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Setting_up_a_LLDAP_server&amp;diff=27441"/>
		<updated>2024-10-01T16:14:48Z</updated>

		<summary type="html">&lt;p&gt;Jhjacobs81: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= General =&lt;br /&gt;
LLDAP is a small LDAP server designed for directory services without the overhead of a full blown OpenLDAP server. LLDAP server is designed for easy management using a simple web gui. It lacks some of the features found in other directory servers, because its specificly designed for easy use.&lt;br /&gt;
&lt;br /&gt;
= Install =&lt;br /&gt;
Installing LLDAP is fairly simple and can be done in less then 5 minutes. start by logging in as root:&lt;br /&gt;
{{Cmd|doas su -}}&lt;br /&gt;
Then we make sure the system is up to date and install wget:&lt;br /&gt;
{{Cmd|apk update &amp;amp;&amp;amp; apk upgrade &amp;amp;&amp;amp; apk add wget}}&lt;br /&gt;
Then we make the directory for LLDAP to live in and install the software:&lt;br /&gt;
{{Cmd|mkdir /opt/lldap &amp;amp;&amp;amp; cd /opt/lldap}}&lt;br /&gt;
{{Cmd|wget https://github.com/lldap/lldap/releases/download/v0.5.0/amd64-lldap.tar.gz &amp;amp;&amp;amp; tar xzf amd64-lldap.tar.gz &amp;amp;&amp;amp; mv amd64-lldap/* . &amp;amp;&amp;amp; rn -rf amd64-lldap}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Configure =&lt;br /&gt;
To configure LLDAP we have to create a config file, and an rc file to start it automaticly upon boot:&lt;br /&gt;
{{Cmd|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
cat &amp;lt;&amp;lt;EOF &amp;gt; /opt/lldap/lldap_config.toml&lt;br /&gt;
ldap_port = 3890&lt;br /&gt;
http_port = 17170&lt;br /&gt;
http_url = &amp;quot;https://domain.tld&amp;quot;&lt;br /&gt;
jwt_secret = &amp;quot;very-long-string&amp;quot;&lt;br /&gt;
ldap_base_dn = &amp;quot;dc=domain,dc=tld&amp;quot;&lt;br /&gt;
ldap_user_dn = &amp;quot;admin&amp;quot;&lt;br /&gt;
ldap_user_email = &amp;quot;admin@domain.tld&amp;quot;&lt;br /&gt;
ldap_user_pass = &amp;quot;very-strong-password&amp;quot;&lt;br /&gt;
database_url = &amp;quot;sqlite:///opt/lldap/users.db?mode=rwc&amp;quot;&lt;br /&gt;
key_seed = &amp;quot;random-string-again&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[smtp_options]&lt;br /&gt;
#enable_password_reset=true&lt;br /&gt;
#server=&amp;quot;smtp.gmail.com&amp;quot;&lt;br /&gt;
#port=587&lt;br /&gt;
#smtp_encryption = &amp;quot;TLS&amp;quot;&lt;br /&gt;
#user=&amp;quot;sender@gmail.com&amp;quot;&lt;br /&gt;
#password=&amp;quot;password&amp;quot;&lt;br /&gt;
#from=&amp;quot;LLDAP Admin &amp;lt;sender@gmail.com&amp;gt;&amp;quot;&lt;br /&gt;
#reply_to=&amp;quot;Do not reply &amp;lt;noreply@localhost&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[ldaps_options]&lt;br /&gt;
#enabled=true&lt;br /&gt;
#port=6360&lt;br /&gt;
## Certificate file.&lt;br /&gt;
#cert_file=&amp;quot;/data/cert.pem&amp;quot;&lt;br /&gt;
## Certificate key file.&lt;br /&gt;
#key_file=&amp;quot;/data/key.pem&amp;quot;&lt;br /&gt;
EOF&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
Replace domain.tld with your chose domain name.&lt;br /&gt;
Next we need to create an openrc file so we can automaticly start lldap:&lt;br /&gt;
&lt;br /&gt;
{{Cmd|&amp;lt;nowiki&amp;gt;cat &amp;lt;&amp;lt;EOF &amp;gt; /etc/init.d/lldap&lt;br /&gt;
#!/sbin/openrc-run&lt;br /&gt;
&lt;br /&gt;
name=lldap&lt;br /&gt;
command=&amp;quot;/opt/lldap/lldap&amp;quot;&lt;br /&gt;
command_args=&amp;quot;run&amp;quot;&lt;br /&gt;
command_background=&amp;quot;yes&amp;quot;&lt;br /&gt;
pidfile=&amp;quot;/run/lldap.pid&amp;quot;&lt;br /&gt;
&lt;br /&gt;
depend() {&lt;br /&gt;
        need net&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
start_pre()&lt;br /&gt;
{&lt;br /&gt;
        cd /opt/lldap&lt;br /&gt;
}&lt;br /&gt;
EOF&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
This is not an extensive file, but it gets you running and ensures lldap starts and works correctly.&lt;br /&gt;
Now we need to add it to the default runlevel and start the service&lt;br /&gt;
{{Cmd|chmod +x /etc/init.d/lldap &amp;amp;&amp;amp; rc-update add lldap}}&lt;br /&gt;
&lt;br /&gt;
= Use =&lt;br /&gt;
To use LLDAP we can browse to http://&amp;lt;ip&amp;gt;:17170 and login with the credentials we specified in the config file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This is a basic configuration. You can now connect other services that support ldap logins to LLDAP.&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
* Some troubleshooting information&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Resources =&lt;br /&gt;
* https://github.com/lldap/lldap&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Server]]&lt;/div&gt;</summary>
		<author><name>Jhjacobs81</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Setting_up_a_LLDAP_server&amp;diff=27440</id>
		<title>Setting up a LLDAP server</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Setting_up_a_LLDAP_server&amp;diff=27440"/>
		<updated>2024-10-01T16:13:57Z</updated>

		<summary type="html">&lt;p&gt;Jhjacobs81: /* Configure */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= General =&lt;br /&gt;
LLDAP is a small LDAP server designed for directory services without the overhead of a full blown OpenLDAP server. LLDAP server is designed for easy management using a simple web gui. It lacks some of the features found in other directory servers, because its specificly designed for home use.&lt;br /&gt;
&lt;br /&gt;
= Install =&lt;br /&gt;
Installing LLDAP is fairly simple and can be done in less then 5 minutes. start by logging in as root:&lt;br /&gt;
{{Cmd|doas su -}}&lt;br /&gt;
Then we make sure the system is up to date and install wget:&lt;br /&gt;
{{Cmd|apk update &amp;amp;&amp;amp; apk upgrade &amp;amp;&amp;amp; apk add wget}}&lt;br /&gt;
Then we make the directory for LLDAP to live in and install the software:&lt;br /&gt;
{{Cmd|mkdir /opt/lldap &amp;amp;&amp;amp; cd /opt/lldap}}&lt;br /&gt;
{{Cmd|wget https://github.com/lldap/lldap/releases/download/v0.5.0/amd64-lldap.tar.gz &amp;amp;&amp;amp; tar xzf amd64-lldap.tar.gz &amp;amp;&amp;amp; mv amd64-lldap/* . &amp;amp;&amp;amp; rn -rf amd64-lldap}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Configure =&lt;br /&gt;
To configure LLDAP we have to create a config file, and an rc file to start it automaticly upon boot:&lt;br /&gt;
{{Cmd|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
cat &amp;lt;&amp;lt;EOF &amp;gt; /opt/lldap/lldap_config.toml&lt;br /&gt;
ldap_port = 3890&lt;br /&gt;
http_port = 17170&lt;br /&gt;
http_url = &amp;quot;https://domain.tld&amp;quot;&lt;br /&gt;
jwt_secret = &amp;quot;very-long-string&amp;quot;&lt;br /&gt;
ldap_base_dn = &amp;quot;dc=domain,dc=tld&amp;quot;&lt;br /&gt;
ldap_user_dn = &amp;quot;admin&amp;quot;&lt;br /&gt;
ldap_user_email = &amp;quot;admin@domain.tld&amp;quot;&lt;br /&gt;
ldap_user_pass = &amp;quot;very-strong-password&amp;quot;&lt;br /&gt;
database_url = &amp;quot;sqlite:///opt/lldap/users.db?mode=rwc&amp;quot;&lt;br /&gt;
key_seed = &amp;quot;random-string-again&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[smtp_options]&lt;br /&gt;
#enable_password_reset=true&lt;br /&gt;
#server=&amp;quot;smtp.gmail.com&amp;quot;&lt;br /&gt;
#port=587&lt;br /&gt;
#smtp_encryption = &amp;quot;TLS&amp;quot;&lt;br /&gt;
#user=&amp;quot;sender@gmail.com&amp;quot;&lt;br /&gt;
#password=&amp;quot;password&amp;quot;&lt;br /&gt;
#from=&amp;quot;LLDAP Admin &amp;lt;sender@gmail.com&amp;gt;&amp;quot;&lt;br /&gt;
#reply_to=&amp;quot;Do not reply &amp;lt;noreply@localhost&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[ldaps_options]&lt;br /&gt;
#enabled=true&lt;br /&gt;
#port=6360&lt;br /&gt;
## Certificate file.&lt;br /&gt;
#cert_file=&amp;quot;/data/cert.pem&amp;quot;&lt;br /&gt;
## Certificate key file.&lt;br /&gt;
#key_file=&amp;quot;/data/key.pem&amp;quot;&lt;br /&gt;
EOF&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
Replace domain.tld with your chose domain name.&lt;br /&gt;
Next we need to create an openrc file so we can automaticly start lldap:&lt;br /&gt;
&lt;br /&gt;
{{Cmd|&amp;lt;nowiki&amp;gt;cat &amp;lt;&amp;lt;EOF &amp;gt; /etc/init.d/lldap&lt;br /&gt;
#!/sbin/openrc-run&lt;br /&gt;
&lt;br /&gt;
name=lldap&lt;br /&gt;
command=&amp;quot;/opt/lldap/lldap&amp;quot;&lt;br /&gt;
command_args=&amp;quot;run&amp;quot;&lt;br /&gt;
command_background=&amp;quot;yes&amp;quot;&lt;br /&gt;
pidfile=&amp;quot;/run/lldap.pid&amp;quot;&lt;br /&gt;
&lt;br /&gt;
depend() {&lt;br /&gt;
        need net&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
start_pre()&lt;br /&gt;
{&lt;br /&gt;
        cd /opt/lldap&lt;br /&gt;
}&lt;br /&gt;
EOF&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
This is not an extensive file, but it gets you running and ensures lldap starts and works correctly.&lt;br /&gt;
Now we need to add it to the default runlevel and start the service&lt;br /&gt;
{{Cmd|chmod +x /etc/init.d/lldap &amp;amp;&amp;amp; rc-update add lldap}}&lt;br /&gt;
&lt;br /&gt;
= Use =&lt;br /&gt;
To use LLDAP we can browse to http://&amp;lt;ip&amp;gt;:17170 and login with the credentials we specified in the config file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This is a basic configuration. You can now connect other services that support ldap logins to LLDAP.&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
* Some troubleshooting information&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Resources =&lt;br /&gt;
* https://github.com/lldap/lldap&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Server]]&lt;/div&gt;</summary>
		<author><name>Jhjacobs81</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Setting_up_a_LLDAP_server&amp;diff=27439</id>
		<title>Setting up a LLDAP server</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Setting_up_a_LLDAP_server&amp;diff=27439"/>
		<updated>2024-10-01T16:11:16Z</updated>

		<summary type="html">&lt;p&gt;Jhjacobs81: /* Configure */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= General =&lt;br /&gt;
LLDAP is a small LDAP server designed for directory services without the overhead of a full blown OpenLDAP server. LLDAP server is designed for easy management using a simple web gui. It lacks some of the features found in other directory servers, because its specificly designed for home use.&lt;br /&gt;
&lt;br /&gt;
= Install =&lt;br /&gt;
Installing LLDAP is fairly simple and can be done in less then 5 minutes. start by logging in as root:&lt;br /&gt;
{{Cmd|doas su -}}&lt;br /&gt;
Then we make sure the system is up to date and install wget:&lt;br /&gt;
{{Cmd|apk update &amp;amp;&amp;amp; apk upgrade &amp;amp;&amp;amp; apk add wget}}&lt;br /&gt;
Then we make the directory for LLDAP to live in and install the software:&lt;br /&gt;
{{Cmd|mkdir /opt/lldap &amp;amp;&amp;amp; cd /opt/lldap}}&lt;br /&gt;
{{Cmd|wget https://github.com/lldap/lldap/releases/download/v0.5.0/amd64-lldap.tar.gz &amp;amp;&amp;amp; tar xzf amd64-lldap.tar.gz &amp;amp;&amp;amp; mv amd64-lldap/* . &amp;amp;&amp;amp; rn -rf amd64-lldap}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Configure =&lt;br /&gt;
To configure LLDAP we have to create a config file, and an rc file to start it automaticly upon boot:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cat &amp;lt;&amp;lt;EOF &amp;gt; /opt/lldap/lldap_config.toml&lt;br /&gt;
ldap_port = 3890&lt;br /&gt;
http_port = 17170&lt;br /&gt;
http_url = &amp;quot;https://domain.tld&amp;quot;&lt;br /&gt;
jwt_secret = &amp;quot;very-long-string&amp;quot;&lt;br /&gt;
ldap_base_dn = &amp;quot;dc=domain,dc=tld&amp;quot;&lt;br /&gt;
ldap_user_dn = &amp;quot;admin&amp;quot;&lt;br /&gt;
ldap_user_email = &amp;quot;admin@domain.tld&amp;quot;&lt;br /&gt;
ldap_user_pass = &amp;quot;very-strong-password&amp;quot;&lt;br /&gt;
database_url = &amp;quot;sqlite:///opt/lldap/users.db?mode=rwc&amp;quot;&lt;br /&gt;
key_seed = &amp;quot;random-string-again&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[smtp_options]&lt;br /&gt;
#enable_password_reset=true&lt;br /&gt;
#server=&amp;quot;smtp.gmail.com&amp;quot;&lt;br /&gt;
#port=587&lt;br /&gt;
#smtp_encryption = &amp;quot;TLS&amp;quot;&lt;br /&gt;
#user=&amp;quot;sender@gmail.com&amp;quot;&lt;br /&gt;
#password=&amp;quot;password&amp;quot;&lt;br /&gt;
#from=&amp;quot;LLDAP Admin &amp;lt;sender@gmail.com&amp;gt;&amp;quot;&lt;br /&gt;
#reply_to=&amp;quot;Do not reply &amp;lt;noreply@localhost&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[ldaps_options]&lt;br /&gt;
#enabled=true&lt;br /&gt;
#port=6360&lt;br /&gt;
## Certificate file.&lt;br /&gt;
#cert_file=&amp;quot;/data/cert.pem&amp;quot;&lt;br /&gt;
## Certificate key file.&lt;br /&gt;
#key_file=&amp;quot;/data/key.pem&amp;quot;&lt;br /&gt;
EOF&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Replace domain.tld with your chose domain name.&lt;br /&gt;
Next we need to create an openrc file so we can automaticly start lldap:&lt;br /&gt;
&lt;br /&gt;
{{Code|cat &amp;lt;&amp;lt;EOF &amp;gt; /etc/init.d/lldap&lt;br /&gt;
#!/sbin/openrc-run&lt;br /&gt;
&lt;br /&gt;
name=lldap&lt;br /&gt;
command=&amp;quot;/opt/lldap/lldap&amp;quot;&lt;br /&gt;
command_args=&amp;quot;run&amp;quot;&lt;br /&gt;
command_background=&amp;quot;yes&amp;quot;&lt;br /&gt;
pidfile=&amp;quot;/run/lldap.pid&amp;quot;&lt;br /&gt;
&lt;br /&gt;
depend() {&lt;br /&gt;
        need net&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
start_pre()&lt;br /&gt;
{&lt;br /&gt;
        cd /opt/lldap&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
This is not an extensive file, but it gets you running and ensures lldap starts and works correctly.&lt;br /&gt;
Now we need to add it to the default runlevel and start the service&lt;br /&gt;
{{Cmd|chmod +x /etc/init.d/lldap &amp;amp;&amp;amp; rc-update add lldap}}&lt;br /&gt;
&lt;br /&gt;
= Use =&lt;br /&gt;
To use LLDAP we can browse to http://&amp;lt;ip&amp;gt;:17170 and login with the credentials we specified in the config file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This is a basic configuration. You can now connect other services that support ldap logins to LLDAP.&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
* Some troubleshooting information&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Resources =&lt;br /&gt;
* https://github.com/lldap/lldap&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Server]]&lt;/div&gt;</summary>
		<author><name>Jhjacobs81</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Setting_up_a_LLDAP_server&amp;diff=27438</id>
		<title>Setting up a LLDAP server</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Setting_up_a_LLDAP_server&amp;diff=27438"/>
		<updated>2024-10-01T16:08:35Z</updated>

		<summary type="html">&lt;p&gt;Jhjacobs81: /* Configure */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= General =&lt;br /&gt;
LLDAP is a small LDAP server designed for directory services without the overhead of a full blown OpenLDAP server. LLDAP server is designed for easy management using a simple web gui. It lacks some of the features found in other directory servers, because its specificly designed for home use.&lt;br /&gt;
&lt;br /&gt;
= Install =&lt;br /&gt;
Installing LLDAP is fairly simple and can be done in less then 5 minutes. start by logging in as root:&lt;br /&gt;
{{Cmd|doas su -}}&lt;br /&gt;
Then we make sure the system is up to date and install wget:&lt;br /&gt;
{{Cmd|apk update &amp;amp;&amp;amp; apk upgrade &amp;amp;&amp;amp; apk add wget}}&lt;br /&gt;
Then we make the directory for LLDAP to live in and install the software:&lt;br /&gt;
{{Cmd|mkdir /opt/lldap &amp;amp;&amp;amp; cd /opt/lldap}}&lt;br /&gt;
{{Cmd|wget https://github.com/lldap/lldap/releases/download/v0.5.0/amd64-lldap.tar.gz &amp;amp;&amp;amp; tar xzf amd64-lldap.tar.gz &amp;amp;&amp;amp; mv amd64-lldap/* . &amp;amp;&amp;amp; rn -rf amd64-lldap}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Configure =&lt;br /&gt;
To configure LLDAP we have to create a config file, and an rc file to start it automaticly upon boot:&lt;br /&gt;
{{Code|cat &amp;lt;&amp;lt;EOF &amp;gt; /opt/lldap/lldap_config.toml&lt;br /&gt;
ldap_port = 3890&lt;br /&gt;
http_port = 17170&lt;br /&gt;
http_url = &amp;quot;https://domain.tld&amp;quot;&lt;br /&gt;
jwt_secret = &amp;quot;very-long-string&amp;quot;&lt;br /&gt;
ldap_base_dn = &amp;quot;dc=domain,dc=tld&amp;quot;&lt;br /&gt;
ldap_user_dn = &amp;quot;admin&amp;quot;&lt;br /&gt;
ldap_user_email = &amp;quot;admin@domain.tld&amp;quot;&lt;br /&gt;
ldap_user_pass = &amp;quot;very-strong-password&amp;quot;&lt;br /&gt;
database_url = &amp;quot;sqlite:///opt/lldap/users.db?mode=rwc&amp;quot;&lt;br /&gt;
key_seed = &amp;quot;random-string-again&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[smtp_options]&lt;br /&gt;
#enable_password_reset=true&lt;br /&gt;
#server=&amp;quot;smtp.gmail.com&amp;quot;&lt;br /&gt;
#port=587&lt;br /&gt;
#smtp_encryption = &amp;quot;TLS&amp;quot;&lt;br /&gt;
#user=&amp;quot;sender@gmail.com&amp;quot;&lt;br /&gt;
#password=&amp;quot;password&amp;quot;&lt;br /&gt;
#from=&amp;quot;LLDAP Admin &amp;lt;sender@gmail.com&amp;gt;&amp;quot;&lt;br /&gt;
#reply_to=&amp;quot;Do not reply &amp;lt;noreply@localhost&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[ldaps_options]&lt;br /&gt;
#enabled=true&lt;br /&gt;
#port=6360&lt;br /&gt;
## Certificate file.&lt;br /&gt;
#cert_file=&amp;quot;/data/cert.pem&amp;quot;&lt;br /&gt;
## Certificate key file.&lt;br /&gt;
#key_file=&amp;quot;/data/key.pem&amp;quot;&lt;br /&gt;
EOF&lt;br /&gt;
}}&lt;br /&gt;
Replace domain.tld with your chose domain name.&lt;br /&gt;
Next we need to create an openrc file so we can automaticly start lldap:&lt;br /&gt;
&lt;br /&gt;
{{Code|cat &amp;lt;&amp;lt;EOF &amp;gt; /etc/init.d/lldap&lt;br /&gt;
#!/sbin/openrc-run&lt;br /&gt;
&lt;br /&gt;
name=lldap&lt;br /&gt;
command=&amp;quot;/opt/lldap/lldap&amp;quot;&lt;br /&gt;
command_args=&amp;quot;run&amp;quot;&lt;br /&gt;
command_background=&amp;quot;yes&amp;quot;&lt;br /&gt;
pidfile=&amp;quot;/run/lldap.pid&amp;quot;&lt;br /&gt;
&lt;br /&gt;
depend() {&lt;br /&gt;
        need net&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
start_pre()&lt;br /&gt;
{&lt;br /&gt;
        cd /opt/lldap&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
This is not an extensive file, but it gets you running and ensures lldap starts and works correctly.&lt;br /&gt;
Now we need to add it to the default runlevel and start the service&lt;br /&gt;
{{Cmd|chmod +x /etc/init.d/lldap &amp;amp;&amp;amp; rc-update add lldap}}&lt;br /&gt;
&lt;br /&gt;
= Use =&lt;br /&gt;
To use LLDAP we can browse to http://&amp;lt;ip&amp;gt;:17170 and login with the credentials we specified in the config file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This is a basic configuration. You can now connect other services that support ldap logins to LLDAP.&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
* Some troubleshooting information&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Resources =&lt;br /&gt;
* https://github.com/lldap/lldap&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Server]]&lt;/div&gt;</summary>
		<author><name>Jhjacobs81</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Setting_up_a_LLDAP_server&amp;diff=27437</id>
		<title>Setting up a LLDAP server</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Setting_up_a_LLDAP_server&amp;diff=27437"/>
		<updated>2024-10-01T16:07:47Z</updated>

		<summary type="html">&lt;p&gt;Jhjacobs81: /* Configure */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= General =&lt;br /&gt;
LLDAP is a small LDAP server designed for directory services without the overhead of a full blown OpenLDAP server. LLDAP server is designed for easy management using a simple web gui. It lacks some of the features found in other directory servers, because its specificly designed for home use.&lt;br /&gt;
&lt;br /&gt;
= Install =&lt;br /&gt;
Installing LLDAP is fairly simple and can be done in less then 5 minutes. start by logging in as root:&lt;br /&gt;
{{Cmd|doas su -}}&lt;br /&gt;
Then we make sure the system is up to date and install wget:&lt;br /&gt;
{{Cmd|apk update &amp;amp;&amp;amp; apk upgrade &amp;amp;&amp;amp; apk add wget}}&lt;br /&gt;
Then we make the directory for LLDAP to live in and install the software:&lt;br /&gt;
{{Cmd|mkdir /opt/lldap &amp;amp;&amp;amp; cd /opt/lldap}}&lt;br /&gt;
{{Cmd|wget https://github.com/lldap/lldap/releases/download/v0.5.0/amd64-lldap.tar.gz &amp;amp;&amp;amp; tar xzf amd64-lldap.tar.gz &amp;amp;&amp;amp; mv amd64-lldap/* . &amp;amp;&amp;amp; rn -rf amd64-lldap}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Configure =&lt;br /&gt;
To configure LLDAP we have to create a config file, and an rc file to start it automaticly upon boot:&lt;br /&gt;
{{hc|cat &amp;lt;&amp;lt;EOF &amp;gt; /opt/lldap/lldap_config.toml&lt;br /&gt;
ldap_port = 3890&lt;br /&gt;
http_port = 17170&lt;br /&gt;
http_url = &amp;quot;https://domain.tld&amp;quot;&lt;br /&gt;
jwt_secret = &amp;quot;very-long-string&amp;quot;&lt;br /&gt;
ldap_base_dn = &amp;quot;dc=domain,dc=tld&amp;quot;&lt;br /&gt;
ldap_user_dn = &amp;quot;admin&amp;quot;&lt;br /&gt;
ldap_user_email = &amp;quot;admin@domain.tld&amp;quot;&lt;br /&gt;
ldap_user_pass = &amp;quot;very-strong-password&amp;quot;&lt;br /&gt;
database_url = &amp;quot;sqlite:///opt/lldap/users.db?mode=rwc&amp;quot;&lt;br /&gt;
key_seed = &amp;quot;random-string-again&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[smtp_options]&lt;br /&gt;
#enable_password_reset=true&lt;br /&gt;
#server=&amp;quot;smtp.gmail.com&amp;quot;&lt;br /&gt;
#port=587&lt;br /&gt;
#smtp_encryption = &amp;quot;TLS&amp;quot;&lt;br /&gt;
#user=&amp;quot;sender@gmail.com&amp;quot;&lt;br /&gt;
#password=&amp;quot;password&amp;quot;&lt;br /&gt;
#from=&amp;quot;LLDAP Admin &amp;lt;sender@gmail.com&amp;gt;&amp;quot;&lt;br /&gt;
#reply_to=&amp;quot;Do not reply &amp;lt;noreply@localhost&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[ldaps_options]&lt;br /&gt;
#enabled=true&lt;br /&gt;
#port=6360&lt;br /&gt;
## Certificate file.&lt;br /&gt;
#cert_file=&amp;quot;/data/cert.pem&amp;quot;&lt;br /&gt;
## Certificate key file.&lt;br /&gt;
#key_file=&amp;quot;/data/key.pem&amp;quot;&lt;br /&gt;
EOF&lt;br /&gt;
}}&lt;br /&gt;
Replace domain.tld with your chose domain name.&lt;br /&gt;
Next we need to create an openrc file so we can automaticly start lldap:&lt;br /&gt;
&lt;br /&gt;
{{hc|cat &amp;lt;&amp;lt;EOF &amp;gt; /etc/init.d/lldap&lt;br /&gt;
#!/sbin/openrc-run&lt;br /&gt;
&lt;br /&gt;
name=lldap&lt;br /&gt;
command=&amp;quot;/opt/lldap/lldap&amp;quot;&lt;br /&gt;
command_args=&amp;quot;run&amp;quot;&lt;br /&gt;
command_background=&amp;quot;yes&amp;quot;&lt;br /&gt;
pidfile=&amp;quot;/run/lldap.pid&amp;quot;&lt;br /&gt;
&lt;br /&gt;
depend() {&lt;br /&gt;
        need net&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
start_pre()&lt;br /&gt;
{&lt;br /&gt;
        cd /opt/lldap&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
This is not an extensive file, but it gets you running and ensures lldap starts and works correctly.&lt;br /&gt;
Now we need to add it to the default runlevel and start the service&lt;br /&gt;
{{Cmd|chmod +x /etc/init.d/lldap &amp;amp;&amp;amp; rc-update add lldap}}&lt;br /&gt;
&lt;br /&gt;
= Use =&lt;br /&gt;
To use LLDAP we can browse to http://&amp;lt;ip&amp;gt;:17170 and login with the credentials we specified in the config file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This is a basic configuration. You can now connect other services that support ldap logins to LLDAP.&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
* Some troubleshooting information&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Resources =&lt;br /&gt;
* https://github.com/lldap/lldap&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Server]]&lt;/div&gt;</summary>
		<author><name>Jhjacobs81</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Setting_up_a_LLDAP_server&amp;diff=27436</id>
		<title>Setting up a LLDAP server</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Setting_up_a_LLDAP_server&amp;diff=27436"/>
		<updated>2024-10-01T16:05:06Z</updated>

		<summary type="html">&lt;p&gt;Jhjacobs81: Created page with &amp;quot;= General = LLDAP is a small LDAP server designed for directory services without the overhead of a full blown OpenLDAP server. LLDAP server is designed for easy management using a simple web gui. It lacks some of the features found in other directory servers, because its specificly designed for home use.  = Install = Installing LLDAP is fairly simple and can be done in less then 5 minutes. start by logging in as root: {{Cmd|doas su -}} Then we make sure the system is up...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= General =&lt;br /&gt;
LLDAP is a small LDAP server designed for directory services without the overhead of a full blown OpenLDAP server. LLDAP server is designed for easy management using a simple web gui. It lacks some of the features found in other directory servers, because its specificly designed for home use.&lt;br /&gt;
&lt;br /&gt;
= Install =&lt;br /&gt;
Installing LLDAP is fairly simple and can be done in less then 5 minutes. start by logging in as root:&lt;br /&gt;
{{Cmd|doas su -}}&lt;br /&gt;
Then we make sure the system is up to date and install wget:&lt;br /&gt;
{{Cmd|apk update &amp;amp;&amp;amp; apk upgrade &amp;amp;&amp;amp; apk add wget}}&lt;br /&gt;
Then we make the directory for LLDAP to live in and install the software:&lt;br /&gt;
{{Cmd|mkdir /opt/lldap &amp;amp;&amp;amp; cd /opt/lldap}}&lt;br /&gt;
{{Cmd|wget https://github.com/lldap/lldap/releases/download/v0.5.0/amd64-lldap.tar.gz &amp;amp;&amp;amp; tar xzf amd64-lldap.tar.gz &amp;amp;&amp;amp; mv amd64-lldap/* . &amp;amp;&amp;amp; rn -rf amd64-lldap}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Configure =&lt;br /&gt;
To configure LLDAP we have to create a config file, and an rc file to start it automaticly upon boot:&lt;br /&gt;
{{Cmd|cat &amp;lt;&amp;lt;EOF &amp;gt; /opt/lldap/lldap_config.toml&lt;br /&gt;
ldap_port = 3890&lt;br /&gt;
http_port = 17170&lt;br /&gt;
http_url = &amp;quot;https://domain.tld&amp;quot;&lt;br /&gt;
jwt_secret = &amp;quot;very-long-string&amp;quot;&lt;br /&gt;
ldap_base_dn = &amp;quot;dc=domain,dc=tld&amp;quot;&lt;br /&gt;
ldap_user_dn = &amp;quot;admin&amp;quot;&lt;br /&gt;
ldap_user_email = &amp;quot;admin@domain.tld&amp;quot;&lt;br /&gt;
ldap_user_pass = &amp;quot;very-strong-password&amp;quot;&lt;br /&gt;
database_url = &amp;quot;sqlite:///opt/lldap/users.db?mode=rwc&amp;quot;&lt;br /&gt;
key_seed = &amp;quot;random-string-again&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[smtp_options]&lt;br /&gt;
#enable_password_reset=true&lt;br /&gt;
#server=&amp;quot;smtp.gmail.com&amp;quot;&lt;br /&gt;
#port=587&lt;br /&gt;
#smtp_encryption = &amp;quot;TLS&amp;quot;&lt;br /&gt;
#user=&amp;quot;sender@gmail.com&amp;quot;&lt;br /&gt;
#password=&amp;quot;password&amp;quot;&lt;br /&gt;
#from=&amp;quot;LLDAP Admin &amp;lt;sender@gmail.com&amp;gt;&amp;quot;&lt;br /&gt;
#reply_to=&amp;quot;Do not reply &amp;lt;noreply@localhost&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[ldaps_options]&lt;br /&gt;
#enabled=true&lt;br /&gt;
#port=6360&lt;br /&gt;
## Certificate file.&lt;br /&gt;
#cert_file=&amp;quot;/data/cert.pem&amp;quot;&lt;br /&gt;
## Certificate key file.&lt;br /&gt;
#key_file=&amp;quot;/data/key.pem&amp;quot;&lt;br /&gt;
EOF&lt;br /&gt;
}}&lt;br /&gt;
Replace domain.tld with your chose domain name.&lt;br /&gt;
Next we need to create an openrc file so we can automaticly start lldap:&lt;br /&gt;
&lt;br /&gt;
{{Cmd|cat &amp;lt;&amp;lt;EOF &amp;gt; /etc/init.d/lldap&lt;br /&gt;
#!/sbin/openrc-run&lt;br /&gt;
&lt;br /&gt;
name=lldap&lt;br /&gt;
command=&amp;quot;/opt/lldap/lldap&amp;quot;&lt;br /&gt;
command_args=&amp;quot;run&amp;quot;&lt;br /&gt;
command_background=&amp;quot;yes&amp;quot;&lt;br /&gt;
pidfile=&amp;quot;/run/lldap.pid&amp;quot;&lt;br /&gt;
&lt;br /&gt;
depend() {&lt;br /&gt;
        need net&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
start_pre()&lt;br /&gt;
{&lt;br /&gt;
        cd /opt/lldap&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
This is not an extensive file, but it gets you running and ensures lldap starts and works correctly.&lt;br /&gt;
Now we need to add it to the default runlevel and start the service&lt;br /&gt;
{{Cmd|chmod +x /etc/init.d/lldap &amp;amp;&amp;amp; rc-update add lldap}}&lt;br /&gt;
&lt;br /&gt;
= Use =&lt;br /&gt;
To use LLDAP we can browse to http://&amp;lt;ip&amp;gt;:17170 and login with the credentials we specified in the config file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This is a basic configuration. You can now connect other services that support ldap logins to LLDAP.&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
* Some troubleshooting information&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Resources =&lt;br /&gt;
* https://github.com/lldap/lldap&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Server]]&lt;/div&gt;</summary>
		<author><name>Jhjacobs81</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Tutorials_and_Howtos&amp;diff=27435</id>
		<title>Tutorials and Howtos</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Tutorials_and_Howtos&amp;diff=27435"/>
		<updated>2024-10-01T15:39:21Z</updated>

		<summary type="html">&lt;p&gt;Jhjacobs81: /* Other Servers */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Todo|This material has been re-organized..., but grouping should be checked: &#039;&#039;&#039;Howtos are smaller articles&#039;&#039;&#039; and &#039;&#039;&#039;tutorials are more detailed document&#039;&#039;&#039;}}&lt;br /&gt;
&lt;br /&gt;
[[Image:package_edutainment.svg|right|link=]]&lt;br /&gt;
{{TOC left}}&lt;br /&gt;
&#039;&#039;&#039;Welcome to Tutorials and Howtos, a place of basic and advanced configuration tasks for your Alpine Linux.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The tutorials are hands-on&#039;&#039;&#039; and the reader is expected to try and achieve the goals described in each step, possibly with the help of a good example. The output in one step is the starting point for the following step.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Howtos are smaller articles&#039;&#039;&#039; explaining how to perform a particular task with Alpine Linux, that expects a minimal knowledge from reader to perform actions.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;IMPORTANT:&#039;&#039;&#039; contributions on those pages must be complete articles as well as requesting topics to be covered, don&#039;t override already made contributions. If you want to request a topic, please add your request in this page&#039;s [[Talk:Tutorials_and_Howtos|Discussion]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Clear}}&lt;br /&gt;
&lt;br /&gt;
= Howtos =&lt;br /&gt;
&lt;br /&gt;
== Applications ==&lt;br /&gt;
&lt;br /&gt;
=== Miscellaneous ===&lt;br /&gt;
&lt;br /&gt;
* [[Ansible]] &#039;&#039;(Configuration management)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Monitoring ===&lt;br /&gt;
&lt;br /&gt;
* [[Awstats]] &#039;&#039;(Free log file analyzer)&#039;&#039;&lt;br /&gt;
* [[Cacti: traffic analysis and monitoring network]] &#039;&#039;(Front-end for rrdtool networking monitor)&#039;&#039;&lt;br /&gt;
* [[Cvechecker]] &#039;&#039;(Compare installed packages for Common Vulnerabilities Exposure)&#039;&#039; &amp;lt;!-- Monitoring and Security --&amp;gt;&lt;br /&gt;
* [[Linfo]]&lt;br /&gt;
* [[Obtaining user information via SNMP]] &#039;&#039;(Using squark-auth-snmp as a Squid authentication helper)&#039;&#039; &amp;lt;!-- Networking and Server, &amp;lt;== Using squark-auth-snmp --&amp;gt;&lt;br /&gt;
* [[PhpSysInfo]] &#039;&#039;(A simple application that displays information about the host it&#039;s running on)&#039;&#039;&lt;br /&gt;
* [[Matomo]] &#039;&#039;(A real time web analytics software program)&#039;&#039;&lt;br /&gt;
* [[Setting up A Network Monitoring and Inventory System]] &#039;&#039;(Nagios + OpenAudit and related components)&#039;&#039; &amp;lt;!-- draft, solution, Networking and Monitoring and Server --&amp;gt;&lt;br /&gt;
** [[Setting up NRPE daemon]] &#039;&#039;(Performs remote Nagios checks)&#039;&#039; &amp;lt;!-- Networking and Monitoring --&amp;gt;&lt;br /&gt;
* [[Setting Up Fprobe And Ntop|Ntop]] &#039;&#039;(NetFlow collection and analysis using a remote fprobe instance; for alpine 3.10-3.12 only)&#039;&#039; &amp;lt;!-- Networking and Monitoring --&amp;gt;&lt;br /&gt;
* [[Setting up lm_sensors]]&lt;br /&gt;
* [[SqStat]] &#039;&#039;(Script to look at active squid users connections)&#039;&#039;&lt;br /&gt;
* [[Traffic monitoring]] &amp;lt;!-- Networking and Monitoring --&amp;gt;&lt;br /&gt;
** [[Setting up monitoring using rrdtool (and rrdcollect)]]&lt;br /&gt;
** [[Setting up traffic monitoring using rrdtool (and snmp)]] &amp;lt;!-- Monitoring --&amp;gt;&lt;br /&gt;
* [[Zabbix|Zabbix - the professional complete manager]] &#039;&#039;(Monitor and track the status of network services and hardware)&#039;&#039;&lt;br /&gt;
* [[ZoneMinder video camera security and surveillance]]&lt;br /&gt;
&lt;br /&gt;
=== Networking ===&lt;br /&gt;
&lt;br /&gt;
* Alpine Wall &#039;&#039;(a new firewall management framework)&#039;&#039;&lt;br /&gt;
** [[Alpine Wall]]&lt;br /&gt;
** [https://git.alpinelinux.org/awall/about/ Alpine Wall User&#039;s Guide]&lt;br /&gt;
** [[How-To Alpine Wall]]&lt;br /&gt;
* [[Freeradius Active Directory Integration]]&lt;br /&gt;
* [[GNUnet]]&lt;br /&gt;
* [[Setting up a OpenVPN server|OpenVPN server]] &#039;&#039;(Allowing single users or devices to remotely connect to your network)&#039;&#039;&lt;br /&gt;
* [[OpenVSwitch]]&lt;br /&gt;
* [[Using Alpine on Windows domain with IPSEC isolation]]&lt;br /&gt;
* [[Configure a Wireguard interface (wg)|Wireguard]]&lt;br /&gt;
&lt;br /&gt;
=== Telephony ===&lt;br /&gt;
&lt;br /&gt;
* [[FreePBX|FreePBX on Alpine Linux]]&lt;br /&gt;
* [[Setting up Zaptel/Asterisk on Alpine]]&lt;br /&gt;
* [[Kamailio]] &#039;&#039;(SIP Server, formerly OpenSER)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Backup and data migration ==&lt;br /&gt;
&lt;br /&gt;
* [[Alpine local backup|Alpine local backup (lbu)]] &#039;&#039;(Permanently store your modifications in case your box needs reboot)&#039;&#039;&lt;br /&gt;
** [[Back Up a Flash Memory Installation]]&lt;br /&gt;
** [[Manually editing a existing apkovl]]&lt;br /&gt;
* [[Migrating data]]&lt;br /&gt;
* [[Rsnapshot]] - setting up periodic backups&lt;br /&gt;
&lt;br /&gt;
== Desktop ==&lt;br /&gt;
* [[Daily driver guide]]&lt;br /&gt;
* [[Alpine and UEFI]]&lt;br /&gt;
* [[Default applications]]&lt;br /&gt;
* Desktop cloud&lt;br /&gt;
** [[Nextcloud]] &#039;&#039;(Self hostable cloud suite - Dropbox Alternative)&#039;&#039;&lt;br /&gt;
* [[Desktop environments and Window managers]] (overall information only)&lt;br /&gt;
* [[Gaming on Alpine]]&lt;br /&gt;
* [[Printer Setup]]&lt;br /&gt;
* [[Remote Desktop Server]]&lt;br /&gt;
* Sound Systems&lt;br /&gt;
** [[ALSA]]&lt;br /&gt;
** [[PipeWire]]&lt;br /&gt;
** [[PulseAudio]]&lt;br /&gt;
&lt;br /&gt;
== Power management ==&lt;br /&gt;
&lt;br /&gt;
* [[Configure action when power-button is pressed]]&lt;br /&gt;
* [[Suspend on LID close]]&lt;br /&gt;
* [[Configure Wake-on-LAN]]&lt;br /&gt;
&lt;br /&gt;
== Networking ==&lt;br /&gt;
&lt;br /&gt;
* [[Bluetooth]] - Instructions for installing and configuring Bluetooth&lt;br /&gt;
* [[Bonding]] - Bond (or aggregate) multiple ethernet interfaces&lt;br /&gt;
* [[Bridge]] - Configuring a network bridge&lt;br /&gt;
** [[Bridge wlan0 to eth0]]&lt;br /&gt;
* [[Configure Networking]]&lt;br /&gt;
* [[How to configure static routes]]&lt;br /&gt;
* Modem&lt;br /&gt;
** [[Using HSDPA modem]]&lt;br /&gt;
** [[Using serial modem]]&lt;br /&gt;
* [[mDNS]] - Howto implement multicast DNS resolution in Alpine. &lt;br /&gt;
* [[Multi ISP]] &#039;&#039;(Dual-ISP setup with load-balancing and automatic failover)&#039;&#039;&lt;br /&gt;
* [[PXE boot]]&lt;br /&gt;
* Wi-Fi&lt;br /&gt;
** [[Wi-Fi|Connecting to a wireless access point]]&lt;br /&gt;
** [[How to setup a wireless access point]] &#039;&#039;(Setting up Secure Wireless AP w/ WPA encryption with bridge to wired network)&#039;&#039;&lt;br /&gt;
* [[VLAN]]&lt;br /&gt;
&lt;br /&gt;
== Other Architectures ==&lt;br /&gt;
&lt;br /&gt;
=== ARM ===&lt;br /&gt;
&lt;br /&gt;
* [[Alpine on ARM]]&lt;br /&gt;
&lt;br /&gt;
==== Raspberry Pi ====&lt;br /&gt;
&lt;br /&gt;
* [[Raspberry Pi Bluetooth Speaker|Raspberry Pi - Bluetooth Speaker]]&lt;br /&gt;
* [[Raspberry Pi|Raspberry Pi - Installation]]&lt;br /&gt;
* [[Linux Router with VPN on a Raspberry Pi|Raspberry Pi - Router with VPN]]&lt;br /&gt;
* [[Linux Router with VPN on a Raspberry Pi (IPv6)|Raspberry Pi - Router with VPN (IPv6)]]&lt;br /&gt;
* [[Classic install or sys mode on Raspberry Pi|Raspberry Pi - Sys mode install]]&lt;br /&gt;
* [[Raspberry Pi LVM on LUKS|Raspberry Pi - Sys mode install - LVM on LUKS]]&lt;br /&gt;
* [[RPI Video Receiver|Raspberry Pi - Video Receiver]] &#039;&#039;(network video decoder using Rasperry Pi and omxplayer)&#039;&#039;&lt;br /&gt;
* [[Raspberry Pi 3 - Browser Client]] - kiosk or digital sign&lt;br /&gt;
* [[Raspberry Pi 3 - Configuring it as wireless access point -AP Mode]]&lt;br /&gt;
* [[Raspberry Pi 3 - Setting Up Bluetooth]]&lt;br /&gt;
* [[Raspberry Pi 4 - Persistent system acting as a NAS and Time Machine]]&lt;br /&gt;
* [[How to set up Alpine as a wireless router|Raspberry Pi Zero W - Wireless router]] &#039;&#039;(Setting up a firewalled, Wireless AP with wired network on a Pi Zero W)&#039;&#039;&lt;br /&gt;
* [[RPI Video Receiver]]&lt;br /&gt;
&lt;br /&gt;
=== IBM Z (IBM z Systems) ===&lt;br /&gt;
&lt;br /&gt;
* [[s390x|s390x - Installation]]&lt;br /&gt;
&lt;br /&gt;
=== PowerPC ===&lt;br /&gt;
&lt;br /&gt;
* [[Ppc64le|Powerpc64le - Installation]]&lt;br /&gt;
&lt;br /&gt;
== Post-Install ==&lt;br /&gt;
&lt;br /&gt;
* [[CPU frequency scaling]]&lt;br /&gt;
* [[Repositories#Enabling_the_community_repository|Enable Community repository]] &#039;&#039;(Providing additional packages)&#039;&#039;&lt;br /&gt;
* [[Enable Serial Console on Boot]]&lt;br /&gt;
* [[Alpine Linux Init System|Init System (OpenRC)]] &#039;&#039;(Configure a service to automatically boot at next reboot)&#039;&#039;&lt;br /&gt;
** [[Multiple Instances of Services|Init System - Multiple Instances of Services]]&lt;br /&gt;
** [[Writing Init Scripts|Init System - Writing Init Scripts]]&lt;br /&gt;
* [[Installing Oracle Java|Oracle Java (installation)]]&lt;br /&gt;
* [[IGMPproxy]]&lt;br /&gt;
* [[Alpine Package Keeper|Package Management (apk)]] &#039;&#039;(How to add/remove packages on your Alpine)&#039;&#039;&lt;br /&gt;
** [[Comparison with other distros|Package Management - Comparison with other distros]]&lt;br /&gt;
* [[Running glibc programs]]&lt;br /&gt;
* [[Setting up a new user]]&lt;br /&gt;
* [[Upgrading Alpine]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Remote Administration ==&lt;br /&gt;
&lt;br /&gt;
* ACF&lt;br /&gt;
** [[Changing passwords for ACF|ACF - changing passwords]]&lt;br /&gt;
** [[Generating SSL certs with ACF]] &amp;lt;!-- Generating SSL certs with ACF 1.9 --&amp;gt;&lt;br /&gt;
** [[setup-acf| ACF - setup]] &#039;&#039;(Configures ACF (webconfiguration/webmin) so you can manage your box through https)&#039;&#039;&lt;br /&gt;
* [[Setting up a SSH server]] &#039;&#039;(Using ssh is a good way to administer your box remotely)&#039;&#039;&lt;br /&gt;
** [[HOWTO OpenSSH 2FA with password and Google Authenticator |OpenSSH 2FA]] &#039;&#039;(A simple two factor setup for OpenSSH)&#039;&#039;&lt;br /&gt;
* [[OpenVCP]] &#039;&#039;(VServer Control Panel)&#039;&#039;&lt;br /&gt;
* [[PhpMyAdmin]] &#039;&#039;(Web-based administration tool for MYSQL)&#039;&#039;&lt;br /&gt;
* [[PhpPgAdmin]] &#039;&#039;(Web-based administration tool for PostgreSQL)&#039;&#039;&lt;br /&gt;
* [[Webmin]] &#039;&#039;(A web-based interface for Linux system)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Server ==&lt;br /&gt;
&lt;br /&gt;
* [[Hosting services on Alpine]] &#039;&#039;(Hosting mail, webservices and other services)&#039;&#039;&lt;br /&gt;
* [[Hosting Web/Email services on Alpine]]&lt;br /&gt;
&lt;br /&gt;
=== DNS ===&lt;br /&gt;
&lt;br /&gt;
* [[DNSCrypt-Proxy]] &#039;&#039;Encrypt and authenticate DNS calls from your system&#039;&#039;&lt;br /&gt;
* [[Setting up nsd DNS server]]&lt;br /&gt;
* [[Setting up unbound DNS server]]&lt;br /&gt;
* [[TinyDNS Format]]&lt;br /&gt;
&lt;br /&gt;
=== HTTP ===&lt;br /&gt;
&lt;br /&gt;
* [[Apache]]&lt;br /&gt;
** [[Apache with php-fpm]]&lt;br /&gt;
** [[Setting Up Apache with PHP]]&lt;br /&gt;
** [[Apache authentication: NTLM Single Signon]]&lt;br /&gt;
* [[Darkhttpd]]&lt;br /&gt;
* [[Lighttpd]]&lt;br /&gt;
** [[Lighttpd Advanced security]]&lt;br /&gt;
** [[Setting Up Lighttpd With FastCGI]]&lt;br /&gt;
* [[Nginx]]&lt;br /&gt;
** [[Nginx as reverse proxy with acme (letsencrypt)]]&lt;br /&gt;
** [[Nginx with PHP]]&lt;br /&gt;
* Squid Proxy&lt;br /&gt;
** [[Obtaining user information via SNMP]] &#039;&#039;(Using squark-auth-snmp as a Squid authentication helper)&#039;&#039; &amp;lt;!-- Networking and Server, &amp;lt;== Using squark-auth-snmp --&amp;gt;&lt;br /&gt;
** [[Setting up Explicit Squid Proxy]]&lt;br /&gt;
** [[Setting up Transparent Squid Proxy]] &#039;&#039;(Covers Squid proxy and URL Filtering system)&#039;&#039;&lt;br /&gt;
** [[SqStat]] &#039;&#039;(Script to look at active squid users connections)&#039;&#039;&lt;br /&gt;
* [[Tomcat]]&lt;br /&gt;
&lt;br /&gt;
==== Hostable Content ====&lt;br /&gt;
&lt;br /&gt;
* [[DokuWiki]]&lt;br /&gt;
* [[Drupal]] &#039;&#039;(Content Management System (CMS) written in PHP)&#039;&#039;&lt;br /&gt;
* [[Kopano]] &#039;&#039;(Microsoft Outlook compatible Groupware)&#039;&#039;&lt;br /&gt;
* [[Mahara]] &#039;&#039;(E-portfolio and social networking system)&#039;&#039;&lt;br /&gt;
* [[MediaWiki]] &#039;&#039;(Free web-based wiki software application)&#039;&#039;&lt;br /&gt;
* [[Pastebin]] &#039;&#039;(Pastebin software application)&#039;&#039;&lt;br /&gt;
* [[WordPress]] &#039;&#039;(Web software to create website or blog)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== IRC ===&lt;br /&gt;
&lt;br /&gt;
* [[NgIRCd]] &#039;&#039;(Server for Internet Relay Chat/IRC)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Mail ===&lt;br /&gt;
&lt;br /&gt;
* Exim/Dovecot&lt;br /&gt;
** [[Small-Time Email with Exim and Dovecot]] &#039;&#039;(A simple configuration for your home network.)&lt;br /&gt;
** [[Setting up dovecot with imap and tls]]&lt;br /&gt;
* [[relay email to gmail (msmtp, mailx, sendmail]]&lt;br /&gt;
* [[Roundcube]] &#039;&#039;(Webmail system)&#039;&#039;&lt;br /&gt;
* [[Setting up postfix with virtual domains]]&lt;br /&gt;
* Server protection&lt;br /&gt;
** [[Setting up clamsmtp]]&lt;br /&gt;
&lt;br /&gt;
=== Other Servers ===&lt;br /&gt;
&lt;br /&gt;
* [[Chrony and GPSD | Chrony, gpsd, and a garmin LVC 18 as a Stratum 1 NTP source ]]&lt;br /&gt;
* [[Glpi]] &#039;&#039;(Manage inventory of technical resources)&#039;&#039;&lt;br /&gt;
* [[How to setup a Alpine Linux mirror]]&lt;br /&gt;
* [[Setting up an NFS server|nfs-server]]&lt;br /&gt;
* [[Odoo]]&lt;br /&gt;
* [[Configure OpenLDAP | OpenLDAP]] &#039;&#039;(Installing and configuring the Alpine package for OpenLDAP)&#039;&#039;&lt;br /&gt;
* [[Setting up a LLDAP server|lldap-server]] &#039;&#039;(Directory Server)&#039;&#039;&lt;br /&gt;
* [[Setting up a samba-ad-dc|samba-ad-dc]] &#039;&#039;(Active Directory compatible domain controller)&#039;&#039;&lt;br /&gt;
* [[Setting up a Samba server|samba-server]] &#039;&#039;(standard file sharing)&#039;&#039;&lt;br /&gt;
* [[Setting up Transmission (bittorrent) with Clutch WebUI]]&lt;br /&gt;
&lt;br /&gt;
=== Software development ===&lt;br /&gt;
&lt;br /&gt;
* [[Cgit]]&lt;br /&gt;
* [[OsTicket]] &#039;&#039;(Ticket system)&#039;&#039;&lt;br /&gt;
* [[Patchwork]] &#039;&#039;(Patch review management system)&#039;&#039;&lt;br /&gt;
* [[Redmine]] &#039;&#039;(Project management system)&#039;&#039;&lt;br /&gt;
* [[Request Tracker]] &#039;&#039;(Ticket system)&#039;&#039;&lt;br /&gt;
* [[Setting up trac wiki|Trac]] &#039;&#039;(Enhanced wiki and issue tracking system for software development projects)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Storage ==&lt;br /&gt;
&lt;br /&gt;
* [[Setting up disks manually|Disk setup (manual)]]&lt;br /&gt;
* [[Filesystems]]&lt;br /&gt;
** [[Burning ISOs]]&lt;br /&gt;
* [[Setting up iSCSI|iSCSI Setup]]&lt;br /&gt;
** [[iSCSI Raid and Clustered File Systems]]&lt;br /&gt;
** [[Linux iSCSI Target (TCM)|iSCSI Target (TCM)/LinuxIO (LIO)]]&lt;br /&gt;
** [[Linux iSCSI Target (tgt)|User space iSCSI Target (tgt)]]&lt;br /&gt;
* [[Setting up Logical Volumes with LVM|LVM Setup]]&lt;br /&gt;
** [[Setting up LVM on GPT-labeled disks|LVM on GPT-labeled disks]]&lt;br /&gt;
** [[Installing on GPT LVM|LVM on GPT-labeled disks (updated)]]&lt;br /&gt;
** [[LVM on LUKS]]&lt;br /&gt;
* RAID&lt;br /&gt;
** [[Raid Administration]]&lt;br /&gt;
** [[Setting up a software RAID array]]&lt;br /&gt;
* ZFS&lt;br /&gt;
** [[Root on ZFS with native encryption]]&lt;br /&gt;
** [[Setting up ZFS on LUKS]]&lt;br /&gt;
** [[Setting up ZFS with native encryption]]&lt;br /&gt;
** [[ZFS scrub and trim]]&lt;br /&gt;
* [[CEPH|CEPH]]&lt;br /&gt;
&lt;br /&gt;
== Virtualization ==&lt;br /&gt;
&lt;br /&gt;
* [[Docker]]&lt;br /&gt;
* [[Installing Alpine in a virtual machine]]&lt;br /&gt;
** [[Install Alpine on VMware ESXi]]&lt;br /&gt;
* [[KVM]] &#039;&#039;(Setting up Alpine as a KVM hypervisor)&#039;&#039;&lt;br /&gt;
* [[LXC]] &#039;&#039;(Setting up a Linux container in Alpine Linux)&#039;&#039;&lt;br /&gt;
* [[QEMU]]&lt;br /&gt;
* Xen&lt;br /&gt;
** [[Xen Dom0]] &#039;&#039;(Setting up Alpine as a dom0 for Xen hypervisor)&#039;&#039;&lt;br /&gt;
** [[Xen Dom0 on USB or SD]]&lt;br /&gt;
** [[Create Alpine Linux PV DomU|Xen DomU (paravirtualized)]]&lt;br /&gt;
** [[Xen LiveCD]]&lt;br /&gt;
** [[Xen PCI Passthrough]]&lt;br /&gt;
&lt;br /&gt;
= Tutorials =&lt;br /&gt;
&lt;br /&gt;
== Miscellaneous ==&lt;br /&gt;
&lt;br /&gt;
* [[TTY_Autologin|TTY Autologin]]&lt;br /&gt;
* [[Kexec|Faster rebooting with kexec]]&lt;br /&gt;
* [[Dynamic Multipoint VPN (DMVPN)]] combined with [[Small Office Services]]&lt;br /&gt;
* [[DIY Fully working Alpine Linux for Allwinner and Other ARM SOCs]]&lt;br /&gt;
* [[Fault Tolerant Routing with Alpine Linux]]&lt;br /&gt;
* [[High Availability High Performance Web Cache]] &#039;&#039;(uCarp + HAProxy for High Availability Services such as Squid web proxy)&#039;&#039;&lt;br /&gt;
* [[Linux iSCSI Target (TCM)]]&lt;br /&gt;
* [[ISP Mail Server 3.x HowTo]]] &#039;&#039;(Postfix+PostfixAdmin+DoveCot+Roundcube+ClamAV+Spamd - A full-service ISP mail server)&#039;&#039;&lt;br /&gt;
* [[Replacing non-Alpine Linux with Alpine remotely]]&lt;br /&gt;
* [[Setting up A Network Monitoring and Inventory System]] &#039;&#039;(Nagios + OpenAudit and related components)&#039;&#039; &amp;lt;!-- draft --&amp;gt;&lt;br /&gt;
* [[Streaming Security Camera Video with VLC]]&lt;br /&gt;
* [[Install Alpine on a btrfs filesystem with refind as boot manager]]&lt;br /&gt;
&lt;br /&gt;
== Newbie corner ==&lt;br /&gt;
&lt;br /&gt;
* [[How to get regular stuff working]] &#039;&#039;some notes on need-to-know topics&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Servers ==&lt;br /&gt;
&lt;br /&gt;
* [[Alpine production deploy]]&lt;br /&gt;
** [[Production Web server: Lighttpd|Production web server: Lighttpd‎‎]]&lt;br /&gt;
** [[MySQL|Production database: MySQL]]&lt;br /&gt;
** [[Production LAMP system: Lighttpd + PHP + MySQL‎‎]]&lt;br /&gt;
* Alpine production monitoring&lt;br /&gt;
** [[Cacti: traffic analysis and monitoring network]]&lt;br /&gt;
** [[Zabbix|Zabbix - the professional complete manager]]&lt;br /&gt;
* Kubernetes&lt;br /&gt;
** [[K8s]] Building a K8s Cluster on Alpine Linux&lt;br /&gt;
&lt;br /&gt;
== Security ==&lt;br /&gt;
&lt;br /&gt;
* [[Securing Alpine Linux]] How to Secure Alpine Linux using Security Technical Implementation Guides (STIGs)&lt;/div&gt;</summary>
		<author><name>Jhjacobs81</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Postgresql_16&amp;diff=26869</id>
		<title>Postgresql 16</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Postgresql_16&amp;diff=26869"/>
		<updated>2024-06-30T12:28:57Z</updated>

		<summary type="html">&lt;p&gt;Jhjacobs81: /* modify the pg_hba.conf file */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= General = &lt;br /&gt;
PostgreSQL is a well known opensource database that scales well and is easy to use. In Alpine v3.20 we can install the latest version using the package postgresql16&lt;br /&gt;
&lt;br /&gt;
= Install =&lt;br /&gt;
{{Cmd|apk add postgresql16 postgresql16-contrib postgresql16-openrc}}&lt;br /&gt;
{{Cmd|rc-update add postgresql}}&lt;br /&gt;
{{Cmd|rc-service postgresql start}}&lt;br /&gt;
&lt;br /&gt;
This will start the postgresql 16 server and perform some initial configuration. &lt;br /&gt;
&lt;br /&gt;
= Configure =&lt;br /&gt;
Login as the postgres user and start psql to create a new user and database:&lt;br /&gt;
{{Cmd|su postgres}}&lt;br /&gt;
{{Cmd|psql}}&lt;br /&gt;
{{Cmd|create user user with encrypted password &#039;password&#039;;}}&lt;br /&gt;
{{Cmd|create database database;}}&lt;br /&gt;
{{Cmd|grant all privileges on database database to user;}}&lt;br /&gt;
&lt;br /&gt;
= Use =&lt;br /&gt;
By default only local access is allowed to PostgreSQL. To allow other networked services to access the database we need to configure PostgreSQL to allow external connections.&lt;br /&gt;
&lt;br /&gt;
== modify the postgresql.conf file ==&lt;br /&gt;
{{Cmd|nano /etc/postgresql16/postgresql.conf}}&lt;br /&gt;
Find the line that starts with &amp;lt;pre&amp;gt;#listen_addresses = &#039;localhost&#039;&amp;lt;/pre&amp;gt; &lt;br /&gt;
Uncomment it and change it to the following:&lt;br /&gt;
&amp;lt;pre&amp;gt;listen_addresses = &#039;*&#039;&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you want it to listen on a specific ip you can change * to 192.168.1.2/24.&lt;br /&gt;
Save the file and change the next config file.&lt;br /&gt;
&lt;br /&gt;
== modify the pg_hba.conf file ==&lt;br /&gt;
{{Cmd|nano /etc/postgresql16/pg_hba.conf}}&lt;br /&gt;
Look for the line: &amp;lt;pre&amp;gt;host    all             all             127.0.0.1/32            md5&amp;lt;/pre&amp;gt;&lt;br /&gt;
And change it to: &amp;lt;pre&amp;gt;host all all 0.0.0.0/0 md5&amp;lt;/pre&amp;gt;&lt;br /&gt;
This line allows connections from any IP address and requires a password for authentication (md5).&lt;br /&gt;
Restart the server to allow incoming connections from other hosts.&lt;br /&gt;
{{Cmd|rc-service postgresql start}}&lt;br /&gt;
&lt;br /&gt;
Besure to allow the port through the firewall. For UFW type:&lt;br /&gt;
{{Cmd|ufw allow 5432}}&lt;br /&gt;
&lt;br /&gt;
This is a basic configuration. You can configure the PostgreSQL server to only allow certain networks or IP&#039;s to connect but thats beyond the scope of this documentation.&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
* Some troubleshooting information &lt;br /&gt;
&lt;br /&gt;
= Upgrading PostgreSQL =&lt;br /&gt;
* Notes on upgrading PostgreSQL 16 to 17&lt;br /&gt;
&lt;br /&gt;
= Resources =&lt;br /&gt;
* https://blog.devart.com/configure-postgresql-to-allow-remote-connection.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Server]]&lt;/div&gt;</summary>
		<author><name>Jhjacobs81</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Postgresql_16&amp;diff=26868</id>
		<title>Postgresql 16</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Postgresql_16&amp;diff=26868"/>
		<updated>2024-06-30T12:27:52Z</updated>

		<summary type="html">&lt;p&gt;Jhjacobs81: /* Configure */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= General = &lt;br /&gt;
PostgreSQL is a well known opensource database that scales well and is easy to use. In Alpine v3.20 we can install the latest version using the package postgresql16&lt;br /&gt;
&lt;br /&gt;
= Install =&lt;br /&gt;
{{Cmd|apk add postgresql16 postgresql16-contrib postgresql16-openrc}}&lt;br /&gt;
{{Cmd|rc-update add postgresql}}&lt;br /&gt;
{{Cmd|rc-service postgresql start}}&lt;br /&gt;
&lt;br /&gt;
This will start the postgresql 16 server and perform some initial configuration. &lt;br /&gt;
&lt;br /&gt;
= Configure =&lt;br /&gt;
Login as the postgres user and start psql to create a new user and database:&lt;br /&gt;
{{Cmd|su postgres}}&lt;br /&gt;
{{Cmd|psql}}&lt;br /&gt;
{{Cmd|create user user with encrypted password &#039;password&#039;;}}&lt;br /&gt;
{{Cmd|create database database;}}&lt;br /&gt;
{{Cmd|grant all privileges on database database to user;}}&lt;br /&gt;
&lt;br /&gt;
= Use =&lt;br /&gt;
By default only local access is allowed to PostgreSQL. To allow other networked services to access the database we need to configure PostgreSQL to allow external connections.&lt;br /&gt;
&lt;br /&gt;
== modify the postgresql.conf file ==&lt;br /&gt;
{{Cmd|nano /etc/postgresql16/postgresql.conf}}&lt;br /&gt;
Find the line that starts with &amp;lt;pre&amp;gt;#listen_addresses = &#039;localhost&#039;&amp;lt;/pre&amp;gt; &lt;br /&gt;
Uncomment it and change it to the following:&lt;br /&gt;
&amp;lt;pre&amp;gt;listen_addresses = &#039;*&#039;&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you want it to listen on a specific ip you can change * to 192.168.1.2/24.&lt;br /&gt;
Save the file and change the next config file.&lt;br /&gt;
&lt;br /&gt;
== modify the pg_hba.conf file ==&lt;br /&gt;
{{Cmd|nano /etc/postgresql16/pg_hba.conf}}&lt;br /&gt;
look for the line: host    all             all             127.0.0.1/32            md5&lt;br /&gt;
and change it to: host all all 0.0.0.0/0 md5&lt;br /&gt;
This line allows connections from any IP address and requires a password for authentication (md5).&lt;br /&gt;
Restart the server to allow incoming connections from other hosts.&lt;br /&gt;
{{Cmd|rc-service postgresql start}}&lt;br /&gt;
&lt;br /&gt;
Besure to allow the port through the firewall. For UFW type:&lt;br /&gt;
{{Cmd|ufw allow 5432}}&lt;br /&gt;
&lt;br /&gt;
This is a basic configuration. You can configure the PostgreSQL server to only allow certain networks or IP&#039;s to connect but thats beyond the scope of this documentation.&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
* Some troubleshooting information &lt;br /&gt;
&lt;br /&gt;
= Upgrading PostgreSQL =&lt;br /&gt;
* Notes on upgrading PostgreSQL 16 to 17&lt;br /&gt;
&lt;br /&gt;
= Resources =&lt;br /&gt;
* https://blog.devart.com/configure-postgresql-to-allow-remote-connection.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Server]]&lt;/div&gt;</summary>
		<author><name>Jhjacobs81</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Postgresql_16&amp;diff=26867</id>
		<title>Postgresql 16</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Postgresql_16&amp;diff=26867"/>
		<updated>2024-06-30T12:27:39Z</updated>

		<summary type="html">&lt;p&gt;Jhjacobs81: /* General */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= General = &lt;br /&gt;
PostgreSQL is a well known opensource database that scales well and is easy to use. In Alpine v3.20 we can install the latest version using the package postgresql16&lt;br /&gt;
&lt;br /&gt;
= Install =&lt;br /&gt;
{{Cmd|apk add postgresql16 postgresql16-contrib postgresql16-openrc}}&lt;br /&gt;
{{Cmd|rc-update add postgresql}}&lt;br /&gt;
{{Cmd|rc-service postgresql start}}&lt;br /&gt;
&lt;br /&gt;
This will start the postgresql 16 server and perform some initial configuration. &lt;br /&gt;
&lt;br /&gt;
= Configure =&lt;br /&gt;
login as the postgres user and start psql to create a new user and database:&lt;br /&gt;
{{Cmd|su postgres}}&lt;br /&gt;
{{Cmd|psql}}&lt;br /&gt;
{{Cmd|create user user with encrypted password &#039;password&#039;;}}&lt;br /&gt;
{{Cmd|create database database;}}&lt;br /&gt;
{{Cmd|grant all privileges on database database to user;}}&lt;br /&gt;
&lt;br /&gt;
= Use =&lt;br /&gt;
By default only local access is allowed to PostgreSQL. To allow other networked services to access the database we need to configure PostgreSQL to allow external connections.&lt;br /&gt;
&lt;br /&gt;
== modify the postgresql.conf file ==&lt;br /&gt;
{{Cmd|nano /etc/postgresql16/postgresql.conf}}&lt;br /&gt;
Find the line that starts with &amp;lt;pre&amp;gt;#listen_addresses = &#039;localhost&#039;&amp;lt;/pre&amp;gt; &lt;br /&gt;
Uncomment it and change it to the following:&lt;br /&gt;
&amp;lt;pre&amp;gt;listen_addresses = &#039;*&#039;&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you want it to listen on a specific ip you can change * to 192.168.1.2/24.&lt;br /&gt;
Save the file and change the next config file.&lt;br /&gt;
&lt;br /&gt;
== modify the pg_hba.conf file ==&lt;br /&gt;
{{Cmd|nano /etc/postgresql16/pg_hba.conf}}&lt;br /&gt;
look for the line: host    all             all             127.0.0.1/32            md5&lt;br /&gt;
and change it to: host all all 0.0.0.0/0 md5&lt;br /&gt;
This line allows connections from any IP address and requires a password for authentication (md5).&lt;br /&gt;
Restart the server to allow incoming connections from other hosts.&lt;br /&gt;
{{Cmd|rc-service postgresql start}}&lt;br /&gt;
&lt;br /&gt;
Besure to allow the port through the firewall. For UFW type:&lt;br /&gt;
{{Cmd|ufw allow 5432}}&lt;br /&gt;
&lt;br /&gt;
This is a basic configuration. You can configure the PostgreSQL server to only allow certain networks or IP&#039;s to connect but thats beyond the scope of this documentation.&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
* Some troubleshooting information &lt;br /&gt;
&lt;br /&gt;
= Upgrading PostgreSQL =&lt;br /&gt;
* Notes on upgrading PostgreSQL 16 to 17&lt;br /&gt;
&lt;br /&gt;
= Resources =&lt;br /&gt;
* https://blog.devart.com/configure-postgresql-to-allow-remote-connection.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Server]]&lt;/div&gt;</summary>
		<author><name>Jhjacobs81</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Postgresql_16&amp;diff=26866</id>
		<title>Postgresql 16</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Postgresql_16&amp;diff=26866"/>
		<updated>2024-06-30T12:26:11Z</updated>

		<summary type="html">&lt;p&gt;Jhjacobs81: /* Use */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= General = &lt;br /&gt;
PostgreSQL is a well known opensource database that scales well and is easy to use. in Alpine v3.20 we can install the latest version using the package postgresql16&lt;br /&gt;
&lt;br /&gt;
= Install =&lt;br /&gt;
{{Cmd|apk add postgresql16 postgresql16-contrib postgresql16-openrc}}&lt;br /&gt;
{{Cmd|rc-update add postgresql}}&lt;br /&gt;
{{Cmd|rc-service postgresql start}}&lt;br /&gt;
&lt;br /&gt;
This will start the postgresql 16 server and perform some initial configuration. &lt;br /&gt;
&lt;br /&gt;
= Configure =&lt;br /&gt;
login as the postgres user and start psql to create a new user and database:&lt;br /&gt;
{{Cmd|su postgres}}&lt;br /&gt;
{{Cmd|psql}}&lt;br /&gt;
{{Cmd|create user user with encrypted password &#039;password&#039;;}}&lt;br /&gt;
{{Cmd|create database database;}}&lt;br /&gt;
{{Cmd|grant all privileges on database database to user;}}&lt;br /&gt;
&lt;br /&gt;
= Use =&lt;br /&gt;
By default only local access is allowed to PostgreSQL. To allow other networked services to access the database we need to configure PostgreSQL to allow external connections.&lt;br /&gt;
&lt;br /&gt;
== modify the postgresql.conf file ==&lt;br /&gt;
{{Cmd|nano /etc/postgresql16/postgresql.conf}}&lt;br /&gt;
Find the line that starts with &amp;lt;pre&amp;gt;#listen_addresses = &#039;localhost&#039;&amp;lt;/pre&amp;gt; &lt;br /&gt;
Uncomment it and change it to the following:&lt;br /&gt;
&amp;lt;pre&amp;gt;listen_addresses = &#039;*&#039;&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you want it to listen on a specific ip you can change * to 192.168.1.2/24.&lt;br /&gt;
Save the file and change the next config file.&lt;br /&gt;
&lt;br /&gt;
== modify the pg_hba.conf file ==&lt;br /&gt;
{{Cmd|nano /etc/postgresql16/pg_hba.conf}}&lt;br /&gt;
look for the line: host    all             all             127.0.0.1/32            md5&lt;br /&gt;
and change it to: host all all 0.0.0.0/0 md5&lt;br /&gt;
This line allows connections from any IP address and requires a password for authentication (md5).&lt;br /&gt;
Restart the server to allow incoming connections from other hosts.&lt;br /&gt;
{{Cmd|rc-service postgresql start}}&lt;br /&gt;
&lt;br /&gt;
Besure to allow the port through the firewall. For UFW type:&lt;br /&gt;
{{Cmd|ufw allow 5432}}&lt;br /&gt;
&lt;br /&gt;
This is a basic configuration. You can configure the PostgreSQL server to only allow certain networks or IP&#039;s to connect but thats beyond the scope of this documentation.&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
* Some troubleshooting information &lt;br /&gt;
&lt;br /&gt;
= Upgrading PostgreSQL =&lt;br /&gt;
* Notes on upgrading PostgreSQL 16 to 17&lt;br /&gt;
&lt;br /&gt;
= Resources =&lt;br /&gt;
* https://blog.devart.com/configure-postgresql-to-allow-remote-connection.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Server]]&lt;/div&gt;</summary>
		<author><name>Jhjacobs81</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Postgresql_16&amp;diff=26865</id>
		<title>Postgresql 16</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Postgresql_16&amp;diff=26865"/>
		<updated>2024-06-30T12:25:32Z</updated>

		<summary type="html">&lt;p&gt;Jhjacobs81: /* Configure */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= General = &lt;br /&gt;
PostgreSQL is a well known opensource database that scales well and is easy to use. in Alpine v3.20 we can install the latest version using the package postgresql16&lt;br /&gt;
&lt;br /&gt;
= Install =&lt;br /&gt;
{{Cmd|apk add postgresql16 postgresql16-contrib postgresql16-openrc}}&lt;br /&gt;
{{Cmd|rc-update add postgresql}}&lt;br /&gt;
{{Cmd|rc-service postgresql start}}&lt;br /&gt;
&lt;br /&gt;
This will start the postgresql 16 server and perform some initial configuration. &lt;br /&gt;
&lt;br /&gt;
= Configure =&lt;br /&gt;
login as the postgres user and start psql to create a new user and database:&lt;br /&gt;
{{Cmd|su postgres}}&lt;br /&gt;
{{Cmd|psql}}&lt;br /&gt;
{{Cmd|create user user with encrypted password &#039;password&#039;;}}&lt;br /&gt;
{{Cmd|create database database;}}&lt;br /&gt;
{{Cmd|grant all privileges on database database to user;}}&lt;br /&gt;
&lt;br /&gt;
= Use =&lt;br /&gt;
By default only local access is allowed to PostgreSQL. to allow other networked services to access the database we need to configure PostgreSQL to allow external connections.&lt;br /&gt;
&lt;br /&gt;
== modify the postgresql.conf file ==&lt;br /&gt;
{{Cmd|nano /etc/postgresql16/postgresql.conf}}&lt;br /&gt;
Find the line that starts with &amp;lt;pre&amp;gt;#listen_addresses = &#039;localhost&#039;&amp;lt;/pre&amp;gt; &lt;br /&gt;
Uncomment it and change it to the following:&lt;br /&gt;
&amp;lt;pre&amp;gt;listen_addresses = &#039;*&#039;&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you want it to listen on a specific ip you can change * to 192.168.1.2/24.&lt;br /&gt;
Save the file and change the next config file.&lt;br /&gt;
&lt;br /&gt;
== modify the pg_hba.conf file ==&lt;br /&gt;
{{Cmd|nano /etc/postgresql16/pg_hba.conf}}&lt;br /&gt;
look for the line: host    all             all             127.0.0.1/32            md5&lt;br /&gt;
and change it to: host all all 0.0.0.0/0 md5&lt;br /&gt;
This line allows connections from any IP address and requires a password for authentication (md5).&lt;br /&gt;
Restart the server to allow incoming connections from other hosts.&lt;br /&gt;
{{Cmd|rc-service postgresql start}}&lt;br /&gt;
&lt;br /&gt;
Besure to allow the port through the firewall. For UFW type:&lt;br /&gt;
{{Cmd|ufw allow 5432}}&lt;br /&gt;
&lt;br /&gt;
This is a basic configuration. You can configure the PostgreSQL server to only allow certain networks or IP&#039;s to connect but thats beyond the scope of this documentation. &lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
* Some troubleshooting information &lt;br /&gt;
&lt;br /&gt;
= Upgrading PostgreSQL =&lt;br /&gt;
* Notes on upgrading PostgreSQL 16 to 17&lt;br /&gt;
&lt;br /&gt;
= Resources =&lt;br /&gt;
* https://blog.devart.com/configure-postgresql-to-allow-remote-connection.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Server]]&lt;/div&gt;</summary>
		<author><name>Jhjacobs81</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Postgresql_16&amp;diff=26864</id>
		<title>Postgresql 16</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Postgresql_16&amp;diff=26864"/>
		<updated>2024-06-30T12:24:33Z</updated>

		<summary type="html">&lt;p&gt;Jhjacobs81: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= General = &lt;br /&gt;
PostgreSQL is a well known opensource database that scales well and is easy to use. in Alpine v3.20 we can install the latest version using the package postgresql16&lt;br /&gt;
&lt;br /&gt;
= Install =&lt;br /&gt;
{{Cmd|apk add postgresql16 postgresql16-contrib postgresql16-openrc}}&lt;br /&gt;
{{Cmd|rc-update add postgresql}}&lt;br /&gt;
{{Cmd|rc-service postgresql start}}&lt;br /&gt;
&lt;br /&gt;
This will start the postgresql 16 server and perform some initial configuration. &lt;br /&gt;
&lt;br /&gt;
= Configure =&lt;br /&gt;
login as the postgres user and start psql to create a new user and database:&lt;br /&gt;
{{Cmd|su postgres}}&lt;br /&gt;
{{Cmd|psql}}&lt;br /&gt;
{{Cmd|create user myuser with encrypted password &#039;mypass&#039;;}}&lt;br /&gt;
{{Cmd|create database mydb;}}&lt;br /&gt;
{{Cmd|grant all privileges on database mydb to myuser;}}&lt;br /&gt;
&lt;br /&gt;
= Use =&lt;br /&gt;
By default only local access is allowed to PostgreSQL. to allow other networked services to access the database we need to configure PostgreSQL to allow external connections.&lt;br /&gt;
&lt;br /&gt;
== modify the postgresql.conf file ==&lt;br /&gt;
{{Cmd|nano /etc/postgresql16/postgresql.conf}}&lt;br /&gt;
Find the line that starts with &amp;lt;pre&amp;gt;#listen_addresses = &#039;localhost&#039;&amp;lt;/pre&amp;gt; &lt;br /&gt;
Uncomment it and change it to the following:&lt;br /&gt;
&amp;lt;pre&amp;gt;listen_addresses = &#039;*&#039;&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you want it to listen on a specific ip you can change * to 192.168.1.2/24.&lt;br /&gt;
Save the file and change the next config file.&lt;br /&gt;
&lt;br /&gt;
== modify the pg_hba.conf file ==&lt;br /&gt;
{{Cmd|nano /etc/postgresql16/pg_hba.conf}}&lt;br /&gt;
look for the line: host    all             all             127.0.0.1/32            md5&lt;br /&gt;
and change it to: host all all 0.0.0.0/0 md5&lt;br /&gt;
This line allows connections from any IP address and requires a password for authentication (md5).&lt;br /&gt;
Restart the server to allow incoming connections from other hosts.&lt;br /&gt;
{{Cmd|rc-service postgresql start}}&lt;br /&gt;
&lt;br /&gt;
Besure to allow the port through the firewall. For UFW type:&lt;br /&gt;
{{Cmd|ufw allow 5432}}&lt;br /&gt;
&lt;br /&gt;
This is a basic configuration. You can configure the PostgreSQL server to only allow certain networks or IP&#039;s to connect but thats beyond the scope of this documentation. &lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
* Some troubleshooting information &lt;br /&gt;
&lt;br /&gt;
= Upgrading PostgreSQL =&lt;br /&gt;
* Notes on upgrading PostgreSQL 16 to 17&lt;br /&gt;
&lt;br /&gt;
= Resources =&lt;br /&gt;
* https://blog.devart.com/configure-postgresql-to-allow-remote-connection.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Server]]&lt;/div&gt;</summary>
		<author><name>Jhjacobs81</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Postgresql_16&amp;diff=26863</id>
		<title>Postgresql 16</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Postgresql_16&amp;diff=26863"/>
		<updated>2024-06-30T12:19:21Z</updated>

		<summary type="html">&lt;p&gt;Jhjacobs81: /* modify the postgresql.conf file */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= General = &lt;br /&gt;
PostgreSQL is a well known opensource database that scales well and is easy to use. in Alpine v3.20 we can install the latest version using the package postgresql16&lt;br /&gt;
&lt;br /&gt;
= Install =&lt;br /&gt;
{{Cmd|apk add postgresql16 postgresql16-contrib postgresql16-openrc}}&lt;br /&gt;
{{Cmd|rc-update add postgresql}}&lt;br /&gt;
{{Cmd|rc-service postgresql start}}&lt;br /&gt;
&lt;br /&gt;
This will start the postgresql 16 server and perform some initial configuration. &lt;br /&gt;
&lt;br /&gt;
= Configure =&lt;br /&gt;
login as the postgres user and start psql to create a new user and database:&lt;br /&gt;
{{Cmd|su postgres}}&lt;br /&gt;
{{Cmd|psql}}&lt;br /&gt;
{{Cmd|create user myuser with encrypted password &#039;mypass&#039;;}}&lt;br /&gt;
{{Cmd|create database mydb;}}&lt;br /&gt;
{{Cmd|grant all privileges on database mydb to myuser;}}&lt;br /&gt;
&lt;br /&gt;
= Use =&lt;br /&gt;
By default only local access is allowed to PostgreSQL. to allow other networked services to access the database we need to configure PostgreSQL to allow external connections.&lt;br /&gt;
&lt;br /&gt;
== modify the postgresql.conf file ==&lt;br /&gt;
{{Cmd|nano /etc/postgresql16/postgresql.conf}}&lt;br /&gt;
Find the line that starts with &amp;lt;pre&amp;gt;#listen_addresses = &#039;localhost&#039;&amp;lt;/pre&amp;gt; &lt;br /&gt;
Uncomment it and change it to the following:&lt;br /&gt;
&amp;lt;pre&amp;gt;listen_addresses = &#039;*&#039;&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you want it to listen on a specific ip you can change * to 192.168.1.2/24.&lt;br /&gt;
Save the file and change the next config file.&lt;br /&gt;
&lt;br /&gt;
== modify the pg_hba.conf file ==&lt;br /&gt;
{{Cmd|nano /etc/postgresql16/pg_hba.conf}}&lt;br /&gt;
look for the line: host    all             all             127.0.0.1/32            md5&lt;br /&gt;
and change it to: host all all 0.0.0.0/0 md5&lt;br /&gt;
This line allows connections from any IP address and requires a password for authentication (md5).&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
* Some troubleshooting information &lt;br /&gt;
&lt;br /&gt;
= Upgrading PostgreSQL =&lt;br /&gt;
* Notes on upgrading PostgreSQL 16 to 17&lt;br /&gt;
&lt;br /&gt;
= Resources =&lt;br /&gt;
* https://blog.devart.com/configure-postgresql-to-allow-remote-connection.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Server]]&lt;/div&gt;</summary>
		<author><name>Jhjacobs81</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Postgresql_16&amp;diff=26862</id>
		<title>Postgresql 16</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Postgresql_16&amp;diff=26862"/>
		<updated>2024-06-30T12:16:01Z</updated>

		<summary type="html">&lt;p&gt;Jhjacobs81: Created page with &amp;quot;= General =  PostgreSQL is a well known opensource database that scales well and is easy to use. in Alpine v3.20 we can install the latest version using the package postgresql16  = Install = {{Cmd|apk add postgresql16 postgresql16-contrib postgresql16-openrc}} {{Cmd|rc-update add postgresql}} {{Cmd|rc-service postgresql start}}  This will start the postgresql 16 server and perform some initial configuration.   = Configure = login as the postgres user and start psql to cr...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= General = &lt;br /&gt;
PostgreSQL is a well known opensource database that scales well and is easy to use. in Alpine v3.20 we can install the latest version using the package postgresql16&lt;br /&gt;
&lt;br /&gt;
= Install =&lt;br /&gt;
{{Cmd|apk add postgresql16 postgresql16-contrib postgresql16-openrc}}&lt;br /&gt;
{{Cmd|rc-update add postgresql}}&lt;br /&gt;
{{Cmd|rc-service postgresql start}}&lt;br /&gt;
&lt;br /&gt;
This will start the postgresql 16 server and perform some initial configuration. &lt;br /&gt;
&lt;br /&gt;
= Configure =&lt;br /&gt;
login as the postgres user and start psql to create a new user and database:&lt;br /&gt;
{{Cmd|su postgres}}&lt;br /&gt;
{{Cmd|psql}}&lt;br /&gt;
{{Cmd|create user myuser with encrypted password &#039;mypass&#039;;}}&lt;br /&gt;
{{Cmd|create database mydb;}}&lt;br /&gt;
{{Cmd|grant all privileges on database mydb to myuser;}}&lt;br /&gt;
&lt;br /&gt;
= Use =&lt;br /&gt;
By default only local access is allowed to PostgreSQL. to allow other networked services to access the database we need to configure PostgreSQL to allow external connections.&lt;br /&gt;
&lt;br /&gt;
== modify the postgresql.conf file ==&lt;br /&gt;
{{Cmd|nano /etc/postgresql16/postgresql.conf}}&lt;br /&gt;
Find the line that starts with #listen_addresses = &#039;localhost&#039; uncomment it and change localhost to *:&lt;br /&gt;
&amp;lt;pre&amp;gt;listen_addresses = &#039;*&#039;&amp;lt;/pre&amp;gt;&lt;br /&gt;
or change it to the IP address you want the server to listen on.&lt;br /&gt;
Save the file and change the next config file.&lt;br /&gt;
&lt;br /&gt;
== modify the pg_hba.conf file ==&lt;br /&gt;
{{Cmd|nano /etc/postgresql16/pg_hba.conf}}&lt;br /&gt;
look for the line: host    all             all             127.0.0.1/32            md5&lt;br /&gt;
and change it to: host all all 0.0.0.0/0 md5&lt;br /&gt;
This line allows connections from any IP address and requires a password for authentication (md5).&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
* Some troubleshooting information &lt;br /&gt;
&lt;br /&gt;
= Upgrading PostgreSQL =&lt;br /&gt;
* Notes on upgrading PostgreSQL 16 to 17&lt;br /&gt;
&lt;br /&gt;
= Resources =&lt;br /&gt;
* https://blog.devart.com/configure-postgresql-to-allow-remote-connection.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Server]]&lt;/div&gt;</summary>
		<author><name>Jhjacobs81</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Samba_Roaming_Profiles&amp;diff=23156</id>
		<title>Samba Roaming Profiles</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Samba_Roaming_Profiles&amp;diff=23156"/>
		<updated>2023-04-16T12:07:21Z</updated>

		<summary type="html">&lt;p&gt;Jhjacobs81: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Setting up Samba AD Server with Roaming Profiles is not very hard. But some changes are different than other tutorials. &lt;br /&gt;
&lt;br /&gt;
# Setup Samba using this page: [https://wiki.alpinelinux.org/wiki/Setting_up_a_samba-ad-dc Setting up a samba-ad-dc]&lt;br /&gt;
# Create a directory to store the roaming profiles: mkdir -p /srv/samba/Profiles/&lt;br /&gt;
# This is where my (jhjacobs81) journey differs from the average tutorial online. I had to use the following command: chown root:users /srv/samba/Profiles/&lt;br /&gt;
&lt;br /&gt;
This was the only way so far i could get it to work. other tutorials speak of setfacl and so, but this doesn&#039;t exist in Alpine. I will edit this page as i learn more.&lt;br /&gt;
&lt;br /&gt;
edit: it apears to exist in the acl package.&lt;/div&gt;</summary>
		<author><name>Jhjacobs81</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=PowerDNS&amp;diff=23048</id>
		<title>PowerDNS</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=PowerDNS&amp;diff=23048"/>
		<updated>2023-03-14T09:57:52Z</updated>

		<summary type="html">&lt;p&gt;Jhjacobs81: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= General = &lt;br /&gt;
The PowerDNS Authoritative Server is a versatile nameserver which supports a large number of backends. These backends can either be plain zone files or be more dynamic in nature. A backend is a datastore that the server will consult that contains DNS records (and some metadata). The backends range from database backends (MySQL, PostgreSQL) and BIND zone files to co-processes and JSON API’s.&lt;br /&gt;
&lt;br /&gt;
Multiple backends can be enabled in the configuration by using the launch option. Each backend can be configured separately. In this howto we will focus on sqlite&lt;br /&gt;
    &lt;br /&gt;
For a full list of features see the [https://doc.powerdns.com/ PowerDNS documentation website]&lt;br /&gt;
&lt;br /&gt;
= Install =&lt;br /&gt;
&lt;br /&gt;
{{Cmd|apk add pdns pdns-backend-sqlite3 pdns-docs}}&lt;br /&gt;
{{Cmd|rc-update add pdns}}&lt;br /&gt;
&lt;br /&gt;
= Configure =&lt;br /&gt;
&lt;br /&gt;
On Alpine, the default configuration file is: {{Path|/etc/pdns/pdns.conf}} The default config is good to start using the DNS functions. To use the SQLite backend edit the config file and at the bottom add &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
launch=gsqlite3&lt;br /&gt;
gsqlite3-database=/var/lib/powerdns/pdns.sqlite3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The pdns-doc ships with example&#039;s for different backends in {{path|/usr/share/doc/pdns/}}. For this example we use the sqlite schema.&lt;br /&gt;
First we need to create the correct directory: {{Cmd|mkdir /var/lib/powerdns}}&lt;br /&gt;
Next we need to import the database scheme: {{Cmd|sqlite3 /var/lib/powerdns/pdns.sqlite3 &amp;lt; /usr/share/doc/pdns/schema.sqlite3.sql}}&lt;br /&gt;
Then we need to set the correct permissions: {{Cmd|chown -R pdns:pdns /var/lib/powerdns}}&lt;br /&gt;
For a more detailed guide please see the documentation [https://doc.powerdns.com/authoritative/guides/basic-database.html here]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now we can start the server and start adding records to it: {{Cmd|rc-service pdns start}}&lt;br /&gt;
= Use =&lt;br /&gt;
Adding records is usually done through the commandline. There are several web based GUI&#039;s available, but this is outside the scope of this article. See the resources section for more information.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We first have to setup a dns zone: &lt;br /&gt;
{{Cmd|pdnsutil create-zone example.com ns1.example.com}} We also add one NS record.&lt;br /&gt;
&lt;br /&gt;
To add a new record we execute the following command: {{Cmd|pdnsutil add-record example.com. www A 192.0.2.1}} where www is the subdomain, and 192.0.2.1 is the server we point it to.&lt;br /&gt;
&lt;br /&gt;
== Controlling PowerDNS status ==&lt;br /&gt;
&lt;br /&gt;
Stop, start and restart the daemon in the usual fashion:&lt;br /&gt;
{{Cmd|rc-service pdns start}}&lt;br /&gt;
&lt;br /&gt;
{{Cmd|rc-service pdns stop}}&lt;br /&gt;
&lt;br /&gt;
{{Cmd|rc-service pdns restart}}&lt;br /&gt;
&lt;br /&gt;
== Auto-start pdns at boot ==&lt;br /&gt;
&lt;br /&gt;
To add the daemon to the default runlevel so it auto-starts at boot, do: {{Cmd|rc-update add pdns}}&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;TODO&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Ensure the daemon is running with {{Cmd|rc-status}}&lt;br /&gt;
&lt;br /&gt;
= Resources =&lt;br /&gt;
* The main website for PowerDNS: [https://www.powerdns.com https://www.powerdns.com] &lt;br /&gt;
* PowerDNS Documentation: [https://doc.powerdns.com/ https://doc.powerdns.com/](Most of this article is from the main documentation site. only Alpine specific details where changed.)&lt;br /&gt;
* Packagelist: [https://pkgs.alpinelinux.org/packages?name=pdns*&amp;amp;branch=v3.17&amp;amp;repo=community&amp;amp;arch=&amp;amp;maintainer= https://pkgs.alpinelinux.org/packages?name=pdns*&amp;amp;branch=v3.17&amp;amp;repo=community&amp;amp;arch=&amp;amp;maintainer=]&lt;br /&gt;
&lt;br /&gt;
Web GUI:&lt;br /&gt;
* [https://github.com/PowerDNS-Admin/PowerDNS-Admin https://github.com/PowerDNS-Admin/PowerDNS-Admin]&lt;br /&gt;
* [https://pdnsmanager.org/ https://pdnsmanager.org/]&lt;br /&gt;
* [https://www.poweradmin.org/ https://www.poweradmin.org/]&lt;br /&gt;
[[Category:Server]]&lt;/div&gt;</summary>
		<author><name>Jhjacobs81</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=PowerDNS&amp;diff=22744</id>
		<title>PowerDNS</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=PowerDNS&amp;diff=22744"/>
		<updated>2022-12-06T19:35:26Z</updated>

		<summary type="html">&lt;p&gt;Jhjacobs81: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= General = &lt;br /&gt;
The PowerDNS Authoritative Server is a versatile nameserver which supports a large number of backends. These backends can either be plain zone files or be more dynamic in nature. A backend is a datastore that the server will consult that contains DNS records (and some metadata). The backends range from database backends (MySQL, PostgreSQL) and BIND zone files to co-processes and JSON API’s.&lt;br /&gt;
&lt;br /&gt;
Multiple backends can be enabled in the configuration by using the launch option. Each backend can be configured separately. In this howto we will focus on sqlite&lt;br /&gt;
    &lt;br /&gt;
For a full list of features see the [https://doc.powerdns.com/ PowerDNS documentation website]&lt;br /&gt;
&lt;br /&gt;
= Install =&lt;br /&gt;
&lt;br /&gt;
{{Cmd|apk add pdns pdns-backend-sqlite3 pdns-docs}}&lt;br /&gt;
{{Cmd|rc-service add pdns}}&lt;br /&gt;
&lt;br /&gt;
= Configure =&lt;br /&gt;
&lt;br /&gt;
On Alpine, the default configuration file is: {{Path|/etc/pdns/pdns.conf}} The default config is good to start using the DNS functions. To use the SQLite backend edit the config file and at the bottom add &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
launch=gsqlite3&lt;br /&gt;
gsqlite3-database=/var/lib/powerdns/pdns.sqlite3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The pdns-doc ships with example&#039;s for different backends in {{path|/usr/share/doc/pdns/}}. For this example we use the sqlite schema.&lt;br /&gt;
First we need to create the correct directory: {{Cmd|mkdir /var/lib/powerdns}}&lt;br /&gt;
Next we need to import the database scheme: {{Cmd|sqlite3 /var/lib/powerdns/pdns.sqlite3 &amp;lt; /usr/share/doc/pdns/schema.sqlite3.sql}}&lt;br /&gt;
Then we need to set the correct permissions: {{Cmd|chown -R pdns:pdns /var/lib/powerdns}}&lt;br /&gt;
For a more detailed guide please see the documentation [https://doc.powerdns.com/authoritative/guides/basic-database.html here]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now we can start the server and start adding records to it: {{Cmd|service pdns start}}&lt;br /&gt;
= Use =&lt;br /&gt;
Adding records is usually done through the commandline. There are several web based GUI&#039;s available, but this is outside the scope of this article. See the resources section for more information.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We first have to setup a dns zone: &lt;br /&gt;
{{Cmd|pdnsutil create-zone example.com ns1.example.com}} We also add one NS record.&lt;br /&gt;
&lt;br /&gt;
To add a new record we execute the following command: {{Cmd|pdnsutil add-record example.com. www A 192.0.2.1}} where www is the subdomain, and 192.0.2.1 is the server we point it to.&lt;br /&gt;
&lt;br /&gt;
== Controlling PowerDNS status ==&lt;br /&gt;
&lt;br /&gt;
Stop, start and restart the daemon in the usual fashion:&lt;br /&gt;
{{Cmd|rc-service pdns start}}&lt;br /&gt;
&lt;br /&gt;
{{Cmd|rc-service pdns stop}}&lt;br /&gt;
&lt;br /&gt;
{{Cmd|rc-service pdns restart}}&lt;br /&gt;
&lt;br /&gt;
== Auto-start pdns at boot ==&lt;br /&gt;
&lt;br /&gt;
To add the daemon to the default runlevel so it auto-starts at boot, do: {{Cmd|rc-update add pdns}}&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;TODO&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Ensure the daemon is running with {{Cmd|rc-status}}&lt;br /&gt;
&lt;br /&gt;
= Resources =&lt;br /&gt;
* The main website for PowerDNS: [https://www.powerdns.com https://www.powerdns.com] &lt;br /&gt;
* PowerDNS Documentation: [https://doc.powerdns.com/ https://doc.powerdns.com/](Most of this article is from the main documentation site. only Alpine specific details where changed.)&lt;br /&gt;
* Packagelist: [https://pkgs.alpinelinux.org/packages?name=pdns*&amp;amp;branch=v3.17&amp;amp;repo=community&amp;amp;arch=&amp;amp;maintainer= https://pkgs.alpinelinux.org/packages?name=pdns*&amp;amp;branch=v3.17&amp;amp;repo=community&amp;amp;arch=&amp;amp;maintainer=]&lt;br /&gt;
&lt;br /&gt;
Web GUI:&lt;br /&gt;
* [https://github.com/PowerDNS-Admin/PowerDNS-Admin https://github.com/PowerDNS-Admin/PowerDNS-Admin]&lt;br /&gt;
* [https://pdnsmanager.org/ https://pdnsmanager.org/]&lt;br /&gt;
* [https://www.poweradmin.org/ https://www.poweradmin.org/]&lt;br /&gt;
[[Category:Server]]&lt;/div&gt;</summary>
		<author><name>Jhjacobs81</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=PowerDNS&amp;diff=22743</id>
		<title>PowerDNS</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=PowerDNS&amp;diff=22743"/>
		<updated>2022-12-06T19:30:50Z</updated>

		<summary type="html">&lt;p&gt;Jhjacobs81: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= General = &lt;br /&gt;
The PowerDNS Authoritative Server is a versatile nameserver which supports a large number of backends. These backends can either be plain zone files or be more dynamic in nature. A backend is a datastore that the server will consult that contains DNS records (and some metadata). The backends range from database backends (MySQL, PostgreSQL) and BIND zone files to co-processes and JSON API’s.&lt;br /&gt;
&lt;br /&gt;
Multiple backends can be enabled in the configuration by using the launch option. Each backend can be configured separately. In this howto we will focus on sqlite&lt;br /&gt;
    &lt;br /&gt;
For a full list of features see the [https://doc.powerdns.com/ PowerDNS documentation website]&lt;br /&gt;
&lt;br /&gt;
= Install =&lt;br /&gt;
&lt;br /&gt;
{{Cmd|apk add pdns pdns-backend-sqlite3 pdns-docs}}&lt;br /&gt;
{{Cmd|rc-service add pdns}}&lt;br /&gt;
&lt;br /&gt;
= Configure =&lt;br /&gt;
&lt;br /&gt;
On Alpine, the default configuration file is: {{Path|/etc/pdns/pdns.conf}} The default config is good to start using the DNS functions. To use the SQLite backend edit the config file and at the bottom add &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
launch=gsqlite3&lt;br /&gt;
gsqlite3-database=/var/lib/powerdns/pdns.sqlite3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The pdns-doc ships with example&#039;s for different backends in {{path|/usr/share/doc/pdns/}}. For this example we use the sqlite schema.&lt;br /&gt;
First we need to create the correct directory: {{Cmd|mkdir /var/lib/powerdns}}&lt;br /&gt;
Next we need to import the database scheme: {{Cmd|sqlite3 /var/lib/powerdns/pdns.sqlite3 &amp;lt; /usr/share/doc/pdns/schema.sqlite3.sql}}&lt;br /&gt;
Then we need to set the correct permissions: {{Cmd|chown -R pdns:pdns /var/lib/powerdns}}&lt;br /&gt;
For a more detailed guide please see the documentation [https://doc.powerdns.com/authoritative/guides/basic-database.html here]&lt;br /&gt;
&lt;br /&gt;
Now we can start the server and start adding records to it: {{Cmd|service pdns start}}&lt;br /&gt;
= Use =&lt;br /&gt;
Adding records is usually done through the commandline. There are several web based GUI&#039;s available, but this is outside the scope of this article. See the resources section for more information.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We first have to setup a dns zone: &lt;br /&gt;
{{Cmd|pdnsutil create-zone example.com ns1.example.com}} We also add one NS record.&lt;br /&gt;
&lt;br /&gt;
To add a new record we execute the following command: {{Cmd|pdnsutil add-record example.com. www A 192.0.2.1}} where www is the subdomain, and 192.0.2.1 is the server we point it to.&lt;br /&gt;
&lt;br /&gt;
== Controlling PowerDNS status ==&lt;br /&gt;
&lt;br /&gt;
Stop, start and restart the daemon in the usual fashion:&lt;br /&gt;
{{Cmd|rc-service pdns start}}&lt;br /&gt;
&lt;br /&gt;
{{Cmd|rc-service pdns stop}}&lt;br /&gt;
&lt;br /&gt;
{{Cmd|rc-service pdns restart}}&lt;br /&gt;
&lt;br /&gt;
== Auto-start pdns at boot ==&lt;br /&gt;
&lt;br /&gt;
To add the daemon to the default runlevel so it auto-starts at boot, do: {{Cmd|rc-update add pdns}}&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;TODO&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Ensure the daemon is running with {{Cmd|rc-status}}&lt;br /&gt;
&lt;br /&gt;
= Resources =&lt;br /&gt;
* The main website for PowerDNS: [https://www.powerdns.com https://www.powerdns.com] &lt;br /&gt;
* PowerDNS Documentation: [https://doc.powerdns.com/ https://doc.powerdns.com/](Most of this article is from the main documentation site. only Alpine specific details where changed.)&lt;br /&gt;
* Packagelist: [https://pkgs.alpinelinux.org/packages?name=pdns*&amp;amp;branch=v3.17&amp;amp;repo=community&amp;amp;arch=&amp;amp;maintainer= https://pkgs.alpinelinux.org/packages?name=pdns*&amp;amp;branch=v3.17&amp;amp;repo=community&amp;amp;arch=&amp;amp;maintainer=]&lt;br /&gt;
&lt;br /&gt;
[[Category:Server]]&lt;/div&gt;</summary>
		<author><name>Jhjacobs81</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=PowerDNS&amp;diff=22742</id>
		<title>PowerDNS</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=PowerDNS&amp;diff=22742"/>
		<updated>2022-12-06T19:30:21Z</updated>

		<summary type="html">&lt;p&gt;Jhjacobs81: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= General = &lt;br /&gt;
The PowerDNS Authoritative Server is a versatile nameserver which supports a large number of backends. These backends can either be plain zone files or be more dynamic in nature. A backend is a datastore that the server will consult that contains DNS records (and some metadata). The backends range from database backends (MySQL, PostgreSQL) and BIND zone files to co-processes and JSON API’s.&lt;br /&gt;
&lt;br /&gt;
Multiple backends can be enabled in the configuration by using the launch option. Each backend can be configured separately. In this howto we will focus on sqlite&lt;br /&gt;
    &lt;br /&gt;
For a full list of features see the [https://doc.powerdns.com/ PowerDNS documentation website]&lt;br /&gt;
&lt;br /&gt;
= Install =&lt;br /&gt;
&lt;br /&gt;
{{Cmd|apk add pdns pdns-backend-sqlite3 pdns-docs}}&lt;br /&gt;
{{Cmd|rc-service add pdns}}&lt;br /&gt;
&lt;br /&gt;
= Configure =&lt;br /&gt;
&lt;br /&gt;
On Alpine, the default configuration file is: {{Path|/etc/pdns/pdns.conf}} The default config is good to start using the DNS functions. To use the SQLite backend edit the config file and at the bottom add &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
launch=gsqlite3&lt;br /&gt;
gsqlite3-database=/var/lib/powerdns/pdns.sqlite3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The pdns-doc ships with example&#039;s for different backends in {{path|/usr/share/doc/pdns/}}. For this example we use the sqlite schema.&lt;br /&gt;
First we need to create the correct directory: {{Cmd|mkdir /var/lib/powerdns}}&lt;br /&gt;
Next we need to import the database scheme: {{Cmd|sqlite3 /var/lib/powerdns/pdns.sqlite3 &amp;lt; /usr/share/doc/pdns/schema.sqlite3.sql}}&lt;br /&gt;
Then we need to set the correct permissions: {{Cmd|chown -R pdns:pdns /var/lib/powerdns}}&lt;br /&gt;
For a more detailed guide please see the documentation [https://doc.powerdns.com/authoritative/guides/basic-database.html here]&lt;br /&gt;
&lt;br /&gt;
Now we can start the server and start adding records to it: {{Cmd|service pdns start}}&lt;br /&gt;
= Use =&lt;br /&gt;
Adding records is usually done through the commandline. There are several web based GUI&#039;s available, but this is outside the scope of this article. See the resources section for more information.&lt;br /&gt;
We first have to setup a dns zone: &lt;br /&gt;
{{Cmd|pdnsutil create-zone example.com ns1.example.com}} We also add one NS record.&lt;br /&gt;
&lt;br /&gt;
To add a new record we execute the following command: {{Cmd|pdnsutil add-record example.com. www A 192.0.2.1}} where www is the subdomain, and 192.0.2.1 is the server we point it to.&lt;br /&gt;
&lt;br /&gt;
== Controlling PowerDNS status ==&lt;br /&gt;
&lt;br /&gt;
Stop, start and restart the daemon in the usual fashion:&lt;br /&gt;
{{Cmd|rc-service pdns start}}&lt;br /&gt;
&lt;br /&gt;
{{Cmd|rc-service pdns stop}}&lt;br /&gt;
&lt;br /&gt;
{{Cmd|rc-service pdns restart}}&lt;br /&gt;
&lt;br /&gt;
== Auto-start pdns at boot ==&lt;br /&gt;
&lt;br /&gt;
To add the daemon to the default runlevel so it auto-starts at boot, do: {{Cmd|rc-update add pdns}}&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;TODO&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Ensure the daemon is running with {{Cmd|rc-status}}&lt;br /&gt;
&lt;br /&gt;
= Resources =&lt;br /&gt;
* The main website for PowerDNS: [https://www.powerdns.com https://www.powerdns.com] &lt;br /&gt;
* PowerDNS Documentation: [https://doc.powerdns.com/ https://doc.powerdns.com/](Most of this article is from the main documentation site. only Alpine specific details where changed.)&lt;br /&gt;
* Packagelist: [https://pkgs.alpinelinux.org/packages?name=pdns*&amp;amp;branch=v3.17&amp;amp;repo=community&amp;amp;arch=&amp;amp;maintainer= https://pkgs.alpinelinux.org/packages?name=pdns*&amp;amp;branch=v3.17&amp;amp;repo=community&amp;amp;arch=&amp;amp;maintainer=]&lt;br /&gt;
&lt;br /&gt;
[[Category:Server]]&lt;/div&gt;</summary>
		<author><name>Jhjacobs81</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=PowerDNS&amp;diff=22741</id>
		<title>PowerDNS</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=PowerDNS&amp;diff=22741"/>
		<updated>2022-12-06T19:28:44Z</updated>

		<summary type="html">&lt;p&gt;Jhjacobs81: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= General = &lt;br /&gt;
The PowerDNS Authoritative Server is a versatile nameserver which supports a large number of backends. These backends can either be plain zone files or be more dynamic in nature. A backend is a datastore that the server will consult that contains DNS records (and some metadata). The backends range from database backends (MySQL, PostgreSQL) and BIND zone files to co-processes and JSON API’s.&lt;br /&gt;
&lt;br /&gt;
Multiple backends can be enabled in the configuration by using the launch option. Each backend can be configured separately. In this howto we will focus on sqlite&lt;br /&gt;
    &lt;br /&gt;
For a full list of features see the [https://doc.powerdns.com/ PowerDNS documentation website]&lt;br /&gt;
&lt;br /&gt;
= Install =&lt;br /&gt;
&lt;br /&gt;
{{Cmd|apk add pdns pdns-backend-sqlite3 pdns-docs}}&lt;br /&gt;
{{Cmd|rc-service add pdns}}&lt;br /&gt;
&lt;br /&gt;
= Configure =&lt;br /&gt;
&lt;br /&gt;
On Alpine, the default configuration file is: {{Path|/etc/pdns/pdns.conf}} The default config is good to start using the DNS functions. To use the SQLite backend edit the config file and at the bottom add &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
launch=gsqlite3&lt;br /&gt;
gsqlite3-database=/var/lib/powerdns/pdns.sqlite3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The pdns-doc ships with example&#039;s for different backends in {{path|/usr/share/doc/pdns/}}. For this example we use the sqlite schema.&lt;br /&gt;
First we need to create the correct directory: {{Cmd|mkdir /var/lib/powerdns}}&lt;br /&gt;
Next we need to import the database scheme: {{Cmd|sqlite3 /var/lib/powerdns/pdns.sqlite3 &amp;lt; /usr/share/doc/pdns/schema.sqlite3.sql}}&lt;br /&gt;
Then we need to set the correct permissions: {{Cmd|chown -R pdns:pdns /var/lib/powerdns}}&lt;br /&gt;
For a more detailed guide please see the documentation {{https://doc.powerdns.com/authoritative/guides/basic-database.html here}}&lt;br /&gt;
&lt;br /&gt;
Now we can start the server and start adding records to it: {{Cmd|service pdns start}}&lt;br /&gt;
= Use =&lt;br /&gt;
Adding records is done through the commandline. &lt;br /&gt;
We first have to setup a dns zone: &lt;br /&gt;
{{Cmd|pdnsutil create-zone example.com ns1.example.com}} We also add one NS record.&lt;br /&gt;
&lt;br /&gt;
To add a new record we execute the following command: {{Cmd|pdnsutil add-record example.com. www A 192.0.2.1}} where www is the subdomain, and 192.0.2.1 is the server we point it to.&lt;br /&gt;
&lt;br /&gt;
== Controlling PowerDNS status ==&lt;br /&gt;
&lt;br /&gt;
Stop, start and restart the daemon in the usual fashion:&lt;br /&gt;
{{Cmd|rc-service pdns start}}&lt;br /&gt;
&lt;br /&gt;
{{Cmd|rc-service pdns stop}}&lt;br /&gt;
&lt;br /&gt;
{{Cmd|rc-service pdns restart}}&lt;br /&gt;
&lt;br /&gt;
== Auto-start pdns at boot ==&lt;br /&gt;
&lt;br /&gt;
To add the daemon to the default runlevel so it auto-starts at boot, do: {{Cmd|rc-update add pdns}}&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;TODO&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Ensure the daemon is running with {{Cmd|rc-status}}&lt;br /&gt;
&lt;br /&gt;
= Resources =&lt;br /&gt;
* The main website for PowerDNS: [https://www.powerdns.com https://www.powerdns.com] &lt;br /&gt;
* PowerDNS Documentation: [https://doc.powerdns.com/ https://doc.powerdns.com/](Most of this article is from the main documentation site. only Alpine specific details where changed.)&lt;br /&gt;
* Packagelist: [https://pkgs.alpinelinux.org/packages?name=pdns*&amp;amp;branch=v3.17&amp;amp;repo=community&amp;amp;arch=&amp;amp;maintainer= https://pkgs.alpinelinux.org/packages?name=pdns*&amp;amp;branch=v3.17&amp;amp;repo=community&amp;amp;arch=&amp;amp;maintainer=]&lt;br /&gt;
&lt;br /&gt;
[[Category:Server]]&lt;/div&gt;</summary>
		<author><name>Jhjacobs81</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=PowerDNS&amp;diff=22740</id>
		<title>PowerDNS</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=PowerDNS&amp;diff=22740"/>
		<updated>2022-12-06T19:26:41Z</updated>

		<summary type="html">&lt;p&gt;Jhjacobs81: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= General = &lt;br /&gt;
The PowerDNS Authoritative Server is a versatile nameserver which supports a large number of backends. These backends can either be plain zone files or be more dynamic in nature. A backend is a datastore that the server will consult that contains DNS records (and some metadata). The backends range from database backends (MySQL, PostgreSQL) and BIND zone files to co-processes and JSON API’s.&lt;br /&gt;
&lt;br /&gt;
Multiple backends can be enabled in the configuration by using the launch option. Each backend can be configured separately. In this howto we will focus on sqlite&lt;br /&gt;
    &lt;br /&gt;
For a full list of features see the [https://doc.powerdns.com/ PowerDNS documentation website]&lt;br /&gt;
&lt;br /&gt;
= Install =&lt;br /&gt;
&lt;br /&gt;
{{Cmd|apk add pdns pdns-backend-sqlite3}}&lt;br /&gt;
{{Cmd|rc-service add pdns}}&lt;br /&gt;
&lt;br /&gt;
= Configure =&lt;br /&gt;
&lt;br /&gt;
Default location of the config file: {{Path|/etc/pdns/pdns.conf}} The default config is good to start using the DNS functions. To use the SQLite backend edit the config file and at the bottom add &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
launch=gsqlite3&lt;br /&gt;
gsqlite3-database=/var/lib/powerdns/pdns.sqlite3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The pdns-doc ships with example&#039;s for different backends in {{path|/usr/share/doc/pdns/}}. For this example we use the sqlite schema.&lt;br /&gt;
First we need to create the correct directory: {{Cmd|mkdir /var/lib/powerdns}}&lt;br /&gt;
Next we need to import the database scheme: {{Cmd|sqlite3 /var/lib/powerdns/pdns.sqlite3 &amp;lt; /usr/share/doc/pdns/schema.sqlite3.sql}}&lt;br /&gt;
Then we need to set the correct permissions: {{Cmd|chown -R pdns:pdns /var/lib/powerdns}}&lt;br /&gt;
For a more detailed guide please see the documentation {{https://doc.powerdns.com/authoritative/guides/basic-database.html here}}&lt;br /&gt;
&lt;br /&gt;
Now we can start the server and start adding records to it: {{Cmd|service pdns start}}&lt;br /&gt;
= Use =&lt;br /&gt;
Adding records is done through the commandline. &lt;br /&gt;
We first have to setup a dns zone: &lt;br /&gt;
{{Cmd|pdnsutil create-zone example.com ns1.example.com}} We also add one NS record.&lt;br /&gt;
&lt;br /&gt;
To add a new record we execute the following command: {{Cmd|pdnsutil add-record example.com. www A 192.0.2.1}} where www is the subdomain, and 192.0.2.1 is the server we point it to.&lt;br /&gt;
&lt;br /&gt;
== Controlling PowerDNS status ==&lt;br /&gt;
&lt;br /&gt;
Stop, start and restart the daemon in the usual fashion:&lt;br /&gt;
{{Cmd|rc-service pdns start}}&lt;br /&gt;
&lt;br /&gt;
{{Cmd|rc-service pdns stop}}&lt;br /&gt;
&lt;br /&gt;
{{Cmd|rc-service pdns restart}}&lt;br /&gt;
&lt;br /&gt;
== Auto-start pdns at boot ==&lt;br /&gt;
&lt;br /&gt;
To add the daemon to the default runlevel so it auto-starts at boot, do: {{Cmd|rc-update add pdns}}&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;TODO&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Ensure the daemon is running with {{Cmd|rc-status}}&lt;br /&gt;
&lt;br /&gt;
= Resources =&lt;br /&gt;
* The main website for PowerDNS: [https://www.powerdns.com https://www.powerdns.com] &lt;br /&gt;
* PowerDNS Documentation: [https://doc.powerdns.com/ https://doc.powerdns.com/](Most of this article is from the main documentation site. only Alpine specific details where changed.)&lt;br /&gt;
* Packagelist: [https://pkgs.alpinelinux.org/packages?name=pdns*&amp;amp;branch=v3.17&amp;amp;repo=community&amp;amp;arch=&amp;amp;maintainer= https://pkgs.alpinelinux.org/packages?name=pdns*&amp;amp;branch=v3.17&amp;amp;repo=community&amp;amp;arch=&amp;amp;maintainer=]&lt;br /&gt;
&lt;br /&gt;
[[Category:Server]]&lt;/div&gt;</summary>
		<author><name>Jhjacobs81</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=PowerDNS&amp;diff=22739</id>
		<title>PowerDNS</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=PowerDNS&amp;diff=22739"/>
		<updated>2022-12-06T19:25:03Z</updated>

		<summary type="html">&lt;p&gt;Jhjacobs81: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= General = &lt;br /&gt;
The PowerDNS Authoritative Server is a versatile nameserver which supports a large number of backends. These backends can either be plain zone files or be more dynamic in nature. PowerDNS has the concepts of ‘backends’. A backend is a datastore that the server will consult that contains DNS records (and some metadata). The backends range from database backends (MySQL, PostgreSQL) and BIND zone files to co-processes and JSON API’s.&lt;br /&gt;
&lt;br /&gt;
Multiple backends can be enabled in the configuration by using the launch option. Each backend can be configured separately. In this howto we will focus on sqlite&lt;br /&gt;
    &lt;br /&gt;
For a full list of features see the [https://doc.powerdns.com/ PowerDNS documentation website]&lt;br /&gt;
&lt;br /&gt;
= Install =&lt;br /&gt;
&lt;br /&gt;
{{Cmd|apk add pdns pdns-backend-sqlite3}}&lt;br /&gt;
{{Cmd|rc-service add pdns}}&lt;br /&gt;
&lt;br /&gt;
= Configure =&lt;br /&gt;
&lt;br /&gt;
Default location of the config file: {{Path|/etc/pdns/pdns.conf}} The default config is good to start using the DNS functions. To use the SQLite backend edit the config file and at the bottom add &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
launch=gsqlite3&lt;br /&gt;
gsqlite3-database=/var/lib/powerdns/pdns.sqlite3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The pdns-doc ships with example&#039;s for different backends in {{path|/usr/share/doc/pdns/}}. For this example we use the sqlite schema.&lt;br /&gt;
First we need to create the correct directory: {{Cmd|mkdir /var/lib/powerdns}}&lt;br /&gt;
Next we need to import the database scheme: {{Cmd|sqlite3 /var/lib/powerdns/pdns.sqlite3 &amp;lt; /usr/share/doc/pdns/schema.sqlite3.sql}}&lt;br /&gt;
Then we need to set the correct permissions: {{Cmd|chown -R pdns:pdns /var/lib/powerdns}}&lt;br /&gt;
For a more detailed guide please see the documentation {{https://doc.powerdns.com/authoritative/guides/basic-database.html here}}&lt;br /&gt;
&lt;br /&gt;
Now we can start the server and start adding records to it: {{Cmd|service pdns start}}&lt;br /&gt;
= Use =&lt;br /&gt;
Adding records is done through the commandline. &lt;br /&gt;
We first have to setup a dns zone: &lt;br /&gt;
{{Cmd|pdnsutil create-zone example.com ns1.example.com}} We also add one NS record.&lt;br /&gt;
&lt;br /&gt;
To add a new record we execute the following command: {{Cmd|pdnsutil add-record example.com. www A 192.0.2.1}} where www is the subdomain, and 192.0.2.1 is the server we point it to.&lt;br /&gt;
&lt;br /&gt;
== Controlling PowerDNS status ==&lt;br /&gt;
&lt;br /&gt;
Stop, start and restart the daemon in the usual fashion:&lt;br /&gt;
{{Cmd|rc-service pdns start}}&lt;br /&gt;
&lt;br /&gt;
{{Cmd|rc-service pdns stop}}&lt;br /&gt;
&lt;br /&gt;
{{Cmd|rc-service pdns restart}}&lt;br /&gt;
&lt;br /&gt;
== Auto-start pdns at boot ==&lt;br /&gt;
&lt;br /&gt;
To add the daemon to the default runlevel so it auto-starts at boot, do: {{Cmd|rc-update add pdns}}&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;TODO&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Ensure the daemon is running with {{Cmd|rc-status}}&lt;br /&gt;
&lt;br /&gt;
= Resources =&lt;br /&gt;
* The main website for PowerDNS: [https://www.powerdns.com https://www.powerdns.com] &lt;br /&gt;
* PowerDNS Documentation: [https://doc.powerdns.com/ https://doc.powerdns.com/](Most of this article is from the main documentation site. only Alpine specific details where changed.)&lt;br /&gt;
* Packagelist: [https://pkgs.alpinelinux.org/packages?name=pdns*&amp;amp;branch=v3.17&amp;amp;repo=community&amp;amp;arch=&amp;amp;maintainer= https://pkgs.alpinelinux.org/packages?name=pdns*&amp;amp;branch=v3.17&amp;amp;repo=community&amp;amp;arch=&amp;amp;maintainer=]&lt;br /&gt;
&lt;br /&gt;
[[Category:Server]]&lt;/div&gt;</summary>
		<author><name>Jhjacobs81</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=PowerDNS&amp;diff=22738</id>
		<title>PowerDNS</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=PowerDNS&amp;diff=22738"/>
		<updated>2022-12-06T19:24:08Z</updated>

		<summary type="html">&lt;p&gt;Jhjacobs81: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= General = &lt;br /&gt;
The PowerDNS Authoritative Server is a versatile nameserver which supports a large number of backends. These backends can either be plain zone files or be more dynamic in nature. PowerDNS has the concepts of ‘backends’. A backend is a datastore that the server will consult that contains DNS records (and some metadata). The backends range from database backends (MySQL, PostgreSQL) and BIND zone files to co-processes and JSON API’s.&lt;br /&gt;
&lt;br /&gt;
Multiple backends can be enabled in the configuration by using the launch option. Each backend can be configured separately. In this howto we will focus on sqlite&lt;br /&gt;
    &lt;br /&gt;
For a full list of features see the [https://doc.powerdns.com/ PowerDNS documentation website]&lt;br /&gt;
&lt;br /&gt;
= Install =&lt;br /&gt;
&lt;br /&gt;
{{Cmd|apk add pdns pdns-backend-sqlite3}}&lt;br /&gt;
{{Cmd|rc-service add pdns}}&lt;br /&gt;
&lt;br /&gt;
= Configure =&lt;br /&gt;
&lt;br /&gt;
Default location of the config file: {{Path|/etc/pdns/pdns.conf}} The default config is good to start using the DNS functions. To use the SQLite backend edit the config file and at the bottom add &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
launch=gsqlite3&lt;br /&gt;
gsqlite3-database=/var/lib/powerdns/pdns.sqlite3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The pdns-doc ships with example&#039;s for different backends in {{path|/usr/share/doc/pdns/}}. For this example we use the sqlite schema.&lt;br /&gt;
First we need to create the correct directory: {{Cmd|mkdir /var/lib/powerdns}}&lt;br /&gt;
Next we need to import the database scheme: {{Cmd|sqlite3 /var/lib/powerdns/pdns.sqlite3 &amp;lt; /usr/share/doc/pdns/schema.sqlite3.sql}}&lt;br /&gt;
Then we need to set the correct permissions: {{Cmd|chown -R pdns:pdns /var/lib/powerdns}}&lt;br /&gt;
For a more detailed guide please see the documentation {{https://doc.powerdns.com/authoritative/guides/basic-database.html here}}&lt;br /&gt;
&lt;br /&gt;
Now we can start the server and start adding records to it: {{Cmd|service pdns start}}&lt;br /&gt;
= Use =&lt;br /&gt;
Adding records is done through the commandline. &lt;br /&gt;
We first have to setup a dns zone: &lt;br /&gt;
{{Cmd|pdnsutil create-zone example.com ns1.example.com}} We also add one NS record.&lt;br /&gt;
&lt;br /&gt;
To add a new record we execute the following command: {{Cmd|pdnsutil add-record example.com. www A 192.0.2.1}} where www is the subdomain, and 192.0.2.1 is the server we point it to.&lt;br /&gt;
&lt;br /&gt;
== Controlling PowerDNS status ==&lt;br /&gt;
&lt;br /&gt;
Stop, start and restart the daemon in the usual fashion:&lt;br /&gt;
{{Cmd|rc-service pdns start}}&lt;br /&gt;
&lt;br /&gt;
{{Cmd|rc-service pdns stop}}&lt;br /&gt;
&lt;br /&gt;
{{Cmd|rc-service pdns restart}}&lt;br /&gt;
&lt;br /&gt;
== Auto-start pdns at boot ==&lt;br /&gt;
&lt;br /&gt;
To add the daemon to the default runlevel so it auto-starts at boot, do: {{Cmd|rc-update add pdns}}&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
&lt;br /&gt;
{{ TODO }}&lt;br /&gt;
&lt;br /&gt;
* Ensure the daemon is running with {{Cmd|rc-status}}&lt;br /&gt;
&lt;br /&gt;
= Resources =&lt;br /&gt;
* The main website for PowerDNS: [https://www.powerdns.com https://www.powerdns.com] &lt;br /&gt;
* PowerDNS Documentation: [https://doc.powerdns.com/ https://doc.powerdns.com/](Most of this article is from the main documentation site. only Alpine specific details where changed.)&lt;br /&gt;
* Packagelist: [https://pkgs.alpinelinux.org/packages?name=pdns*&amp;amp;branch=v3.17&amp;amp;repo=community&amp;amp;arch=&amp;amp;maintainer= https://pkgs.alpinelinux.org/packages?name=pdns*&amp;amp;branch=v3.17&amp;amp;repo=community&amp;amp;arch=&amp;amp;maintainer=]&lt;br /&gt;
&lt;br /&gt;
[[Category:Server]]&lt;/div&gt;</summary>
		<author><name>Jhjacobs81</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=PowerDNS&amp;diff=22737</id>
		<title>PowerDNS</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=PowerDNS&amp;diff=22737"/>
		<updated>2022-12-06T19:19:46Z</updated>

		<summary type="html">&lt;p&gt;Jhjacobs81: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= General = &lt;br /&gt;
The PowerDNS Authoritative Server is a versatile nameserver which supports a large number of backends. These backends can either be plain zone files or be more dynamic in nature. PowerDNS has the concepts of ‘backends’. A backend is a datastore that the server will consult that contains DNS records (and some metadata). The backends range from database backends (MySQL, PostgreSQL) and BIND zone files to co-processes and JSON API’s.&lt;br /&gt;
&lt;br /&gt;
Multiple backends can be enabled in the configuration by using the launch option. Each backend can be configured separately. In this howto we will focus on sqlite&lt;br /&gt;
    &lt;br /&gt;
For a full list of features see the [https://doc.powerdns.com/ PowerDNS documentation website]&lt;br /&gt;
&lt;br /&gt;
= Install =&lt;br /&gt;
&lt;br /&gt;
{{Cmd|apk add pdns pdns-backend-sqlite3}}&lt;br /&gt;
{{Cmd|rc-service add pdns}}&lt;br /&gt;
&lt;br /&gt;
= Configure =&lt;br /&gt;
&lt;br /&gt;
Default location of the config file: {{Path|/etc/pdns/pdns.conf}} The default config is good to start using the DNS functions. To use the SQLite backend edit the config file and at the bottom add &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
launch=gsqlite3&lt;br /&gt;
gsqlite3-database=/var/lib/powerdns/pdns.sqlite3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The pdns-doc ships with example&#039;s for different backends in {{path|/usr/share/doc/pdns/}}. For this example we use the sqlite schema.&lt;br /&gt;
First we need to create the correct directory: {{Cmd|mkdir /var/lib/powerdns}}&lt;br /&gt;
Next we need to import the database scheme: {{Cmd|sqlite3 /var/lib/powerdns/pdns.sqlite3 &amp;lt; /usr/share/doc/pdns/schema.sqlite3.sql}}&lt;br /&gt;
Then we need to set the correct permissions: {{Cmd|chown -R pdns:pdns /var/lib/powerdns}}&lt;br /&gt;
For a more detailed guide please see the documentation {{https://doc.powerdns.com/authoritative/guides/basic-database.html here}}&lt;br /&gt;
&lt;br /&gt;
Now we can start the server and start adding records to it: {{Cmd|service pdns start}}&lt;br /&gt;
= Use =&lt;br /&gt;
Adding records is done through the commandline. &lt;br /&gt;
We first have to setup a dns zone: &lt;br /&gt;
{{Cmd|pdnsutil create-zone example.com ns1.example.com}} We also add one NS record.&lt;br /&gt;
&lt;br /&gt;
To add a new record we execute the following command: {{Cmd|pdnsutil add-record example.com. www A 192.0.2.1}} where www is the subdomain, and 192.0.2.1 is the server we point it to.&lt;br /&gt;
&lt;br /&gt;
== Controlling PowerDNS status ==&lt;br /&gt;
&lt;br /&gt;
Stop, start and restart the daemon in the usual fashion:&lt;br /&gt;
{{Cmd|rc-service pdns start}}&lt;br /&gt;
&lt;br /&gt;
{{Cmd|rc-service pdns stop}}&lt;br /&gt;
&lt;br /&gt;
{{Cmd|rc-service pdns restart}}&lt;br /&gt;
&lt;br /&gt;
== Auto-start pdns at boot ==&lt;br /&gt;
&lt;br /&gt;
To add the daemon to the default runlevel so it auto-starts at boot, do: {{Cmd|rc-update add pdns}}&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
&lt;br /&gt;
{{ TODO }}&lt;br /&gt;
&lt;br /&gt;
* Ensure the daemon is running with {{Cmd|rc-status}}&lt;br /&gt;
&lt;br /&gt;
= Resources =&lt;br /&gt;
* The main website for PowerDNS: [https://www.powerdns.com PowerDNS] &lt;br /&gt;
* Packagelist: [https://pkgs.alpinelinux.org/packages?name=pdns*&amp;amp;branch=v3.17&amp;amp;repo=community&amp;amp;arch=&amp;amp;maintainer= Here]&lt;br /&gt;
&lt;br /&gt;
[[Category:Server]]&lt;/div&gt;</summary>
		<author><name>Jhjacobs81</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=PowerDNS&amp;diff=22736</id>
		<title>PowerDNS</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=PowerDNS&amp;diff=22736"/>
		<updated>2022-12-06T19:18:09Z</updated>

		<summary type="html">&lt;p&gt;Jhjacobs81: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= General = &lt;br /&gt;
The PowerDNS Authoritative Server is a versatile nameserver which supports a large number of backends. These backends can either be plain zone files or be more dynamic in nature. PowerDNS has the concepts of ‘backends’. A backend is a datastore that the server will consult that contains DNS records (and some metadata). The backends range from database backends (MySQL, PostgreSQL) and BIND zone files to co-processes and JSON API’s.&lt;br /&gt;
&lt;br /&gt;
Multiple backends can be enabled in the configuration by using the launch option. Each backend can be configured separately. In this howto we will focus on sqlite&lt;br /&gt;
    &lt;br /&gt;
For a full list of features see the [https://doc.powerdns.com/ PowerDNS documentation website]&lt;br /&gt;
&lt;br /&gt;
= Install =&lt;br /&gt;
&lt;br /&gt;
{{Cmd|apk add pdns pdns-backend-sqlite3}}&lt;br /&gt;
{{Cmd|rc-service add pdns}}&lt;br /&gt;
&lt;br /&gt;
= Configure =&lt;br /&gt;
&lt;br /&gt;
Default location of the config file: {{Path|/etc/pdns/pdns.conf}} The default config is good to start using the DNS functions. To use the SQLite backend edit the config file and at the bottom add &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
launch=gsqlite3&lt;br /&gt;
gsqlite3-database=/var/lib/powerdns/pdns.sqlite3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The pdns-doc ships with example&#039;s for different backends in {{path|/usr/share/doc/pdns/}}. For this example we use the sqlite schema.&lt;br /&gt;
First we need to create the correct directory: {{Cmd|mkdir /var/lib/powerdns}}&lt;br /&gt;
Next we need to import the database scheme: {{Cmd|sqlite3 /var/lib/powerdns/pdns.sqlite3 &amp;lt; /usr/share/doc/pdns/schema.sqlite3.sql}}&lt;br /&gt;
Then we need to set the correct permissions: {{Cmd|chown -R pdns:pdns /var/lib/powerdns}}&lt;br /&gt;
For a more detailed guide please see the documentation {{https://doc.powerdns.com/authoritative/guides/basic-database.html here}}&lt;br /&gt;
&lt;br /&gt;
Now we can start the server and start adding records to it: {{Cmd|service pdns start}}&lt;br /&gt;
= Use =&lt;br /&gt;
Adding records is done through the commandline. &lt;br /&gt;
We first have to setup a dns zone: &lt;br /&gt;
{{Cmd|pdnsutil create-zone example.com ns1.example.com}} We also add one NS record.&lt;br /&gt;
&lt;br /&gt;
To add a new record we execute the following command: {{Cmd|pdnsutil add-record example.com. www A 192.0.2.1}} where www is the subdomain, and 192.0.2.1 is the server we point it to.&lt;br /&gt;
&lt;br /&gt;
== Controlling PowerDNS status ==&lt;br /&gt;
&lt;br /&gt;
Stop, start and restart the daemon in the usual fashion:&lt;br /&gt;
{{Cmd|rc-service pdns start}}&lt;br /&gt;
&lt;br /&gt;
{{Cmd|rc-service pdns stop}}&lt;br /&gt;
&lt;br /&gt;
{{Cmd|rc-service pdns restart}}&lt;br /&gt;
&lt;br /&gt;
== Auto-start pdns at boot ==&lt;br /&gt;
&lt;br /&gt;
To add the daemon to the default runlevel so it auto-starts at boot, do: {{Cmd|rc-update add pdns}}&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
&lt;br /&gt;
{{ TODO }}&lt;br /&gt;
&lt;br /&gt;
* Ensure the daemon is running with {{Cmd|rc-status}}&lt;br /&gt;
&lt;br /&gt;
= Resources =&lt;br /&gt;
The main website for PowerDNS: [https://www.powerdns.com PowerDNS] \\&lt;br /&gt;
Packagelist: [https://pkgs.alpinelinux.org/packages?name=pdns*&amp;amp;branch=v3.17&amp;amp;repo=community&amp;amp;arch=&amp;amp;maintainer= Here]&lt;br /&gt;
&lt;br /&gt;
[[Category:Server]]&lt;/div&gt;</summary>
		<author><name>Jhjacobs81</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=PowerDNS&amp;diff=22735</id>
		<title>PowerDNS</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=PowerDNS&amp;diff=22735"/>
		<updated>2022-12-06T19:17:36Z</updated>

		<summary type="html">&lt;p&gt;Jhjacobs81: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= General = &lt;br /&gt;
The PowerDNS Authoritative Server is a versatile nameserver which supports a large number of backends. These backends can either be plain zone files or be more dynamic in nature. PowerDNS has the concepts of ‘backends’. A backend is a datastore that the server will consult that contains DNS records (and some metadata). The backends range from database backends (MySQL, PostgreSQL) and BIND zone files to co-processes and JSON API’s.&lt;br /&gt;
&lt;br /&gt;
Multiple backends can be enabled in the configuration by using the launch option. Each backend can be configured separately. In this howto we will focus on sqlite&lt;br /&gt;
    &lt;br /&gt;
For a full list of features see the [https://doc.powerdns.com/ PowerDNS documentation website]&lt;br /&gt;
&lt;br /&gt;
= Install =&lt;br /&gt;
&lt;br /&gt;
{{Cmd|apk add pdns pdns-backend-sqlite3}}&lt;br /&gt;
{{Cmd|rc-service add pdns}}&lt;br /&gt;
&lt;br /&gt;
= Configure =&lt;br /&gt;
&lt;br /&gt;
Default location of the config file: {{Path|/etc/pdns/pdns.conf}} The default config is good to start using the DNS functions. To use the SQLite backend edit the config file and at the bottom add &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
launch=gsqlite3&lt;br /&gt;
gsqlite3-database=/var/lib/powerdns/pdns.sqlite3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The pdns-doc ships with example&#039;s for different backends in {{path|/usr/share/doc/pdns/}}. For this example we use the sqlite schema.&lt;br /&gt;
First we need to create the correct directory: {{Cmd|mkdir /var/lib/powerdns}}&lt;br /&gt;
Next we need to import the database scheme: {{Cmd|sqlite3 /var/lib/powerdns/pdns.sqlite3 &amp;lt; /usr/share/doc/pdns/schema.sqlite3.sql}}&lt;br /&gt;
Then we need to set the correct permissions: {{Cmd|chown -R pdns:pdns /var/lib/powerdns}}&lt;br /&gt;
For a more detailed guide please see the documentation {{https://doc.powerdns.com/authoritative/guides/basic-database.html here}}&lt;br /&gt;
&lt;br /&gt;
Now we can start the server and start adding records to it: {{Cmd|service pdns start}}&lt;br /&gt;
= Use =&lt;br /&gt;
Adding records is done through the commandline. &lt;br /&gt;
We first have to setup a dns zone: &lt;br /&gt;
{{Cmd|pdnsutil create-zone example.com ns1.example.com}} We also add one NS record.&lt;br /&gt;
&lt;br /&gt;
To add a new record we execute the following command: {{Cmd|pdnsutil add-record example.com. www A 192.0.2.1}} where www is the subdomain, and 192.0.2.1 is the server we point it to.&lt;br /&gt;
&lt;br /&gt;
== Controlling PowerDNS status ==&lt;br /&gt;
&lt;br /&gt;
Stop, start and restart the daemon in the usual fashion:&lt;br /&gt;
{{Cmd|rc-service pdns start}}&lt;br /&gt;
&lt;br /&gt;
{{Cmd|rc-service pdns stop}}&lt;br /&gt;
&lt;br /&gt;
{{Cmd|rc-service pdns restart}}&lt;br /&gt;
&lt;br /&gt;
== Auto-start pdns at boot ==&lt;br /&gt;
&lt;br /&gt;
To add the daemon to the default runlevel so it auto-starts at boot, do: {{Cmd|rc-update add pdns}}&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
&lt;br /&gt;
{{ TODO }}&lt;br /&gt;
&lt;br /&gt;
* Ensure the daemon is running with {{Cmd|rc-status}}&lt;br /&gt;
&lt;br /&gt;
= Resources =&lt;br /&gt;
The main website for PowerDNS: [https://www.powerdns.com PowerDNS]&lt;br /&gt;
Packagelist: [https://pkgs.alpinelinux.org/packages?name=pdns*&amp;amp;branch=v3.17&amp;amp;repo=community&amp;amp;arch=&amp;amp;maintainer= Here]&lt;br /&gt;
&lt;br /&gt;
[[Category:Server]]&lt;/div&gt;</summary>
		<author><name>Jhjacobs81</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=PowerDNS&amp;diff=22734</id>
		<title>PowerDNS</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=PowerDNS&amp;diff=22734"/>
		<updated>2022-12-06T19:16:11Z</updated>

		<summary type="html">&lt;p&gt;Jhjacobs81: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= General = &lt;br /&gt;
The PowerDNS Authoritative Server is a versatile nameserver which supports a large number of backends. These backends can either be plain zone files or be more dynamic in nature. PowerDNS has the concepts of ‘backends’. A backend is a datastore that the server will consult that contains DNS records (and some metadata). The backends range from database backends (MySQL, PostgreSQL) and BIND zone files to co-processes and JSON API’s.&lt;br /&gt;
&lt;br /&gt;
Multiple backends can be enabled in the configuration by using the launch option. Each backend can be configured separately. In this howto we will focus on sqlite&lt;br /&gt;
    &lt;br /&gt;
For a full list of features see the [https://doc.powerdns.com/ PowerDNS documentation website]&lt;br /&gt;
&lt;br /&gt;
= Install =&lt;br /&gt;
&lt;br /&gt;
{{Cmd|apk add pdns pdns-backend-sqlite3}}&lt;br /&gt;
{{Cmd|rc-service add pdns}}&lt;br /&gt;
&lt;br /&gt;
= Configure =&lt;br /&gt;
&lt;br /&gt;
Default location of the config file: {{Path|/etc/pdns/pdns.conf}} The default config is good to start using the DNS functions. To use the SQLite backend edit the config file and at the bottom add &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
launch=gsqlite3&lt;br /&gt;
gsqlite3-database=/var/lib/powerdns/pdns.sqlite3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The pdns-doc ships with example&#039;s for different backends in {{path|/usr/share/doc/pdns/}}. For this example we use the sqlite schema.&lt;br /&gt;
First we need to create the correct directory: {{Cmd|mkdir /var/lib/powerdns}}&lt;br /&gt;
Next we need to import the database scheme: {{Cmd|sqlite3 /var/lib/powerdns/pdns.sqlite3 &amp;lt; /usr/share/doc/pdns/schema.sqlite3.sql}}&lt;br /&gt;
Then we need to set the correct permissions: {{Cmd|chown -R pdns:pdns /var/lib/powerdns}}&lt;br /&gt;
For a more detailed guide please see the documentation {{https://doc.powerdns.com/authoritative/guides/basic-database.html here}}&lt;br /&gt;
&lt;br /&gt;
Now we can start the server and start adding records to it: {{Cmd|service pdns start}}&lt;br /&gt;
= Use =&lt;br /&gt;
Adding records is done through the commandline. &lt;br /&gt;
We first have to setup a dns zone: &lt;br /&gt;
{{Cmd|pdnsutil create-zone example.com ns1.example.com}} We also add one NS record.&lt;br /&gt;
&lt;br /&gt;
To add a new record we execute the following command: {{Cmd|pdnsutil add-record example.com. www A 192.0.2.1}} where www is the subdomain, and 192.0.2.1 is the server we point it to.&lt;br /&gt;
&lt;br /&gt;
== Controlling PowerDNS status ==&lt;br /&gt;
&lt;br /&gt;
Stop, start and restart the daemon in the usual fashion:&lt;br /&gt;
{{Cmd|rc-service pdns start}}&lt;br /&gt;
&lt;br /&gt;
{{Cmd|rc-service pdns stop}}&lt;br /&gt;
&lt;br /&gt;
{{Cmd|rc-service pdns restart}}&lt;br /&gt;
&lt;br /&gt;
== Auto-start pdns at boot ==&lt;br /&gt;
&lt;br /&gt;
To add the daemon to the default runlevel so it auto-starts at boot, do: {{Cmd|rc-update add pdns}}&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
&lt;br /&gt;
{{ TODO }}&lt;br /&gt;
&lt;br /&gt;
* Ensure the daemon is running with {{Cmd|rc-status}}&lt;br /&gt;
&lt;br /&gt;
= Resources =&lt;br /&gt;
The main website for PowerDNS: {{https://www.powerdns.com powerdns.com}}&lt;br /&gt;
Packagelist: {{https://pkgs.alpinelinux.org/packages?name=pdns*&amp;amp;branch=v3.17&amp;amp;repo=community&amp;amp;arch=&amp;amp;maintainer= Here}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Server]]&lt;/div&gt;</summary>
		<author><name>Jhjacobs81</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=PowerDNS&amp;diff=22733</id>
		<title>PowerDNS</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=PowerDNS&amp;diff=22733"/>
		<updated>2022-12-06T19:15:14Z</updated>

		<summary type="html">&lt;p&gt;Jhjacobs81: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= General = &lt;br /&gt;
The PowerDNS Authoritative Server is a versatile nameserver which supports a large number of backends. These backends can either be plain zone files or be more dynamic in nature. PowerDNS has the concepts of ‘backends’. A backend is a datastore that the server will consult that contains DNS records (and some metadata). The backends range from database backends (MySQL, PostgreSQL) and BIND zone files to co-processes and JSON API’s.&lt;br /&gt;
&lt;br /&gt;
Multiple backends can be enabled in the configuration by using the launch option. Each backend can be configured separately. In this howto we will focus on sqlite&lt;br /&gt;
    &lt;br /&gt;
For a full list of features see the [https://doc.powerdns.com/ PowerDNS documentation website]&lt;br /&gt;
&lt;br /&gt;
= Install =&lt;br /&gt;
&lt;br /&gt;
{{Cmd|apk add pdns pdns-backend-sqlite3}}&lt;br /&gt;
{{Cmd|rc-service add pdns}}&lt;br /&gt;
&lt;br /&gt;
= Configure =&lt;br /&gt;
&lt;br /&gt;
Default location of the config file: {{Path|/etc/pdns/pdns.conf}} The default config is good to start using the DNS functions. To use the SQLite backend edit the config file and at the bottom add &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
launch=gsqlite3&lt;br /&gt;
gsqlite3-database=/var/lib/powerdns/pdns.sqlite3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The pdns-doc ships with example&#039;s for different backends in {{path|/usr/share/doc/pdns/}}. For this example we use the sqlite schema.&lt;br /&gt;
First we need to create the correct directory: {{Cmd|mkdir /var/lib/powerdns}}&lt;br /&gt;
Next we need to import the database scheme: {{Cmd|sqlite3 /var/lib/powerdns/pdns.sqlite3 &amp;lt; /usr/share/doc/pdns/schema.sqlite3.sql}}&lt;br /&gt;
Then we need to set the correct permissions: {{Cmd|chown -R pdns:pdns /var/lib/powerdns}}&lt;br /&gt;
For a more detailed guide please see the documentation {{https://doc.powerdns.com/authoritative/guides/basic-database.html here}}&lt;br /&gt;
&lt;br /&gt;
Now we can start the server and start adding records to it: {{Cmd|service pdns start}}&lt;br /&gt;
= Use =&lt;br /&gt;
Adding records is done through the commandline. &lt;br /&gt;
We first have to setup a dns zone: &lt;br /&gt;
{{Cmd|pdnsutil create-zone example.com ns1.example.com}} We also add one NS record.&lt;br /&gt;
&lt;br /&gt;
To add a new record we execute the following command: {{Cmd|pdnsutil add-record example.com. www A 192.0.2.1}} where www is the subdomain, and 192.0.2.1 is the server we point it to.&lt;br /&gt;
&lt;br /&gt;
== Controlling PowerDNS status ==&lt;br /&gt;
&lt;br /&gt;
Stop, start and restart the daemon in the usual fashion:&lt;br /&gt;
{{Cmd|rc-service pdns start}}&lt;br /&gt;
&lt;br /&gt;
{{Cmd|rc-service pdns stop}}&lt;br /&gt;
&lt;br /&gt;
{{Cmd|rc-service pdns restart}}&lt;br /&gt;
&lt;br /&gt;
== Auto-start pdns at boot ==&lt;br /&gt;
&lt;br /&gt;
To add the daemon to the default runlevel so it auto-starts at boot, do: {{Cmd|rc-update add pdns}}&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
&lt;br /&gt;
{{ TODO }}&lt;br /&gt;
&lt;br /&gt;
* Ensure the daemon is running with {{Cmd|rc-status}}&lt;br /&gt;
&lt;br /&gt;
= Resources =&lt;br /&gt;
The main website for PowerDNS: {{https://www.powerdns.com}}&lt;br /&gt;
Packagelist: {{https://pkgs.alpinelinux.org/packages?name=pdns*&amp;amp;branch=v3.17&amp;amp;repo=community&amp;amp;arch=&amp;amp;maintainer= Here}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Server]]&lt;/div&gt;</summary>
		<author><name>Jhjacobs81</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Power_DNS&amp;diff=22732</id>
		<title>Power DNS</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Power_DNS&amp;diff=22732"/>
		<updated>2022-12-06T19:06:49Z</updated>

		<summary type="html">&lt;p&gt;Jhjacobs81: Jhjacobs81 moved page Power DNS to PowerDNS: title change&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[PowerDNS]]&lt;/div&gt;</summary>
		<author><name>Jhjacobs81</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=PowerDNS&amp;diff=22731</id>
		<title>PowerDNS</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=PowerDNS&amp;diff=22731"/>
		<updated>2022-12-06T19:06:49Z</updated>

		<summary type="html">&lt;p&gt;Jhjacobs81: Jhjacobs81 moved page Power DNS to PowerDNS: title change&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= General = &lt;br /&gt;
The PowerDNS Authoritative Server is a versatile nameserver which supports a large number of backends. These backends can either be plain zone files or be more dynamic in nature. PowerDNS has the concepts of ‘backends’. A backend is a datastore that the server will consult that contains DNS records (and some metadata). The backends range from database backends (MySQL, PostgreSQL) and BIND zone files to co-processes and JSON API’s.&lt;br /&gt;
&lt;br /&gt;
Multiple backends can be enabled in the configuration by using the launch option. Each backend can be configured separately. In this howto we will focus on sqlite&lt;br /&gt;
    &lt;br /&gt;
For a full list of features see the [https://doc.powerdns.com/ PowerDNS documentation website]&lt;br /&gt;
&lt;br /&gt;
= Install =&lt;br /&gt;
&lt;br /&gt;
{{Cmd|apk add pdns pdns-backend-sql3}}&lt;br /&gt;
{{Cmd|rc-service add pdns}}&lt;br /&gt;
&lt;br /&gt;
= Configure =&lt;br /&gt;
&lt;br /&gt;
Default location of the config file: {{Path|/etc/pdns/pdns.conf}} The default config is good to start using the DNS functions. To use the SQLite backend edit the config file and at the bottom add &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
launch=gsqlite3&lt;br /&gt;
gsqlite3-database=/var/lib/powerdns/pdns.sqlite3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The default package does not ship the sql example file, so we need to get it from the powerdns github page. Save this file to your local computer so we can import it to Power dns [https://raw.githubusercontent.com/PowerDNS/pdns/master/modules/gsqlite3backend/schema.sqlite3.sql schema.sqlite3.sql]&lt;br /&gt;
Next we need to import it {{Cmd|sqlite3 /var/lib/powerdns/pdns.sqlite3 &amp;lt; /path/to/schema.sqlite3.sql}}&lt;br /&gt;
Then we need to set the correct permissions: {{Cmd|chown -R pdns:pdns /var/lib/powerdns}}&lt;br /&gt;
&lt;br /&gt;
Now we can start the server and start adding records to it: {{Cmd|service pdns start}}&lt;br /&gt;
= Use =&lt;br /&gt;
Adding records is done through the commandline. &lt;br /&gt;
We first have to setup a dns zone: &lt;br /&gt;
{{Cmd|pdnsutil create-zone example.com ns1.example.com}} We also add one NS record.&lt;br /&gt;
&lt;br /&gt;
To add a new record we execute the following command: {{Cmd|pdnsutil add-record example.com. www A 192.0.2.1}} where www is the subdomain, and 192.0.2.1 is the server we point it to.&lt;br /&gt;
&lt;br /&gt;
== Controlling PowerDNS status ==&lt;br /&gt;
&lt;br /&gt;
Stop, start and restart the daemon in the usual fashion:&lt;br /&gt;
{{Cmd|rc-service pdns start}}&lt;br /&gt;
&lt;br /&gt;
{{Cmd|rc-service pdns stop}}&lt;br /&gt;
&lt;br /&gt;
{{Cmd|rc-service pdns restart}}&lt;br /&gt;
&lt;br /&gt;
== Auto-start pdns at boot ==&lt;br /&gt;
&lt;br /&gt;
To add the daemon to the default runlevel so it auto-starts at boot, do: {{Cmd|rc-update add pdns}}&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
&lt;br /&gt;
{{ TODO }}&lt;br /&gt;
&lt;br /&gt;
* Ensure the daemon is running with {{Cmd|rc-status}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Server]]&lt;/div&gt;</summary>
		<author><name>Jhjacobs81</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=PowerDNS&amp;diff=22730</id>
		<title>PowerDNS</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=PowerDNS&amp;diff=22730"/>
		<updated>2022-12-06T19:03:13Z</updated>

		<summary type="html">&lt;p&gt;Jhjacobs81: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= General = &lt;br /&gt;
The PowerDNS Authoritative Server is a versatile nameserver which supports a large number of backends. These backends can either be plain zone files or be more dynamic in nature. PowerDNS has the concepts of ‘backends’. A backend is a datastore that the server will consult that contains DNS records (and some metadata). The backends range from database backends (MySQL, PostgreSQL) and BIND zone files to co-processes and JSON API’s.&lt;br /&gt;
&lt;br /&gt;
Multiple backends can be enabled in the configuration by using the launch option. Each backend can be configured separately. In this howto we will focus on sqlite&lt;br /&gt;
    &lt;br /&gt;
For a full list of features see the [https://doc.powerdns.com/ PowerDNS documentation website]&lt;br /&gt;
&lt;br /&gt;
= Install =&lt;br /&gt;
&lt;br /&gt;
{{Cmd|apk add pdns pdns-backend-sql3}}&lt;br /&gt;
{{Cmd|rc-service add pdns}}&lt;br /&gt;
&lt;br /&gt;
= Configure =&lt;br /&gt;
&lt;br /&gt;
Default location of the config file: {{Path|/etc/pdns/pdns.conf}} The default config is good to start using the DNS functions. To use the SQLite backend edit the config file and at the bottom add &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
launch=gsqlite3&lt;br /&gt;
gsqlite3-database=/var/lib/powerdns/pdns.sqlite3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The default package does not ship the sql example file, so we need to get it from the powerdns github page. Save this file to your local computer so we can import it to Power dns [https://raw.githubusercontent.com/PowerDNS/pdns/master/modules/gsqlite3backend/schema.sqlite3.sql schema.sqlite3.sql]&lt;br /&gt;
Next we need to import it {{Cmd|sqlite3 /var/lib/powerdns/pdns.sqlite3 &amp;lt; /path/to/schema.sqlite3.sql}}&lt;br /&gt;
Then we need to set the correct permissions: {{Cmd|chown -R pdns:pdns /var/lib/powerdns}}&lt;br /&gt;
&lt;br /&gt;
Now we can start the server and start adding records to it: {{Cmd|service pdns start}}&lt;br /&gt;
= Use =&lt;br /&gt;
Adding records is done through the commandline. &lt;br /&gt;
We first have to setup a dns zone: &lt;br /&gt;
{{Cmd|pdnsutil create-zone example.com ns1.example.com}} We also add one NS record.&lt;br /&gt;
&lt;br /&gt;
To add a new record we execute the following command: {{Cmd|pdnsutil add-record example.com. www A 192.0.2.1}} where www is the subdomain, and 192.0.2.1 is the server we point it to.&lt;br /&gt;
&lt;br /&gt;
== Controlling PowerDNS status ==&lt;br /&gt;
&lt;br /&gt;
Stop, start and restart the daemon in the usual fashion:&lt;br /&gt;
{{Cmd|rc-service pdns start}}&lt;br /&gt;
&lt;br /&gt;
{{Cmd|rc-service pdns stop}}&lt;br /&gt;
&lt;br /&gt;
{{Cmd|rc-service pdns restart}}&lt;br /&gt;
&lt;br /&gt;
== Auto-start pdns at boot ==&lt;br /&gt;
&lt;br /&gt;
To add the daemon to the default runlevel so it auto-starts at boot, do: {{Cmd|rc-update add pdns}}&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
&lt;br /&gt;
{{ TODO }}&lt;br /&gt;
&lt;br /&gt;
* Ensure the daemon is running with {{Cmd|rc-status}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Server]]&lt;/div&gt;</summary>
		<author><name>Jhjacobs81</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=PowerDNS&amp;diff=22729</id>
		<title>PowerDNS</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=PowerDNS&amp;diff=22729"/>
		<updated>2022-12-06T19:01:20Z</updated>

		<summary type="html">&lt;p&gt;Jhjacobs81: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= General = &lt;br /&gt;
The PowerDNS Authoritative Server is a versatile nameserver which supports a large number of backends. These backends can either be plain zone files or be more dynamic in nature. PowerDNS has the concepts of ‘backends’. A backend is a datastore that the server will consult that contains DNS records (and some metadata). The backends range from database backends (MySQL, PostgreSQL) and BIND zone files to co-processes and JSON API’s.&lt;br /&gt;
&lt;br /&gt;
Multiple backends can be enabled in the configuration by using the launch option. Each backend can be configured separately. In this howto we will focus on sqlite&lt;br /&gt;
    &lt;br /&gt;
For a full list of features see the [https://doc.powerdns.com/ PowerDNS documentation website]&lt;br /&gt;
&lt;br /&gt;
= Install =&lt;br /&gt;
&lt;br /&gt;
{{Cmd|apk add pdns pdns-backend-sql3}}&lt;br /&gt;
{{Cmd|rc-service add pdns}}&lt;br /&gt;
&lt;br /&gt;
= Configure =&lt;br /&gt;
&lt;br /&gt;
Default location of the config file: {{Path|/etc/pdns/pdns.conf}} The default config is good to start using the DNS functions. To use the SQLite backend edit the config file and at the bottom add &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
launch=gsqlite3&lt;br /&gt;
gsqlite3-database=/var/lib/powerdns/pdns.sqlite3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Save this file to your local computer so we can import it to Power dns [https://raw.githubusercontent.com/PowerDNS/pdns/master/modules/gsqlite3backend/schema.sqlite3.sql|schema.sqlite3.sql]&lt;br /&gt;
Next we need to import it {{Cmd|sqlite3 /var/lib/powerdns/pdns.sqlite3 &amp;lt; /path/to/schema.sqlite3.sql}}&lt;br /&gt;
Then we need to set the correct permissions: {{Cmd|chown -R pdns:pdns /var/lib/powerdns}}&lt;br /&gt;
&lt;br /&gt;
Now we can start the server and start adding records to it: {{Cmd|service pdns start}}&lt;br /&gt;
= Use =&lt;br /&gt;
Adding records is done through the commandline. &lt;br /&gt;
We first have to setup a dns zone: &lt;br /&gt;
{{Cmd|pdnsutil create-zone example.com ns1.example.com}} We also add one NS record.&lt;br /&gt;
&lt;br /&gt;
To add a new record we execute the following command: {{Cmd|pdnsutil add-record example.com. www A 192.0.2.1}} where www is the subdomain, and 192.0.2.1 is the server we point it to.&lt;br /&gt;
&lt;br /&gt;
== Controlling PowerDNS status ==&lt;br /&gt;
&lt;br /&gt;
Stop, start and restart the daemon in the usual fashion:&lt;br /&gt;
{{Cmd|rc-service pdns start}}&lt;br /&gt;
&lt;br /&gt;
{{Cmd|rc-service pdns stop}}&lt;br /&gt;
&lt;br /&gt;
{{Cmd|rc-service pdns restart}}&lt;br /&gt;
&lt;br /&gt;
== Auto-start pdns at boot ==&lt;br /&gt;
&lt;br /&gt;
To add the daemon to the default runlevel so it auto-starts at boot, do: {{Cmd|rc-update add pdns}}&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
&lt;br /&gt;
{{ TODO }}&lt;br /&gt;
&lt;br /&gt;
* Ensure the daemon is running with {{Cmd|rc-status}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Server]]&lt;/div&gt;</summary>
		<author><name>Jhjacobs81</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=PowerDNS&amp;diff=22728</id>
		<title>PowerDNS</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=PowerDNS&amp;diff=22728"/>
		<updated>2022-12-06T18:42:39Z</updated>

		<summary type="html">&lt;p&gt;Jhjacobs81: Created page with &amp;quot;Installing and managing PowerDNS on Alpine with SQLITE Backend  1. Enable the community repository 2. apk add pdns pdns-backend-sqlite 3. import the sql file (&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Installing and managing PowerDNS on Alpine with SQLITE Backend&lt;br /&gt;
&lt;br /&gt;
1. Enable the community repository&lt;br /&gt;
2. apk add pdns pdns-backend-sqlite&lt;br /&gt;
3. import the sql file (&lt;/div&gt;</summary>
		<author><name>Jhjacobs81</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Samba_Roaming_Profiles&amp;diff=22707</id>
		<title>Samba Roaming Profiles</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Samba_Roaming_Profiles&amp;diff=22707"/>
		<updated>2022-11-30T19:57:19Z</updated>

		<summary type="html">&lt;p&gt;Jhjacobs81: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Setting up Samba AD Server with Roaming Profiles is not very hard. But some changes are different then other tutorials. &lt;br /&gt;
&lt;br /&gt;
# Setup Samba using this page: [https://wiki.alpinelinux.org/wiki/Setting_up_a_samba-ad-dc|Setting up a samba-ad-dc]&lt;br /&gt;
# Create a directory to store the roaming profiles: mkdir -p /srv/samba/Profiles/&lt;br /&gt;
# This is where my (jhjacobs81) journey differs from the average tutorial online. I had to use the following command: chown root:users /srv/samba/Profiles/&lt;br /&gt;
&lt;br /&gt;
This was the only way so far i could get it to work. other tutorials speak of setfacl and so, but this doesnt exist in Alpine. I will edit this page as i learn more.&lt;/div&gt;</summary>
		<author><name>Jhjacobs81</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Samba_Roaming_Profiles&amp;diff=22706</id>
		<title>Samba Roaming Profiles</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Samba_Roaming_Profiles&amp;diff=22706"/>
		<updated>2022-11-30T19:43:46Z</updated>

		<summary type="html">&lt;p&gt;Jhjacobs81: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Setting up Samba AD Server with Roaming Profiles is not very hard. But some changes are different then other tutorials. &lt;br /&gt;
&lt;br /&gt;
Step 1: Setup Samba using this page: [https://wiki.alpinelinux.org/wiki/Setting_up_a_samba-ad-dc|Setting up a samba-ad-dc]&lt;br /&gt;
Step 2: Create a directory to store the roaming profiles: mkdir -p /srv/samba/Profiles/&lt;br /&gt;
Step 3: This is where my (jhjacobs81) journey differs from the average tutorial online. I had to use the following command: chown root:users /srv/samba/Profiles/&lt;br /&gt;
&lt;br /&gt;
This was the only way so far i could get it to work. other tutorials speak of setfacl and so, but this doesnt exist in Alpine. I will edit this page as i learn more.&lt;/div&gt;</summary>
		<author><name>Jhjacobs81</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Samba_Roaming_Profiles&amp;diff=22705</id>
		<title>Samba Roaming Profiles</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Samba_Roaming_Profiles&amp;diff=22705"/>
		<updated>2022-11-30T19:42:33Z</updated>

		<summary type="html">&lt;p&gt;Jhjacobs81: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Setting up Samba AD Server with Roaming Profiles is not very hard. But some changes are different then other tutorials. &lt;br /&gt;
&lt;br /&gt;
Step 1: Setup Samba using this page: [https://wiki.alpinelinux.org/wiki/Setting_up_a_samba-ad-dc|Setting up a samba-ad-dc]&lt;br /&gt;
Step 2: Create a directory to store the roaming profiles: mkdir -p /srv/samba/Profiles/&lt;br /&gt;
Step 3: This is where my (jhjacobs81) journey differs from the average tutorial online. I had to use the following command: chmod -R 1777 /srv/samba/Profiles/&lt;br /&gt;
&lt;br /&gt;
This was the only way so far i could get it to work. other tutorials speak of setfacl and so, but this doesnt exist in Alpine. I will edit this page as i learn more.&lt;/div&gt;</summary>
		<author><name>Jhjacobs81</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Samba_Roaming_Profiles&amp;diff=22704</id>
		<title>Samba Roaming Profiles</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Samba_Roaming_Profiles&amp;diff=22704"/>
		<updated>2022-11-30T19:20:32Z</updated>

		<summary type="html">&lt;p&gt;Jhjacobs81: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Setting up Samba AD Server with Roaming Profiles is not very hard. But some changes are different then other tutorials. &lt;br /&gt;
&lt;br /&gt;
Step 1: Setup Samba using this page: [https://wiki.alpinelinux.org/wiki/Setting_up_a_samba-ad-dc|Setting up a samba-ad-dc]&lt;/div&gt;</summary>
		<author><name>Jhjacobs81</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Samba_Roaming_Profiles&amp;diff=22703</id>
		<title>Samba Roaming Profiles</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Samba_Roaming_Profiles&amp;diff=22703"/>
		<updated>2022-11-30T19:20:06Z</updated>

		<summary type="html">&lt;p&gt;Jhjacobs81: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Setting up Samba AD Server with Roaming Profiles is not very hard. But some changes are different then other tutorials. &lt;br /&gt;
&lt;br /&gt;
Step 1: Setup Samba using [[https://wiki.alpinelinux.org/wiki/Setting_up_a_samba-ad-dc|Setting up a samba-ad-dc]]&lt;/div&gt;</summary>
		<author><name>Jhjacobs81</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Samba_Roaming_Profiles&amp;diff=22702</id>
		<title>Samba Roaming Profiles</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Samba_Roaming_Profiles&amp;diff=22702"/>
		<updated>2022-11-30T19:19:39Z</updated>

		<summary type="html">&lt;p&gt;Jhjacobs81: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Setting up Samba AD Server with Roaming Profiles is not very hard. But some changes are different then other tutorials. &lt;br /&gt;
&lt;br /&gt;
Step 1: Setup Samba using [[https://wiki.alpinelinux.org/wiki/Setting_up_a_samba-ad-dc|This Page]]&lt;/div&gt;</summary>
		<author><name>Jhjacobs81</name></author>
	</entry>
</feed>