1. Hjem
  2. /
  3. Aktuelt
  4. /
  5. Installere WikiJS i OpenShift

WikiJS-installasjon på OpenShift / OKD 4

WikiJS-installasjon på OpenShift / OKD 4

Hos Binero Group jobber vi hver dag med å forbedre leveransen av programvare. Selskapet har åpen kildekode i blodet, og derfor prøver vi å gi tilbake så mye som mulig av det vi utvikler til våre kunder og klienter.

I vår søken etter en Kubernetes-basert Wiki kom vi over WikiJS, en moderne Wiki som støtter markdown-filer og flere lagringsbackender som git og PostgreSQL.
Nettstedet gir informasjon om installering på Kubernetes, men OpenShift har noen ekstra sikkerhetsfunksjoner som må tas i betraktning når man installerer programvare på det.

Hvis du foretrekker å gå rett til koden og en kort forklaring, finner du Git-repositoriet her med en referanse til forfatteren som startet arbeidet, men les gjerne litt mer hvis du vil lære om begrunnelsen bak oppsettet.

Først og fremst liker vi å bruke produkter som har en stor installasjonsbase og et høyt automatiseringsnivå, slik at arbeidet med å vedlikeholde programvaren holdes på et minimum: vi liker å fokusere så mye som mulig på effektiv bruk og dra nytte av mulighetene Kubernetes har til dette. Av den grunn velger vi å bruke Crunchy Data Postgres Operator for å installere PostgreSQL som lagringsbackend for WikiJS, da dette er den som støttes best.

Deretter viser vi hvordan du bygger et Docker-bilde som kan legges til et internt arkiv etter behov og brukes til en såkalt sideloading-modus, noe som betyr at filene som installasjonen trenger, er pakket i containeren, slik at det ikke er behov for internettforbindelse for å hente filene når du gjør initialiseringen. Bildet er offentlig tilgjengelig på Docker Hub og oppdateres for øyeblikket manuelt – dette kan endres i fremtiden, og vi anbefaler at du setter opp byggingen selv for å ha den nyeste versjonen som kreves.

La oss komme i gang!

WikiJS i Openshift / OKD 4

Hvordan installere WikiJS i Openshift 4 (ved hjelp av sideloading-modus)

Forutsetninger:

  • Kjører Openshift eller OKD-klynge med permanent lagringsoppsett
    Eksemplene gjelder alle OKD- eller OpenShift 4-klynger. Skjermbildene er hentet fra OKD som kjører på CRC (nå OpenShift local) som beskrevet her.
1. Opprett et prosjekt:
oc new-project wikijs

Alternativt kan du gå til https://console-openshift-console.apps-crc.testing/k8s/cluster/projects og klikke på Opprett prosjekt og gi det navnet wikijs:

Hvordan opprette et prosjekt i wiki.js i OpenShift

2. Installer Crunchy Postgres for Kubernetes-operatøren fra OperatorHub eller følg instruksjonene her:

https://access.crunchydata.com/documentation/postgres-operator/v5/quickstart/

Velg alle navnerom hvis du vil at det skal kunne brukes i mer enn ett, hvis ikke, bruk wikijs-navnerommet som vi opprettet tidligere.

Installere Crunchy Postgres for Kubernete-operatøren wiki.js i OpenShift

3. Installer Postgres DB som følger, og sørg for at oc-kommandoen bruker riktig kontekst. Endre verdiene om nødvendig – for øyeblikket er det 20 GB.
oc apply -f postgres.yaml
4. Nå bør du ha en PostgresCluster CR under fanen under installerte operatører:

PostgresCluster CR wiki.js in OpenShift

Du bør kunne koble til fra den lokale maskinen med psql på følgende måte (sørg for at psql er installert):

PG_CLUSTER_PRIMARY_POD=$(oc get pod -n wikijs -o name -l postgres-operator.crunchydata.com/cluster=wikijs,postgres-operator.crunchydata.com/role=master)

kubectl -n wikijs port-forward "${PG_CLUSTER_PRIMARY_POD}" 5432:5432 &

PG_CLUSTER_USER_SECRET_NAME=wikijs-pguser-wikijs
PGPASSWORD=$(kubectl get secrets -n wikijs "${PG_CLUSTER_USER_SECRET_NAME}" -o go-template='{{.data.password | base64decode}}') PGUSER=$(kubectl get secrets -n wikijs "${PG_CLUSTER_USER_SECRET_NAME}" -o go-template='{{.data.user | base64decode}}') PGDATABASE=$(kubectl get secrets -n wikijs "${PG_CLUSTER_USER_SECRET_NAME}" -o go-template='{{.data.dbname | base64decode}}') psql -h localhost

Du bør få et skall som viser at tilkoblingen bruker TLS, som er standard for denne operatøren.

5. For meg fungerte det ikke å koble WikiJS til PostgreSQL med SSL. Jeg måtte legge til CA-sertifikatet som beskrevet i dokumentasjonen:

(DB_SLL_CA - Database CA certificate content, as a single line string (without spaces or new lines), without the prefix and suffix lines. (optional, requires 2.3+))

Dette er lagret i pgo-root-cacert-hemmeligheten. Kjør skriptet for å få det i riktig format:

./getPsqlRootCAString.sh

Det vil gi noe slikt som:

