---
title: "Wdróż aplikację Wiki.js na Pethost jednym kliknięciem"
description: "Wiki dla zespołu albo projektu: strony w Markdownie lub w edytorze wizualnym, wyszukiwanie, uprawnienia i dostawcy logowania. Szablon dla Pethost: za minutę czy dwie aplikacja działa na twojej maszynie, z HTTPS pod własnym adresem i backupami co noc."
---

[← Wszystkie szablony](https://pethost.dev/pl/templates/)

# Wdróż aplikację Wiki.js na Pethost jednym kliknięciem

Wiki dla zespołu albo projektu: strony w Markdownie lub w edytorze wizualnym, wyszukiwanie, uprawnienia i dostawcy logowania

[Wdróż na Pethost](https://console.pethost.dev/?template=wiki-js)

## Co się dzieje

1. Logujesz się do Pethost albo zakładasz konto, kluczem dostępu, przez GitHub albo Google.
2. Nie masz jeszcze maszyny? Wybierasz plan, a my ją dla ciebie przygotowujemy. Link czeka w twojej przeglądarce, aż będzie gotowa.
3. Okno „Nowy projekt” otwiera się na tej aplikacji. Wypełniasz to, o co prosi, i klikasz „Utwórz projekt”: **E-mail**, **Hasło administratora**.
4. Za minutę czy dwie aplikacja działa pod własnym adresem z HTTPS. Jej sekrety są tworzone losowo, a dane trafiają do nocnego backupu.
5. To projekt jak każdy inny: jego compose.yaml, .env, logi i terminal są w panelu, a twój agent może go zmienić, cofnąć do wcześniejszej wersji albo przywrócić.

## Pierwsze kroki

Zaloguj się adresem e-mail i hasłem administratora, które podano: Wiki.js jest nimi skonfigurowane, zanim zacznie odpowiadać, więc nikt inny nie dostanie strony instalacji. Strony tworzy się ze strony głównej; użytkownicy, grupy i dostawcy logowania są w Administration.

## Co uruchamia

Szablon to ten compose.yaml i zmienne, które zapisuje do .env projektu. Pethost uruchamia plik dokładnie tak, jak jest napisany.

```
services:
  wiki:
    image: ghcr.io/requarks/wiki:2.5.315
    restart: unless-stopped
    environment:
      DB_TYPE: postgres
      DB_HOST: postgres
      DB_PORT: "5432"
      DB_USER: wiki
      DB_PASS: ${POSTGRES_PASSWORD}
      DB_NAME: wiki
      SITE_URL: ${URL}
      ADMIN_EMAIL: ${ADMIN_EMAIL}
      ADMIN_PASSWORD: ${ADMIN_PASSWORD}
    # Wiki.js opens its setup page to whoever comes first. On the first start it runs once on
    # port 3001, which nobody reaches, is set up there with the email and password given, and only
    # then starts on 3000.
    entrypoint: ["/bin/sh", "-c"]
    command:
      - |
        installed=$$(node -e "
          const { Client } = require('pg');
          const db = new Client({ host: 'postgres', user: process.env.DB_USER, password: process.env.DB_PASS, database: process.env.DB_NAME });
          db.connect().then(() => db.query('select count(*) from settings')).then((r) => console.log(r.rows[0].count > 0 ? 'yes' : 'no'), () => console.log('no')).then(() => process.exit(0));
        ")
        if [ "$$installed" = no ]; then
          sed 's/^port: 3000/port: 3001/' config.yml > /tmp/setup.yml
          CONFIG_FILE=/tmp/setup.yml node server &
          setup=$$!
          node -e "
            const body = JSON.stringify({ adminEmail: process.env.ADMIN_EMAIL, adminPassword: process.env.ADMIN_PASSWORD, adminPasswordConfirm: process.env.ADMIN_PASSWORD, siteUrl: process.env.SITE_URL, telemetry: false });
            (async () => {
              for (let i = 0; i < 180; i++) {
                try {
                  const answer = await fetch('http://127.0.0.1:3001/finalize', { method: 'POST', headers: { 'content-type': 'application/json' }, body });
                  console.log('setup:', await answer.text());
                  return;
                } catch { await new Promise((done) => setTimeout(done, 1000)); }
              }
            })();
          "
          sleep 3
          kill $$setup
          wait $$setup
        fi
        exec node server
    volumes:
      - content:/wiki/data/content
    depends_on:
      postgres:
        condition: service_healthy

  postgres:
    image: postgres:17-alpine
    restart: unless-stopped
    environment:
      POSTGRES_DB: wiki
      POSTGRES_USER: wiki
      POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
    volumes:
      - db:/var/lib/postgresql/data
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -h 127.0.0.1 -U wiki -d wiki"]
      interval: 5s
      timeout: 5s
      retries: 10
      start_period: 30s

volumes:
  content:
  db:
```

[compose.yaml](https://pethost.dev/templates/wiki-js/compose.yaml)[Zobacz na GitHubie](https://github.com/pethost-dev/templates/tree/main/wiki-js)

Pethost · Stephan Gomer · NIP 1133096755

[Szablony](https://pethost.dev/pl/templates/) [O nas](https://pethost.dev/about/) [Blog](https://pethost.dev/blog/) [Regulamin](https://pethost.dev/terms/) [Prywatność](https://pethost.dev/privacy/) [Zwroty](https://pethost.dev/refunds/) [API](https://pethost.dev/docs/api/) [CLI](https://pethost.dev/docs/cli/) [Plugin](https://github.com/pethost-dev/plugin) [support@pethost.dev](mailto:support@pethost.dev)
