nyuuzyou/wikis huggingface dataset:
PowerDNS

= General = 
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.
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
 
For a full list of features see the PowerDNS documentation website
= Install =
= Configure =
On Alpine, the default configuration file is: 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 
launch=gsqlite3
gsqlite3-database=/var/lib/powerdns/pdns.sqlite3
The pdns-doc ships with example's for different backends in . For this example we use the sqlite schema.
First we need to create the correct directory: 
Next we need to import the database scheme: 
Then we need to set the correct permissions: 
For a more detailed guide please see the documentation here
Now we can start the server and start adding records to it: 
= Use =
Adding records is usually done through the commandline. There are several web based GUI's available, but this is outside the scope of this article. See the resources section for more information.
We first have to setup a dns zone: 
 We also add one NS record.
To add a new record we execute the following command: where www is the subdomain, and 192.0.2.1 is the server we point it to.
== Controlling PowerDNS status ==
Stop, start and restart the daemon in the usual fashion:
== Auto-start pdns at boot ==
To add the daemon to the default runlevel so it auto-starts at boot, do: 
= Troubleshooting =
TODO
* Ensure the daemon is running with 
= Resources =
* The main website for PowerDNS: https://www.powerdns.com 
* PowerDNS Documentation: https://doc.powerdns.com/(Most of this article is from the main documentation site. only Alpine specific details where changed.)
* Packagelist: https://pkgs.alpinelinux.org/packages?name=pdns*&branch=v3.17&repo=community&arch=&maintainer=
Web GUI:
* https://github.com/PowerDNS-Admin/PowerDNS-Admin
* https://pdnsmanager.org/
* https://www.poweradmin.org/
Category:Server
Proton VPN

Proton VPN is an open-source VPN service by the non-profit Swiss company Proton AG. It utilizes the OpenVPN protocol. Because Alpine Linux does not currently have a release for Proton VPN, using it requires connecting via either OpenVPN or Wireguard. Using Wireguard is recommended due to Proton AG's own stated preference for the service as well as Wireguard's lighter and more modern build. Setting up for Wireguard is relatively simpler because NetworkManager has native support for it, requiring fewer installations and setups.
== Installation ==
== Configuring ==
Login to Proton VPN and download the Wireguard config file. More information on this can be found at Proton VPN's support page. Note that the private key will only be available from the site if you download immediately after making the config file, after which the private key is replaced with asterisks. Rename the file "wg0.conf" and move it somewhere safe in your file system.
== Running ==
To connect, run the following command. Substitute path_to_file with the full path to wherever you moved the config file.
To enable Wireguard connecting to Proton VPN on boot, open your /etc/network/interfaces using a text editor like nano. Add this information after your other interface sections:
auto wg0
iface wg0 inet static
pre-up wg-quick up /path_to_file/wg0.conf
Again, substitute path_to_file with your own relevant information.
== Troubleshooting ==
If trying to turn the VPN on fails and you see the following error:
/usr/bin/wg-quick: line 32: iptables-restore: command not found
You need to manually install iptables () so wg-quick can use the command ''
Category:VPN
PulseAudio

== Installation ==
== Alsa only applications support ==
Most applications on Alpine Linux are compiled to support only ALSA, foregoing linking against libpulse and the ability to dynamically switch to pulseaudio output when it finds that pulseaudio is running. Install the pulse output plugin for ALSA so applications can output to Pulseaudio.
== PulseAudio Utils ==
For pactl, which Window Managers commonly use for managing volume control, install pulseaudio-utils.
== Bluetooth ==
Before you can connect your device to Bluetooth speakers or headphones, you'll have to make sure is installed. See the Bluetooth page for more general Bluetooth installation instructions.
== Process Priority ==
Pulseaudio should run with an elevated priority, because e.g. crackling or delayed audio is more annoying than a low framerate in games.
Installing the shadow package (which is compiled against linux-pam) is an easy way for the non-root user to be granted the ability to change niceness, and pulseaudio is recommended to be run as the user, rather than as root. E.g. in (and putting the user in the "audio" group):
 @audio - nice -11
== See also ==
* Arch wiki
* Gentoo wiki
* Gentoo wiki - pipewire without udev
* PostmarketOS Wiki - Audio
category:Multimedia
Category:Sound
Python package policies

