<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.alpinelinux.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Votsalo</id>
	<title>Alpine Linux - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.alpinelinux.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Votsalo"/>
	<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/wiki/Special:Contributions/Votsalo"/>
	<updated>2026-04-30T11:28:09Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.40.0</generator>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=APKBUILD_examples:Go&amp;diff=17660</id>
		<title>APKBUILD examples:Go</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=APKBUILD_examples:Go&amp;diff=17660"/>
		<updated>2020-05-26T07:05:42Z</updated>

		<summary type="html">&lt;p&gt;Votsalo: typo correction&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Go package policies ==&lt;br /&gt;
&lt;br /&gt;
Go previous to version 1.6 did not handle dependencies ([https://github.com/golang/go/wiki/PackageManagementTools very well]).&lt;br /&gt;
Every package inside alpine aports should be made reproducible (aka [https://reproducible-builds.org/ reproducible builds]). Many Go projects still do not support proper verdoring and will pull all its depends from master branches. Because of this, packages made in different time spans could differ from each other (they are not bit to bit equal). We can prevent this if the source from which we build will always be the same (hence we use checksums to verify source tarballs which we fetch from upstream projects).&lt;br /&gt;
&lt;br /&gt;
We currently have 3 situations a Go packages could belong to:&lt;br /&gt;
&lt;br /&gt;
# A package has no vendor directory (or is empty).&lt;br /&gt;
# A package has a vendor directory and contains a vendor file.&lt;br /&gt;
# A package has a vendor directory has a vendor file but also includes all deps.&lt;br /&gt;
&lt;br /&gt;
TODO:&lt;br /&gt;
write something about glide for #1&lt;br /&gt;
&lt;br /&gt;
write something about glide or another pkg manager for #2&lt;br /&gt;
&lt;br /&gt;
just do go build for #3&lt;br /&gt;
&lt;br /&gt;
Allow stripping of go bins https://github.com/golang/go/issues/1242&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>Votsalo</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Install_Alpine_on_LXD&amp;diff=15674</id>
		<title>Install Alpine on LXD</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Install_Alpine_on_LXD&amp;diff=15674"/>
		<updated>2019-01-18T09:26:28Z</updated>

		<summary type="html">&lt;p&gt;Votsalo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== LXD ==&lt;br /&gt;
&lt;br /&gt;
LXD is an easy to use daemon and client for managing LXC containers.  It is included by default in Ubuntu 16.04 and later versions.  It may become available in other distributions, such as debian.  If you are not familiar at all with LXC or LXD, start directly with LXD. For detailed instructions on how to use it, see https://linuxcontainers.org/lxd/introduction/&lt;br /&gt;
&lt;br /&gt;
With LXD you can start an Alpine Linux container in seconds, in practically any Ubuntu 16.04 (or later) system, including:&lt;br /&gt;
* A standalone system&lt;br /&gt;
* An Amazon EC2 instance&lt;br /&gt;
* An OpenStack KVM VPS&lt;br /&gt;
&lt;br /&gt;
With LXD, you can easily run Alpine in all those environments, on top of an Ubuntu Host.&lt;br /&gt;
&lt;br /&gt;
These instructions assume you are running on an amd64 (x86_64) platform.&lt;br /&gt;
&lt;br /&gt;
== LXD installation ==&lt;br /&gt;
On Ubuntu 18.04 there are two versions of LXD available:&lt;br /&gt;
* From apt packages, included by default on a new installation&lt;br /&gt;
* From snap.  The snap version of LXD has a higher version and more features than the apt version.  Future versions of LXD will be distributed only via snap.&lt;br /&gt;
&lt;br /&gt;
If you want to use the latest LXD, remove the apt version and install the snap version:&lt;br /&gt;
{{Cmd|sudo apt-get remove lxd lxd-client&lt;br /&gt;
sudo snap install lxd&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Add yourself to the lxd group, so you can run &#039;&#039;lxc&#039;&#039; without being root:&lt;br /&gt;
{{Cmd|adduser {user} lxd}}&lt;br /&gt;
Then logout and login again.&lt;br /&gt;
&lt;br /&gt;
== LXD configuration ==&lt;br /&gt;
Before you launch LXD containers, you must configure LXD:&lt;br /&gt;
{{Cmd|sudo lxd init}}&lt;br /&gt;
Accept all the defaults.  You can rerun this if you have no containers.&lt;br /&gt;
The ZFS storage method is recommended, because of its ability to create instant snapshots and copies of containers, but it requires additional configuration and it is not available everywhere (e.g. in a VPS host).  dir will do just fine for a demo.&lt;br /&gt;
&lt;br /&gt;
== Container creation ==&lt;br /&gt;
&lt;br /&gt;
To install Alpine Linux 3.8 run:&lt;br /&gt;
{{Cmd|lxc launch images:alpine/3.8 a1}}&lt;br /&gt;
&lt;br /&gt;
To install Alpine Linux edge version run:&lt;br /&gt;
{{Cmd|lxc launch images:alpine/edge a2}}&lt;br /&gt;
&lt;br /&gt;
To enter a shell in the container:&lt;br /&gt;
{{Cmd|lxc exec a1 ash}}&lt;br /&gt;
&lt;br /&gt;
== Networking ==&lt;br /&gt;
The container has outgoing access to the network, but no incoming public access, since it doesn&#039;t have a public ip.  You can provide incoming access using several networking techniques:&lt;br /&gt;
* On a LAN, it suffices to add a route through the host LXD node&lt;br /&gt;
* Use an iptables configurator, such as shorewall&lt;br /&gt;
* For HTTP/HTTPS access, use an HTTP reverse proxy/load balancer, such as haproxy or pound, to redirect HTTP requests to various containers.  You can run the HTTP reverse proxy in an Alpine container, once you redirect the ports that you want to it, (using iptables).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Virtualization]]&lt;/div&gt;</summary>
		<author><name>Votsalo</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Install_Alpine_on_LXD&amp;diff=15511</id>
		<title>Install Alpine on LXD</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Install_Alpine_on_LXD&amp;diff=15511"/>
		<updated>2018-11-21T14:38:18Z</updated>

		<summary type="html">&lt;p&gt;Votsalo: /* Networking */  haproxy&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== LXD ==&lt;br /&gt;
&lt;br /&gt;
LXD is an easy to use daemon and client for managing LXC containers.  It is included by default in Ubuntu 16.04 and later versions.  It may become available in other distributions, such as debian.  If you are not familiar at all with LXC or LXD, start directly with LXD. For detailed instructions on how to use it, lookup Stéphane Graber&#039;s blog post series on LXD.&lt;br /&gt;
&lt;br /&gt;
With LXD you can start an Alpine Linux container in seconds, in practically any Ubuntu 16.04 (or later) system, including:&lt;br /&gt;
* A standalone system&lt;br /&gt;
* An Amazon EC2 instance&lt;br /&gt;
* An OpenStack KVM VPS&lt;br /&gt;
&lt;br /&gt;
These instructions assume you are running on an amd64 (x86_64) platform.&lt;br /&gt;
&lt;br /&gt;
== LXD configuration ==&lt;br /&gt;
Before you launch LXD containers, you must configure LXD:&lt;br /&gt;
{{Cmd|sudo lxd init}}&lt;br /&gt;
Accept all the defaults.  You can rerun this if you have no containers.&lt;br /&gt;
The ZFS storage method is recommended, because of its ability to create instant snapshots and copies of containers, but it requires additional configuration and it is not available everywhere (e.g. in a VPS host).  dir will do just fine for a demo.&lt;br /&gt;
&lt;br /&gt;
== Container creation ==&lt;br /&gt;
&lt;br /&gt;
To install Alpine Linux 3.8 run:&lt;br /&gt;
{{Cmd|lxc launch images:alpine/3.8 a1}}&lt;br /&gt;
&lt;br /&gt;
To install Alpine Linux edge version run:&lt;br /&gt;
{{Cmd|lxc launch images:alpine/edge a2}}&lt;br /&gt;
&lt;br /&gt;
To enter a shell in the container:&lt;br /&gt;
{{Cmd|lxc exec a1 ash}}&lt;br /&gt;
&lt;br /&gt;
== Networking ==&lt;br /&gt;
The container has outgoing access to the network, but no incoming public access, since it doesn&#039;t have a public ip.  You can provide incoming access using several networking techniques:&lt;br /&gt;
* On a LAN, it suffices to add a route through the host LXD node&lt;br /&gt;
* Use an iptables configurator, such as shorewall&lt;br /&gt;
* For HTTP/HTTPS access, use an HTTP reverse proxy/load balancer, such as haproxy or pound, to redirect HTTP requests to various containers.  You can run the HTTP reverse proxy in an Alpine container, once you redirect the ports that you want to it, (using iptables).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Virtualization]]&lt;/div&gt;</summary>
		<author><name>Votsalo</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Install_Alpine_on_LXD&amp;diff=15321</id>
		<title>Install Alpine on LXD</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Install_Alpine_on_LXD&amp;diff=15321"/>
		<updated>2018-07-09T06:35:18Z</updated>

		<summary type="html">&lt;p&gt;Votsalo: removed &amp;quot;Fixing the Container&amp;quot; section.  It is no longer needed.  Use alpine 3.8 in example.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== LXD ==&lt;br /&gt;
&lt;br /&gt;
LXD is an easy to use daemon and client for managing LXC containers.  It is included by default in Ubuntu 16.04 and later versions.  It may become available in other distributions, such as debian.  If you are not familiar at all with LXC or LXD, start directly with LXD. For detailed instructions on how to use it, lookup Stéphane Graber&#039;s blog post series on LXD.&lt;br /&gt;
&lt;br /&gt;
With LXD you can start an Alpine Linux container in seconds, in practically any Ubuntu 16.04 (or later) system, including:&lt;br /&gt;
* A standalone system&lt;br /&gt;
* An Amazon EC2 instance&lt;br /&gt;
* An OpenStack KVM VPS&lt;br /&gt;
&lt;br /&gt;
These instructions assume you are running on an amd64 (x86_64) platform.&lt;br /&gt;
&lt;br /&gt;
== LXD configuration ==&lt;br /&gt;
Before you launch LXD containers, you must configure LXD:&lt;br /&gt;
{{Cmd|sudo lxd init}}&lt;br /&gt;
Accept all the defaults.  You can rerun this if you have no containers.&lt;br /&gt;
The ZFS storage method is recommended, because of its ability to create instant snapshots and copies of containers, but it requires additional configuration and it is not available everywhere (e.g. in a VPS host).  dir will do just fine for a demo.&lt;br /&gt;
&lt;br /&gt;
== Container creation ==&lt;br /&gt;
&lt;br /&gt;
To install Alpine Linux 3.8 run:&lt;br /&gt;
{{Cmd|lxc launch images:alpine/3.8 a1}}&lt;br /&gt;
&lt;br /&gt;
To install Alpine Linux edge version run:&lt;br /&gt;
{{Cmd|lxc launch images:alpine/edge a2}}&lt;br /&gt;
&lt;br /&gt;
To enter a shell in the container:&lt;br /&gt;
{{Cmd|lxc exec a1 ash}}&lt;br /&gt;
&lt;br /&gt;
== Networking ==&lt;br /&gt;
The container has outgoing access to the network, but no incoming public access, since it doesn&#039;t have a public ip.  You can provide incoming access using several networking techniques:&lt;br /&gt;
* On a LAN, it suffices to add a route through the host LXD node&lt;br /&gt;
* Use an iptables configurator, such as shorewall&lt;br /&gt;
* For HTTP/HTTPS access, use an HTTP reverse proxy/load balancer, such as pound, to redirect HTTP requests to various containers.  You can run the HTTP reverse proxy in an Alpine container, once you redirect the ports that you want to it, (using iptables).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Virtualization]]&lt;/div&gt;</summary>
		<author><name>Votsalo</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Installation&amp;diff=13310</id>
		<title>Installation</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Installation&amp;diff=13310"/>
		<updated>2017-04-28T07:37:23Z</updated>

		<summary type="html">&lt;p&gt;Votsalo: /* Advanced */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The following information will assist you with the installation of [http://alpinelinux.org/about Alpine Linux].&lt;br /&gt;
[[Image:hdd_mount.png|left|link=]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Installation Quick-Start in 3 Easy Steps ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:left; font-size:30px; font-weight:bold;&amp;quot;&amp;gt;&lt;br /&gt;
1st&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left:65px; background-color:#EDF2F2; border-style:solid; border-color:#6F7C91; border-width:0px; border-left-width:5px; min-height:55px; padding:5px;&amp;quot;&amp;gt;&lt;br /&gt;
[http://alpinelinux.org/downloads Download] the latest stable-release ISO.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:left; font-size:30px; font-weight:bold;&amp;quot;&amp;gt;&lt;br /&gt;
2nd&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left:65px; background-color:#E0E9E9; border-style:solid; border-color:#606A82; border-width:0px; border-left-width:5px; min-height:55px; padding:5px;&amp;quot;&amp;gt;&lt;br /&gt;
If you have a CD drive from which you can boot, then [[Burning ISOs|burn the ISO onto a blank CD]] using your favorite CD burning software. Else [[Create a Bootable USB|create a bootable USB drive]].&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:left; font-size:30px; font-weight:bold;&amp;quot;&amp;gt;&lt;br /&gt;
3rd&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left:65px; background-color:#9faecc; border-style:solid; border-color:#324065; border-width:0px; border-left-width:5px; min-height:55px; padding:5px;&amp;quot;&amp;gt;&lt;br /&gt;
Boot from the CD or USB drive, login as root with no password, and voilà! Enjoy Alpine Linux!&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Clear}}&lt;br /&gt;
One of the [[Installation#Post-Install|first commands you might want to use]] is &amp;lt;code&amp;gt;[[setup-alpine]]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Installation Handbook ==&lt;br /&gt;
=== Basics ===&lt;br /&gt;
Alpine can be used in any of three modes:&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;diskless mode&lt;br /&gt;
&amp;lt;dd&amp;gt;You&#039;ll boot from read-only medium such as the installation CD, a [[Create a Bootable USB|USB drive]], or a [[Create a Bootable Compact Flash|Compact Flash card]]. {{Tip| To prepare either a USB or Compact Flash card, you can use the &amp;lt;code&amp;gt;[[setup-bootable]]&amp;lt;/code&amp;gt; script; see the pages linked above for details.}} When you use Alpine in this mode, you need to use [[Alpine local backup|Alpine Local Backup (lbu)]] to save your modifications between reboots. That requires some writable medium, usually removable. (If your boot medium is, for example, a USB drive, you can save modifications there; you don&#039;t need a separate partition or drive.) See also [[Local APK cache]].&lt;br /&gt;
{{Note| When the &amp;lt;code&amp;gt;[[setup-alpine]]&amp;lt;/code&amp;gt; script asks for a disk, say &amp;quot;none&amp;quot;. It will then prompt whether you&#039;d like to preserve modifications on any writable medium.}}&lt;br /&gt;
&amp;lt;dt&amp;gt;data mode&lt;br /&gt;
&amp;lt;dd&amp;gt;As in diskless mode, your OS is run from a read-only medium. However, here a writable partition (usually on a hard disk) is used to store the data in {{Path|/var}}. That partition is accessed directly, rather than copied into a tmpfs; so this is better-suited to uses where large amounts of data need to be preserved between reboots. {{Note| The &amp;lt;code&amp;gt;[[setup-alpine]]&amp;lt;/code&amp;gt; script handles installing Alpine in this mode, too, when you supply a writable partition instead of &amp;quot;none&amp;quot;, and request mode &amp;quot;data&amp;quot;.}} This mode may be used for mailspools, database and log servers, and so on.&lt;br /&gt;
&amp;lt;dt&amp;gt;sys mode&lt;br /&gt;
&amp;lt;dd&amp;gt;This is a [[Install to disk|traditional hard-disk install]] (see link for details). &amp;lt;!-- includes [[Installing Alpine on HDD overwriting everything]] --&amp;gt; Both the boot system and your modifications are written to the hard disk, in a standard Linux hierarchy. {{Note| The &amp;lt;code&amp;gt;[[setup-alpine]]&amp;lt;/code&amp;gt; script handles installing Alpine in this mode, too, when you supply a writable partition instead of &amp;quot;none&amp;quot;, and request mode &amp;quot;sys&amp;quot;. By default, it will create three partions on your disk, for {{Path|/boot}}, {{Path|/}}, and {{Path|swap}}; however you can also [[Setting up disks manually|partition your disk manually]].&lt;br /&gt;
}} This mode may be used for desktops, development boxes, and virtual servers.&lt;br /&gt;
    &amp;lt;!-- [[Native Harddisk Install 1.6]] Obsolete --&amp;gt;&lt;br /&gt;
&amp;lt;/dl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Advanced ===&lt;br /&gt;
* [[Create UEFI boot USB]]&lt;br /&gt;
* [[Tutorials_and_Howtos#Storage|Setting up storage with RAID, LVM, LUKS encryption, iSCSI, or suchlike]]&lt;br /&gt;
* [[Setting up disks manually]]&lt;br /&gt;
* [[Partitioning and Bootmanagers]]&lt;br /&gt;
* [[Migrating data]]&lt;br /&gt;
* Details about [[Alpine setup scripts]]&lt;br /&gt;
&lt;br /&gt;
* [[Installing Alpine on HDD dualbooting|Install to HDD with dual-boot]]&lt;br /&gt;
* [[Replacing non-Alpine Linux with Alpine remotely]]&lt;br /&gt;
&amp;lt;!-- [[Installing Xubuntu using Alpine boot floppy]] Obsolete --&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Installing Alpine Linux on USB Automated]] Obsolete --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [[Bootstrapping Alpine Linux]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- If you edit the following, please coordinate with Developer_Documentation#Configuring_your_system.  Note that these two sections are not exact duplicates. --&amp;gt;&lt;br /&gt;
* [[Installing Alpine Linux in a chroot]]&lt;br /&gt;
* [[Install Alpine on LXC]]&lt;br /&gt;
* [[Install Alpine on LXD|Install Alpine on Ubuntu with LXD]]&lt;br /&gt;
* Install Alpine on [[Install Alpine on VirtualBox|VirtualBox]], [[Install Alpine on VMware|VMware]], [[Install Alpine on coLinux|coLinux]], [[Qemu]], &amp;lt;!-- includes [[Install Alpine in Qemu]], [[Running Alpine in Qemu Live mode]], [[Running Alpine Linux As a QEMU networked Guest]] --&amp;gt;, [[Install Alpine on Amazon EC2|Amazon EC2]], or [[Install Alpine on Rackspace|RackSpace]]&lt;br /&gt;
&lt;br /&gt;
* [[Xen Dom0]] &#039;&#039;(Setting up Alpine as a dom0 for Xen hypervisor)&#039;&#039;&lt;br /&gt;
* [[Xen Dom0 on USB or SD]]&lt;br /&gt;
* [[Create Alpine Linux PV DomU]]&lt;br /&gt;
* [[Xen LiveCD]]&lt;br /&gt;
&lt;br /&gt;
* [[Setting up a basic vserver]]&lt;br /&gt;
* [[Setting up the build environment on HDD]]&lt;br /&gt;
* [[Setting up a compile vserver]] for official or for [[Setting up a compile vserver for third party packages|third party]] packages&lt;br /&gt;
&amp;lt;!-- [[Create an Alpine 1.9 vserver template]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Post-Install ===&lt;br /&gt;
&amp;lt;!-- If you edit this, please coordinate with and Tutorials_and_Howtos#Post-Install and Developer_Documentation#Package_management. Note that these three sections are not exact duplicates. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- [[Configure Networking]] --&amp;gt;&lt;br /&gt;
* [[Tutorials_and_Howtos#Networking|Setting up Networking]]&lt;br /&gt;
* [[Alpine Linux package management|Package Management (apk)]] &#039;&#039;(How to add/remove packages on your Alpine)&#039;&#039;&lt;br /&gt;
   &amp;lt;!-- [[Alpine Linux package management#Local_Cache|How to enable APK caching]] --&amp;gt;&lt;br /&gt;
* [[Alpine local backup|Alpine local backup (lbu)]] &#039;&#039;(Permanently store your modifications in case your box needs reboot)&#039;&#039;&lt;br /&gt;
** [[Back Up a Flash Memory Installation|Back Up a Flash Memory (&amp;quot;diskless mode&amp;quot;) Installation]]&lt;br /&gt;
** [[Manually editing a existing apkovl]]&lt;br /&gt;
* [[Alpine Linux Init System|Init System (OpenRC)]] &#039;&#039;(Configure a service to automatically boot at next reboot)&#039;&#039;&lt;br /&gt;
** [[Multiple Instances of Services]]&lt;br /&gt;
   &amp;lt;!-- [[Writing Init Scripts]] --&amp;gt;&lt;br /&gt;
* [[Alpine setup scripts#setup-xorg-base|Setting up Xorg]]&lt;br /&gt;
&lt;br /&gt;
* [[Upgrading Alpine]]&lt;br /&gt;
&amp;lt;!-- Obsolete&lt;br /&gt;
 [[Upgrading Alpine - v1.9.x]]&lt;br /&gt;
 [[Upgrading Alpine - CD v1.8.x]]&lt;br /&gt;
 [[Upgrading Alpine - HD v1.8.x]]&lt;br /&gt;
 [[Upgrade to repository main|Upgrading to signed repositories]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [[Setting up a ssh-server]] &#039;&#039;(Using ssh is a good way to administer your box remotely)&#039;&#039;&lt;br /&gt;
* [[setup-acf]] &#039;&#039;(Configures ACF (webconfiguration) so you can manage your box through https)&#039;&#039;&lt;br /&gt;
* [[Hosting services on Alpine]]&#039;&#039;(Links to several mail/web/ssh server setup pages)&#039;&#039;&lt;br /&gt;
* [[Changing passwords for ACF|Changing passwords]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- [[Running glibc programs]] Installation and Dev --&amp;gt;&lt;br /&gt;
* [[Setting the timezone]] &#039;&#039;(Not needed for the default musl- or uClibc-based installs)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Further Help and Information ===&lt;br /&gt;
* [[FAQ|FAQs]]&lt;br /&gt;
* [[Tutorials and Howtos]]&lt;br /&gt;
* [[Contribute|How to Contribute]]&lt;br /&gt;
* [[Developer Documentation]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Installation]]&lt;/div&gt;</summary>
		<author><name>Votsalo</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Install_Alpine_on_LXD&amp;diff=13309</id>
		<title>Install Alpine on LXD</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Install_Alpine_on_LXD&amp;diff=13309"/>
		<updated>2017-04-28T06:45:32Z</updated>

		<summary type="html">&lt;p&gt;Votsalo: Created page with &amp;quot;== LXD ==  LXD is an easy to use daemon and client for managing LXC containers.  It is included by default in Ubuntu 16.04 and later versions.  It may become available in othe...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== LXD ==&lt;br /&gt;
&lt;br /&gt;
LXD is an easy to use daemon and client for managing LXC containers.  It is included by default in Ubuntu 16.04 and later versions.  It may become available in other distributions, such as debian.  If you are not familiar at all with LXC or LXD, start directly with LXD. For detailed instructions on how to use it, lookup Stéphane Graber&#039;s blog post series on LXD.&lt;br /&gt;
&lt;br /&gt;
With LXD you can start an Alpine Linux container in seconds, in practically any Ubuntu 16.04 (or later) system, including:&lt;br /&gt;
* A standalone system&lt;br /&gt;
* An Amazon EC2 instance&lt;br /&gt;
* An OpenStack KVM VPS&lt;br /&gt;
&lt;br /&gt;
These instructions assume you are running on an amd64 (x86_64) platform.&lt;br /&gt;
&lt;br /&gt;
== LXD configuration ==&lt;br /&gt;
Before you launch LXD containers, you must configure LXD:&lt;br /&gt;
{{Cmd|sudo lxd init}}&lt;br /&gt;
Accept all the defaults.  You can rerun this if you have no containers.&lt;br /&gt;
The ZFS storage method is recommended, because of its ability to create instant snapshots and copies of containers, but it requires additional configuration and it is not available everywhere (e.g. in a VPS host).  dir will do just fine for a demo.&lt;br /&gt;
&lt;br /&gt;
To change the networking configuration:&lt;br /&gt;
{{Cmd|sudo dpkg-reconfigure -p medium lxd}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Container creation ==&lt;br /&gt;
&lt;br /&gt;
To install Alpine Linux edge version run:&lt;br /&gt;
{{Cmd|lxc launch images:alpine/edge a1}}&lt;br /&gt;
&lt;br /&gt;
To install Alpine Linux 3.5 run:&lt;br /&gt;
{{Cmd|lxc launch images:alpine/3.5 a2}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To enter a shell in the container:&lt;br /&gt;
{{Cmd|lxc exec a1 ash}}&lt;br /&gt;
&lt;br /&gt;
== Fixing the container ==&lt;br /&gt;
Once you create the container, edit /etc/inittab and comment out all lines that start with &amp;quot;tty&amp;quot;.  Otherwise, the container will keep writing warnings on /var/log/messages.  Here&#039;s a script to automate this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
sed -i &#039;s/^tty/# tty/g&#039; /etc/inittab&lt;br /&gt;
&lt;br /&gt;
# clean messages&lt;br /&gt;
rm /var/log/messages&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Let&#039;s say this script is called fixgetty.sh.  To copy it to the container, use the following:&lt;br /&gt;
{{Cmd|lxc file push fixgetty.sh a1/root/}}&lt;br /&gt;
&lt;br /&gt;
After you fix /etc/inittab, reboot the container:&lt;br /&gt;
{{Cmd|reboot}}&lt;br /&gt;
&lt;br /&gt;
== Networking ==&lt;br /&gt;
The container has outgoing access to the network, but no incoming public access, since it doesn&#039;t have a public ip.  You can provide incoming access using several networking techniques:&lt;br /&gt;
* On a LAN, it suffices to add a route through the host LXD node&lt;br /&gt;
* Use an iptables configurator, such as shorewall&lt;br /&gt;
* For HTTP/HTTPS access, use an HTTP reverse proxy/load balancer, such as pound, to redirect HTTP requests to various containers.  You can run the HTTP reverse proxy in an Alpine container, once you redirect the ports that you want to it, (using iptables).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Virtualization]]&lt;/div&gt;</summary>
		<author><name>Votsalo</name></author>
	</entry>
</feed>