nyuuzyou/wikis huggingface dataset:
Filesystems

Alpine Linux supports a number of filesystems. 
== Filesystem Tools ==
Alpine has multiple storage media formatting packages available. Different packages/programs are used to format different types of filesystems.
Tool	Filesystem 	Brief Notes 	Formatting command
 	Btrfs 	 	mkfs.btrfs
 	FAT12/FAT16/FAT32	used for EFI partition 	mkfs.vfat
 	ext2/ext3/ext4 	ext4 is current default in Linux 	mkfs.ext4
 	exfat 	Commonly used on USB flash drives and SD cards	mkfs.exfat
 	F2FS 	 	mkfs.f2fs
 	XFS HFS/HFS+ 	Apple/Mac products 	mkfs.hfsplus
 	JFS 	 	mkfs.jfs
 	NTFS 	Microsoft/Windows FUSE driver 	
 	XFS 	 	mkfs.xfs
== Swap Partition ==
Swap space is used for two purposes 
# Extend the virtual memory beyond the installed physical memory (RAM) to avoid Out of memory condition 
# Suspend-to-disk or Hibernation support 
Below Instructions explain how to use a seperate partition for swap:
The following commands prepares the unmounted partition (/dev/sda2) for swap space, activates the prepared swap space and starts the swap service to manage swap space immediately:
 # mkswap /dev/sda2
 # swapon /dev/sda2 
 # rc-service swap start
The command will show how much swap space is available (in MB).
To make the swap persistent across reboots, enable automatic start of swap:
 # echo -e "/dev/sda2 none swap sw 0 0" >> /mnt/etc/fstab
 # rc-update add swap 
If you prefer maximum speed, you don't need configure any raid devices for swap. Just add 2 swap partitions on different disks and linux will stripe them automatically. The downside is that the moment one disk fails, the system will go down. For better reliability, put swap on RAID1. 
== Encrypted swap ==
The below steps explains the steps to enable crypt-swap or Encrypted swap parition.
Edit the file to enable crypt-swap. Ensure that source device name is correct. :
To use dmcrypt, start dmcrypt service and enable swap immediately:
 
 # /etc/init.d/dmcrypt start
 # swapon /dev/mapper/crypt-swap
To make the encrypted swap persistent across reboots, enable automatic start of encryption & swap:
 # rc-update add dmcrypt
 # rc-update add swap
To enable automatic swapon, add the relevant entry to 
== See Also ==
* How to enable encrypted swap in Alpine Linux
Category:Storage
Category:Installation
Category:Filesystems
Firefox

Firefox is a popular, open-source web browser.
== Installation ==
To install Firefox, firstly enable the Community repository, then type in the terminal:
For the Extended Support Release (ESR) ():
For the current release ():
== Stability ==
If tabs crash, then try disabling hardware acceleration, in the Preferences - Performance menu.
== Notifications ==
For Firefox to use native notifications (e.g.: via a notification daemon) the package is required.
== See Also ==
* Git repositories for Alpine Linux
category: Web Browser
Fluxbox

Fluxbox is an easy and fast X11 window manager based on BlackBox.
== Installation ==
Install X11 and set it up using the setup-xorg-base script.
Install fluxbox, xterm, and terminus font.
xterm is needed so you have a way to access the terminal in X. There are alternatives but this is the classic.
Terminus is needed because without any fonts, you will not be able to see any text in Fluxbox.
== Configuration == 
=== acpid ===
If you installed your Alpine Linux as a VirtualBox or VMWare guest, you might find it handy to be able execute an ACPI shutdown.<BR>
=== Set Fluxbox as the default Window Manager ===
=== Start X ===
Edit the flux settings for your user by editing the files located in ~/.fluxbox/. This directory is created after your first run of Fluxbox. The Fluxbox configuration details can he studied on the Fluxbox Help Page. 
== See also ==
Fluxbox Help Page.
Category:Desktop
Category:Window Managers
Flyspray