Python packages in Alpine Linux should follow a general set of standards for their APKBUILDs.
== Guidelines ==
* Prefix Python 3 libraries with py3-. Do not prefix programs (distinct from libraries) at all.
== General Template ==
Be sure to make the following changes:
* Update maintainer to yourself
* Set the pkgname to the Alpine package name (prefixed with "py3-")
* Set _pyname (see talk page) to the name of the package on PyPI 
* Update the version number, pkgdesc, url, and license
* Build it and address any issues that come up
* Read the build output and be vigilant for issues listed in the following sections - the build may complete successfully even though these issues are present
=== Package template ===
# Maintainer: Joe Bloe <joe@example.org>
pkgname=py3-alpine-name
_pyname=pypi-name
pkgver=1.2.3
pkgrel=0
pkgdesc="Example Python package"
url="https://example.org"
arch="noarch"
license="MIT"
depends="python3"
makedepends="py3-setuptools"
_pypiprefix="${_pyname%${_pyname#?}}"
source="https://files.pythonhosted.org/packages/source/$_pypiprefix/$_pyname/$_pyname-$pkgver.tar.gz"
builddir="$srcdir/$_pyname-$pkgver"
build() {
	python3 setup.py build
}
check() {
	python3 setup.py test
}
package() {
	python3 setup.py install --root="$pkgdir" --skip-build
}
== Common issues ==
=== No source package available (only the wheel is on PyPI) ===
Seek out the upstream source (e.g. GitHub) and swap out the URL.
=== No tests in PyPI package "(0 tests run)" ===
Seek out the upstream source (e.g. GitHub) and swap out the URL.
=== setup.py test downloads a lot of dependencies ===
Watch out for this and be sure to add any of these packages to checkdepends so that setuptools isn't downloading and testing against packages/versions which aren't in aports.
=== Upstream uses 'tox' to run tests ===
tox (packaged as ) downloads all dependencies into a virtual environment. This bypasses the system packages negating a lot of the value in these tests.
You can use --sitepackages on your invocation of tox in the check() phase so it uses the system packages instead of downloading ones into a virtual environment.
=== setup.py does not exist ===
In case a package uses a pyproject.toml instead of setup.py, you can use py3-gpep517 and py3-installer. See for an example. Also note how to run tests against the built package in that example. 
Many projects require either py3-poetry-core/py3-flit-core or just py3-wheel/py3-setuptools in makedepends alongside py3-gpep517 to build successfully (check the build-backend in pyproject.toml to confirm the exact requirements).
== Alpine+Python projects ==
=== aports normalization project ===
Many Python packages in aports (if not most) do not follow these guidelines.
TODO: obtain consensus and organize this work.
category: python
QEMU

QEMU is a generic and open source machine emulator and virtualizer.
QEMU can be used in several different ways. The most common is for System Emulation, where it provides a virtual model of an entire machine (CPU, memory and emulated devices) to run a guest OS. In this mode the CPU may be fully emulated, or it may leverage hardware virtualization technologies to work with a hypervisor such as KVM, Xen or other frameworks to allow the guest to run directly on the host CPU.
The second supported way to use QEMU is User Mode Emulation, where QEMU can launch processes compiled for one CPU on another CPU. In this mode the CPU is always emulated and QEMU is able to virtualize or emulate x86, x86_64, PowerPC, ARM, and S390 guests.
== Install Alpine Linux in QEMU ==
== Live mode ==
== Advanced network configuration ==
== Using Xorg inside QEMU ==
The video driver needed for Xorg inside QEMU for Alpine 3.17 and older is . In newer releases of alpine, the driver is automatically pulled in as part of .
If you decided to use a qxl Video on KVM/Qemu guest, add this configuration to 
== Run a guest OS on Alpine Linux using KVM/QEMU ==
Install:
Add tun to :
Starting tun now:
Add your user to the kvm and qemu groups
Logout for the group changes to take effect
Adding services:
Starting the services now:
If you are interested in using a bridged network (so that the guest machine can be reached easily from the outside), see Bridge.
== Troubleshooting ==
=== qemu-system-x86_64: warning: hub 0 with no nics ===
Issuing the command may generate the above error message and you will not be to use networking in guest OS, even if you have working internet connection in your Host OS. This is usually due to QEMU lacking support to hardware like usb wireless network adapters. Use the option to resolve the above error. Note that -net user option uses NAT to provide basic network access to the guest OS.
== See also ==
Qemu Official wiki
 Getting started with qemu
Category:Virtualization
Qtile

