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

WikiJS-installasjon på OpenShift / OKD 4

Installere WikiJS i OpenShift / OKD 4 ved bruk av Crunchy PostgreSQL

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

I jakten på 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 installasjon på Kubernetes, men OpenShift har noen ekstra sikkerhetsfunksjoner som må tas i betraktning ved programvareinstallasjon.

Hvis du foretrekker å gå direkte til koden og en kort forklaring, kan du finne Git-repoen her med en henvisning til forfatteren som startet prosjektet, men les gjerne litt videre hvis du vil vite mer om bakgrunnen for oppsettet.

Først og fremst liker vi å bruke produkter som har en stor installasjonsbase og et høyt nivå av automatisering, slik at innsatsen for å vedlikeholde programvaren holdes på et minimum: vi ønsker å fokusere så mye som mulig på effektiv bruk og dra nytte av hva Kubernetes kan tilby. Av den grunn velger vi å bruke Crunchy Data Postgres Operator for å installere PostgreSQL som lagringsbackend for WikiJS, da det er den best støttede.

Deretter viser vi hvordan man bygger et docker-image som kan legges til i et internt register etter behov og brukes i en såkalt sideloading-modus, noe som betyr at filene installasjonen trenger, pakkes i containeren, slik at ingen internettforbindelse er nødvendig for å hente filene under initialisering. Imaget er offentlig tilgjengelig på Docker Hub og oppdateres manuelt per i dag – dette kan endre seg i fremtiden, vi anbefaler å sette opp bygging selv for å ha den nyeste versjonen som kreves.

La oss komme i gang!

WikiJS i Openshift / OKD 4

Hvordan installere WikiJS i Openshift 4 (bruker sideloading-modus)

Forutsetninger:

  • kjørende Openshift- eller OKD-klynge med oppsett for persistent lagring
    Eksemplene gjelder for enhver OKD- eller OpenShift 4-klynge, skjermbilder er tatt 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å Create Project og navngi det wikijs:

How to create a project in wiki.js in 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 ønsker at den skal kunne brukes i mer enn ett, ellers bruk wikijs-navnerommet som vi opprettet tidligere

Installing the Crunchy Postgres for Kubernete operator wiki.js in OpenShift

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

PostgresCluster CR wiki.js in OpenShift

Du skal kunne koble til fra den lokale maskinen med psql slik (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 skal få et skall som viser at tilkoblingen bruker TLS, som er standard med 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-sertifikatinnhold, som en enkelt linje streng (uten mellomrom eller nye linjer), uten prefiks- og suffiks-linjer. (valgfritt, krever 2.3+))

Dette er lagret i pgo-root-cacert-secret, kjør skriptet for å få det i riktig format:

./getPsqlRootCAString.sh

Det vil gi noe 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-imaget forfatteren av den nevnte referansen har laget. Som nevnt kan dette bygges fra Dockerfile som er inkludert.

For enkelhets skyld kan vi bruke det imaget, eller for å bruke ditt eget, bygg imaget og merk det:
docker build -t dittbrukernavn/repository-navn .

Jeg brukte docker hub :

docker build -t vgerris/wikijs:2 .

deretter push det til ditt valg av registry og oppdater referansen i distribusjonsfilen
mer info : https://docs.docker.com/engine/reference/commandline/push/

docker push vgerris/wikijs:2

Nå, bruk deployeringen:

oc apply -f deploymentConfig.yaml
7. Nå som appen er distribuert, kan vi legge til en tjeneste og en rute for å eksponere den. Oppdater ruten 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, du kan fullføre oppsettet.

Kos deg med WikiJS!

Valgfritt
Hvis du har en eksisterende samling av Markdown-filer (MD), kan det være nyttig å legge disse til i wikien. Mer informasjon om hvordan du setter det opp når de er lagret i git, finnes her.
Filene vil bli indeksert og lagt til i WikiJS og kan redigeres direkte med Markdown-editoren. Som en bonus har WikiJS en diagramplugin som gjør det veldig enkelt å legge til draw.io-baserte diagrammer direkte i dokumentene.

Det er også ganske enkelt å sette opp OpenID connect med for eksempel Keycloak.
Under administrasjon, gå til autentisering, legg til strategi og velg Keycloak.
Opprett en klient i Keycloak og fyll inn de nødvendige feltene.
Deaktiver gjestebruker hvis du ikke vil at den skal være offentlig, se:
https://docs.requarks.io/groups (Privat Wiki)

Binero Group leverer OKD oppå Binero cloud og også en fullt støttet Red Hat OpenShift Container Platform som en hostet eller fullt administrert løsning, på svenske datasentre, GDPR-kompatibel.

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

Opprett konto i Binero cloud

Del denne artikkelen

Relaterte artikler

Artikkel om skytjenester
Artikkel

Sikre skytjenester for bedrifter

Folk på messe med boder, bord og grønn dekor. Tekst: Event: Vitalis 2026.
Event

Binero innfører Vitalis

To menn smiler ved en messestand med Binero-logo, omgitt av mennesker på et helse- og teknologiarrangement.
Event

Refleksjon over eHealth+MVTe 2026

Vil du vite mer?

Vi drives av å hjelpe kundene våre med å oppnå større innovasjon og kostnadseffektiv IT. Ønsker du også å dra nytte av det siste innen høyytelses cloud-tjenester?