nyuuzyou/wikis huggingface dataset:
Manually editing a existing apkovl

You might end up in a situation when you find it necessary to edit an apkovl (without having to boot a box using the apkovl itself).
== Unpack the apkovl ==
Unpack the apkovl into a temp dir (preferably run tar as root to preserve target's UIDs & GIDs):
== Make your modifications ==
Do your modifications in '/tmp/testbox/'<BR>
* Edit files/folders
* Add files/folders
* Remove files/folders
* etc.
== Ensure proper ownership ==
By default, tar will preserve file permissions and ownership when creating an archive. However, on extraction, if you did not extract the archive as root, file ownership may have been substituted with the current user (since changing file ownership usually requires superuser privileges). If you didn't extract the apkovl as root, take a moment to correct ownership (by target's UIDs & GIDs rather than local user & group names)—especially for important directories like /etc and /root.
== Pack the apkovl ==
When your modifications are done, you should pack your apkovl
== Replace the original apkovl ==
You now have a new/modified apkovl.<BR>
Replace your original apkovl (on your media) with '/tmp/testbox.apkovl.tar.gz' and boot.
category:Diskless
Matomo

Matomo s a real time web analytics software program. It provides you with detailed reports on your website visitors: the search engines and keywords they used, the language they speak, your popular pages, and more.
= Install lighttpd, PHP, and MySql =
Install extra packages:
= Installing and configuring Matomo =
Matomo needs some additional packages
Create the a folder named webapps
Download the source code
Unpack the archive and remove it afterwards
Change the folder permissions
Make a symlinks to the piwik folder
= Configuration and start MySql =
= Configuration of Piwik =
Browse to http://WEBSERVER_IP_ADDRESS/piwik/ and the configuration process will start.
= Upgrading Piwik =
It's still possible to upgrade Piwik by replace the old files with new ones. But a faster way is to use the integrated upgrade mechanism of Piwik itself. Just follow the instructions mentioned in the web interface.
Category:Monitoring
Category:PHP
Category:SQL
Mdev

mdev is the default device manager on Alpine Linux. It is provided by busybox as alternative to systemd's udev.
mdev is not a drop in replacement for udev. See eudev for that instead. mdev lacks some features which makes it not recommended for a full blown desktop enviroment.
== Installation ==
The easy way to setup mdev is throught the setup script. For custom installation see the manually section. Note that a manual installation is only recommended for advanced users.
=== Setup Script ===
The package privides setup-devd to easily install and setup device managers.
Install if it is not already installed.
Setup mdev.
=== Manually ===
Mdev is provided by the package which is pre installed on any alpine installation. To run mdev the OpenRC init scripts are required too. If it isn't already installed install it:
If you already have a device manager installed you need to stop it before you start mdev.
Enable the mdev service.
If you are not running in a chroot you will also want to start mdev.
You might also want to take a look at libudev replacement if programms you want to use depend on udev.
== Remove ==
First stop the service. This step can be skipped when you are running in a chroot.
Then disable it.
You might also want to uninstall the init scripts since they are not used anymore.
The mdev binary is part of the package and therefor can't be uninstalled.
== libudev replacement ==
 provides udev apis but is independent from the device manager used. When installed it will make some udev reliant programms work with mdev. See What doesn't work.
== Configuration ==
=== Custom network interfaces ===
See Custom network interface names
=== USB Printer ===
See configure mdev for USB printers
=== Raspberry Pi Bluetooth Speaker ===
See Raspberry Pi Bluetooth Speaker
== See Also ==
* Device Managers
* Gentoo wiki Mdev
* mdev doc
* mdev like a boss
Category:Device_Manager
Mdevd