thumb |Qtile screenshot (default configuration).
Qtile is a full-featured and hackable window manager written in Python, compatible with Xorg and Wayland.
== Manual installation ==
=== Prerequisites ===
* Install Xorg
* Install and configure D-Bus (without D-Bus icons and keyboard shortcuts may be missing)
Minimal package selection to install:
=== Set up eudev ===
=== Allowing shut down and reboot ===
To enable users to shut down the machine or reboot, the packages and need to be installed.
A reboot is required to let it take effect.
=== Auto-mounting USB drives ===
To enable automatic mounting of USB drives, install these packages:
 
Depending on what devices you intend to mount, some additional packages may be needed:
To list descriptions of all gvfs- packages:
=== Enabling privilege escalation GUI ===
To make elogind/lightdm running, either make them start automatically at system start:
or start them manually for this time only:
== Starting Qtile ==
=== With a display manager (graphical login) ===
If the package lightdm-gtk-greeter has been installed per the instructions above, the lightdm display manager may be started to log in graphically with your new user:
First, create a lightdm session file at /usr/share/xsessions:
After correct operation is verified, lightdm can be enabled to start up during boot:
=== Localized keyboard layout ===
The keyboard layout can be configured at the Xorg level.
== See also ==
* Post Install
* Alpine Setup Scripts
* Qtile docs
* Qtile - ArchWiki
* Qtile - Gentoo Wiki
Category:Desktop
Category:Window Managers
Quassel

Quassel is a modern, cross-platform, distributed IRC client, meaning that one (or multiple) client(s) can attach to and detach from a central core ― much like the popular combination of screen and a text-based IRC client such as WeeChat, but graphical.
== Installing Quassel ==
== Configuring Quassel ==
The core configuration will be done through GUI when connecting the first client (). 
Before connecting, we should generate a certificate (this exemple sets the validity for 1 years, after which it needs to be reissued, just change the -days to another value if you so desire): 
As this is a self-signed certificate, you can type whatever you want in the fields. 
Quassel-core operates on port 4242, prepare accordingly if a firewall rule is needed on your setup. 
== Start the core and add to boot ==
Start the client and connect to core. 
Accept your self-created certificate. 
Now set up your IRC-servers and IRC-nicknames on the core.
As this is the first time you connected to the core, you should see a wizard where you can set up the first user-account. 
== See also ==
* Quassel IRC Homepage
* Alpine Linux:IRC
Category:Server
RPI Video Receiver

= Raspberry Pi Video Receiver =
One of the benefits of using Alpine Linux is that the SD/MMC is always mounted read-only. It will not wear out, and it's safe to power-off the device any time. Additionally the boot process has been given a professional look so that only the splash screen is displayed.
The boot time is about 60 seconds. It should speed up ~10 seconds after https://bugs.freedesktop.org/show_bug.cgi?id=64766 is fixed.
Quick demo:
* Format SD/MMC with one primary partition, FAT32 file system
* Extract https://dl-cdn.alpinelinux.org/alpine/v3.18/releases/armhf/alpine-rpi-3.18.3-armhf.tar.gz to the SD/MMC card
* Extract https://dev.alpinelinux.org/~tteras/rpi-video-decoder.tar.gz on top of that
The overlay image contains the following changes:
* fbsplash.ppm provide the splash screen with the Alpine logo
* cmdline.txt has "blacklist=fbcon" appended to disable video console
* a default overlay is provided to play BBC world news
* root password is set to 'rpi'
To build the configuration overlay:
 apk add 
 vi /etc/network/interfaces # eth0 configured for dhcp
 vi /etc/conf.d/omxplayer # to configure TV-channel URL
 rc-update add networking
 rc-update add chronyd
 rc-update add sshd
 rc-update add omxplayer
 rc
 rm /etc/ssh/ssh_host_* # so you get new ssh key on boot
 lbu commit
Category:Hardware
Category:Embedded Systems
Category:Installation
Radeon Video

