1. Hem
  2. /
  3. Nyheter
  4. /
  5. Installera WikiJS i OpenShift

WikiJS-installation på OpenShift / OKD 4

Installera WikiJS i OpenShift / OKD 4 med Crunchy PostgreSQL

På Binero Group arbetar vi varje dag med att förbättra mjukvaruleveranser. Företaget har Open Source i blodet och som sådan försöker vi ge tillbaka till våra klienter och kunder det vi utvecklar så mycket som möjligt.

I sökandet efter en Kubernetes-baserad Wiki stötte vi på WikiJS, en modern Wiki som har stöd för markdown-filer och flera lagringsbackends som git och PostgreSQL.
Webbplatsen ger information om installation på Kubernetes, men OpenShift har vissa ytterligare säkerhetsfunktioner som måste tas i beaktande vid installation av mjukvara på det.

Hvis du foretrækker at gå direkte til koden og en kort forklaring, kan du finde Git-repoen her med en henvisning til forfatteren, der startede projektet, men læs gerne lidt videre, hvis du vil vide mere om baggrunden for opsætningen.

Först och främst vill vi använda produkter som har en stor installationsbas och en hög nivå av automatisering, så insatserna för att underhålla mjukvaran hålls till ett minimum: vi vill fokusera så mycket som möjligt på effektiv användning och dra nytta av Kubernetes möjligheter till detta. Av den anledningen väljer vi att använda Crunchy Data Postgres Operator för att installera PostgreSQL som lagringsbackend för WikiJS, eftersom det är den bäst stödda.

Sedan visar vi hur man bygger en dockerbild som kan läggas till i ett internt register vid behov och användas för ett så kallat sideloading-läge, vilket betyder att de filer som installationen behöver är paketerade i containern, så ingen internetanslutning krävs för att hämta filerna vid initialiseringen. Bilden är offentligt tillgänglig på Docker Hub och uppdateras för närvarande manuellt - detta kan ändras i framtiden, vi rekommenderar att du sätter upp bygget själv för att ha den senaste versionen som behövs.

Nu kör vi!

WikiJS i Openshift / OKD 4

Hur man installerar WikiJS i Openshift 4 (använder sidoladdningsläge)

Förutsättningar:

  • körande Openshift- eller OKD-kluster med persisterande lagring konfigurerad
    Exemplen gäller för alla OKD- eller OpenShift 4-kluster, skärmdumparna är tagna från OKD som körs på CRC (nu OpenShift local) som beskrivs här
1. Skapa ett projekt:
oc new-project wikijs

Alternativt, gå till https://console-openshift-console.apps-crc.testing/k8s/cluster/projects och klicka på Skapa Projekt och namnge det wikijs:

How to create a project in wiki.js in OpenShift

2. Installera Crunchy Postgres för Kubernetes-operatorn från OperatorHub eller följ instruktionerna här:

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

Välj alla namespaces om du vill att den ska kunna användas i mer än ett, annars använd den wikijs som vi skapade tidigare

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

3. Installera postgres DB enligt följande, se till att ditt oc-kommando använder rätt kontext. Ändra värdena vid behov - för närvarande är det 20GB.
oc apply -f postgres.yaml
4. Nu bör du ha en PostgresCluster CR under fliken för installerade operatörer:

PostgresCluster CR wiki.js in OpenShift

Du ska kunna ansluta från den lokala maskinen med psql på följande sätt (se till att psql är installerat):

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å ett skal som visar att anslutningen använder TLS, vilket är standard med denna operator.

5. För mig fungerade det inte att låta WikiJS ansluta till PostgreSQL med SSL, jag var tvungen att lägga till CA-certifikatet som beskrivs i dokumentationen:

(DB_SSL_CA - Databasens CA-certifikat innehåll, som en enda radsträng (utan mellanslag eller nya rader), utan prefix- och suffixraderna. (valfritt, kräver 2.3+))

Detta är lagrat i hemligheten pgo-root-cacert, kör skriptet för att få det i rätt format:

./getPsqlRootCAString.sh

Det kommer att ge något i stil med:

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

Lägg till detta i 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=

Nu är vi redo att distribuera det.

6. Deploymentsfilen innehåller en referens till dockerbilden som författaren till nämnda referens skapat. Som nämnts kan denna byggas från Dockerfilen som ingår.

För bekvämlighetens skull kan vi använda den bilden, för att använda din egen, bygg bilden och tagga den:
docker build -t yourusername/repository-name .

Jag använde docker hub :

docker build -t vgerris/wikijs:2 .

sedan tryck den till ditt valda register och uppdatera referensen i deploymentsfilen
mer info : https://docs.docker.com/engine/reference/commandline/push/

docker push vgerris/wikijs:2

Applicera nu distributionen:

oc apply -f deploymentConfig.yaml
7. Nu när appen är distribuerad kan vi lägga till en tjänst och en rutt för att exponera den. Uppdatera ruttfilen med din server-URL:
oc apply -f service.yaml
oc apply -f route.yaml

Du bör ha applikationen igång och exponerad på routen nu, du kan slutföra inställningen.

Enjoy WikiJS!

Valfritt
Om du har en befintlig samling av Markdown-filer (MD) kan det vara användbart att lägga till dem i wikien. Mer information om hur du ställer in det när de är lagrade i git finns här.
Filerna kommer att indexeras och läggas till i WikiJS och kan direkt redigeras med Markdown-redigeraren. Som en bonus har WikiJS ett diagramplugin som gör det riktigt enkelt att lägga till draw.io-baserade diagram direkt i dokumenten.

Det är också ganska enkelt att ställa in OpenID connect med till exempel Keycloak.
Under administration, gå till autentisering, lägg till strategi och välj Keycloak.
Skapa en klient i Keycloak och fyll i de obligatoriska fälten.
Inaktivera gäst användaren om du inte vill att det ska vara offentligt, se:
https://docs.requarks.io/groups (Privat Wiki)

Binero Group levererar OKD ovanpå Binero cloud och även en fullt stödd Red Hat OpenShift Container Platform som en värdtjänst eller fullt administrerad lösning, på svenska datacenter, GDPR-kompatibel.

Testa Binero cloud och kontakta oss om du har några frågor, vi hjälper gärna till!

Skapa konto i Binero cloud

Dela den här artikeln

Relaterade artiklar

Artikel om molntjänster
Mässa med montrar, besökare och träddekorationer. Text: Event: Vitalis 2026.
Event

Binero inför Vitalis

Två män vid ett utställningsbord på en mässa, med text om digital sjukvård och "Binero" i bakgrunden.
Event

Reflektion av eHälsa+MVTe 2026

Vill du veta mer?

Vi drivs av att hjälpa våra kunder att uppnå större innovation och kostnadseffektiv IT. Vill du också dra nytta av det senaste inom högpresterande molntjänster?