mdevd is a device manager that is compatible with mdev.
For configuration and other things please look at the mdev article.
== Installation ==
The easy way to setup mdevd is throught the setup script. For custom installation see the manually section. Note that a manual installation is only recommended for advanced users.
=== Setup Script ===
The package privides setup-devd to easily install and setup device managers.
Install if it is not already installed.
Setup mdevd.
=== Manually ===
You first need to install the mdevd package.
If you already have a device manager installed you need to stop it before you start mdevd.
Then enable the services.
If you are not running in a chroot you will also want to start mdevd.
If hasn't been initialized by another device manager you need to do that manually.
== Remove ==
To remove mdevd you need to stop it first. This step can be skipped if you are running in a chroot.
Then disable the services.
You might also want to uninstall the mdevd package since they are not used anymore.
== See also ==
* mdev
* Device Managers
Category:Device_Manager
MediaWiki

MediaWiki is a popular free web-based wiki software application developed by and used on all projects of the Wikimedia Foundation, as well as on many other wiki websites worldwide. It is written in the PHP programming language with a backend database.
== Install lighttpd, PHP, and postgresql ==
Install extra packages
== Installing and configuring MediaWiki ==
Create a folder named 
Download the latest version. At the time of writing it is 1.42.3
Unpack the archive, rename the folder and delete the tarball afterwards
 
Change the folder permissions
Crate a symlink to the folder
Edit lighttpd.conf and uncomment include "mod_fastcgi.conf"
== Starting ==
 
 
== Config your wiki ==
Install the wiki accessing
http://WEBSERVER_IP_ADDRESS/mediawiki/mw-config/index.php
When you finish, press "Install MediaWiki" button, and that's all. :)
You have MediaWiki working. To access go to http://WEBSERVER_IP_ADDRESS/mediawiki and enjoy!
=See Also=
*Converting mediawiki database from postgresql to mysql/mariadb
Category:SQL
Migrate SVN to Git

== Init git repository ==
Create a temp work area. 
Init the git repository. If your svn repo does not have the standard trunk branches and tags dirs you shouldn't use the --stdlayout. You can also use -T trunk -b branches -t tags. 
== Create user mapping ==
Start with creating a users.txt file where the svn users are mapped to an email address for git. 
== Connect the user mapping ==
Connect the users.txt to the empty git repository so users are remapped. 
== Fetch SVN repository ==
This might take some time. 
== Upload the Git repository ==
Now we can create a bare repository and upload it to dev.alpinelinux.org/gitroot. 
Category:Development
Category:Git
Migrating from whirlpool hash for LUKS partitions

See: https://gitlab.alpinelinux.org/alpine/aports/-/issues/13004
OpenSSL 3.0 has desginated the whirlpool hash as legacy. This means it may not be loaded by default by OpenSSL so you cannot decrypt partitions using whirlpool. This is an issue for Alpine users because since v3.17 OpenSSL 3.0 is default, and multiple articles on this wiki recommended the use of whirlpool. In some cases (i.e. with an encrypted boot partition) a user may not be able to boot their system at all.
== Migrate Away from Whirlpool ==
This has been tested on a LUKS1 partition. I am not responsible if you lose all your data.
If you suffer a power failure, kernel panic, or any interruption during the reencryption step, your data may be permanently lost.
First, get a LiveCD with cryptsetup (I used Fedora 37). Older versions of cryptsetup require cryptsetup-reencrypt to modify LUKS1 partitions, while newer versions (2.5.0 or 2.6.0 or later) use cryptsetup reencrypt.
Then backup your drive. At the minimum, dump the headers using
cryptsetup --header-backup-file=backup_file_location.bin luksHeaderBackup /dev/partition
You should store the header on a USB stick or some other form of persistent media.
If you have keys that cannot be typed in (i.e. keyfiles) then you will have to either
# find one key that you want to preserve (you must know the keyslot, in this document it will be called N)
# or remove all keyfiles using luksRemoveKey
I removed my keyfile slot using luksRemoveKey and then confirmed that my password still worked using cryptsetup luksOpen --test-passphrase /dev/partition. If you mess up, you can try recovering your keys using luksHeaderRestore.
Make sure that the device is not opened (if you had to get files off of it, run cryptsetup luksClose device_name). If you are preserving keyslot N, run
cryptsetup reencrypt --keep-key --key-slot N --key-file keyfile.bin --hash sha512 /dev/partition
If you are not specifying a keyfile, run
cryptsetup reencrypt --keep-key --key-slot N --hash sha512 /dev/partition
and enter all passwords into the prompts. You can specify another hash if you want to, but sha512 is probably your best choice right now.
Once the command is done (should take a few seconds), verify that you can successfully open and mount your partition.
If you use an encrypted boot, then you must also reinstall grub. Open your partition with cryptsetup and mount it. Enter the directory and run
mount -t proc /proc proc/
mount -t sysfs /sys sys/
mount --rbind /dev dev/
chroot . /bin/ash
Then run grub-install. The command line will differ depending on your setup (EFI vs. MBR). On MBR run
 grub-install /dev/sdX
