--- title: Wiki.js description: Un jolie wiki autohébergé ! published: true date: 2021-10-03T16:10:24.432Z tags: editor: markdown dateCreated: 2021-05-24T14:15:33.855Z --- ![](https://cdn-images.threadless.com/threadless-media/artist_shops/shops/wikijs/profile/logo-1531876777-e927870eea78296b4aa681910b70a189.png?v=3&d=eyJvbmx5X21ldGEiOiBmYWxzZSwgImZvcmNlIjogZmFsc2UsICJvcHMiOiBbWyJyZXNpemUiLCBbNjAwLCAyNTBdLCB7fV1dfQ==) # 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: ```bash wget https://github.com/Requarks/wiki/releases/download/2.5.219/wiki-js.tar.gz ``` 2. Décompressez l'archive dan s le dossier final de l'application : ```bash mkdir wiki tar xzf wiki-js.tar.gz -C ./wiki cd ./wiki ``` 3. Renommez le fichier `config.sample.yml` en `config.yml` : ```bash mv config.sample.yml config.yml ``` 4. Editez le fichier de config et remplissez les informations de votre base de données et de port : ([Configuration Reference](/install/config)): ```bash nano config.yml ``` 5. ***Pour l'installation avec SQLite:*** *(ignorez cette etape sinon)* Récupère les liaisons natives pour SQLite3 : ```bash npm rebuild sqlite3 ``` 6. Lancez Wiki.js ```bash node server ``` 7. Attendez que vous soyez invité à ouvrir la page de configuration dans votre navigateur. 8. 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`. ```bash nano /etc/systemd/system/wiki.service ``` 2. Collez le contenu suivant (en supposant que votre wiki est installé dans `/var/wiki`) : ```ini [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 ``` 3. Sauvegardez le fichier (CTRL+X, suivis de Y). 4. Redémarrez systemd : ```bash systemctl daemon-reload ``` 5. Lancez le service : ```bash systemctl start wiki ``` 6. Activez le service au démarrage : ```bash 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](https://github.com/PAPAMICA/docker-compose-collection) ou le lancer avec le docker compose suivant : ```yaml 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](/images/selfhosted/wikijs/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](/images/selfhosted/wikijs/wiki_wikijs_matiere.png) ```css .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 } ```