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

WikiJS-installation på OpenShift / OKD 4

Installation af WikiJS i OpenShift / OKD 4 ved hjælp af Crunchy PostgreSQL

Hos Binero Group arbejder vi hver dag på at forbedre leveringen af software. Virksomheden har open source i blodet, og derfor forsøger vi at give vores kunder og klienter så meget som muligt af det, vi udvikler.

I vores søgen efter en Kubernetes-baseret Wiki stødte vi på WikiJS, en moderne Wiki, der understøtter markdown-filer og flere storage-backends som git og PostgreSQL.
Hjemmesiden indeholder oplysninger om installation på Kubernetes, men OpenShift har nogle ekstra sikkerhedsfunktioner, som skal tages i betragtning, når man installerer software 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 og fremmest foretrækker vi at bruge produkter, der har en stor installeret base og et højt automatiseringsniveau, så indsatsen for at vedligeholde softwaren holdes på et minimum: vi vil gerne fokusere så meget som muligt på effektiv brug og drage fordel af de muligheder, Kubernetes har i denne henseende. Af den grund vælger vi at bruge Crunchy Data Postgres Operator til at installere PostgreSQL som en storage-backend til WikiJS, da det er den bedst understøttede.

Derefter viser vi, hvordan man opbygger et docker-billede, der kan tilføjes til et internt repository efter behov og bruges til en såkaldt sideloading-tilstand, hvilket betyder, at de filer, som installationen har brug for, er pakket i containeren, så der ikke er behov for internetforbindelse for at hente filerne, når initialiseringen foretages. Billedet er offentligt tilgængeligt på Docker Hub og opdateres i øjeblikket manuelt – dette kan ændre sig i fremtiden, og vi anbefaler, at du selv opsætter buildet for at have den seneste version, der kræves.

Lad os komme i gang!

WikiJS i Openshift / OKD 4

Sådan installeres WikiJS i Openshift 4 (ved hjælp af sideloading-tilstand)

Forudsætninger:

  • Kørsel af Openshift- eller OKD-klynge med permanent lageropsætning
    Eksemplerne gælder for alle OKD- eller OpenShift 4-klynger. Skærmbillederne er taget fra OKD, der kører på CRC (nu OpenShift local), som beskrevet her.
1. Opret et projekt:
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 navngive det wikijs:

Sådan oprettes et projekt i wiki.js i OpenShift

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

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

Vælg alle navneområder, hvis du vil kunne bruge det i mere end ét, ellers skal du bruge det wikijs, vi oprettede tidligere.

Installation af Crunchy Postgres til Kubernete-operatøren wiki.js i OpenShift

3. Installer postgres DB som følger, og sørg for, at din oc-kommando bruger den rigtige kontekst. Ændr værdierne, hvis det er nødvendigt – i øjeblikket er det 20 GB.
oc apply -f postgres.yaml
4. Nu bør du have en PostgresCluster CR under fanen under installerede operatører:

PostgresCluster CR wiki.js i OpenShift

Du bør kunne oprette forbindelse fra den lokale maskine med psql på følgende måde (sørg for, at psql er installeret):

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å en shell, der viser, at forbindelsen bruger TLS, hvilket er standard hos denne operatør.

5. For mig fungerede det ikke at forbinde WikiJS til PostgreSQL med SSL. Jeg var nødt til at tilføje CA-certifikatet som beskrevet i dokumentationen:

(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 gemmes i pgo-root-cacert-hemmeligheden. Kør scriptet for at få det i det rigtige format:

./getPsqlRootCAString.sh

Det vil give noget i retning af:

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

Føj dette til deploymentConfig.yaml, uddrag:

- 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 er vi klar til at implementere det.

6. Implementeringsfilen indeholder en henvisning til det docker-billede, som forfatteren af den nævnte henvisning har lavet. Som nævnt kan dette bygges ud fra den medfølgende Dockerfile.

For nemheds skyld kan vi bruge det billede, bruge dit eget, opbygge billedet og tagge det:
docker build -t yourusername/repository-name .

Jeg brugte Docker Hub:

docker build -t vgerris/wikijs:2 .

derefter skubbe det til dit valgte register og opdatere referencen i implementeringsfilen
mere info : https://docs.docker.com/engine/reference/commandline/push/

docker push vgerris/wikijs:2

Anvend nu implementeringen:

oc apply -f deploymentConfig.yaml
7. Nu hvor appen er implementeret, kan vi tilføje en tjeneste og en rute for at eksponere den. Opdater rutefilen med din server-URL:
oc apply -f service.yaml
oc apply -f route.yaml

Du bør nu have applikationen kørende og synlig på ruten, og du kan afslutte opsætningen.

Nyd WikiJS!

Valgfrit
Hvis du har en eksisterende samling af Markdown-filer (MD), kan det være nyttigt at føje dem til wiki'en. Du kan finde mere information om, hvordan du konfigurerer det, når det er gemt i git, her.
Filerne indekseres og føjes til WikiJS og kan redigeres direkte med Markdown-editoren. Som en bonus har WikiJS et diagram-plugin, der gør det virkelig nemt at tilføje draw.io-baserede diagrammer direkte i dokumenterne.

Det er også ret nemt at konfigurere OpenID Connect med f.eks. Keycloak.
Gå til administration, vælg autentificering, tilføj strategi og vælg Keycloak.
Opret en klient i Keycloak og udfyld de obligatoriske felter.
Deaktiver gæstebrugeren, hvis du ikke ønsker, at den skal være offentlig, se:
https://docs.requarks.io/groups ( Privat Wiki)

Binero Group leverer OKD oven på Binero-skyen og også en fuldt understøttet Red Hat OpenShift Container Platform som en hostet eller fuldt administreret løsning på svenske datacentre, der overholder GDPR.

Prøv Binero Cloud og kontakt os, hvis du har spørgsmål. Vi hjælper gerne!

Opret konto i Binero cloud

Share this article

relaterede artikler

omslagsbild med text artikel World cup qualifiers
Seneste nyt
Special events
Valfritt
5 august 2025
omslagsbild med text artikel Show sports in public
EzyStream
Seneste nyt
Valfritt
29 juli 2025
omslagsbild med text artikel TV as a Service – Modern TV solutions
EzyStream
Seneste nyt
Valfritt
29 juli 2025

Vil du vide mere?

Vi drives af at hjælpe vores kunder med at opnå større innovationskraft og omkostningseffektiv IT. Vil du også være med på det nyeste inden for højtydende cloud-tjenester?