Mimalloc

Mimalloc is a drop-in replacement for malloc and can be used in other programs without code changes, for example, on dynamically linked ELF-based systems.
== Installation ==
To use mimalloc, ensure package is installed on your Alpine Linux system:
== Configuration == 
To minimize risks while leveraging mimalloc, consider per-application preloading.
=== Using mimalloc per-application ===
Preload libmimalloc.so only for specific applications by issuing the following command:
If preloading fails or causes issues, you can unset it temporarily: 
To use mimalloc for firefox:
=== Using mimalloc systemwide ===
To preload libmimalloc.so systemwide, set the LD_PRELOAD environment variable globally by adding the line to the global shell configuration file as follows: 
== See also ==
Official website
Category:System Administration
Mini httpd

mini_httpd is a small HTTP server. Its performance is not great, but for low or medium traffic sites it's quite adequate. It implements all the basic features of an HTTP server.
= Setup =
mini_httpd package is available in the Alpine Linux repositories. To install it run:
Preparing home directory
Before writing your configuration perhaps you may wish to backup original configuration file
Creating mini_httpd configuration file
## do not leave empty lines in here!
#host=www.example.org
port=80
user=minihttpd
dir=/www
nochroot
Creating sample .html file
<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="utf-8" />
 <title>HTML5</title>
</head>
<body>
 Server is online
</body>
</html>
Starting mini_httpd
 * Starting mini_httpd ... [ ok ]
== Testing ==
This section is assuming that mini_httpd is running and sample html page "/www/index.html" is created. Launch a web browser and point it to your web server. You should get:
Server is online
You can also test web server with curl
== Adding to runlevel ==
Normally you want to start the web server when the system is launching. This is done by adding mini_httpd to the needed runlevel.
Now mini_httpd should start automatically when you launch your system next time. To test that run:
To make sure that mini_httpd is started run:
You should get something like this:
 580 minihttp 0:00 /usr/sbin/mini_httpd -i /var/run/mini_httpd/mini_httpd.pid -C /etc/mini_httpd/mini_httpd.conf -l /var/log/mini_httpd/mini_httpd.log
= mini_httpd with Haserl =
Haserl is a small program that uses shell or Lua script to create cgi web scripts. It is intended for environments where PHP or ruby are too big.
For setting up mini_httpd with Haserl, please see article mini_httpd with Haserl
= mini_httpd with Haserl and Lua =
Haserl is a small program that uses shell or Lua script to create cgi web scripts. It is intended for environments where PHP or ruby are too big.
Lua Lua is a powerful, efficient, lightweight, embeddable scripting language. It supports procedural programming, object-oriented programming, functional programming, data-driven programming, and data description.
For setting up mini_httpd with Haserl and Lua, please see article mini_httpd with Haserl and Lua
Category:Web Server
Category:Lua
Mini httpd with Haserl

mini_httpd is a small HTTP server. Its performance is not great, but for low or medium traffic sites it's quite adequate. It implements all the basic features of an HTTP server.
Haserl is a small program that uses shell or Lua script to create cgi web scripts. It is intended for environments where PHP or ruby are too big.
= mini_httpd setup =
For setting up mini_httpd please see article mini_httpd
= Haserl setup =
Haserl package is available in the Alpine Linux repositories. To install it run:
You need to modify mini_httpd.conf (to add cgipat)
mini_httpd service should be restarted because we have changed it's configuration
Creating sample bash script
Setting execution permission
== Troubleshooting ==
For troubleshooting you can try running commands:
= mini_httpd with Haserl and Lua =
Lua is a powerful, efficient, lightweight, embeddable scripting language. It supports procedural programming, object-oriented programming, functional programming, data-driven programming, and data description.
For setting up mini_httpd with Haserl and Lua, please, see arcticle
mini_httpd with Haserl and Lua
Category:Web Server
Category:Lua
Mini httpd with Haserl and Lua