The following instructions are for modern AMD GPU chipsets covered by the radeon and amdgpu drivers.
== Firmware ==
For Vega and later, the package is required. Otherwise, the should be used.
See the relevant section on the Gentoo Wiki for a more granular list of product names and microarchitecture names.
== Kernel Modesetting (KMS) ==
To enable KMS at boot:
# Add the radeon or amdgpu and fbcon modules to : or 
# Install mkinitfs: 
# Enable the kms feature in the mkinitfs configuration by adding it to the features variable, e.g., 
# Run mkinitfs.
# Reboot to test the configuration.
== Wayland ==
Install the following packages as needed:
* : necessary Mesa drivers.
* : VA-API drivers, for hardware accelerated video encoding and decoding
If driver auto-selection does not work, e.g. no mouse cursor under Sway, manual driver selection might be needed:
* export MESA_LOADER_DRIVER_OVERRIDE=r300: for AMD's Radeon R300, R400, and R500 GPUs.
* export MESA_LOADER_DRIVER_OVERRIDE=r600: for AMD's Radeon R600 GPUs up to Northern Islands. Officially supported by AMD.
* export MESA_LOADER_DRIVER_OVERRIDE=radeonsi: for AMD's Southern Island GPUs and later. Officially supported by AMD.
For VA-API:
* export LIBVA_DRIVER_NAME=r600
* export LIBVA_DRIVER_NAME=radeonsi
== Xorg ==
Install either the Free Software driver or the proprietary amdgpu firmware .
modprobe fbcon might be needed to avoid black screen when leaving Xorg.
== See also ==
* AMDGPU - ArchWiki
* ATI - ArchWiki
Category:Drivers
Category:Graphics
Rasdaemon

Rasdaemon is a Platform Reliability, Availability and Serviceability monitoring tool which can, among other things, monitor ECC memory errors on supported platforms.
== Installing ==
== Logging==
Rasdaemon logs to syslog. Syslog could be automatically monitored using e.g. logcheck and automated emails.
Additionally rasdaemon logs to /var/lib/rasdaemon/ras-mc_event.db, which could be read using ras-mc-clt (in this example faulty memory module has generated few errors):
Category:Networking Category:Monitoring
Raspberry Pi - Upgrade kernel from repos

In diskless setups the kernel upgrade is not part of the regular upgrade process.
To do that, one can get the new kernel from the latest release tarball.
However, if you need a newer kernel that is available in the repositories but is not yet part of a release, you might consider using the script.
The catch is, on a Raspberry Pi 3, 1GB of RAM is not enough to successfully run it.
Also, the script doesn't work in diskless mode because of the read-only modloop mount.
There is a workaround, though.
# Generate boot files, including the new kernel in sys mode.
# Transfer boot files to the target diskless mode microSD card.
== Generate boot files ==
Grab a fresh microSD card and install Alpine Linux on it.
Boot it on a Raspberry Pi, install the system in sys mode by running and reboot.
Log in as root, then run update-kernel as follows.
This will take a while.
All files necessary to boot the newest kernel available in repos are now in .
== Transfer boot files ==
Copy all files from to the target microSD card's root.
The Pi should be able to boot from this card and the kernel should now be upgraded.
== Adding kernel modules and firmware ==
You can also add modules by using the switch, followed by the package name.
For example, if you wanted to include the ZFS kernel module, you would change the above command line to the following:
This will add the specified modules into the volume.
Category:Raspberry
Raspberry Pi 3 - Configuring it as wireless access point -AP Mode

=Install the necessary firmware=
 apk add 
=Install hostapd and dnsmasq=
 apk add 
=Configure /etc/hostapd/hostapd.conf=
 interface=wlan0
 driver=nl80211
 ssid=Pi3-AP
 hw_mode=g
 channel=1
 macaddr_acl=0
 auth_algs=1
 wpa=2
 wpa_key_mgmt=WPA-PSK
 wpa_passphrase=raspberry
 rsn_pairwise=CCMP
 wpa_pairwise=CCMP
=Configure your /etc/dnsmasq.conf=
 interface=wlan0
 dhcp-range=10.0.0.2,10.0.0.5,255.255.255.0,12h
=Configure Static ips for wlan0 in the file /etc/network/interfaces=
 auto wlan0
 iface wlan0 inet static
 address 10.0.0.1
 netmask 255.255.255.0
=Start the services=
 service dnsmasq start
 service hostapd start
=Enable the Services permanently on every bootup=
 rc-update add dnsmasq 
 rc-update add hostapd 
(to del)
 rc-update del dnsmasq 
 rc-update del hostapd 
(or)
 rc-update add dnsmasq boot 
 rc-update add hostapd boot 
(to del)
 rc-update del dnsmasq boot 
 rc-update del hostapd boot
=Commit all changes to files=
Make sure you run the command shown below to commit all changes, otherwise they will be lost on reboot.
 lbu ci
=References=
https://gist.github.com/atlury/fe0ea8b91a981c103df7
https://frillip.com/using-your-raspberry-pi-3-as-a-wifi-access-point-with-hostapd/
Thanks
oneinsect@gmail.com
Category:Networking
Category:Embedded Systems
category: Raspberry
Raspberry Pi 3 - Setting Up Bluetooth

