Wiki-Tech.io/SelfHosted/WikiJS.md

6.0 KiB

title description published date tags editor dateCreated
Wiki.js Un jolie wiki autohébergé ! true 2021-10-03T16:10:24.432Z markdown 2021-05-24T14:15:33.855Z

Présentation

Wiki.js est un outils selfhosted développé en javascript qui permet de mettre en place simplement un système de wiki puissant, complet et jolie. L'un des gros avantages de ce dernier c'est la synchronisation avec git directement pour la sauvegarde et le versionning. Wiki-Tech.io fonctionne avec Wiki.js depuis ses débuts sous Docker ! La version 3.0 devrais sortir d'ici la fin d'année avec beaucoup de nouveautés:

Site officiel : https://js.wiki Documentation : https://docs.requarks.io

Installation

Linux

  1. Téléchargez la dernière version de Wiki.js:
wget https://github.com/Requarks/wiki/releases/download/2.5.219/wiki-js.tar.gz
  1. Décompressez l'archive dan s le dossier final de l'application :
mkdir wiki
tar xzf wiki-js.tar.gz -C ./wiki
cd ./wiki
  1. Renommez le fichier config.sample.yml en config.yml :
mv config.sample.yml config.yml
  1. Editez le fichier de config et remplissez les informations de votre base de données et de port : (Configuration Reference):
nano config.yml
  1. Pour l'installation avec SQLite: (ignorez cette etape sinon) Récupère les liaisons natives pour SQLite3 :
npm rebuild sqlite3
  1. Lancez Wiki.js
node server
  1. Attendez que vous soyez invité à ouvrir la page de configuration dans votre navigateur.
  2. Complétez l'assistant de configuration pour terminer l'installation.

Run as service

Il existe plusieurs solutions pour exécuter Wiki.js en tant que service en arrière-plan. Nous allons nous concentrer sur systemd dans ce guide car il est disponible dans presque toutes les distributions linux.

  1. Créez un nouveau fichier nommé wiki.service dans le répertoire /etc/systemd/system.
nano /etc/systemd/system/wiki.service
  1. Collez le contenu suivant (en supposant que votre wiki est installé dans /var/wiki) :
[Unit]
Description=Wiki.js
After=network.target

[Service]
Type=simple
ExecStart=/usr/bin/node server
Restart=always
# Consider creating a dedicated user for Wiki.js here:
User=nobody
Environment=NODE_ENV=production
WorkingDirectory=/var/wiki

[Install]
WantedBy=multi-user.target
  1. Sauvegardez le fichier (CTRL+X, suivis de Y).
  2. Redémarrez systemd :
systemctl daemon-reload
  1. Lancez le service :
systemctl start wiki
  1. Activez le service au démarrage :
systemctl enable wiki

Vous pouvez consultez les logs du service avec journalctl -u wiki {.is-info}

Docker

Vous pouvez directement utiliser mon template d'application avec Portainer disponible ici ou le lancer avec le docker compose suivant :

version: "2"
services:

  wiki-db:
    image: postgres:11-alpine
    container_name: wiki-db
    environment:
      POSTGRES_DB: wiki
      POSTGRES_PASSWORD: $DB_PASSWORD
      POSTGRES_USER: $DB_USER
    restart: unless-stopped
    volumes:
      - $DATA_LOCATION/db:/var/lib/postgresql/data
      
    # Facultatif  
    networks:
      - proxy
    logging:
      driver: loki
      options:
        loki-url: "$URL_LOKI"
        loki-external-labels: service={{.Name}}

  wiki:
    image: requarks/wiki:2
    container_name: wiki
    depends_on:
      - wiki-db
    environment:
      DB_TYPE: postgres
      DB_HOST: wiki-db
      DB_PORT: 5432
      DB_USER: $DB_USER
      DB_PASS: $DB_PASSWORD
      DB_NAME: wiki
    restart: unless-stopped

    healthcheck:
      test: curl --fail http://localhost:3000 || exit 1
      interval: 1m
      timeout: 30s
      retries: 3

# Facultatif  
    networks:
      - proxy
    logging:
      driver: loki
      options:
        loki-url: "$URL_LOKI"
        loki-external-labels: service={{.Name}}
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.wiki.entrypoints=http"
      - "traefik.http.routers.wiki.rule=Host(`$URL`)"
      - "traefik.http.middlewares.wiki-https-redirect.redirectscheme.scheme=https"
      - "traefik.http.routers.wiki.middlewares=$SERVICE-https-redirect"
      - "traefik.http.routers.wiki-secure.entrypoints=https"
      - "traefik.http.routers.wiki-secure.rule=Host(`$URL`)"
      - "traefik.http.routers.wiki-secure.tls=true"
      - "traefik.http.routers.wiki-secure.tls.certresolver=http"
      - "traefik.http.services.wiki-secure.loadbalancer.server.port=3000"
      - "traefik.docker.network=proxy"
      
networks:
  proxy:
    external:
      name: proxy

Pensez à changer dans le docker-compose ou à définir les variables suivantes : DB_USER, DB_PASSWORD, URL_LOKI et URL en fonction de votre installation. {.is-warning}

Configuration

Configurer Git

Pour l'activer il vous suffit de vous rendre dans la catégorie stockage pour activer Git. image_2021-10-03_180716.png Une fois activé, il ne vous reste plus qu'à rentrer vos informations de connexions à votre git !

Masquer la table des matières

Pour masquer la table des matières dans certaines pages, vous pouvez utiliser ce petit bout de CSS pour la page en question : wiki_wikijs_matiere.png

.page-col-sd {
  margin-top: 0;
  align-self: flex-start;
  position: sticky;
  top: 64px;
  max-height: calc(100vh - 64px);
  overflow-y: auto;
  -ms-overflow-style: none;
  display: none
}
.flex.lg9 {
  flex-basis: 100%!important;
  flex-grow: 0;
  max-width: 100%!important
}