mini_httpd is a small HTTP server. Its performance is not great, but for low or medium traffic sites it's quite adequate. It implements all the basic features of an HTTP server.
Haserl is a small program that uses shell or Lua script to create cgi web scripts. It is intended for environments where PHP or ruby are too big.
Lua is a powerful, efficient, lightweight, embeddable scripting language. It supports procedural programming, object-oriented programming, functional programming, data-driven programming, and data description.
= mini_httpd setup =
For setting up mini_httpd please see article mini_httpd
= Haserl and Lua setup =
Haserl and Lua packages are available in the Alpine Linux repositories. To install them run:
You need to modify mini_httpd.conf (to add cgipat)
mini_httpd service should be restarted because we have changed it's configuration
Creating sample Lua script
Setting execution permission
== Troubleshooting ==
For troubleshooting you can try running commands:
Category:Web Server
Category:Lua
Multiple Instances of Services

Alpine makes it very easy to install and run a service, but what if you need to have multiple instances of the same service running on the same machine. For instance, what if you want to run split-DNS, where you respond to DNS requests differently for internal and external networks. The simple response is to run two instances of tinyDNS listening on two different Ethernet interfaces. Now, how do you do it? How do you manage the two instances once you have them running?
The following example is specifically for TinyDNS, but can be applied to other services as well. TinyDNS will work because the init.d script has been written in such a way as to allow multiple instances. The procedure is written for alpine 1.9, but should work for other versions as well.
== Install The Service ==
First, we'll install TinyDNS and the ACF
This will install the TinyDNS service, as well as the ACF web interface used to manage the service. Having only one instance of TinyDNS, you can manage it from the console using , , and or from ACF using the Networking > DNS pages.
== Create a Second Instance of the Service ==
Now, we create a symlink to the TinyDNS init.d script for each new instance you want to run. (For alpine 1.8, you should not use the plain tinydns script so that ACF can properly determine which instance is running, but create two new instances instead) We're going to create a second instance that will handle the internal network.
Create and domain files for each new script. You can copy the tinydns files to start.
You now have a second instance of the TinyDNS service that you can manage from the console using , , and . But, how do you manage it with ACF?
== Create a Second Instance of the ACF ==
Set up an ACF controller for the new script. Controller names can only contain letters, numbers, and '_'.
Set up the modified ACF code for each new script. Only three files must be modified, the others may be copied or symlink'd. The name of the controller must be changed to allow the ACF permissions of the two TinyDNS instances to be managed separately.
Change 'local processname = "tinydns.internal"'
Replace each instance of 'tinydns' with 'tinydns_internal'
Modifiy the main menu entry, ie. replace each instance of '30DNS' with '31DNS_Internal'
Once you log out and log back into ACF, you should see the new ACF pages and menu options available. User and role management can be handled separately for the new instance. (In alpine 1.8, users should not be given access to the plain TinyDNS ACF)
== Save Your Changes ==
The is not automatically included in lbu commits, so the new ACF instance must be added manually.
Then, commit the changes.
Category:Booting
Category:ACF
Murmur

Murmur (also called Mumble-Server) is the server component for Mumble. Mumble is an open source, cross platform, low-latency, high quality voice over IP (VoIP) client. Mumble uses a client/server architecture and is primarily used by gamers, but can be used for any VoIP purpose.
== Installation ==
First of all we need Murmur in our server.
=== Setting up SSL certificates ===
If you already have used Certbot to set up certificates in your web server, then you can easily make a new certificate for a subdomain 'mumble' and add the cert paths to the mumble.ini configuration file. You can use vim and edit the file manually.
It should look something like this.
=== Starting up the service ===
Start the Murmur service.
You can add the Murmur service to the default runlevel.
In case you don't want Murmur to be default on runlevel, rollback with this command
category: telephony
Musl

