Создайте свою вики с помощью Docker (TiddlyWiki)

Docker
Создайте свою вики с помощью Docker (TiddlyWiki)

В этой статье используется лицензионное соглашение «Signature 4.0 International (CC BY 4.0)», добро пожаловать на перепечатку или изменение для использования, но вам необходимо указать источник.Атрибуция 4.0 Международная (CC BY 4.0)

Автор этой статьи: Су Ян

Создано: 3 февраля 2019 г. Статистические слова: 4384 слова Время чтения: 9 минут чтения Ссылка на эту статью:Поиск teay.com/2019/02/03/…


Создайте свою вики с помощью Docker (TiddlyWiki)

Быстрое построение и использование трех разных RSS-систем было представлено ранее.Далее я продемонстрирую несколько разных Wiki-систем, которые также быстро строятся с помощью Docker и Traefik.Эта статья является третьей статьей TiddlyWiki, в дополнение к конструкция. , простая демонстрация того, как оптимизировать образ контейнера.

Если вы читали статьи, которые я написал ранее, обратитесь к этой статье, чтобы создать статью. Это займет всего 3 минуты или меньше. Если вы еще не читали ее, вы можете щелкнуть вкладку статьи, связанную с этой статьей, чтобы прочитать предыдущую статьи.

О TiddlyWiki

TiddlyWiki также является бесплатным программным обеспечением с открытым исходным кодом, написанным на JavaScript, которое также является кроссплатформенным по своей сути и широко используется для организации личных знаний.

Автор из Оксфордского университета и много лет разрабатывал это программное обеспечение Wiki.Благодаря некоторым уникальным преимуществам программного обеспечения у него много поклонников железа.Так чем же это программное обеспечение отличается от других программ Wiki?

  • Программное обеспечение последней версии (5.x) поддерживает два режима работы:
    • Одна страница HTML (приложение SPA)
    • Node.js (веб-приложение)
  • Одностраничный режим вряд ли требует каких-либо навыков программирования, просто дважды щелкните файл подкачки, чтобы сразу начать его использовать, и его можно носить с собой на облачном диске хранилища или U-диске.
  • Записи Wiki легко настраиваются, с хорошей поддержкой общих формул, диаграмм, выделения кода и многого другого.
  • Предоставляет множество подключаемых модулей общих функций, языковых пакетов, различных стилей тем и может переключать традиционные вики.
  • В настоящее время предоставляет клиент (на основе NW.js)/различные странные методы запуска (например, запуск на мобильных телефонах).

Ниже приведен официальный сайт программного обеспечения, а также соответствующая китайская версия. Китайская версия версии программного обеспечения относительно низкая, но использование общих функций не сильно изменилось.

В данной статье будет использоваться режим Node.js для построения вики-сайтов.Во-первых, производительность лучше.Во-вторых,все приложение можно превратить в изоморфный тип,и эффективность вторичной разработки тоже выше.В-третьих,единично- файловая версия не требует статьи Практическая документация.

Текущая версия программного обеспеченияv5.1.19, автор занимается разработкой уже 6 лет с тех пор как в 2013 году номер версии подскочил с 1.х до 5.0,Запись версии здесь, эта статья основана на этой стабильной версии.

Без дальнейших церемоний, давайте начнем.

Напишите базовый образ Docker

Ниже нашDockerfile:

FROM node:11.9.0-alpine

RUN npm install -g tiddlywiki@5.1.19

EXPOSE 8080

VOLUME [ "/app" ]

WORKDIR /app

CMD [ "tiddlywiki", ".", "--listen", "host=0.0.0.0" ]

использоватьDocker buildкоманда для создания образа, здесь мы предварительно устанавливаем имя образа какdocker.lab.com/tiddlywiki:5.1.19.

docker build -t docker.lab.com/tiddlywiki:5.1.19 .

Если вы чувствуете, что процесс строительства идет очень медленно, вы можете использовать зеркало, поддерживаемое местной командой Taobao, чтобы преобразовать первыйRUNКоманда после директивы заменяется на:

RUN npm install -g tiddlywiki@5.1.19 --registry=https://registry.npm.taobao.org

Запуск TiddlyWiki с Compose

С помощью приведенного ниже файла конфигурации вы можете использовать Compose для запуска TiddlyWiki, используя текстовый файл в качестве хранилища данных одним щелчком мыши.Конфигурация очень проста, около 20 строк кода.

version: '3'

services:

  tiddly:
    image: docker.lab.com/tiddlywiki:5.1.19
    restart: always
    labels:
      - "traefik.enable=true"
      - "traefik.port=8080"
      - "traefik.frontend.rule=Host:tiddlywiki.lab.io"
      - "traefik.frontend.entryPoints=https,http"
      - "traefik.frontend.headers.customResponseHeaders=Access-Control-Allow-Origin:*"
    networks:
      - traefik
    volumes:
      - ./app:/app
    expose:
      - 8080
    command: tiddlywiki . --init server

networks:
  traefik:
    external: true

Однако, если вы используете такую ​​конфигурацию и образ контейнера напрямую, это будет немного проблематично, нам нужно выполнить «дважды».docker-compose up:

  • В первый раз используйте указанный выше файл конфигурации напрямую, после запуска инициализируйте каталог данных вики по умолчанию.
  • второй раз удалитьcommandПосле команды разрешите выполнению образа контейнера с командой по умолчанию и запустите службу.

