Skip to main content

Manual Installation and Deployment(AMD version)

This document is deployed using the CentOS/RedHat system as an example, and can also be used as a reference for the Kirin V10 and Huawei Euler systems; The differences between the Debian series systems will be separately noted.

Environment Preparation

  1. Prepare a Linux server with minimum configuration requirements: 8 cores, 32G RAM, 40G data disk (excluding system disk). Recommended Servers. Make sure ports 8880, 38880, 38881 are not occupied.

  2. Log in to the server with the root user account

  3. If the server has a data disk, please mount the data disk to the /data directory before deployment, or modify the default storage path of the data to the path where your data disk is mounted during installation

  4. Shut down Firewalld

    systemctl stop firewalld && systemctl disable firewalld
  5. Shut down SELinux

    setenforce 0
    sed -i s/"^SELINUX=.*$"/"SELINUX=disabled"/g /etc/selinux/config
  6. Adjust MaxMapCount

    sysctl -w vm.max_map_count=262144
    grep -q '^vm.max_map_count' /etc/sysctl.conf && sed -i 's/^vm.max_map_count.*/vm.max_map_count=262144/' /etc/sysctl.conf || echo 'vm.max_map_count=262144' >> /etc/sysctl.conf
  7. Adjust SysFileNr

    sysctl -w fs.file-max=2048000
    grep -q '^fs.file-max' /etc/sysctl.conf && sed -i 's/^fs.file-max.*/fs.file-max=2048000/' /etc/sysctl.conf || echo 'fs.file-max=2048000' >> /etc/sysctl.conf
  8. Adjust IPv4Forward

    sysctl -w net.ipv4.ip_forward=1
    grep -q '^net.ipv4.ip_forward' /etc/sysctl.conf && sed -i 's/^net.ipv4.ip_forward.*/net.ipv4.ip_forward=1/' /etc/sysctl.conf || echo 'net.ipv4.ip_forward=1' >> /etc/sysctl.conf
  9. If the operating system is Debian 10 or above, please first check if there are any iptables using the iptables --version command;

    If there is no iptables, it needs to be installed. The reference command is as follows (the server needs to be able to access the Internet):

    apt-get update
    apt install -y iptables

Docker Installation

  1. Download the installation package

    wget https://pdpublic.nocoly.com/offline/common/docker-24.0.9.tgz
  2. Unzip the package and move the file to the binary file directory

    tar -zxvf docker-24.0.9.tgz
    mv -f docker/* /usr/local/bin/
  3. Create docker configuration file

    The default docker data directory is /data/docker, if you need to change the default data directory, modify the data-root value in the configuration file.

    mkdir -p  /etc/docker/
    cat > /etc/docker/daemon.json <<EOF
    {
    "registry-mirrors": ["https://uvlkeb6d.mirror.aliyuncs.com"],
    "data-root": "/data/docker",
    "max-concurrent-downloads": 10,
    "exec-opts": ["native.cgroupdriver=cgroupfs"],
    "storage-driver": "overlay2",
    "default-address-pools":[{"base":"172.80.0.0/16","size":24}]
    }
    EOF
  4. Configure systemd to manage docker

    cat > /etc/systemd/system/docker.service <<EOF
    [Unit]
    Description=Docker
    After=network-online.target
    Wants=network-online.target
    [Service]
    Type=notify
    ExecStart=/usr/local/bin/dockerd
    ExecReload=/bin/kill -s HUP \$MAINPID
    LimitNOFILE=102400
    LimitNPROC=infinity
    LimitCORE=0
    TimeoutStartSec=0
    Delegate=yes
    KillMode=process
    Restart=on-failure
    StartLimitBurst=3
    StartLimitInterval=60s
    [Install]
    WantedBy=multi-user.target
    EOF
  5. Start docker

    systemctl daemon-reload && systemctl start docker && systemctl enable docker

Standalone Installation

  1. Download the mirror (Offline package)

    docker pull nocoly/hap-community:5.8.0
    docker pull nocoly/hap-sc:3.0.0
    docker pull nocoly/hap-command:node2011-python312
    docker pull nocoly/hap-doc:1.2.0
  2. Download manager

    wget https://pdpublic.nocoly.com/5.8.0/hap_captain_linux_amd64.tar.gz
  3. Create a directory and unzip the manager into the newly created directory

    mkdir /usr/local/MDPrivateDeployment/
    tar -zxvf hap_captain_linux_amd64.tar.gz -C /usr/local/MDPrivateDeployment/
  4. Navigate to the directory where the manager is located, and start the manager.

    cd /usr/local/MDPrivateDeployment/
    bash ./service.sh start 
  5. After successful startup, access http://{server IP}:38881 in your browser to complete the system access address setting and initialization (initialization takes about 5 minutes).