=Installing Flyspray=
=Database support=
Flyspray supports only MySQL and PostgreSQL. Here we cover MySQL installation, but the steps are basically the same with PostgreSQL.
== Install Database support ==
Notice that even though flyspray-mysql package is available, if you install it Flyspray will report that the function library is deprecated, that is quite annoying.
Is better to use mysqli package.
Now before we continue we need to create the database. 
If you need mysql client, you can install it like this:
You can of course also use a tool like phpmyadmin to create the database and setup the user.
=Setup Lighttpd=
Now our database is ready, we need to install and configure Lighttpd, with PHP support.
Now, you should enable PHP/FastCGI support modifying Lighttpd configuration.
You can find it in .
 ... 
 include "mod_fastcgi.conf"
 ...
If your server does not run, you can find information in . If that does not provide a clue you can also run Lighttpd in foreground. It should display some more debug information.
=Flyspray configuration=
Now that everything is ready, you need to make Flyspray visible to the webserver. 
For doing that, create a symlink from (that is the default location where flyspray is installed) to .
This is the document root directory of lighttpd server. If you use another webserver, check what is the document root and put the symlink there.
Flyspray needs permission to write on flyspray.conf.php that is in the root directory.
That's all.
Open your browser to http://$FLYSPRAY_SERVER/flyspray and follow the instruction.
category:Programming
Fontconfig

The default font for most applications is configured via . See man 5 fonts-conf for details.
The following example changes the default sans-serif, serif and monospace fonts:
<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'urn:fontconfig:fonts.dtd'>
<fontconfig>
 <!-- Default fonts -->
 <alias binding="same">
 <family>sans-serif</family>
 <prefer>
 <family>DejaVu Sans</family>
 </prefer>
 </alias>
 <alias binding="same">
 <family>serif</family>
 <prefer>
 <family>DejaVu Serif</family>
 </prefer>
 </alias>
 <alias binding="same">
 <family>monospace</family>
 <prefer>
 <family>DejaVu Sans Mono</family>
 </prefer>
 </alias>
</fontconfig>
To change default font selection system wide, copy the above into /etc/fonts/conf.d/52-my-default-fonts.conf.
To change default font selection for a single user, copy the above into $HOME/.config/fontconfig/conf.d/52-my-default-fonts.conf.
A list of installed can be obtained with fonts with fc-list.
Category:Desktop
FreePBX

