Ich habe Alpine Linux in Larkbox eingefügt und es zu meinem Heimserver gemacht

Einführung

INDIGOGO Cloud-Finanzierung CHUWI LarkBox . PC mit minimaler Größe und Gehäusegröße: 61 x 61 x 43 (H) mm und Gewicht: 127 g. Windows10 Home ist vorinstalliert. Die Spezifikationen sind wie folgt.

Device Spec
CPU Intel Celeron J4115
RAM 6GB LPDDR4
Lager 128GB eMMC
Wi-Fi 802.11a/ac/b/g/n
Bluetooth 5.1

Darüber hinaus gibt es einen SATA-SSD-Steckplatz der Größe 2242, der auf bis zu 2 TB erweitert werden kann. Es wird im Versandhandel zu einem Preis von ca. 20.000 Yen verkauft. Die Investition in die Cloud-Finanzierung betrug ungefähr 16.000 Yen, ist also ein wenig rentabel.

Wenn Sie bei Amazon nach "NUC" suchen, finden Sie einen Berg winziger PCs mit einem ähnlichen Konzept wie LarkBox. Wenn Sie es ab 2020/9 kostengünstig durch Cloud-Finanzierung erhalten möchten, INDIGOGO wirbt für GMK NucBox . Warum also nicht bewerben?

LarkBox ist eine schlechte Spezifikation für die Verwendung als Windows-PC. Geben Sie daher Alpine Linux ein und verwenden Sie es als Ihren Heimserver. Da es eine TDP von 10 W hat, erzeugt es sehr wenig Wärme und verbraucht Strom. Ich denke, es ist für Server geeignet. Da es jedoch keinen kabelgebundenen LAN-Port gibt, ist dies als Server fatal. .. .. Auf der Straße scheinen einige Leute Raspai 4 als Heimserver zu verwenden, und obwohl Raspai 4 über einen kabelgebundenen LAN-Port verfügt, ist die CPU stromlos und es sollte sich um einen Dateiserver handeln, aber es stimmt, dass die Webanwendung hart läuft. Ich denke es ist unmöglich. Ich möchte bestätigen, wie viel mit LarkBox gemacht werden kann.

Dieser Artikel erinnert an das Verfahren zum Einfügen von Alpine Linux in LarkBox.

Es ist keine sehr verlockende Aufnahme, aber ich gebe Ihnen ein Foto. Grundfläche ähnlich 4 AA-Batterien.

larkbox.jpg

Larkbox-Setup

Auf meinem Heimserver möchte ich auch TimeCapsule für Mac-Backups ausführen, sodass 128 GB Speicher nicht ausreichen. Fügen Sie daher 1 TB M2.SSD hinzu. Öffnen Sie die hintere Abdeckung und setzen Sie sie in den Schlitz ein. Das Gehäuse besteht aus Harz, das eine geringe Wärmeableitungsleistung zu haben scheint. Wenn die hintere Abdeckung des Harzes geöffnet wird, befindet sich ein innerer Harzdeckel und der Boden befindet sich im Inneren. Die SSD wird in einem engen Raum zwischen dem inneren Deckel und der hinteren Abdeckung eingeschlossen, in dem keine Luft strömen kann, und die Wärmeableitung ist sehr ängstlich.

Um das BIOS aufzurufen, drücken Sie den Netzschalter und dann wiederholt die Escape-Taste.

Installieren Sie Alpine Linux

Laden Sie das EXTENDED-Paket von der Alpine Linux-Site herunter und installieren Sie es. Zuerst habe ich versucht, das STANDARD-Paket zu installieren, aber das STANDARD-Paket ist zu minimal, um es ohne Ping zu verwenden. 128 GB Speicherplatz sind für Alpine Linux so groß, dass ich hier das EXTENDED-Paket bevorzuge.

Brennen Sie die heruntergeladene ISO-Datei alpine-extended-3.12.0-x86_64.iso auf einen USB-Speicher und starten Sie von dort. Melden Sie sich als root an. (Kein Root-Passwort)

 setup-alpine

Starten Sie die Installation mit. Das Alpine Linux-Installationsprogramm sieht nicht wie ein großes Distributionsinstallationsprogramm aus. Es ist notwendig, die Fragen einzeln interaktiv zu beantworten.

