Creat: 2026/06/30 13:24:48 America/Chicago
De: admin

Ce construiește acest ghid

Acest ghid creează o instalare Verlihub bazată pe Docker de la oficial Verlihub/verlihub arborele sursă. Containerul compilează Verlihub cu CMake, rulează instalat vh helper, stochează fișierele hub sub /var/lib/verlihub și utilizează un container separat MariaDB pentru baza de date Verlihub.

Depozitul din amonte oferă în prezent cod sursă, instrucțiuni de construire CMake, note de instalare și vh script de management. Nu livrează o stivă Docker Compose gata în rădăcina depozitului, așa că cea mai sigură configurare Docker este să vă construiți propria imagine din sursa oficială și să păstrați starea bazei de date în volume numite.

Înainte de a începe

  • Instalați Docker Engine și Docker Compose pe gazdă.
  • Alegeți numele de gazdă a hub-ului public înainte de a rula vrăjitorul Verlihub. Exemplu: hub.example.org.
  • Deschideți portul hub de pe paravanul de protecție gazdă. NMDC clasic este utilizat în mod obișnuit 411/tcp; multe implementări de containere folosesc 4111/tcp pentru a evita porturile privilegiate joase.
  • Decideți unde aparțin datele persistente. Exemplele de mai jos folosesc volume Docker denumite pentru configurația MariaDB și Verlihub.
  • Păstrați parolele bazei de date într-un mod privat .env fişier. Nu trimiteți acel fișier în Git.

Creați directorul de proiect Docker

Creați un director pentru fișierele de compilare. Directorul poate locui oriunde pe gazda Docker.

 mkdir -p verlihub-docker
cd verlihub-docker
touch Dockerfile docker-compose.yml .env
chmod 600 .env 

Adăugați valorile bazei de date la .env. Folosește-ți propriile parole.

 MARIADB_ROOT_PASSWORD=change-root-password
MARIADB_DATABASE=verlihub
MARIADB_USER=verlihub
MARIADB_PASSWORD=change-hub-password 

Creați fișierul Verlihub Docker

Notele oficiale de instalare listează bibliotecile client GCC, CMake, MySQL, OpenSSL, ICU, Make, ZLib, PCRE, GetText, MaxMindDB și opțional Lua ca dependențe importante ale versiunii. Fișierul Docker de mai jos utilizează o etapă de compilare pentru compilatoare și o etapă de rulare mai mică pentru hub-ul instalat.

 FROM debian:12 AS build