The Raspberry Pi Bluetooth chip varies by model.
* Raspberry Pi 3 has BCM2837 connected to the hardware UART
* Raspberry Pi 3B+ has BCM4345C0 connected to the hardware UART
* Raspberry Pi Zero W has BCM43430A1 connected to the hardware UART
You can get Bluetooth to work only if you are not using the UART (ttyAMA0) for anything else, for example serial console.
Recent versions of Alpine Linux for Raspberry Pi come with the required Broadcom firmware files.
If you need the UART for something else, you can use an USB Bluetooth adapter instead.
You'll need the bluez package
The Bluetooth controller is not automatically discovered on the UART. Test attaching it and check that the controller is found:
~$ bluetoothctl list
Controller B8:27:EB:01:02:03 BlueZ 5.50 [default]
If the interface is discovered after the attach, you can make attaching persistent by uncommenting
the line next to rpi bluetooth in .
Start the Bluetooth daemon at boot:
The output from the btattach above should be
 Attaching Primary controller to /dev/ttyAMA0
 Switched line discipline from 0 to 15
 Device index 0 attached
Then it's a matter of doing what you normally do with your Bluetooth stack.
== See also ==
* Bluetooth
Category:Installation
category: Raspberry
Rclone

Rclone is a command line program to sync files and directories to and from a large variety of cloud providers, including Google Drive, Backblaze, and Amazon S3.
== Installation ==
To install package, issue the command.
== Configuration ==
To configure rclone, use the rclone config command, following the prompts for your platform of choice:
RcloneBrowser, a GUI for rclone is available in testing repository with the package name .
== See Also ==
*Rclone official website
*RcloneBrowser official website
Category:Storage
Relay email (nullmailer)

== Overview ==
Nullmailer is lightweight and simple MTA (mail transport agent) which allows you to relay local emails to another server. This is useful if you are for in example running a private server at home and just want to relay notifications from cron etc. to your external mailbox via your ISPs mail server. Nullmailer also allows you to rewrite the envelope sender which is needed to pass spam checks that many ISPs are nowadays doing.
== Installation ==
Nullmailer can be found only in the testing branch. How to Enable the Testing Repository
== Configuration ==
Nullmailer is configured using individual files under /etc/nullmailer/, one file per setting.
When mail is sent to any local user e.g. "root", "me@localhost" etc. then the mail can be sent to some external address or addresses (as a comma separated list) instead:
When nullmailer relays mail to remote server then the envelope sender can be overridden because mail is often rejected if the envelope sender contains a non-existent domain like root@localhost.example (note that the envelope sender is not the same as the From: header, which remains root@localhost.example, but that is not typically rejected):
Whenever nullmailer deals with addresses without a hostname or domain then defaulthost and defaultdomain files can be used to set defaults, however this can be also done using one file. So mail From: me and To: me will become From: me@localhost.example and To: me@localhost.example. Note that this applies to headers, which informational only and shown in the mail client. The envelope sender and recipient must still be set correctly using configuration files explained above.
Ideally you would own and control a domain you could use but if not, then set it to a guaranteed non-existing domain like localhost.example. Do not just pick some random non-existing domain because somebody could register it in the future:
To configure the relay server that mails are sent to, add one line per remote server. Typically this would be your ISPs mail server. Optionally, nullmailer supports different authentication schemes:
== Logging ==
Nullmailer only logs to stdout and stderr which means syslog cannot be used trivially. Instead, it is possible to make OpenRC write stdout and stderr to log files: 
As nullmailer runs as a user of the same name, it cannot create log files by itself. Just create the log files manually instead:
== Testing ==
To test configuration just send out few test emails to root and to some existing address, etc.: 
Category:Networking Category:Mail
Relay email to gmail (msmtp, mailx, sendmail

== Overview ==
If you're running an alpine from stick and need a way for your program to alert you through a standard gmail account
== Install msmtp ==
== Configuration ==
Create a global configuration:
== Sendmail alias ==
By default alpine comes with busybox sendmail, msmtp can act as a sendmail alternative including syntax and option, there I create a local.d script to overwrite the busybox link to msmtp.
Make it executable
and run it first time through
== Mailx and aliases ==
Install mailx for program that uses mail (like apcupsd for monitoring UPS events)
Create an file with content:
== Testing ==
Test an email, run
== Saving the configuration ==
Hope it helps.
Category:Monitoring
Category:Mail