Windows Home war in eMMC vorinstalliert, aber ich habe es ohne zu zögern entfernt. Ich werde den Root und Swap hier setzen und / var (250 GB) und / home (750 GB) auf SSD1TB setzen. Ich denke daran, nur Docker direkt zu installieren und die erforderlichen Apps mit Docker-Compose zu installieren. Reservieren Sie daher eine große / var, die vom Docker verwendet wird. Ich denke, es gibt eine Idee, dass die Route in SSD anstatt in langsamem eMMC abgelegt werden sollte. Ich dachte schon, aber es hat sich nicht viel geändert, also denke ich, dass eMMC mit der Route einverstanden ist.

Die Antwort zum Zeitpunkt der Installation lautet wie folgt.

Select keyboard layout: jp
Available variants: jp
Enter system hostname: larkbox
Which one do you want to initialize?: wlan0
Type the wireless network name to connect to: *******
Type the "*******" network Pre-Shared Key: *******
Ip address for wlan0: 192.168.1.xx
Netmask?: 255.255.255.0
Gateway: 192.168.1.1
DNS domain name?
DNS nameserver(s)?: 192.168.1.1
New password: *******
Retype Password: *******
Which timezone are you in?: Asia/Tokyo
TP/FTP proxy URL?: none
Enter mirror number (1-43) or URL to add: f
Which SSH server? (‘openssh’, ‘dropbear’ or ‘none’): openssh
Which NTP client to run? (‘busybox’, ‘openntpd’, ‘chrony’, or ‘none’):chrony
Which disk(s) would you like to use?: mmcblk0
How would you like to use it?: sys 

Für die Installation habe ich auf den folgenden Artikel verwiesen. https://qiita.com/mo_chiee/items/f539df1bd172f41bc85a Installationsverfahren für Alpine Linux 3.10.3

https://qiita.com/tohka383/items/e7d758a6281fa45e5e16 Docker on Alpine Linux on VirtualBox

Aktualisieren Sie das Paket-Repository, nachdem Sie alle Fragen zur Installation beantwortet haben.

Ändern Sie / etc / apk / repositories wie folgt

/media/cdrom/apks
http://sjc.edge.kernel.org/alpine/v3.12/main
http://sjc.edge.kernel.org/alpine/v3.12/community
http://sjc.edge.kernel.org/alpine/edge/main
http://sjc.edge.kernel.org/alpine/edge/community
http://sjc.edge.kernel.org/alpine/edge/testing

Aktualisiert mit dem folgenden Befehl.

 apk update
 apk upgrade

Docker einfügen

 apk add docker docker-compose
 service docker start
 rc-update add docker boot

Erlaube sudo

 apk add sudo
 visudo
 %wheel ALL=(ALL) ALL

Zu

%wheel ALL=(ALL) ALL

ändern

Fügen Sie Ihr eigenes Login-Konto hinzu

 addgroup wheel
# adduser Mein Login-Konto
# adduser Mein Login-Kontorad
# Docker des Adduser-Anmeldekontos

Einmal ausschalten

 poweroff

Es ist nicht heruntergefahren.

Entfernen Sie den USB-Speicher und ändern Sie die BIOS-Einstellungen, um von eMMC zu starten. Wenn ich boote, ist das Netzwerk nicht verbunden! Musste ich die Einstellungen sofort nach der Installation beibehalten?

Fortsetzung der Installation

Netzwerkeinstellungen

Die erste Reihe von Installationen wurde mit dem Setup-Alpine-Skript durchgeführt, es gibt jedoch ein Setup-xxxx-Skript, das nur die einzelnen Elemente installiert. Das Installationsskript enthält die Netzwerkeinstellungen

 setup-interfaces

Stellen Sie erneut eine Verbindung zu Wifi her.

Which one do you want to initialize?: wlan0
Type the wireless network name to connect to: *******
Type the "*******" network Pre-Shared Key: *******
Ip address for wlan0: 192.168.1.xx
Netmask?: 255.255.255.0
Gateway: 192.168.1.1

Vergessen Sie nicht, die Verbindung dauerhaft herzustellen.

 rc-update add wpa_supplicant boot

Festplatteneinstellungen

Bei der Erstinstallation habe ich das Stammverzeichnis partitioniert und in die eMMC gewechselt und das System installiert, aber die hinzugefügte 1-TB-SSD bleibt unberührt. Aktivieren Sie als Nächstes 1 TB SSD.

 setup-disk

