nyuuzyou/wikis huggingface dataset:
Daily driver guide

Alpine Linux is a general purpose Linux distribution designed for power users. It is built to be small and resource efficient. If you feel the defaults are too lightweight for desktop use, it is easy to get most of the regular stuff working and use it as a daily driver. 
This guide assumes you have already installed a minimal Alpine Linux system in system disk mode with working internet.
Once the above mandatory steps are completed, install any desktop of your choice either manually or using setup-desktop script. 
==== Basics ====
* Learn the alpine package keeper basics or refer wiki for more details.
* Install some fonts to make your desktop look better.
* Setup a sound server to manage your audio and configure your Bluetooth, if you have one. 
* Configure your printer.
* Enable documentation, so man pages are available.
* Install CPU Microcode updates to mitigate processor design bugs.
* Secure your system by installing firewall software like awall or UFW.
* To keep your system secure, regularly check and apply updates with the package manager.
==== Advanced ====
* Use Flatpak to add packages that are not in the repositories.
* Install package to add a glibc compatability layer which lets you run glibc binaries as normal.
* Install a sandboxing application like AppArmor or Bubblewrap.
* Learn basics of openrc, the alpine Linux init system or refer Open rc wiki.
* Upgrade your OS whenever Alpine Linux releases a new stable version. 
* If you want the rolling release version of Alpine Linux, enable the Edge repository. 
* You may want to explore the testing repository, as it provides a lot more applications. 
 
== See also ==
* Desktop section of Tutorials page 
* List of all Desktop category pages
Category:Desktop
Damn Vulnerable Web Application (DVWA)

For testing web security tools a target which has plenty vulnerabilities is needed. The Damn Vulnerable Web Application (DVWA) provides a PHP/MySQL web application that is damn vulnerable.
== Install lighttpd, PHP, and MySql ==
Install extra packages:
== Installing and configuring DVWA ==
Create the a folder named 
Download the source archive and unpack it:
Modify the database credentials within DVWA configuration file 
To complete the setup, browse to the DVWA directory on the webserver.
http://WEBSERVER_IP_ADDRESS/dvwa
Follow the link to setup the database.
Category:PHP Category:SQL Category:Security
Darkhttpd

darkhttpd is a simple, fast HTTP 1.1 web server for static content. It does not support PHP or CGI etc but is designed to serve static content, which it does very well. darkhttpd would be an excellent alternative to Lighttpd for running an Alpine mirror
For a full list of features see the darkhttpd homepage
= Install =
= Configure =
Default location of files to serve: 
Default log path: 
There's no configuration file for , everything is controlled from the command line or in our case the OpenRC init file, which is stored in and by default looks like this:
So by default we will serve pages from and darkhttpd will run as a background daemon, chrooted to with a user of darkhttpd and group of www-data.
Logs will go to .
The default values have been chosen to provide sane, secure settings. 
Change any of these values as you see fit, but it's a good idea to backup the file before making changes.
For a full list of available options, run: 
and amend the command_args line as you see fit. 
For example, you might wish to serve files from instead, so you can edit the file with an editor of your choice (vi, nano, vim or whatever) and make it like so:
= Use =
Filesharing is made easy; simply add your files under the server root, by default 
== Test ==
Create a test page under the server root, by default 
Start the daemon: 
Output should be something like this:
 * Starting darkhttpd ...