This document will be a quick c/p guide to setup asterisk with FreepPBX on Alpine Linux. What we will setup is the following:
* Lighttpd with PHP using FastCGI
* MySQL server
* Freepbx 2.7.0
== Install Lighttpd and PHP ==
== Install pear DB ==
== MySQL ==
Follow MariaDB installation and configuration guide to prevent errors during installation. Below is an example of necessary steps, but it won't work before you do following article.
Initiate databases
Start MySQL and add to system start
Set MySQL root password
== Asterisk ==
Install asterisk (replace vserver with your kernel version).
Start asterisk (do not add to system start)
== FreePBX ==
Download Freepbx
{{Cmd|wget https://mirror.freepbx.org/freepbx-2.7.0.tar.gz} 
Unpack source
Add freepbx databases to MySQL
Import SQL data into MySQL
Open connection to MySQL
Create MySQL users
Close connection
Freepbx installer does not like busybox sed so we add normal sed, we need to patch 2 files later on so we need patch (you can remove them afterwards)
Flash operator panel needs Perl
Start the installer (you can accept the defaults)
== Finishing up ==
Change user/group of lighttpd to asterisk
Change permissions of lighttpd/freepbx files
Stop asterisk
Patch FreePBX to support Alpine Linux
File:Freepbx_engine.patch.txt
This file gets overwritten when using freepbx so we need to patch the original
File:Freepbx_engine.patch.txt
Start Asterisk with FreePBX
Load needed dahdi modules
Make them load on boot
Category:Telephony
Category:Server
Category:PHP
Category:SQL
GNU core utilities

The GNU Core Utilities are the basic file, shell and text manipulation utilities of the GNU operating system. These are the core utilities which are expected to exist on every operating system. However, Alpine Linux uses BusyBox in place of the coreutils for a more lightweight, minimalist and secure experience but the is still available. If you wish to use the original package:
== utmps ==
Some programs like wall(1) depend on a libc feature named "utmp", that cannot be implemented
in libc securely. For this reason, musl (the libc that Alpine uses) does not implement utmp. Instead, it provides stubs that do nothing.
That is why programs that use utmp - such as wall, who or w - output nothing but still exit successfully. This is expected, a feature, and cannot be fixed easily.
The login monitor utmps, is a secure implementation of user accounting. The Alpine Linix package can be installed as follows:
Once the package is installed, start the helper script which sets up services.
Note that also works without package.
== ubase ==
There also an alternative to named currently available in testing repository that provides better functionality than the built-in busybox, but less than what coreutils offers.
Category:System Administration
GNUnet

GNUnet is a new network protocol stack for building secure, distributed, and privacy-preserving applications. With strong roots in academic research, the project's goal is to replace the old insecure Internet protocol stack. 
= Installation =
To install GNUnet:
The GNUnet stack is built as a set of micro services divided into two classes for security reasons. There are user and system services. The system services are the basis and shared by all users. To start them:
Next, set up the user services. (Here the user can choose to use the GNS instead of DNS in Firefox and Chrome to secure all TLS connections and provide GNS name resolution):
To start the user services:
= Applications =
To install the GTK based application:
== File sharing ==
See here.
== Name Store ==
To use the e.g. the GNU name store with the GTK based application:
== Use GNU Name System for browsing ==
The GNU Name System is a privacy friendly alternative to DNS and comes with the installation of gnunet. You can use it with Firefox or Chromium by calling the setup script: 
Now open one of the two browser and check for the certificate information of some X.509 secured website. It should state something like "Verified by GNU". Your browser is now able to verify X.509 and GNS secured websites.
= Documentation =
For more information see GNUnet in a nutshell.
Category:NetworkingCategory:Security
GVisor

== What is gVisor? ==
It is a kernel syscall implementation in the language Go. It helps isolate the kernel from the container.
== How to implement gVisor ==
Run instructions on here: https://gvisor.dev/docs/user_guide/install/
Set sysctl to disable Yama ptrace scoping and increase max amount of namespaces (may increase surface of attack):
Now append, for docker run, --runtime=runsc 
Or for compose.yml, do runtime: runsc
Category:Security
Game development on Alpine Linux

Game development is possible on Alpine Linux. 
== Learning curve ==
For programmers, it's strongly recommended that you use a game engine if you are starting video game programming which will handle most of the low level setup. If you have advanced knowledge in programming, you should see the multimedia section and 3D libraries section.
For artists, see Tools used to work with or create art assets section.
== Software libraries used in game development ==
=== Game engines ===
Name 	Package	Description
PLIB 	 	game engine
Blender 	 	a 3D modeler and animator with a game engine
Minetest	 	both a game engine and a game
=== Multimedia libraries ===
Name 	Package(s) 	Description
Simple DirectMedia Layer 2.0 	 	has input, audio, video, opengl, touch screen, game controller support
SFML (Simple and Fast Multimedia Library)	 	has input, audio, video, networking, opengl support
OpenAL Soft 	 	can be used for 3D sound for 3D games
GLFW 	 	To create OpenGL context quickly with input support
FreeGLUT 	 	To create OpenGL context quickly with input support
PyOpenGL 	 	OpenGL on Python
Simple DirectMedia Layer 	sdl-dev (dropped support for sdl 1.x . Use 2.0 instead)	has input, audio, video, joystick support
=== 3D libraries ===
Name 	Package(s)	Description
OpenGL Mathematics	 	for 3D calculations to transform, rotate, scale stuff
==== Rendering and loading assets ====
Name 	Package(s)	Description
OpenSceneGraph	 	can be used to load 3D models and handle complexities of rendering a 3d scene
==== Fonts ====
Name	Package(s)	Description
FTGL	 	to display text in OpenGL
== Tools used to work with or create art assets ==
Name 	Package(s)	Description
GIMP 	 	edit 2D assets
Audacity	 	edit sound assets
Inkscape	 	edit vector 2D assets
Blender 	 	edit 3D assets or models
Category:Programming
Gamepad

This article covers gamepads, joysticks and other game controllers.
== With eudev ==
By default, only members of the input group can access gamepad and joystick devices. However, making users members of the input group has a negative security impact on which processes can obtain raw keyboard and mouse input.
To grant members of the plugdev group access to gamepads, create an udev rule. For example, 
Reload all rules with
Then (re)connect the game controller.
Category:Hardware
Category:Gaming
Gaming on Alpine

It is possible to game on Alpine Linux.
== Installing Games ==
Like with installing any other package, run the following:
Where [game] is the name of the package containing the game, like micro-tetris.
== Steam ==
== Wine ==
 allows you to run some Windows software, including games, under Linux. A 32-bit Alpine chroot/multiboot might be required to use 32 bit Windows games under Wine. If you use x86_64, 32-bit applications will run in Wine's experimental WoW64 mode, which may not be compatible with all software.
To run windows app/games inside a docker container with alpine Linux, is required to fix issues related to raw sockets
RUN apk add --no-cache libcap
RUN setcap cap_net_raw+epi /usr/bin/wine-preloader
== Permissions ==
To make sure your account is in the "games" group, run the following:
Log-off and then log back on in order for the changes to take effect. Most games don't require this in order to work.
== List of games ==
Below is the list of games packages available in Alpine Linux:
* AdvanceMAME () - Arcade simulator.
* Aisleriot () - Solitaire card games.
* DOSBox () - DOS-emulator that uses SDL.
* Frotz () - Z machine (Infocom interactive fiction) Interpreter.
* FlightGear () - Flight simulator.
* Freedoom+Chocolate Doom - (, ) -- a free Doom game and an engine to run it. For a more modern game engine resembling modern FPSes compatible with Doom WADs, try GZDoom - (or the legacy version ).
* GNU Chess () - Play chess against the computer.
* LBreakout2 () - Ball-and-paddle game.
* LBreakoutHD () - The successor to LBreakout2. Note: no level editor available. lbreakout2 is needed for level creation.
* LPairs () - Classical memory game.
* Micro Tetris () - A version of Tetris that uses ANSI escape sequences and can fit in embedded devices.
* Minetest () - An inspired Minecraft game.
* NetHack - Rogue-like dungeon crawler.
* OpenRCT2 - A free and open-source reimplementation of RollerCoaster Tycoon 2 but requires original RollerCoaster Tycoon 2 assets.
* OpenTTD () - A business simulation game.
* RetroArch () - Frontend for emulators, game engines, and media players using libretro.
* SuperTux () - Classic 2D jump'n'run side-scroller game in a style similar to the original Super Mario games.
* SuperTuxKart - Kart racing game with OSS mascots.
* Xonotic () - A free and open-source FPS.
== See Also ==
* Steam on Alpine Linux 
* Wine FAQ
* OBS Studio () - Used by live streamers on streaming platforms such as YouTube and Twitch.
* How to Install Wine on Alpine Linux 3
category:Gaming
Git

This document describes how to use git for Alpine Linux development. Using git submit new packages that you've created or submit patches . You can also browse the Developer repositories.
If you are new to git and need quick reference, check Git Basics and also refer further reading section.
== General git workflow ==
* Clone the alpine Git repository. 
* Make your file edits in your local checkout of the local copy of repository.
* Ensure that your commits meets the Quality assurance. 
* Commit the changes in your local repository.
* Bring the rest of your local repository up to date.
* Check what you are going to push 
* If you have write access push your changes up to the master else create and submit a patch.
== Git Basics ==
=== Cloning your forked repository === 
Fork the repository you want to contribute to. For example to contribute a package or open a merge request for aports you would have to fork alpine/aports. Refer Gitlab docs if you're having problems with that. 
After forking you can clone the repository using the command: 
Replace $USER with the nickname of your Gitlab account and $REPO with the repository you want to work on.
=== Cloning aports repository ===
If you want to clone the Alpine Linux aports repository, switch to the directory you want to have the aports/ directory in and launch git. Unless you have necessary Developer permissions, you will not be able to push your changes back to the repository.
 
If you want only the last 3 revisions:
Use the command below to see the full log of the trunk. 
== Quality assurance ==
== Further reading ==
== See also ==
* Submit new packages
* Creating an Alpine package
* Package Maintainers
* Developer repositories
* Using Cgit
* Gitolite
Category:Development
Category:Git
Gitea

Gitea is a community managed lightweight code hosting solution written in Go. It is a fork of Gogs.
== Installation ==
First, Enable the Community Repository
Then install the package:
== Setting up the Database ==
Install the MariaDB and packages:
Set up the MariaDB installation and secure it:
Create the gitea database and a user with access to it:
If you want, you can uninstall the mariadb-client now as it's not needed anymore:
In , replace the contents of the [database] section with the following:
DB_TYPE = mysql
HOST = /var/run/mysqld/mysqld.sock
NAME = gitea			; The database name set with 'CREATE DATABASE'
USER = giteauser		; The database user
PASSWD = giteapassword		; The password for the database user
== Configurations ==
The Gitea service can be configured using :
Description 	Configuration Variable	Default Value
User to run Gitea under 	GITEA_USER 	gitea
Gitea working directory 	GITEA_WORK_DIR 	/var/lib/gitea/
Gitea configuration file	GITEA_CONF 	/etc/gitea/app.ini
Some additional settings in :
Description 	Configuration Variable	Default Value
Gitea customization directory 	Cannot be configured 	/var/lib/gitea/custom/
Web files 	STATIC_ROOT_PATH 	/usr/share/webapps/gitea/
Data files 	APP_DATA_PATH 	/var/lib/gitea/data/
Git repository storage directory	ROOT 	/var/lib/gitea/git/
Log directory 	ROOT_PATH 	/var/log/gitea/
== Controlling and starting gitea ==
You should not start Gitea without setting certain environment variables and passing some options, since it won't know where to store data and logs, so it is recommended to start gitea using the init script:
To add Gitea to the default runlevel (such that it runs automatically on every boot):
To stop the Gitea service:
=== Running Gitea without the init script ===
If (for whatever reason), you would like to start Gitea without using the initscript, you should first stop the Gitea service:
Then, run Gitea with this command (as the gitea user):
This will use the correct configuration file and write to the correct directories.
== Post installation ==
After installing Gitea, go to http://localhost:3000 and start the post-installation process.
== Setting up SSH Git access ==
Do not try to be clever and use ssh-copy-id, as it will not have the correct command set.
As an example, if this is the public key:
ssh-ed25519 ******************************************************************** **********@gmail.com
The line in needs to be:
command="/usr/bin/gitea --config=/etc/gitea/app.ini serv key-2",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty ssh-ed25519 ******************************************************************** **********@gmail.com
In order to do this, generate a SSH key, then go to the Gitea settings panel and click the Add Key button, then paste in your public key.
Now, once you've added your private key to the SSH agent, you can use SSH with Gitea like you normally would with GitHub, GitLab, etc.
Category:Server
Category:Git
Gitolite

Gitolite is a wrapper around a base git installation which facilitates the secure management of project repositories and of the user privileges governing access to those repositories. 
== Installation ==
Install the package that contains Gitolite.
=== In your workstation set up new public keys ===
Running this command will create a new pair of private and public key.
Create a copy of the public key.
Send the public key to your server by running the command shown below.
=== In your server set up Gitolite ===
This command will setup Gitolite using the public key you just sent to the server.
=== In your workstation set up Gitolite ===
In your workstation clone the .git directory anywhere you want (preferably your home directory) to administrate Gitolite outside a server.
Use your favorite text editor and open the file ~/gitolite-admin/conf/gitolite.conf
Add to that file the name of a git repository which Gitolite will manage. It should look something like this:
Make commit of what you just changed.
Push the changes to the server.
=== In your workstation, if you don't have a git repository, create one ===
Create a dotfiles directory.
Initialize a git repository in the dotfiles directory.
We will add the remote for this new .git. In this case we point the server in which Gitolite was installed, and the repository name we sent before by pushing data via gitolite-admin.
Add some files to your new repository.
Create a commit.
Push the files to the server. In this case it's being pushed to the server in which Gitolite was installed.
Category:Server
Category:Git