Ich möchte / var (250 GB) und / home (750 GB) auf SSD1TB setzen, aber das Setup-Disk-Skript scheint nur eine Partition zu schneiden.

Available disks are:
  sda   (1024.2 GB ATA      NT-1TB-TM       )
Which disk(s) would you like to use? (or '?' for help or 'none') [sda]
How would you like to use it? ('sys', 'data', 'lvm' or '?' for help) [?] data

Schauen Sie sich an, was damit mit der CD passiert ist.

 df -h
Filesystem                Size      Used Available Use% Mounted on
devtmpfs                 10.0M         0     10.0M   0% /dev
shm                       2.8G         0      2.8G   0% /dev/shm
/dev/mmcblk0p3          110.2G      1.2G    103.4G   1% /
tmpfs                   576.6M    228.0K    576.4M   0% /run
/dev/mmcblk0p1          511.0M    272.0K    510.7M   0% /boot/efi
/dev/sda2               934.0G         0    934.0G   0% /var
cgroup_root              10.0M         0     10.0M   0% /sys/fs/cgroup

/ Var wurde auf SSD1TB (sda) erstellt. Löschen Sie die Partition / var einmal und erstellen Sie erneut / var (250 GB) und / home (750 GB).

Holen Sie sich das Partitionierungs-Tool

 apk add -U gptfdisk sgdisk
 gdisk /dev/sda

Partitionieren Sie die SDA mit. Die Verwendung von gdisk ist die gleiche wie die von fdisk.

Ursprüngliche Partition

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048         8390655   4.0 GiB     8200
   2         8390656      2000409230   949.9 GiB   8300

Geänderte Partition

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048         8390655   4.0 GiB     8200
   2         8390656       506395300   237.5 GiB   8300  Linux filesystem
   3       506396672      2000409230   712.4 GiB   8300  Linux filesystem

Einmal neu starten

 reboot

Festplatte formatieren

 mkfs.ext4 /dev/sda2
 mkfs.ext4 /dev/sda3

Überprüfen Sie die UUID der Festplatte

 blkid
/dev/mmcblk0p3: UUID="4594ac58-ef59-420e-93f1-423b09cb92ee" TYPE="ext4"
/dev/mmcblk0p2: UUID="387d4b96-060b-4906-80a7-0c066015d468" TYPE="swap"
/dev/mmcblk0p1: UUID="801B-8E71" TYPE="vfat"
/dev/sda3: UUID="346cbfb9-e881-430b-9005-41881ef5bf1c" TYPE="ext4"
/dev/sda2: UUID="14c53e65-b833-4961-b760-3697ea52acbb" TYPE="ext4"
/dev/sda1: UUID="0fe2b3e9-1468-4a73-aa41-a8eed52f91a8" TYPE="swap"

Mountpunkt zu / etc / fstab hinzugefügt

UUID=14c53e65-b833-4961-b760-3697ea52acbb       /var            ext4    defaults 1 2
UUID=346cbfb9-e881-430b-9005-41881ef5bf1c       /home            ext4    defaults 1 2

Neustart

 reboot

Bestätigung

 df -h
Filesystem                Size      Used Available Use% Mounted on
devtmpfs                 10.0M         0     10.0M   0% /dev
shm                       2.8G         0      2.8G   0% /dev/shm
/dev/mmcblk0p3          110.2G      1.2G    103.3G   1% /
tmpfs                   576.6M    228.0K    576.4M   0% /run
/dev/mmcblk0p1          511.0M    272.0K    510.7M   0% /boot/efi
/dev/sda2               232.7G     60.4M    220.8G   0% /var
/dev/sda3               700.2G     72.0M    664.5G   0% /home
cgroup_root              10.0M         0     10.0M   0% /sys/fs/cgroup

Systeminstallation abgeschlossen.

Paketinstallation

Nur Docker, Nginx und Samba werden direkt installiert. nginx wird als Reverse-Proxy verwendet, der mehrere Web-Apps bündelt. Wenn Sie Samba mit Docker ausführen, ist die Feinsteuerung der Anmeldeinformationen kompliziert. Fügen Sie sie daher direkt ein.

Docker ist bereits installiert, wenn das System installiert ist.

samba

Installieren Sie Samba

 apk add samba

/etc/samba/smb.conf Einstellungen