Как подбрасывающий контроллер с преследованием, конечно, мы должны избегать такой ситуации, это слишком неэкологично.

Итак, давайте решим эту проблему.

Написание расширенных версий образов контейнеров

Ниже представлен новыйDockerfile:

FROM node:11.9.0-alpine
MAINTAINER soulteary@gmail.com

RUN npm install -g tiddlywiki@5.1.19

EXPOSE 8080

VOLUME [ "/app" ]

WORKDIR /app

COPY entrypoint.sh /entrypoint.sh

RUN chmod +x /entrypoint.sh

CMD [ "/entrypoint.sh" ]

По сравнению с предыдущей версией мы предоставим новый «входной файл»,entrypoint.shСодержимое файла следующее:

#!/usr/bin/env sh

if [ ! -f "/app/tiddlywiki.info" ]; then
    tiddlywiki /app --init server
fi

tiddlywiki /app --listen host=0.0.0.0

повторное использованиеdocker buildПосле того, как команда соберет образ, давайте исправим предыдущийdocker-compose.ymlконфигурационный файл.

Запустите TiddlyWiki с Compose еще раз

version: '3'

services:

  tiddly:
    image: docker.lab.com/tiddlywiki:5.1.19
    restart: always
    labels:
      - "traefik.enable=true"
      - "traefik.port=8080"
      - "traefik.frontend.rule=Host:tiddlywiki.lab.io"
      - "traefik.frontend.entryPoints=https,http"
      - "traefik.frontend.headers.customResponseHeaders=Access-Control-Allow-Origin:*"
    networks:
      - traefik
    volumes:
      - ./app:/app
    expose:
      - 8080

networks:
  traefik:
    external: true

Сохраните конфигурацию какdocker-compose.yml, затем выполнитеdocker-compose upЗапустите приложение и файл с именемappкаталог, в котором будут храниться файлы конфигурации сайта, а также все наши будущие данные вики-записи, все полностью автоматически.

Структура каталога данных выглядит следующим образом:

app
├── tiddlers
│   ├── $__SiteTitle.tid
│   └── $__StoryList.tid
└── tiddlywiki.info

Резервное копирование данных очень простое, вам нужно только регулярно создавать резервную копию файла в этом каталоге.Если будет возможность позже, вы можете написать статью, посвященную резервному копированию файлов.

когда используешьdocker-compose upПосле запуска приложения к нему можно получить доступ через настроенное нами доменное имя, в данном примере это адресtiddlywiki.lab.io. (Я использую Traefik для обнаружения сервисов, если вы не знаете, как это сделать, посетите мою статью по истории, чтобы узнать, как используется Traefik.)

Обзор TiddlyWiki

Откройте браузер, и вы увидите, что TiddlyWiki запущен и работает.

TiddlyWiki 已经就绪

Нажмите «шестеренка» справа, чтобы войти на страницу настроек.Помимо обычных операций, вы также можете настроить плагины, языковые пакеты, темы и т. д.

Далее возьмем в качестве примера настройку TiddlyWiki для китайского языка, откроем вкладку плагина на панели настроек, кликнем по плагину, выберем категорию языкового пакета, найдем китайский языковой пакет и нажмем кнопку «Установить». кнопка.

获取官方提供的插件

После завершения загрузки вверху страницы появится желтая подсказка, нажимайте по очереди кнопки «Сохранить» и «Обновить» в строке подсказок.

下载语言包

Затем вернитесь на домашнюю страницу панели конфигурации, прокрутите страницу вниз, найдите пункт конфигурации языка, выберите китайский, подождите 1 или 2 секунды, и конфигурация языкового пакета вступит в силу.

修改 TiddlyWiki 中使用的语言

Конфигурация загрузки других плагинов аналогична Вернувшись на домашнюю страницу, мы видим, что панель инструментов в правой части интерфейса изменилась на китайский язык.

А содержание статьи написано на каком языке, какой контент будет отображаться, если вы хотите сделать мультиязычный сайт, вы можете изучить его, TiddlyWiki это тоже поддерживает.

汉化后的工具栏

Затем вы можете начать официальное путешествие по вики.Нажмите знак «+» рядом с шестеренкой на панели инструментов, чтобы создать новую статью, и щелкните значок пера существующего содержимого на странице, чтобы изменить существующее содержимое.

TiddlyWiki 编辑界面

Вы можете исследовать больше самостоятельно.

Наконец

Если вы не очень хорошо знакомы с Docker, Traefik и Compose, обсуждаемыми в этой статье, добро пожаловать к прочтению моих предыдущих статей, чтобы получить полное представление о вышеупомянутых технологиях.Я надеюсь, что мои статьи могут быть вам полезны.

Далее я продолжу знакомить с установочной конфигурацией и волшебной модификацией нескольких различных систем Wiki.Если вы также думаете о том, как поддерживать набор инструментов управления знаниями, чтобы вам было удобно их использовать, вы можете продолжать обращать внимание и до встречи в следующий раз.

— ЭОФ


Теперь у меня есть небольшая группа по метанию, в которую входят друзья, которые любят метать.

В отсутствие рекламы мы будем вместе болтать о софте, HomeLab и вопросах программирования, а также время от времени будем делиться технической информацией о салоне в группе.

Друзья, которые любят бросать, могут отсканировать код, чтобы добавить друзей. (Пожалуйста, укажите источник и цель, иначе не пройдет проверку)

Эти вещи о том, чтобы бросить группу в группу