Alpine Linux uses musl as its C standard library.
== Locale ==
To Fix unicode defaults: 
sed -i 's/#unicode="NO"/#unicode="NO"\nunicode="YES"/' /etc/rc.conf
Musl does not implement most of the locale features that glibc implements. The package provides translations with varying degrees of completion. The below command installs a limited set of locales (languages) for musl (C library) generated console messages. 
 
The package also provides locale command. To list defined locales:
This package includes a file in {[Path|/etc/profile.d/00locale.sh}}. You'll need to re-login or source it manually for locales to work.
Copy the default locale settings file to a custom override file:
 
Now custom override file can be edited with <Code>nano /etc/profile.d/locale.sh.sh</Code>.
== Language support == 
To pull in the translation packages for all installed packages:
To list available hunspell dictionary packages, so that you relevant language dictionary can be added:
To list translation packages for your specific(xy) language: 
For example, to list translation packages for Portuguese(pt) language:
== See Also ==
* Functional differences between musl and glibc
* Adelielinux musl-locales page
Category:System Administration
NOWASP (Mutillidae)

NOWASP (Mutillidae) is a free, open source, deliberately vulnerable web-application. It's similar to DVWA.
= Install lighttpd, PHP, and MySql =
Install extra packages:
= Installing and configuring Mutillidae =
Create the a folder named 
Download the source archive and unpack it
Unpack the archive and remove it
Change the folder permissions
Create a symlinks to the folder 
Category:PHP Category:SQL Category:Security
NVIDIA

This page is about nouveau the open source driver for NVIDIA graphic cards.
== Nouveau ==
Nouveau is an open-source driver for NVIDIA GPUs.
=== 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=nouveau
For VA-API:
* export LIBVA_DRIVER_NAME=nouveau
== Proprietary Driver ==
As of December 2024 the proprietary NVIDIA driver does not support the musl libc.
Category:Drivers
Category:Graphics
NZBGet

== Introduction ==
* This guide explains how to install the popular service NZBGet on Alpine Linux. Specifically, the environment used is 3.18 running in an LXC container. This guide should still work in a standard Alpine Linux install.
* This guide sets up NZBGet as a standard rc init service.
* The path is used in this guide, however the choice of path is immaterial to the outcome, for example, should work fine.
* This guide assumes all commands are run as root unless specified.
== Download and install nzbget ==
Fetch and install the latest NZBGet install script. (If you have security concerns, NZBGet code is available to inspect on GitHub).
Run the install script.
Move the nzbget directory to }
== Create NZBGet Service ==
Create the NZBGet init file:
Notice that the commands /opt/nzbget/nzbget -D and /opt/nzbget/nzbget -Q are used to cleanly start and stop the service.
Make the service file executable:
Add the service to rc init:
Start the service:
== Notes ==
* At this point, you should be able to reach nzbget at http://<YOURIP>:6789. You should be able to start and stop the nzbget service and the service should start after a system restart/reboot:
* Any further configs can be set using the webgui or in .
* Of note is the line in :
DaemonUsername=root
This allows the service to start and run as a specific user, which is a common setup if NZBGet is used in conjunction with other media managers and shared storage. Note that any working directories specified in the settings will require their permissions updated to work correctly.
* NZBGet is quite descriptive in its logs. Check NZBGet's Messages section for errors, including permissions and paths.
== Updating NZBGet ==
As of version 21.2, the certificate that ships with NZBGet for updating from nzbget.net is expired and updates will consequently fail until it is updated. Fortunately, this can be rectified:
Stop the nzbget service:
If you run the nzbget service under any other user than root, change this back to root temporarily for the update in :
DaemonUsername=root
Fetch the new and valid certificate:
Move the new certificate to the correct path:
Start the NZBGet service:
Navigate to your instance of NZBGet, Settings, System, Update NZBGet:
If required, stop the nzbget service again and revert the DaemonUsername to its normal value in .
category:Networking