Daily driver guide: Difference between revisions

From Alpine Linux
(A guide for using Alpine as a daily driver)
 
m (replaced awall by nftables)
 
(66 intermediate revisions by 4 users not shown)
Line 1: Line 1:
Many people think that Alpine is only made for containers and servers, but it is actually a general purpose distro which can definitely be used as a daily driver.
<!-- COMMENT FOR EDITORS
Alpine is extremely small, simple and resource-efficient, making it easy to customize.


{{Note|This guide assumes you have already installed a minimal Alpine system by following the [[Installation|Installation guide]]}}
This page is linked to Post-Install section of [[Installation|Installation guide]]. So, check before making changes.
  * Do not create content on this page as this page is meant as link aggregation page like [[Tutorials_and_Howtos]]
  * Consider that there are already [[Tutorials_and_Howtos#Post-Install]], [[Developer_Documentation#Package_management]] and the Handbook, please work towards reducing duplication
  * Focus on linking to desktop related topics only.
  * Here, only the most relevant jumping off points are listed, not exact list duplicates!!!
  * Keep short-list of links here, as overview to more detailed topic specific pages
  * Don't aggregate topics related to Desktop at yet another place.
 
-->
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 [[How to get regular stuff working|regular stuff working]] and use Alpine Linux as a daily driver by following this guide.


== General system changes ==
{{Box|Help us improve this wiki page|
=== Set up your own user ===
If you find the instructions correct, please add/update the [[Template:Verified|Verified]] template. If something isn't correct, or is incomplete, add the [[Template:Accuracy|Accuracy]] template to the relevant section. You will have to figure out the correct solution, or ask for it in the [https://alpinelinux.org/community/ community].
When running `setup-alpine` there was an option to create a user.
If you didn't make one, you can do it now:
{{cmd|# adduser <username>}}


Then, you need to give your user access to temporary root privileges:
And then carefully [[Help:Editing|edit]] the wiki page.  
{{cmd|# adduser <username> wheel}}
If you are using `doas` then it will most likely work instantly, if using `sudo` then you will need to follow the [https://wiki.alpinelinux.org/wiki/Setting_up_a_new_user#Creating_a_new_user install instructions]


=== Locking the root account ===
Just as those before who did it for you.|#FFC699|#FFF5E6}}
To lock the root account you need to log into your account and then lock it using the passwd command:
{{cmd|# passwd -l root}}


=== Glibc compatability ===
==== Prerequisites ====
Installing the `gcompat` package adds a compatability layer which (sometimes) lets you run binaries as normal:
* Alpine Linux installed in [[Installation#System_Disk_Mode|system disk]] mode.
{{cmd|# apk add gcompat}}
{{:Include:Desktop prerequisites}}


Another way is to use [[Flatpak]]. It is a program distribution technology which uses a universal package format that is compatible with any Linux system.
Once the above prerequisites are met, install any desktop of choice from the [[Desktop environments and Window managers|list of supported Desktop environments and Window managers]] either manually or using [[Setup-desktop|setup-desktop]] script. {{Tip|Except for the first three [[#Prerequisites|Prerequisites]], all the others are automatically handled, if [[Setup-desktop|setup-desktop]] script is used.}}


== Install a Desktop Environment/Window Manager ==
==== Basics ====
The preferred way to install a Desktop Environment is by using the setup script:
{{cmd|# setup-desktop}}
If it does not have the Desktop Environment (or Window Manager) you want, [[Desktop environments and Window managers|follow the specific installation instructions for it]].


After installation you should probably install some fonts (because some fonts may not be installed).
* Learn the [https://docs.alpinelinux.org/user-handbook/0.1a/Working/apk.html alpine package keeper basics] or refer [[Alpine Package Keeper|wiki page]].
This is a good set of fonts for most setups:
* [[fonts#Installation|Install]] some [[fonts]] to make your desktop look better.
{{cmd|# apk add font-terminus font-inconsolata font-dejavu font-noto font-noto-cjk font-awesome font-noto-extra}
* Install the necessary [[File management]] packages for automounting of removable storage and browsing of network shares that works seamlessly with file associations.
* Setup a [[Sound Setup|sound server]] to manage your audio and configure your [[Bluetooth]], if you have one.  
* Configure [[Power management]] so that your computer switches to a low-power state when inactive or when laptop lid is closed.
* Configure your [[Printer_Setup|printer]].
* Enable [[Alpine_Linux:FAQ#Why don't I have man pages or where is the 'man' command?|documentation]], so man pages are available.
* Graphical tools to manage official packages, Flatpaks and ways to run glibc binaries can be found in [[Software management]] page.


== Securing your system ==
==== Desktop security ====
=== Firewall ===
There are two main options: [http://How-To%20Alpine%20Wall awall] or [[Uncomplicated Firewall|UFW]].
Please follow their wiki guide for installation and usage.


=== Sandboxing ===
* Install [[CPU Microcode]] updates to mitigate processor design bugs.
The two choices are either [[AppArmor]] or [[Bubblewrap]].
* Regularly [[Alpine_Linux_package_management#Upgrade_a_Running_System|check and apply updates]] to keep your system secure.
* [[Upgrading Alpine|Upgrade your OS]] whenever a new stable version of Alpine Linux is [https://www.alpinelinux.org/releases/ released]
* Secure your system by installing a [[Tutorials_and_Howtos#Firewall|firewall]] software like [[Uncomplicated Firewall|Uncomplicated Firewall]] or [[nftables]].
* Install a sandboxing application like [[AppArmor]] or [[Bubblewrap]]. AppArmor is more convenient but has less control than Bubblewrap. Bubblewrap is harder to work with but has more control than AppArmor.
* Enable [[UEFI Secure Boot]], if [[UEFI]] is available.
* Refer to [[Tutorials and Howtos#Security|security]] section for additional security options.


AppArmor is more convenient but has less control than Bubblewrap.
==== Advanced ====
Bubblewrap is harder to work with but has more control than AppArmor.


Bubblewrap has a simpler GUI frontend called [https://github.com/igo95862/bubblejail Bubblejail]. It is easier to use than Bubblewrap, but may sometimes be a little unstable.
* Learn [https://docs.alpinelinux.org/user-handbook/0.1a/Working/openrc.html basics of openrc], the alpine Linux init system or refer [[OpenRC|Open rc wiki]].
When installing Bubblejail, you first need to install the dependencies listed [https://github.com/igo95862/bubblejail/blob/master/docs/distro_notes/alpine.md here].
* If you want the rolling release version of Alpine Linux, [[Repositories#Managing_repositories|enable]] the [[Repositories#Edge|Edge]] repository.
* Explore the [[Repositories#Testing|testing ]] repository, as it provides a lot more applications.  
<noinclude>
== See also ==
 
* [[Tutorials_and_Howtos#Desktop|Desktop section]] of Tutorials page
* [[:Category:Desktop|List of all Desktop]] category pages
</noinclude>
 
[[Category:Desktop]]

Latest revision as of 17:17, 21 August 2025

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 Alpine Linux as a daily driver by following this guide.

Help us improve this wiki page

If you find the instructions correct, please add/update the Verified template. If something isn't correct, or is incomplete, add the Accuracy template to the relevant section. You will have to figure out the correct solution, or ask for it in the community.

And then carefully edit the wiki page.

Just as those before who did it for you.

Prerequisites

Once the above prerequisites are met, install any desktop of choice from the list of supported Desktop environments and Window managers either manually or using setup-desktop script.

Tip: Except for the first three Prerequisites, all the others are automatically handled, if setup-desktop script is used.

Basics

Desktop security

Advanced

  • Learn basics of openrc, the alpine Linux init system or refer Open rc wiki.
  • If you want the rolling release version of Alpine Linux, enable the Edge repository.
  • Explore the testing repository, as it provides a lot more applications.

See also