[global]
   unix charset = UTF-8
   dos charset = CP932
   workgroup = WORKGROUP
   server string = %h server (Samba, Alpine)
   dns proxy = no
   interfaces = 127.0.0.0/8 192.168.1.0/24
   bind interfaces only = yes
   map to guest = Bad User
   log file = /var/log/samba/log.%m
   max log size = 1000
   syslog = 0
   panic action = /usr/share/samba/panic-action %d
   server role = standalone server
   passdb backend = tdbsam
   obey pam restrictions = yes
   unix password sync = no
   passwd program = /usr/bin/passwd %u
   passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
   pam password change = yes
   map to guest = bad user
   usershare allow guests = yes
   fruit:metadata = netatalk
   fruit:encoding = native

[larkbox]
   path = /home/samba/share/
   writable = yes
   browseable = yes
   guest ok = no
   guest only = no
   create mode = 0664
   directory mode = 0775
 gültiger Benutzer = mein Konto

[TimeCapsule]
   comment = Backup for Mac Computers
   path = /home/samba/timecapsule
   writable = yes
   browsable = yes
   guest ok = no
   fruit:time machine = yes
   uit:time machine max size = 500M
 gültiger Benutzer = mein Konto

Benutzer Registration

# pdbedit -a -u mein Konto

Samba neu starten

 service samba restart

Starteinstellungen

 rc-update add samba

Festlegen, um die Namensauflösung des Hostnamens zu aktivieren

 apk add avahi
 apk add dbus
 rc-update add dbus
 rc-update add avahi-daemon
 service avahi-daemon restart

/ etc / avahi / services Einstellungen

<?xml version="1.0" standalone='no'?>
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
    <name replace-wildcards="yes">%h</name>
    <service>
        <type>_smb._tcp</type>
        <port>445</port>
    </service>
</service-group>

Neustart des Dienstes

 service avahi-daemon restart

nginx

Installieren Sie nginx

 apk add nginx

Erstellen Sie /etc/nginx/conf.d/default.conf

server {
    listen 80;

    server_name larkbox;
    client_max_body_size 128m;

    index index.html index.htm index.php;

    location / {
        proxy_pass http://localhost:8080/;
        access_log off;
    }

}

Starten Sie nginx.

 /etc/init.d/nginx start

Starteinstellungen

 rc-update add nginx

Installation der Web-App

Verwenden Sie Docker-Compose, um alle Web-Apps einzufügen, die Sie einfügen möchten.

Versuchen Sie vorerst, das Apache- und Docker-Verwaltungstool Portainer zu installieren.

Apache+php+MySQL

Ich habe Apache für den Zugriff auf Port 8080 eingestellt, kann jedoch über den Nginx-Reverse-Proxy auf Port 80 zugreifen. Wenn Sie von Ihrem iPhone aus auf einen Server in Ihrem Heim-LAN zugreifen, müssen Sie den Namen mit einem Proxyserver auflösen, da Sie die Hosts-Datei auf Ihrem iPhone nicht festlegen können. Daher verfügt Apache auch über eine Proxyserverfunktion. Die Proxy-Portnummer war 8888.

docker-compose.yaml

version: '3'

services:
  php:
    image: php:7.2-apache
    volumes:
      - ./php.ini:/usr/local/etc/php/php.ini
      - ./html:/var/www/html
      - ./apache2/apache2.conf:/etc/apache2/apache2.conf
      - ./apache2/proxy-html.conf:/etc/apache2/proxy-html.conf
      - ./apache2/hosts:/etc/hosts
    ports:
      - 8080:80
      - 8888:8888
    restart: always
  mysql:
    image: mysql:5.7
    volumes:
      - ./mysql:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=root
      - MYSQL_DATABASE=test
      - MYSQL_USER=test
      - MYSQL_PASSWORD=test
    restart: always
  phpmyadmin:
    image: phpmyadmin/phpmyadmin
    environment:
      - PMA_ARBITRARY=1
      - PMA_HOST=mysql
      - PMA_USER=test
      - PMA_PASSWORD=test
    links:
      - mysql
    ports:
      - 4040:80
    volumes:
      - ./phpmyadmin/sessions:/sessions
    restart: always

./apache2/apache2.conf

LoadModule proxy_html_module /usr/lib/apache2/modules/mod_proxy_html.so
LoadModule proxy_module /usr/lib/apache2/modules/mod_proxy.so
LoadModule proxy_connect_module /usr/lib/apache2/modules/mod_proxy_connect.so
LoadModule proxy_http_module /usr/lib/apache2/modules/mod_proxy_http.so
 