RUN apt-get update \
    && apt-get install -y --no-install-recommends \
        ca-certificates \
        cmake \
        default-libmysqlclient-dev \
        g++ \
        gettext \
        git \
        libasprintf-dev \
        libicu-dev \
        liblua5.2-dev \
        libmaxminddb-dev \
        libpcre3-dev \
        libssl-dev \
        make \
        zlib1g-dev \
    && rm -rf /var/lib/apt/lists/*

RUN git clone --depth=1 https://github.com/Verlihub/verlihub.git /src/verlihub

RUN cmake -S /src/verlihub -B /src/verlihub/build \
        -DCMAKE_INSTALL_PREFIX=/usr/local \
        -DUSE_TLS_PROXY=OFF \
        -DUSE_FEARTLS_PROXY=OFF \
    && cmake --build /src/verlihub/build -j"$(nproc)" \
    && cmake --install /src/verlihub/build

FROM debian:12

RUN apt-get update \
    && apt-get install -y --no-install-recommends \
        bash \
        ca-certificates \
        default-mysql-client \
        gettext \
        libicu72 \
        liblua5.2-0 \
        libmaxminddb0 \
        libpcre3 \
        libssl3 \
        procps \
        zlib1g \
    && rm -rf /var/lib/apt/lists/*

COPY --from=build /usr/local /usr/local

RUN ldconfig \
    && useradd -r -m -d /var/lib/verlihub -s /bin/bash verlihub

USER verlihub
WORKDIR /var/lib/verlihub
VOLUME ["/var/lib/verlihub"]
EXPOSE 411 4111 4112

CMD ["bash", "-lc", "vh --run /var/lib/verlihub"] 

Permite -DUSE_TLS_PROXY=ON numai atunci când construiți și configurați și dependența de proxy TLS cerută de filiala dvs. Verlihub. Nu activați steaguri TLS și presupuneți că NMDCS funcționează fără certificate, fișiere binare proxy și reguli de firewall testate.

Creați docker-compose.yml

Acest fișier Compose pornește MariaDB și containerul Verlihub într-o rețea privată Docker. Mapează portul gazdă 4111 spre port container 4111. Schimbați portul dacă hub-ul dvs. va asculta pe o altă valoare.

 services:
  db:
    image: mariadb:10.11
    restart: unless-stopped
    env_file: .env
    environment:
      MARIADB_ROOT_PASSWORD: ${MARIADB_ROOT_PASSWORD}
      MARIADB_DATABASE: ${MARIADB_DATABASE}
      MARIADB_USER: ${MARIADB_USER}
      MARIADB_PASSWORD: ${MARIADB_PASSWORD}
    volumes:
      - verlihub-db:/var/lib/mysql
    healthcheck:
      test: ["CMD", "mariadb-admin", "ping", "-h", "127.0.0.1", "-u", "root", "-p${MARIADB_ROOT_PASSWORD}"]
      interval: 10s
      timeout: 5s
      retries: 10

  verlihub:
    build: .
    restart: unless-stopped
    env_file: .env
    depends_on:
      db:
        condition: service_healthy
    ports:
      - "4111:4111/tcp"
    volumes:
      - verlihub-config:/var/lib/verlihub
    command: ["bash", "-lc", "vh --run /var/lib/verlihub"]

volumes:
  verlihub-db:
  verlihub-config: 

Construiți Imaginea

 docker compose build
docker compose up -d db 

Așteptați până când MariaDB este sănătos înainte de a rula vrăjitorul de instalare Verlihub.

 docker compose ps
docker compose logs -f db 

Rulați asistentul de instalare Verlihub

The vh --install Ajutorul este interactiv. Rulați-l o dată, răspundeți la întrebările bazei de date, apoi salvați configurația generată în volumul Verlihub montat.

 docker compose run --rm verlihub bash
vh --install 

Utilizați aceste valori în vrăjitor când solicită acces la baza de date:

Câmpul expertuluiValoare de utilizatDe ce
Numele bazei de date verlihub sau dvs MARIADB_DATABASE Se potrivește cu baza de date MariaDB creată de Compose.
utilizator MySQL verlihub sau dvs MARIADB_USER Se potrivește cu utilizatorul bazei de date a aplicației.
parola MySQLDvs MARIADB_PASSWORD Permite Verlihub să creeze și să citească tabele hub.
MySQL nume de gazdă db db este numele serviciului Compose și se rezolvă în interiorul rețelei Docker.
Dosarul de configurare /var/lib/verlihub Această cale este susținută de verlihub-config volum.
Port hub 4111 Se potrivește cu maparea portului Compuse prezentată mai sus.
Gazdă hubNumele dvs. DNS publicAceasta este adresa utilizatorilor și hublists ar trebui să o publice.

Dacă vrăjitorul solicită acreditările de administrator MySQL, utilizați root şi MARIADB_ROOT_PASSWORD din .env. Oficialul vh scriptul poate crea baza de date, acorda permisiuni, crea tabele, scrie dbconfig, înregistrați utilizatorul principal și scrieți setările inițiale ale hub-ului.

Porniți Hub-ul

 docker compose up -d
docker compose logs -f verlihub 

După pornire, testați portul public din afara gazdei Docker. Dacă firewall-ul gazdă sau firewall-ul furnizorului blochează portul, containerul poate fi sănătos, în timp ce clienții DC++ încă nu se pot conecta.

 docker compose exec verlihub vh --status /var/lib/verlihub
docker compose exec verlihub vh --getconf hub_name /var/lib/verlihub
docker compose exec verlihub vh --getconf listen_port /var/lib/verlihub 

Operațiuni zilnice

SarcinăComandaNote
Opriți stiva docker compose down Oprește containerele păstrând în același timp volumele numite.
Reporniți hub-ul docker compose restart verlihub Utilizați după modificări simple de configurare.
Deschide o coajă docker compose exec verlihub bash Utilizați pentru vh comenzi și verificări în jurnal.
Faceți backup pentru MariaDB docker compose exec db mariadb-dump -u root -p verlihub > verlihub.sql Rulați înainte de upgrade-uri și modificări de schemă.
Faceți copii de rezervă ale fișierelor hub docker run --rm -v verlihub-docker_verlihub-config:/data -v "$PWD":/backup debian:12 tar czf /backup/verlihub-config.tar.gz -C /data . Capturi dbconfig, scripturi, pluginuri, jurnale și fișiere hub local.

Actualizați Verlihub mai târziu

Mai întâi faceți o copie de rezervă a bazei de date și a volumului de configurare. Apoi reconstruiți imaginea din cea mai recentă sursă oficială și reporniți hub-ul.

 docker compose exec db mariadb-dump -u root -p verlihub > verlihub-before-upgrade.sql
docker compose build --pull --no-cache verlihub
docker compose up -d verlihub
docker compose logs -f verlihub 

Dacă o nouă ediție Verlihub modifică tabelele bazei de date, citiți notele de ediție din amonte înainte de a înlocui un hub de producție. Păstrați o copie de rezervă testată care poate fi restaurată fără a scoate imagini noi de pe internet.

Probleme comune

  • Hubul pornește, dar clienții nu se pot conecta. Verificați maparea portului Compuse, firewall-ul gazdei, firewall-ul furnizorului și listen_port valoare în Verlihub.
  • Expertul nu se poate conecta la MySQL. Utilizare db ca nume de gazdă din interiorul containerului Verlihub. Nu utilizați localhost cu excepția cazului în care MariaDB rulează în același container.
  • Hub-ul pierde setările după reconstrucție. Confirmați verlihub-config volumul este montat la /var/lib/verlihub.
  • Personajele arată greșit în chat. Setați același set de caractere al bazei de date și aceeași localitate a hub-ului pe care le folosește comunitatea dvs., apoi reporniți hub-ul.
  • NMDCS nu funcționează încă. Verlihub TLS Suportul proxy necesită versiunea proxy potrivită, certificate, porturi și testare client. Obțineți mai întâi stabilul simplu NMDC.