darkhttpd/1.9, copyright (c) 2003-2013 Emil Mikulic.
listening on: http://0.0.0.0:80/
chrooted to `/var/www/localhost/htdocs'
set gid to 82
set uid to 100 
Now point a browser to your darkhttpd server and you should get the index page, or a directory listing if you didn't create an index page.
Check the logfile: 
== Controlling darkhttpd status ==
Stop, start and restart the daemon in the usual fashion:
== Auto-start darkhttpd at boot ==
To add the daemon to the default runlevel so it auto-starts at boot, do: 
= Troubleshooting =
* When restarting the daemon you may see an error message:
Stopping darkhttpd ...
/lib/rc/sh/runscript.sh: line 202: can't create /sys/fs/cgroup/openrc/darkhttpd/tasks: nonexistent directory
Starting darkhttpd ...
This error message appears to be benign and of no consequence so can be ignored. I can only replicate this error on a VMWare vSphere client.
* If the daemon will not start, ensure you haven't made a syntax error in the init script.
* Ensure the daemon is running with 
* Make use of the logs to check it is receiving requests. To do this, run and then send requests to the web server. If darkhttpd is receiving the requests, lines will be logged. If you don't see these lines, perhaps a firewall rule is blocking access to the server or there is a routing issue somewhere?
Use + to exit back to the prompt when finished testing.
= See also =
* darkhttpd --help
Category:Web Server
Data Disk Mode

In Data Disk mode also the operating system runs from system RAM, thus it enjoys the same accelerated operation speed as diskless mode. However, swap storage and the entire directory tree get mounted from a persistent storage device (two newly created partitions). The directory holds e.g. all log files, mailspools, databases, etc., as well as lbu backup commits and the package cache. This mode is useful for having RAM accelerated servers with variable amounts of user-data that exceed the available RAM size. It enables the entire current system state (not just the boot state) to survive a system crash in accordance with the particular filesystem guarantees. 
== Installation ==
Following the Installation steps to complete the base configuration completes the pre-setup of "diskless" Alpine Linux system. In data disk mode, the boot device may also remain the initial (and possibly read-only) installation media, or be copied to a partition (e.g. /dev/sdXY) with setup-bootable. Refer Creating a bootable device for creating a bootable medium to boot the Data Disk Mode Installation.
As per Bug: #10474, <Code>setup-alpine</Code> script will create the data partition and mount it as /var, but setup-alpine's "data" disk mode can not yet configure lbu config storage settings automatically. The current workaround, is to select "none" at the 'where to store configs' prompt (as the new data partition is not listed anyway) and configure lbu manually after setup-alpine exits, and before rebooting:
# Identify the created data partition, e.g. /dev/sdXY, and its filesystemtype, e.g. using lsblk
# Manually edit the lbu backups location in /etc/lbu/lbu.conf and configure LBU_MEDIA=sdXY (according to the previous findings).
# Save the configuration on that partition for the next boot with lbu commit.
# If (a new) partition fails to get mounted, execute: mkdir /media/sdXY ; echo "/dev/sdXY /media/sdXY fstype noauto,rw 0 0" >> /etc/fstab, and try lbu commit again.
== See Also ==
* Alpine Local backup Utility - lbu'
* Local package cache
* Manually editing a existing apkovl
* Back Up a Flash Memory Installation
* Upgrading Diskless to New Alpine Linux Release
* Diskless PXE Boot
* How to make a custom ISO image with mkimage
* QEMU Diskless example 
* Include special files section - To include custom files outside of /etc in .apkovl file.
Category:Diskless
Ddclient

== How to download and install the latest version of ddclient ==
DDclient is a perl script to update accounts for Dynamic DNS Service Provider.
== Install ==
ddclient is available in community repository as of Alpine Linux 3.19.
In order to use it, you need to first install it:
# apk update
# apk add ddclient
== Configuration ==
A sample configuration file is installed by default as /etc/ddclient/ddclient.conf, so you can modify it according to your needs.
Then, start ddclient as usual:
# rc-service ddclient start
If you want/need, configure the service to start automatically on boot:
# rc-update add ddclient default
== See Also ==
* Ddclient Homepage
* Ddclient Github repo
Category:Networking
Default applications

To change the default application associated with a filetype you must use the xdg-mime command and point to the desired desktop file.
For programs that do not ship a desktop entry file, one must be created.
== Example ==
The following example makes the default command to open pdf files.
Create a desktop file, because mupdf doesn't provide one:
Use xdg-mime from to associate the desktop file with the pdf extension:
== See also ==
* ArchWiki: Default applications
Category:Desktop
Category:Newbie
Category:Installation
Desktop environments and Window managers

Alpine Linux has no official desktop and setting up a graphical environment is not even part of Installation. All window managers and desktop environments that are available in Alpine Linux are listed in this page. Quick installation using setup-desktop script is available for few desktops. 
== Desktop environments ==
Desktop environment (DE) is made of a bundle of programs that share a common graphical user interface (GUI), sometimes described as a graphical shell. A desktop environment typically consists of icons, windows, toolbars, folders, wallpapers desktop widgets and might also provide drag and drop. 
* Xfce
* LXQt
* KDE Plasma
* GNOME
* MATE
== Window managers ==
A window manager is software that controls the placement and appearance of windows within a windowing system in a graphical user interface. Almost all components of a desktop needs to be added manually by the user. A stacking a.k.a. floating or tiling a.k.a. dynamic layout is commonly used for window management.
WM Name 	Protocol	Style 	Toolkit 	Inspiration
Awesome 	X11 	Tiling 	Lua 	
 	X11 	Stacking	C 	
 	X11 	Tiling 	C 	
 	Wayland 	Kiosk 	C/wlroots 	ratpoison
 	Wayland 	Tiling 	C/wlroots 	ratpoison and cage
 	X11 	Stacking	C 	
 	Wayland 	Tiling 	C/wlroots 	dwm
dwm 	X11 	Tiling 	C 	
Fluxbox 	X11 	Stacking	C++ 	Blackbox
 	X11 	Tiling 	C++ 	
Hyprland	Wayland 	Tiling 	C++ 	
i3 	X11 	Tiling 	C 	
 	X11 	Stacking	C 	
LabWC 	Wayland 	Stacking	C/wlroots 	Openbox
 	X11 	Stacking	C 	
Openbox 	X11 	Stacking	C 	
Qtile 	Both 	Tiling 	Python 	
 	X11 	Kiosk 	C 	
River 	Wayland 	Tiling 	Zig 	dwm and xmonad
 	X11 	Tiling 	C 	xmonad and dwm
Sway 	Wayland 	Tiling 	C/wlroots 	i3
twm 	X11 	Tiling 	C 	
 	Wayland 	Stacking	C++/wlroots	Compiz
Weston 	Wayland 	Stacking	C 	
== See also ==
* Post Installation
* Wayland
* Xorg
* Display manager
* Desktop environment - Archwiki
* Desktop environment - Gentoo Wiki
Category:Desktop
Category:Desktop Environments
Category:Window Managers
Category:Compositor
Developer Documentation

This page has pointers to various resources about Alpine Linux from a developer perspective. Set up the build environment and start contributing to Alpine Linux by either creating packages or by submitting patches.
== Configuring your development system ==
* Setting up the build environment 
* Upgrading to Edge 
* Installing Alpine Linux in a chroot 
* Install Alpine on LXC
* VMware, Qemu, or Amazon EC2
* Xen Dom0 (Setting up Alpine as a dom0 for Xen hypervisor)
** Xen Dom0 on USB or SD
** Create Alpine Linux PV DomU
** Xen LiveCD
== Creating packages and patches==
* Creating an Alpine package
 
 
 
** Abuild and Helpers (Scripts for packaging)
 
 
 
** Aports tree 
** Developer repositories
** Package policies
** Package Maintainers
** APKBUILD Reference
** APKBUILD examples
* Creating and submitting patches
== Development tools ==
* Git 
* cgit
** Cgit Basics
== Alpine configuration framework ==
* Alpine Configuration Framework Design (Why ACF is the way it is)
* Writing User Documentation for ACF
* mvc.lua reference - mvc.lua is the core of ACF 
* mvc.lua example - build a simple (command-line) application 
* acf www-controller reference - ACF www application functions 
* acf www-controller example - webify the above examples 
* ACF how to write - Step by step howto for writing acfs 
* ACF core principles - Things that are standard across the application 
* LuaPosix - Documentation for the Lua Posix functions 
* ACF Libraries - Document the libraries and common functions 
* Writing ACF Views - Guide for writing a view 
* Writing ACF Controllers - Guide for writing a controller 
* Writing ACF Models - Guide for writing a model
* ACF css
* ACF packages
* APKBUILD examples:ACF
* Apk.lua
* Changing passwords for ACF
* Generating SSL certs with ACF
* Generating SSL certs with ACF 1.9
* Getting started with ACF development
* Managing ACF
== Alpine Wall ==
* Alpine Wall 
* How-To Alpine Wall 
* Alpine Wall User's Guide (a firewall management framework)
== Design documents ==
* Architecture
* Apk spec
* Apkindex format
* Alpine package format
* Alpine Configuration Framework Design
== Misc == 
* Alpine Release Testing Checklist
* Alpine Source Map by boot sequence
* Testing modified install images and packages
* Custom Kernel
* Comparison with other distros
== Package management ==
* Package Management (apk) (How to add/remove packages on your Alpine) 
* Alpine local backup (lbu) (Permanently store your modifications in case your Diskless box needs reboot)
== Init system ==
* initramfs init
* Init System (OpenRC) (Configure a service to automatically launch at next reboot)
** Writing Init Scripts
Category:Development
Development using git:Cgit

Developers with SSH access can publish their repositories on cgit at git.alpinelinux.org.
== Create a repository ==
Create a directory on your local computer or somewhere you have access. If you already have an existing git repository, skip this section.
init git and create a first commit
== Create a bare repo ==
Clone it to a bare repo
Set the description
Set the section and your name for cgit. 
== Upload to git.alpinelinux.org ==
Copy the content to your the ~/cgit directory on git.alpinelinux.org.
== Clean up ==
We no longer need the local aports.git directory.
== Last step ==
Now ping ncopa or somebody else on IRC in #alpine-devel with the corresponding permissions to create symlinks on git.alpinelinux.org and your repository will show up. Once the symlink is created all further repositories will be published on git.alpinelinux.org.
== Add your personal repository ==
So far git does not know anything about about your repositories.
== Add upstream source to merge with ==
If the project you uploaded is a clone of an existing repository (aports for example), add the original source as a git remote repository ("upstream" can be whatever name you want to assign to the remote repository):
Then, to synchronize your local copy with upstream then push your changes (might need to fix merge conflicts if/when they happen):
== The quick way ==
Category:Development
Category:Git
Development using git:Quality assurance

Before pushing anything to it is good to make sure that:
# The package actually builds
# Commit message is good
# pkgrel is bumped if needed
# no whitespace damage (last chars of a line is whitespace)
The following git hook will help you catch some common errors early:
#!/bin/sh
# Redirect output to stderr.
exec 1>&2
git diff --cached --name-only HEAD | grep 'APKBUILD$' | while read f; do
 olddir=$PWD
 cd ${f%/APKBUILD}
 if ! abuild sanitycheck && verify; then
 exit 1
 fi
 cd "$olddir"
done
# If there are whitespace errors, print the offending file names and fail.
exec git diff-index --check --cached HEAD --
Install it as .git/hooks/pre-commit and make it executable.
Category:Development
Category:Git
Device Manager

A device manager is a program that manages device files in the /dev directory. Permissions and changes in are handled by it.
Alpine linux has several device managers available:
* mdev (from ) is the default.
* mdevd is standalone, compatible with mdev, more efficient.
* eudev is a complex, full-featured one.
udev is not available in Alpine Linux, since it depends on systemd which is not available. Use eudev instead.
== Do I need a device manager? ==
Yes! Even for very specific use cases you would most likely just create a custom device manager.
== See also ==
* libudev replacement
* Gentoo Wiki - Device file
Category:Device Manager
Dglog

dglog is a CGI log analyzer for the web content filter DansGuardian, which is being developed under the GNU General Public License (GPL). You need to have DansGuardian installed and working. Dglog2 will read the access.log log file from directory. You can use dglog to to have a basic analysis of the dansguardian log. It's very simple and basic, but it's a good start.
= Install http server and perl =
= Configure lighttpd =
Edit the file
Uncomment the following line:
 include "mod_cgi.conf"
Save and exit.
= Installing dglog =
Make the necesary directory 
Download 
Edit the dglog2.pl file
Uncomment and change 
 $cgipath = 'http://your.ip/cgi-bin/dglog/dglog2.pl';
Comment 
 $cgipath = $ENV{SCRIPT_NAME};
= Starting =
Starting http server and adding to boot.
Done! Now you can browse to http://your.ip/cgi-bin/dglog/dglog2.pl and check the DansGuardian log file.
Category:Server
Category:Monitoring
Category:Perl
Directly booting an ISO file

It is technically possible to boot an .iso file directly, without flashing it to a disk or device.
== Using a virtual machine ==
The QEMU page shows how an ISO image and .apkovl customizations are booted with a virtual machine. This works very well with Proxmox as well - just attach the ISO and Alpine boots to RAM on startup. You can customize your .iso file by building a custom ISO image by following the instructions on How to make a custom ISO image with mkimage
== Using an installed Bootloader ==
=== grub-imageboot ===
In addition to standard partitions or drives, the Debian package grub-imageboot allows booting .iso files placed in the /boot/images directory.
=== Manual Grub menu entry ===
No solution found yet.
=== syslinux ===
No solution found yet.
Category:Installation
Display manager

A Display manager presents the user with a login screen. A session starts when a user successfully enters a valid combination of username and password. It is typically a graphical user interface that is displayed at the end of the boot process in place of the default shell.
== List of Display Managers ==
=== Graphical ===
* GDM (): GNOME display manager
* LightDM (): Cross-desktop display manager
* SDDM (): Simple Desktop Display Manager. Recommended for KDE (Plasma) and LXQt.
* XDM (): X Display Manager
* LXDM (): A lightweight desktop login manager
* SLiM (): Desktop-independent graphical login manager for X11 (abandoned since 2013)
=== Console ===
* Agetty (): Console based login manager
=== Daemon ===
* Greetd (): Desktop independent lightweight login manager daemon
Category:Display Managers
Category:Desktop
Docker

== Installation ==
The package is in the community repository. See Repositories how to add a repository.
 apk add docker
=== Docker as root ===
To start the Docker daemon at boot, see OpenRC.
 rc-update add docker default
 service docker start
Connecting to the Docker daemon through its socket requires you to add yourself to the docker group.
 addgroup ${USER} docker
=== Docker rootless ===
Docker rootless allows unprivileged users to run the docker daemon and docker containers in user namespaces. This is not the same as dockremap explained in the section below. With dockremap the daemon still runs as root.
This requires the package (available in community) and enabling cgroups v2:
edit /etc/rc.conf and set rc_cgroup_mode="unified". Then start the service on boot:
 rc-update add cgroups
Additionally, the /etc/subuid and /etc/subgid files need to be set up as explained in the official documentation.
=== Docker Compose ===
 is in the community repository starting with Alpine Linux 3.15.
 apk add docker-cli-compose
== Isolate containers with a user namespace ==
adduser -SDHs /sbin/nologin dockremap
addgroup -S dockremap
echo dockremap:$(cat /etc/passwd|grep dockremap|cut -d: -f3):65536 >> /etc/subuid
echo dockremap:$(cat /etc/passwd|grep dockremap|cut -d: -f4):65536 >> /etc/subgid
add to /etc/docker/daemon.json
{ 
 "userns-remap": "dockremap"
}
You may also consider these options : 
 "experimental": false,
 "live-restore": true,
 "ipv6": false,
 "icc": false,
 "no-new-privileges": false'''''
You'll find all possible configurations here.
== "WARNING: No {swap,memory} limit support" ==
You might encounter this message when executing docker info.
To correct this situation, we have to enable the cgroup_enable=memory swapaccount=1
=== Grub ===
If you use Grub, add the cgroup condition into /etc/default/grub, then upgrade your grub
GRUB_CMDLINE_LINUX_DEFAULT="... cgroup_enable=memory swapaccount=1"
=== Extlinux ===
With Extlinux, you add the cgroup condition, but inside of /etc/update-extlinux.conf
default_kernel_opts="... cgroup_enable=memory swapaccount=1"
then update the config and reboot
update-extlinux
== How to use docker ==
Check the official documentation for details on general usage of docker, including creating and management of containers. Repeating these instructions here be redundant.
Public images can be browsed at the Docker Hub. These should also serve as further reference on the Dockerfile format.
Official Docker image files are denoted on the website by a special badge.
== See also ==
* Creating and Hosting an Alpine Linux Package Repository for Docker Packages
* Running Alpine in a Docker Container
* Docker - ArchWiki
Category:Virtualization
DokuWiki

DokuWiki is a standards compliant, simple to use Wiki, mainly aimed at creating documentation of any kind. This page covers installation with either lighttpd or nginx.
= Install lighttpd and PHP =
= Install nginx and PHP =
Continue with this tutorial, however please note that only these packages are required:
Make sure that the PHP user and group match those for nginx (the outputs should be the same):
Afterwards, configure nginx and, optionally, enable URL rewrites
Alternatively, you can call PHP from nginx via unix socket:
To define unix socket in nginx configuration, add following section to server:
 location ~ \.php$ {
 try_files $uri $uri/ /doku.php;
 include fastcgi_params;
 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
 fastcgi_param REDIRECT_STATUS 200;
 fastcgi_pass unix:/var/run/php.sock;
 }
== Installing DokuWiki ==
Install required php modules
Create webroot
Download the source code archive 
Unpack and delete tar file
Rename the dokuwiki folder
Change the folder permissions (change the www user/group to the one that is used by both web server and PHP)
for lighttpd use
Browse to 
http://WEB_IP_ADDRESS/dokuwiki/install.php
Category:Server
Category:PHP
Draft Release Notes for Alpine 3.22.0

As always, make sure to read Upgrading Alpine to a new major release when upgrading to a new release.
If you experience any issues with the upgrade, please let us know and file an issue in our repositories.
== Important changes ==
== Significant changes ==
=== KDE Plasma ===
The X11 session for KDE Plasma has been removed. If you had installed make sure to remove it from . Wayland is the only available option now.
=== SDL ===
 and were moved to the community repository and are now the default SDL provider. To force the installation of , use apk add sdl2.
== Note-worthy updates ==
As always, many packages were upgraded. Make sure to read the individual release notes of the projects you use.
* Linux TODO
* busybox TODO
* GCC TODO
* LLVM TODO
* Go TODO
* Rust TODO
* PHP TODO
* GNOME TODO
* KDE Plasma TODO
* LXQt TODO
* Qt TODO
* wlroots TODO
== Significant removals ==