<IfModule proxy_html_module>
  Include /etc/apache2/proxy-html.conf
</IfModule>

./apache2/proxy-html.conf

<IfModule mod_proxy.c>
  ProxyRequests On
  ProxyVia On
  Listen 8888
  <Proxy *>
    Order deny,allow
    Deny from all
    Allow from all
  </Proxy>
</IfModule>

./apache2/hosts

127.0.0.1       localhost
::1     localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
172.27.0.2      450ce809bc23
192.168.1.2     centos7
127.0.0.1       localhost
::1     localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
172.27.0.2      450ce809bc23
192.168.1.x     larkbox
 192.168.1.1 Name des Heimrouters

Anlaufen

$ docker-compose up -d

mit diesem, http://larkbox:8080/ Ermöglicht den Zugriff auf Apache mit dem Nginx-Reverse-Proxy http://larkbox/ Sie können mit darauf zugreifen.

Portainer

docker-compose.yaml

version: '2'
services:
  portainer:
    image: portainer/portainer
    ports:
      - 9000:9000
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
	  - ./data:/data
    restart: always

Anlaufen

$ docker-compose up -d

mit diesem, http://larkbox:9000/ Sie können mit darauf zugreifen Wenn Sie die nginx-Konfigurationsdatei /etc/nginx/conf.d/default.conf wie folgt hinzufügen,

/etc/nginx/conf.d/default.conf

server {
    ...
    location /portainer/ {
        proxy_pass http://localhost:9000;
        rewrite /portainer/(.*)$ /$1 break;
        access_log off;
    }

http://larkbox/portainer Sie können mit darauf zugreifen.

Was ist die wesentliche Leistung als Server?

Vor der Einführung von Larkbox wurde CentOS 7 (Speicher 8 GB) auf Virtual Box unter Windows Pro auf Nuc (Speicher 32 GB) von Core i7-8559U als Server verwendet, aber es gibt keine großen Änderungen in der Erfahrung. Eindruck, dass es vernünftig verwendet werden kann, obwohl es sich um einen Server ohne kabelgebundenes LAN handelt.

Ich habe es auch mit einer verdammt schweren App versucht. Ich habe Fess13 installiert und versucht, es zu crawlen, aber es ist beschissen, nur die oberste Seite von Fess13 anzuzeigen. Das heißt aber nicht, dass es nicht funktioniert. Ich konnte kriechen.

Die Wärmeableitung, über die ich mir Sorgen machte, scheint in Ordnung zu sein.

Ein guter Server ist bereit.

Recommended Posts

Ich habe Alpine Linux in Larkbox eingefügt und es zu meinem Heimserver gemacht
Da die Schriftgröße und die Fenstergröße in Zoom für Linux groß sind, habe ich sie kleiner gemacht
Ich habe Linux (Ubuntu) in VAIO SX14 integriert.
Stellen Sie Docker in Windows Home und führen Sie einen einfachen Webserver mit Python aus
Setzen Sie Linux in Chromebook ein und verwenden Sie R ...
Ich habe ein Skript erstellt, um ein Snippet in README.md einzufügen
Ich habe einen Server mit Python-Socket und SSL erstellt und versucht, über den Browser darauf zuzugreifen
Ich möchte ein englisches Papier aus dem PDF-Format kopieren und in die Google-Übersetzung einfügen
Ich habe es gemacht, weil ich JSON-Daten möchte, die in Demos und Prototypen frei verwendet werden können
Als ich Django in mein Home-Verzeichnis legte, wurde ich mit einem Berechtigungsfehler in eine statische Datei eingebunden
Ich habe meine eigene Sprache gemacht. (1)
Ich habe einen Xubuntu-Server erstellt.
Ich habe meine eigene Sprache gemacht (2)
Ich habe meine eigene AML gemacht
Ich möchte eine Pipfile erstellen und im Docker wiedergeben
Ich habe Chatbot mit der LINE Messaging API und Python (2) ~ Server ~ erstellt
Ich habe einen Chat-Chat-Bot mit Tensor2Tensor erstellt und diesmal hat es funktioniert
Ich habe ein POST-Skript erstellt, um ein Problem in Github zu erstellen und es im Projekt zu registrieren