Vytvořeno: 2026/06/30 13:24:48 America/Chicago
Od: admin

Co tento průvodce staví

Tato příručka vytváří instalaci Verlihub založenou na Docker od úředníka Verlihub/verlihub zdrojový strom. Kontejner zkompiluje Verlihub s CMake, spustí nainstalovaný vh pomocník, ukládá soubory hubu pod /var/lib/verlihub a používá samostatný kontejner MariaDB pro databázi Verlihub.

Upstream úložiště aktuálně poskytuje zdrojový kód, CMake pokyny k sestavení, poznámky k instalaci a vh řídící skript. Nedodává připravený zásobník Docker Compose v kořenovém adresáři úložiště, takže nejbezpečnějším nastavením Docker je sestavení vlastního obrazu z oficiálního zdroje a udržování stavu databáze v pojmenovaných svazcích.

Než začnete

  • Nainstalujte Docker Engine a Docker Compose na hostitele.
  • Před spuštěním průvodce Verlihub zvolte název hostitele veřejného centra. Příklad: hub.example.org.
  • Otevřete port rozbočovače na hostitelské bráně firewall. Klasický NMDC se běžně používá 411/tcp; používá mnoho nasazení kontejnerů 4111/tcp abyste se vyhnuli privilegovaným nízkým portům.
  • Rozhodněte, kam patří trvalá data. Níže uvedené příklady používají pojmenované svazky Docker pro konfiguraci MariaDB a Verlihub.
  • Hesla k databázi uchovávejte v soukromí .env soubor. Neposílejte tento soubor do systému Git.

Vytvořte adresář projektu Docker

Vytvořte jeden adresář pro soubory sestavení. Adresář může žít kdekoli na hostiteli Docker.

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

Přidat databázové hodnoty do .env. Používejte svá vlastní hesla.

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

Vytvořte soubor Verlihub Docker

Oficiální poznámky k instalaci uvádějí klientské knihovny GCC, CMake, MySQL, OpenSSL, ICU, Make, ZLib, PCRE, GetText, MaxMindDB a volitelné Lua jako důležité závislosti sestavení. Níže uvedený soubor Docker_ používá fázi sestavení pro kompilátory a menší fázi běhu pro nainstalovaný rozbočovač.

 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"] 

Umožnit -DUSE_TLS_PROXY=ON pouze tehdy, když také vytvoříte a nakonfigurujete závislost proxy TLS vyžadovanou vaší pobočkou Verlihub. Nezapínejte příznaky TLS a předpokládejte, že NMDCS funguje bez certifikátů, binárních souborů proxy a testovaných pravidel brány firewall.

Vytvořte soubor docker-compose.yml

Tento soubor Compose začíná MariaDB a kontejner Verlihub v jedné soukromé síti Docker. Mapuje hostitelský port 4111 do kontejnerového přístavu 4111. Změňte port, pokud bude váš rozbočovač naslouchat na jiné hodnotě.

 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: 

Sestavte obraz

 docker compose build
docker compose up -d db 

Před spuštěním průvodce instalací Verlihub počkejte, až bude MariaDB v pořádku.

 docker compose ps
docker compose logs -f db 

Spusťte Průvodce instalací Verlihub

The vh --install pomocník je interaktivní. Spusťte jej jednou, odpovězte na otázky týkající se databáze a poté uložte vygenerovanou konfiguraci do připojeného svazku Verlihub.

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

Použijte tyto hodnoty v průvodci, když požádá o přístup k databázi:

Pole čarodějeHodnota k použitíProč
Název databáze verlihub nebo vaše MARIADB_DATABASE Odpovídá databázi MariaDB vytvořené aplikací Compose.
MySQL uživatel verlihub nebo vaše MARIADB_USER Odpovídá uživateli databáze aplikace.
MySQL hesloVaše MARIADB_PASSWORD Umožňuje Verlihub vytvářet a číst tabulky hubů.
MySQL název hostitele db db je název služby Compose a řeší se uvnitř sítě Docker.
Konfigurační složka /var/lib/verlihub Tato cesta je podporována verlihub-config objem.
Hub port 4111 Odpovídá mapování portu Compose zobrazenému výše.
Hostitel rozbočovačeVaše veřejné jméno DNSToto je adresa, kterou by uživatelé měli publikovat hublists.

Pokud vás průvodce požádá o pověření správce MySQL, použijte root a MARIADB_ROOT_PASSWORD z .env. Úředník vh skript může vytvářet databázi, udělovat oprávnění, vytvářet tabulky, zapisovat dbconfig, zaregistrujte hlavního uživatele a zapište počáteční nastavení hubu.

Spusťte Hub

 docker compose up -d
docker compose logs -f verlihub 

Po spuštění otestujte veřejný port mimo hostitele Docker. Pokud brána firewall hostitele nebo brána firewall poskytovatele blokuje port, kontejner může být v pořádku, zatímco klienti DC++ se stále nemohou připojit.

 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 

Denní operace

ÚkolPříkazPoznámky
Zastavte zásobník docker compose down Zastaví kontejnery při zachování pojmenovaných svazků.
Restartujte rozbočovač docker compose restart verlihub Použijte po jednoduchých změnách konfigurace.
Otevřete skořápku docker compose exec verlihub bash Použijte pro vh příkazy a kontroly protokolů.
Zálohovat MariaDB docker compose exec db mariadb-dump -u root -p verlihub > verlihub.sql Spustit před aktualizacemi a změnami schématu.
Zálohujte soubory rozbočovače docker run --rm -v verlihub-docker_verlihub-config:/data -v "$PWD":/backup debian:12 tar czf /backup/verlihub-config.tar.gz -C /data . Zachycuje dbconfig, skripty, pluginy, protokoly a soubory místního centra.

Upgrade Verlihub později

Nejprve zálohujte databázi a svazek konfigurace. Poté znovu sestavte obraz z nejnovějšího oficiálního zdroje a restartujte hub.

 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 

Pokud nové vydání Verlihub změní databázové tabulky, před výměnou produkčního centra si přečtěte poznámky k upstreamové verzi. Mějte jednu otestovanou zálohu, kterou lze obnovit bez stahování nových obrázků z internetu.

Běžné problémy

  • Hub se spustí, ale klienti se nemohou připojit. Zkontrolujte mapování portu Compose, bránu firewall hostitele, bránu firewall poskytovatele a listen_port hodnota v Verlihub.
  • Průvodce se nemůže připojit k MySQL. Použití db jako název hostitele z kontejneru Verlihub. Nepoužívejte localhost pokud MariaDB neběží ve stejném kontejneru.
  • Hub po přestavbě ztratí nastavení. Potvrďte verlihub-config objem je namontován na /var/lib/verlihub.
  • Postavy vypadají v chatu špatně. Nastavte stejnou znakovou sadu databáze a národní prostředí centra, které používá vaše komunita, a potom restartujte centrum.
  • NMDCS zatím nefunguje. Verlihub TLS podpora proxy vyžaduje odpovídající sestavení proxy, certifikáty, porty a testování klienta. Nejprve získejte stabilní NMDC.