MIIBgTCCASegAwIBAgIQFlUx8CFOhxtbNv8baQQh7jA
KBggqhkjOPQQDAzAfMR0wGwYDVQQDExRwb3N0Z3
Jlcy1vcGVyYXRvci1jYTAeFw0yMjExMjUxMjM1NDNaFw
0zMjExMjIxMzM1NDNaMB8xHTAbBgNVBAMTFHBvc3
RncmVzLW9wACBhdG9yLWNhMFkwEwNHKoZIzj0CA
QYIKoZIzj0DAQcDQgAElokygIJH/U06gVTTQRZB0B1
cdSV8bP/HWVJ7BYOhcuOUymQsPnKDg27DgQSa9z
VVLADHf24vuMg8Uo/NDfjaf6NFMEMwDgYDVR0PAQ
H/BAQDAgEGMBIGA1UdEwEB/wQIMAYBAf8CAQAw
HQYDVR0OBBYEFN/HmCEkp7HKceaU/QACugp4tu/
LMAoGCCqGSM49BAMDA0gAMEUCIQC/qZJx55pqz
B0QmSRL6UmhnSeUl85rf2+X3eods2miKgIgM3swV3
UuTMgdDm8scsW1aDwhkPpCkwOXbaM0mX2jDvM=

Legg dette til deploymentConfig.yaml, utdrag:

- name: DB_SSL_CA
value:
MIIBgTCCASegAwIBAgIQFlUx8CFOhxtbNv8baQQh7jA
KBggqhkjOPQQDAzAfMR0wGwYDVQQDExRwb3N0Z3
Jlcy1vcGVyYXRvci1jYTAeFw0yMjExMjUxMjM1NDNaFw
0zMjExMjIxMzM1NDNaMB8xHTAbBgNVBAMTFHBvc3
RncmVzLW9wACBhdG9yLWNhMFkwEwNHKoZIzj0CA
QYIKoZIzj0DAQcDQgAElokygIJH/U06gVTTQRZB0B1
cdSV8bP/HWVJ7BYOhcuOUymQsPnKDg27DgQSa9z
VVLADHf24vuMg8Uo/NDfjaf6NFMEMwDgYDVR0PAQ
H/BAQDAgEGMBIGA1UdEwEB/wQIMAYBAf8CAQAw
HQYDVR0OBBYEFN/HmCEkp7HKceaU/QACugp4tu/
LMAoGCCqGSM49BAMDA0gAMEUCIQC/qZJx55pqz
B0QmSRL6UmhnSeUl85rf2+X3eods2miKgIgM3swV3
UuTMgdDm8scsW1aDwhkPpCkwOXbaM0mX2jDvM=

Nå er vi klare til å distribuere det.

6. Distribusjonsfilen inneholder en referanse til Docker-bildet som forfatteren av den nevnte referansen har laget. Som nevnt kan dette bygges fra Dockerfile-filen som er inkludert.

For enkelhets skyld kan vi bruke det bildet, bruke ditt eget, bygge bildet og merke det:
docker build -t yourusername/repository-name .

Jeg brukte Docker Hub:

docker build -t vgerris/wikijs:2 .

deretter skyver du den til ønsket register og oppdaterer referansen i distribusjonsfilen
mer informasjon : https://docs.docker.com/engine/reference/commandline/push/

docker push vgerris/wikijs:2

Nå kan du bruke distribusjonen:

oc apply -f deploymentConfig.yaml
7. Nå som appen er distribuert, kan vi legge til en tjeneste og en rute for å eksponere den. Oppdater rutefilen med server-URL-en din:
oc apply -f service.yaml
oc apply -f route.yaml

Du bør nå ha applikasjonen kjørende og eksponert på ruten, og du kan fullføre konfigurasjonen.

Kos deg med WikiJS!

Valgfritt
Hvis du har en eksisterende samling av Markdown-filer (MD), kan det være nyttig å legge dem til i wiki. Mer informasjon om hvordan du konfigurerer dette når det er lagret i git, finner du her.
Filene blir indeksert og lagt til WikiJS, og kan redigeres direkte med Markdown-redigeringsprogrammet. Som en bonus har WikiJS et diagram-plugin som gjør det veldig enkelt å legge til draw.io-baserte diagrammer direkte i dokumentene.

Det er også ganske enkelt å konfigurere OpenID-tilkobling med for eksempel Keycloak.
Gå til administrasjon, velg autentisering, legg til strategi og velg Keycloak.
Opprett en klient i Keycloak og fyll ut de obligatoriske feltene.
Deaktiver gjestebrukeren hvis du ikke ønsker at den skal være offentlig, se:
https://docs.requarks.io/groups ( Privat Wiki)

Binero Group leverer OKD på toppen av Binero-skyen og også en fullt støttet Red Hat OpenShift Container Platform som en hostet eller fullt administrert løsning, på svenske datasentre, i samsvar med GDPR.

Prøv Binero Cloud og kontakt oss hvis du har spørsmål, vi hjelper deg gjerne!

Opprett konto i Binero-skyen

Dela artikeln

Relaterte artikler

How to future proof your choice of cloud
Artikkel
Valfritt
3 desember 2025
Choose the best cloud service for your business
Artikkel
Valfritt
29 september 2025
omslagsbild med text artikel Show sports in public
EzyStream
Siste nytt
Valfritt
29 juli 2025

Vil du vite mer?

Vi er drevet av å hjelpe våre kunder med å oppnå høyere innovasjonskraft og kostnadseffektiv IT. Vil du også ta del i det siste innen høytytende skytjenester?